diff --git a/.backportrc.json b/.backportrc.json index dbf40e472325e1..1054205fccf4c9 100644 --- a/.backportrc.json +++ b/.backportrc.json @@ -3,6 +3,7 @@ "repoName": "kibana", "targetBranchChoices": [ "main", + "8.7", "8.6", "8.5", "8.4", @@ -43,7 +44,7 @@ "backport" ], "branchLabelMapping": { - "^v8.7.0$": "main", + "^v8.8.0$": "main", "^v(\\d+).(\\d+).\\d+$": "$1.$2" }, "autoMerge": true, diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index 0b56007cf9aeb8..beb991bd197882 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -9,6 +9,7 @@ disabled: - x-pack/test/functional_enterprise_search/base_config.ts - x-pack/test/localization/config.base.ts - test/server_integration/config.base.js + - x-pack/test/functional_with_es_ssl/config.base.ts # QA suites that are run out-of-band - x-pack/test/stack_functional_integration/configs/config.stack_functional_integration_base.js @@ -180,7 +181,10 @@ enabled: - x-pack/test/functional_embedded/config.ts - x-pack/test/functional_enterprise_search/without_host_configured.config.ts - x-pack/test/functional_execution_context/config.ts - - x-pack/test/functional_with_es_ssl/config.ts + - x-pack/test/functional_with_es_ssl/apps/cases/group1/config.ts + - x-pack/test/functional_with_es_ssl/apps/cases/group2/config.ts + - x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/config.ts + - x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/config.ts - x-pack/test/functional/apps/advanced_settings/config.ts - x-pack/test/functional/apps/aiops/config.ts - x-pack/test/functional/apps/api_keys/config.ts @@ -243,6 +247,7 @@ enabled: - x-pack/test/functional/config_security_basic.ts - x-pack/test/functional/config.ccs.ts - x-pack/test/functional/config.firefox.js + - x-pack/test/functional_cloud/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 diff --git a/.buildkite/scripts/build_kibana.sh b/.buildkite/scripts/build_kibana.sh index 2757c956920f79..6cf21353f35046 100755 --- a/.buildkite/scripts/build_kibana.sh +++ b/.buildkite/scripts/build_kibana.sh @@ -8,14 +8,15 @@ export KBN_NP_PLUGINS_BUILT=true echo "--- Build Kibana Distribution" -BUILD_ARGS="" -is_pr_with_label "ci:build-all-platforms" && BUILD_ARGS="--all-platforms" -is_pr_with_label "ci:build-example-plugins" && BUILD_ARGS="$BUILD_ARGS --example-plugins" -is_pr_with_label "ci:build-docker-cross-compile" && BUILD_ARG="$BUILD_ARGS --docker-cross-compile" -is_pr_with_label "ci:build-os-packages" || BUILD_ARGS="$BUILD_ARGS --skip-os-packages" -is_pr_with_label "ci:build-canvas-shareable-runtime" || BUILD_ARGS="$BUILD_ARGS --skip-canvas-shareable-runtime" -is_pr_with_label "ci:build-docker-contexts" || BUILD_ARGS="$BUILD_ARGS --skip-docker-contexts" -node scripts/build $BUILD_ARGS +BUILD_ARGS=("--with-test-plugins" "--with-example-plugins") +is_pr_with_label "ci:build-all-platforms" && BUILD_ARGS+=("--all-platforms") +is_pr_with_label "ci:build-docker-cross-compile" && BUILD_ARGS+=("--docker-cross-compile") +is_pr_with_label "ci:build-os-packages" || BUILD_ARGS+=("--skip-os-packages") +is_pr_with_label "ci:build-canvas-shareable-runtime" || BUILD_ARGS+=("--skip-canvas-shareable-runtime") +is_pr_with_label "ci:build-docker-contexts" || BUILD_ARGS+=("--skip-docker-contexts") + +echo "> node scripts/build" "${BUILD_ARGS[@]}" +node scripts/build "${BUILD_ARGS[@]}" if is_pr_with_label "ci:build-cloud-image"; then echo "$KIBANA_DOCKER_PASSWORD" | docker login -u "$KIBANA_DOCKER_USERNAME" --password-stdin docker.elastic.co diff --git a/.buildkite/scripts/steps/artifacts/build.sh b/.buildkite/scripts/steps/artifacts/build.sh index 7c18dcb328a283..598bed6919f762 100644 --- a/.buildkite/scripts/steps/artifacts/build.sh +++ b/.buildkite/scripts/steps/artifacts/build.sh @@ -7,7 +7,7 @@ set -euo pipefail source .buildkite/scripts/steps/artifacts/env.sh echo "--- Build Kibana artifacts" -node scripts/build --all-platforms --debug --docker-cross-compile $(echo "$BUILD_ARGS") +node scripts/build --all-platforms --debug --docker-cross-compile "${BUILD_ARGS[@]}" echo "--- Extract default i18n messages" mkdir -p target/i18n diff --git a/.buildkite/scripts/steps/artifacts/docker_context.sh b/.buildkite/scripts/steps/artifacts/docker_context.sh index c50fb3e0524fd9..06efe388cd9314 100755 --- a/.buildkite/scripts/steps/artifacts/docker_context.sh +++ b/.buildkite/scripts/steps/artifacts/docker_context.sh @@ -11,7 +11,7 @@ KIBANA_DOCKER_CONTEXT="${KIBANA_DOCKER_CONTEXT:="default"}" echo "--- Create contexts" mkdir -p target -node scripts/build --skip-initialize --skip-generic-folders --skip-platform-folders --skip-archives --docker-context-use-local-artifact $(echo "$BUILD_ARGS") +node scripts/build --skip-initialize --skip-generic-folders --skip-platform-folders --skip-archives --docker-context-use-local-artifact "${BUILD_ARGS[@]}" echo "--- Setup context" DOCKER_BUILD_FOLDER=$(mktemp -d) diff --git a/.buildkite/scripts/steps/artifacts/env.sh b/.buildkite/scripts/steps/artifacts/env.sh index bab1e6321b797b..7848fe7f550b71 100755 --- a/.buildkite/scripts/steps/artifacts/env.sh +++ b/.buildkite/scripts/steps/artifacts/env.sh @@ -15,11 +15,11 @@ fi if [[ "$RELEASE_BUILD" == "true" ]]; then FULL_VERSION="$QUALIFIER_VERSION" - BUILD_ARGS="--release --version-qualifier=$VERSION_QUALIFIER" + BUILD_ARGS=("--release" "--version-qualifier=$VERSION_QUALIFIER") WORKFLOW="staging" else FULL_VERSION="$QUALIFIER_VERSION-SNAPSHOT" - BUILD_ARGS="--version-qualifier=$VERSION_QUALIFIER" + BUILD_ARGS=("--version-qualifier=$VERSION_QUALIFIER") WORKFLOW="snapshot" fi diff --git a/.buildkite/scripts/steps/checks.sh b/.buildkite/scripts/steps/checks.sh index 4b7df27e331b83..3272a5184e60b0 100755 --- a/.buildkite/scripts/steps/checks.sh +++ b/.buildkite/scripts/steps/checks.sh @@ -6,6 +6,7 @@ export DISABLE_BOOTSTRAP_VALIDATION=false .buildkite/scripts/bootstrap.sh .buildkite/scripts/steps/checks/precommit_hook.sh +.buildkite/scripts/steps/checks/packages.sh .buildkite/scripts/steps/checks/ts_projects.sh .buildkite/scripts/steps/checks/packages.sh .buildkite/scripts/steps/checks/bazel_packages.sh @@ -18,7 +19,6 @@ export DISABLE_BOOTSTRAP_VALIDATION=false .buildkite/scripts/steps/checks/i18n.sh .buildkite/scripts/steps/checks/file_casing.sh .buildkite/scripts/steps/checks/licenses.sh -.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh .buildkite/scripts/steps/checks/test_projects.sh .buildkite/scripts/steps/checks/test_hardening.sh .buildkite/scripts/steps/checks/ftr_configs.sh diff --git a/.buildkite/scripts/steps/checks/packages.sh b/.buildkite/scripts/steps/checks/packages.sh index ebbbc9057e9a40..fae0011a9fb5ab 100755 --- a/.buildkite/scripts/steps/checks/packages.sh +++ b/.buildkite/scripts/steps/checks/packages.sh @@ -4,7 +4,7 @@ set -euo pipefail source .buildkite/scripts/common/util.sh -echo --- Lint packages +echo --- Lint Packages cmd="node scripts/lint_packages" if is_pr && ! is_auto_commit_disabled; then cmd="$cmd --fix" diff --git a/.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh b/.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh deleted file mode 100755 index a09c09f9fb8479..00000000000000 --- a/.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -source .buildkite/scripts/common/util.sh - -echo --- Check Plugins With Circular Dependencies -node scripts/find_plugins_with_circular_deps diff --git a/.buildkite/scripts/steps/checks/ts_projects.sh b/.buildkite/scripts/steps/checks/ts_projects.sh index 786d88a61d0650..4accfe533cb276 100755 --- a/.buildkite/scripts/steps/checks/ts_projects.sh +++ b/.buildkite/scripts/steps/checks/ts_projects.sh @@ -4,7 +4,7 @@ set -euo pipefail source .buildkite/scripts/common/util.sh -echo --- Lint TS projects +echo --- Lint TS Projects cmd="node scripts/lint_ts_projects" if is_pr && ! is_auto_commit_disabled; then cmd="$cmd --fix" diff --git a/.eslintrc.js b/.eslintrc.js index d79b0400368abf..3474d3c588707b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -121,7 +121,7 @@ const VENN_DIAGRAM_HEADER = ` /** Packages which should not be included within production code. */ const DEV_PACKAGE_DIRS = getPackages(REPO_ROOT).flatMap((pkg) => - pkg.isDevOnly ? pkg.normalizedRepoRelativeDir : [] + pkg.isDevOnly() ? pkg.normalizedRepoRelativeDir : [] ); /** Directories (at any depth) which include dev-only code. */ @@ -902,7 +902,10 @@ module.exports = { files: ['x-pack/plugins/profiling/**/*.{js,mjs,ts,tsx}'], rules: { 'react-hooks/rules-of-hooks': 'error', // Checks rules of Hooks - 'react-hooks/exhaustive-deps': ['error', { additionalHooks: '^(useAsync)$' }], + 'react-hooks/exhaustive-deps': [ + 'error', + { additionalHooks: '^(useAsync|useTimeRangeAsync|useAutoAbortedHttpClient)$' }, + ], }, }, { @@ -946,6 +949,8 @@ module.exports = { { // front end and common typescript and javascript files only files: [ + 'x-pack/plugins/ecs_data_quality_dashboard/common/**/*.{js,mjs,ts,tsx}', + 'x-pack/packages/kbn-ecs-data-quality-dashboard/common/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/security_solution/public/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/security_solution/common/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/timelines/public/**/*.{js,mjs,ts,tsx}', @@ -971,11 +976,15 @@ module.exports = { // We use this section to add rules in which we do not want to apply to test files. // This should be a very small set as most linter rules are useful for tests as well. files: [ + 'x-pack/plugins/ecs_data_quality_dashboard/**/*.{ts,tsx}', + 'x-pack/packages/kbn-ecs-data-quality-dashboard/**/*.{ts,tsx}', 'x-pack/plugins/security_solution/**/*.{ts,tsx}', 'x-pack/plugins/timelines/**/*.{ts,tsx}', 'x-pack/plugins/cases/**/*.{ts,tsx}', ], excludedFiles: [ + 'x-pack/plugins/ecs_data_quality_dashboard/**/*.{test,mock,test_helper}.{ts,tsx}', + 'x-pack/packages/kbn-ecs-data-quality-dashboard/**/*.{test,mock,test_helper}.{ts,tsx}', 'x-pack/plugins/security_solution/**/*.{test,mock,test_helper}.{ts,tsx}', 'x-pack/plugins/timelines/**/*.{test,mock,test_helper}.{ts,tsx}', 'x-pack/plugins/cases/**/*.{test,mock,test_helper}.{ts,tsx}', @@ -987,6 +996,8 @@ module.exports = { { // typescript only for front and back end files: [ + 'x-pack/plugins/ecs_data_quality_dashboard/**/*.{ts,tsx}', + 'x-pack/packages/kbn-ecs-data-quality-dashboard/**/*.{ts,tsx}', 'x-pack/plugins/security_solution/**/*.{ts,tsx}', 'x-pack/plugins/timelines/**/*.{ts,tsx}', 'x-pack/plugins/cases/**/*.{ts,tsx}', @@ -1017,6 +1028,8 @@ module.exports = { { // typescript and javascript for front and back end files: [ + 'x-pack/plugins/ecs_data_quality_dashboard/**/*.{js,mjs,ts,tsx}', + 'x-pack/packages/kbn-ecs-data-quality-dashboard/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/security_solution/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/timelines/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/cases/**/*.{js,mjs,ts,tsx}', @@ -1721,7 +1734,10 @@ module.exports = { * Code inside .buildkite runs separately from everything else in CI, before bootstrap, with ts-node. It needs a few tweaks because of this. */ { - files: 'packages/kbn-{package-*,repo-*,dep-*}/**/*', + files: [ + 'packages/kbn-{package-*,repo-*,dep-*}/**/*', + 'packages/kbn-find-used-node-modules/**/*', + ], rules: { 'max-classes-per-file': 'off', }, diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 524d2abbc7f9e9..0491048bcf81b9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,94 +5,26 @@ # The #CC# prefix delineates Code Coverage, # used for the 'team' designator within Kibana Stats -# Alerting commmunal ownership -/x-pack/plugins/rule_registry/ @elastic/response-ops @elastic/actionable-observability - # Data Discovery -/src/plugins/discover/ @elastic/kibana-data-discovery -/src/plugins/saved_search/ @elastic/kibana-data-discovery -/x-pack/plugins/discover_enhanced/ @elastic/kibana-data-discovery /x-pack/test/functional/apps/discover/ @elastic/kibana-data-discovery -/x-pack/test/functional_with_es_ssl/apps/discover/ @elastic/kibana-data-discovery +/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/discover/ @elastic/kibana-data-discovery /test/functional/apps/discover/ @elastic/kibana-data-discovery /test/functional/apps/context/ @elastic/kibana-data-discovery /test/api_integration/apis/unified_field_list/ @elastic/kibana-data-discovery -/src/plugins/unified_field_list/ @elastic/kibana-data-discovery -/src/plugins/unified_histogram/ @elastic/kibana-data-discovery -/src/plugins/saved_objects_finder/ @elastic/kibana-data-discovery -/src/plugins/data_views/ @elastic/kibana-data-discovery -/src/plugins/data_view_editor/ @elastic/kibana-data-discovery -/src/plugins/data_view_field_editor/ @elastic/kibana-data-discovery -/src/plugins/data_view_management/ @elastic/kibana-data-discovery -/src/plugins/data/ @elastic/kibana-visualizations @elastic/kibana-data-discovery -/src/plugins/field_formats/ @elastic/kibana-data-discovery /x-pack/test/search_sessions_integration/ @elastic/kibana-data-discovery /test/plugin_functional/test_suites/data_plugin @elastic/kibana-data-discovery -/examples/field_formats_example/ @elastic/kibana-data-discovery -/examples/partial_results_example/ @elastic/kibana-data-discovery -/examples/search_examples/ @elastic/kibana-data-discovery /examples/demo_search/ @elastic/kibana-data-discovery # Vis Editors -/x-pack/plugins/lens/ @elastic/kibana-visualizations -/src/plugins/charts/ @elastic/kibana-visualizations -/src/plugins/event_annotation @elastic/kibana-visualizations -/src/plugins/vis_default_editor/ @elastic/kibana-visualizations -/src/plugins/vis_types/metric/ @elastic/kibana-visualizations -/src/plugins/vis_types/table/ @elastic/kibana-visualizations -/src/plugins/vis_types/tagcloud/ @elastic/kibana-visualizations -/src/plugins/vis_types/timelion/ @elastic/kibana-visualizations -/src/plugins/vis_types/timeseries/ @elastic/kibana-visualizations -/src/plugins/vis_types/vega/ @elastic/kibana-visualizations -/src/plugins/vis_types/vislib/ @elastic/kibana-visualizations -/src/plugins/vis_types/xy/ @elastic/kibana-visualizations -/src/plugins/vis_types/pie/ @elastic/kibana-visualizations -/src/plugins/vis_types/heatmap/ @elastic/kibana-visualizations /src/plugins/visualize/ @elastic/kibana-visualizations -/src/plugins/visualizations/ @elastic/kibana-visualizations -/src/plugins/chart_expressions/expression_tagcloud/ @elastic/kibana-visualizations -/src/plugins/chart_expressions/expression_metric/ @elastic/kibana-visualizations -/src/plugins/chart_expressions/expression_heatmap/ @elastic/kibana-visualizations -/src/plugins/chart_expressions/expression_gauge/ @elastic/kibana-visualizations -/src/plugins/chart_expressions/expression_partition_vis/ @elastic/kibana-visualizations -/src/plugins/chart_expressions/expression_xy/ @elastic/kibana-visualizations -/src/plugins/url_forwarding/ @elastic/kibana-visualizations /x-pack/test/functional/apps/lens @elastic/kibana-visualizations /x-pack/test/api_integration/apis/lens/ @elastic/kibana-visualizations /test/functional/apps/visualize/ @elastic/kibana-visualizations -/src/plugins/expressions/ @elastic/kibana-visualizations -/src/plugins/unified_search/ @elastic/kibana-visualizations -/x-pack/plugins/graph/ @elastic/kibana-visualizations /x-pack/test/functional/apps/graph @elastic/kibana-visualizations # Global Experience -/src/plugins/bfetch/ @elastic/appex-sharedux -/src/plugins/files @elastic/appex-sharedux -/src/plugins/screenshot_mode @elastic/appex-sharedux -/src/plugins/share/ @elastic/appex-sharedux -/src/plugins/ui_actions/ @elastic/appex-sharedux -/src/plugins/ui_actions_enhanced/ @elastic/appex-sharedux -/src/plugins/navigation/ @elastic/appex-sharedux -/src/plugins/image_embeddable/ @elastic/appex-sharedux -/x-pack/plugins/notifications/ @elastic/appex-sharedux - -## Examples -/examples/bfetch_explorer/ @elastic/appex-sharedux -/examples/files_example @elastic/appex-sharedux -/examples/state_containers_examples/ @elastic/appex-sharedux -/examples/ui_action_examples/ @elastic/appex-sharedux -/examples/ui_actions_explorer/ @elastic/appex-sharedux -/examples/developer_examples/ @elastic/appex-sharedux -/x-pack/examples/ui_actions_enhanced_examples/ @elastic/appex-sharedux - -### Overview Plugin and Packages -/src/plugins/kibana_overview/ @elastic/appex-sharedux - ### Global Experience Reporting -/x-pack/examples/reporting_example/ @elastic/appex-sharedux -/x-pack/examples/screenshotting_example/ @elastic/appex-sharedux -/x-pack/plugins/reporting/ @elastic/appex-sharedux /x-pack/test/functional/apps/dashboard/reporting/ @elastic/appex-sharedux /x-pack/test/functional/apps/reporting/ @elastic/appex-sharedux /x-pack/test/functional/apps/reporting_management/ @elastic/appex-sharedux @@ -108,12 +40,9 @@ /docs/setup/configuring-reporting.asciidoc @elastic/appex-sharedux ### Global Experience Tagging -/src/plugins/saved_objects_tagging_oss @elastic/appex-sharedux -/x-pack/plugins/saved_objects_tagging/ @elastic/appex-sharedux /x-pack/test/saved_object_tagging/ @elastic/appex-sharedux ### Kibana React (to be deprecated) -/src/plugins/kibana_react/ @elastic/appex-sharedux /src/plugins/kibana_react/public/@elastic/appex-sharedux @elastic/kibana-presentation ### Home Plugin and Packages @@ -152,26 +81,22 @@ /x-pack/test/observability_functional @elastic/actionable-observability # Infra Monitoring -/x-pack/plugins/infra/ @elastic/infra-monitoring-ui /x-pack/test/functional/apps/infra @elastic/infra-monitoring-ui /x-pack/test/api_integration/apis/infra @elastic/infra-monitoring-ui # Elastic Stack Monitoring -/x-pack/plugins/monitoring/ @elastic/infra-monitoring-ui /x-pack/test/functional/apps/monitoring @elastic/infra-monitoring-ui /x-pack/test/api_integration/apis/monitoring @elastic/infra-monitoring-ui /x-pack/test/api_integration/apis/monitoring_collection @elastic/infra-monitoring-ui # Fleet /fleet_packages.json @elastic/fleet -/x-pack/plugins/fleet/ @elastic/fleet /x-pack/test/fleet_api_integration @elastic/fleet /x-pack/test/fleet_cypress @elastic/fleet /x-pack/test/fleet_functional @elastic/fleet /src/dev/build/tasks/bundle_fleet_packages.ts @elastic/fleet @elastic/kibana-operations # APM -/x-pack/plugins/apm/ @elastic/apm-ui /x-pack/test/functional/apps/apm/ @elastic/apm-ui /x-pack/test/apm_api_integration/ @elastic/apm-ui /src/apm.js @elastic/kibana-core @vigneshshanmugam @@ -182,9 +107,7 @@ #CC# /x-pack/plugins/observability/ @elastic/apm-ui # Uptime -/x-pack/plugins/synthetics @elastic/uptime -/x-pack/plugins/ux @elastic/uptime -/x-pack/test/functional_with_es_ssl/apps/uptime @elastic/uptime +/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/uptime/ @elastic/uptime /x-pack/test/functional/apps/uptime @elastic/uptime /x-pack/test/functional/es_archives/uptime @elastic/uptime /x-pack/test/functional/services/uptime @elastic/uptime @@ -197,9 +120,6 @@ /x-pack/plugins/apm/public/components/app/rum_dashboard @elastic/uptime /x-pack/test/apm_api_integration/tests/csm/ @elastic/uptime -# Profiling -/x-pack/plugins/profiling @elastic/profiling-ui - # Observability onboarding tour /x-pack/plugins/observability/public/components/shared/tour @elastic/platform-onboarding /x-pack/test/functional/apps/infra/tour.ts @elastic/platform-onboarding @@ -207,34 +127,14 @@ ### END Observability Plugins # Presentation -/src/plugins/dashboard/ @elastic/kibana-presentation -/src/plugins/expression_error/ @elastic/kibana-presentation -/src/plugins/expression_image/ @elastic/kibana-presentation -/src/plugins/expression_metric/ @elastic/kibana-presentation -/src/plugins/expression_repeat_image/ @elastic/kibana-presentation -/src/plugins/expression_reveal_image/ @elastic/kibana-presentation -/src/plugins/expression_shape/ @elastic/kibana-presentation -/src/plugins/input_control_vis/ @elastic/kibana-presentation -/src/plugins/vis_type_markdown/ @elastic/kibana-presentation -/src/plugins/presentation_util/ @elastic/kibana-presentation -/src/plugins/controls/ @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/plugins/canvas/ @elastic/kibana-presentation -/x-pack/plugins/dashboard_enhanced/ @elastic/kibana-presentation /x-pack/test/functional/apps/canvas/ @elastic/kibana-presentation -/examples/dashboard_embeddable_examples/ @elastic/kibana-presentation -/examples/embeddable_examples/ @elastic/kibana-presentation -/examples/embeddable_explorer/ @elastic/kibana-presentation -/src/plugins/embeddable/ @elastic/kibana-presentation -/src/plugins/inspector/ @elastic/kibana-presentation -/x-pack/plugins/embeddable_enhanced/ @elastic/kibana-presentation /test/plugin_functional/test_suites/panel_actions @elastic/kibana-presentation #CC# /src/plugins/kibana_react/public/code_editor/ @elastic/kibana-presentation # Machine Learning -/x-pack/plugins/ml/ @elastic/ml-ui /x-pack/plugins/ml/common/openapi/ @elastic/mlr-docs /x-pack/test/accessibility/apps/ml.ts @elastic/ml-ui /x-pack/test/accessibility/apps/ml_embeddables_in_dashboard.ts @elastic/ml-ui @@ -244,7 +144,7 @@ /x-pack/test/functional/es_archives/ml/ @elastic/ml-ui /x-pack/test/functional/services/ml/ @elastic/ml-ui /x-pack/test/functional_basic/apps/ml/ @elastic/ml-ui -/x-pack/test/functional_with_es_ssl/apps/ml/ @elastic/ml-ui +/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/ml/ @elastic/ml-ui /x-pack/test/alerting_api_integration/spaces_only/tests/alerting/ml_rule_types/ @elastic/ml-ui /x-pack/test/alerting_api_integration/spaces_only/tests/alerting/transform_rule_types/ @elastic/ml-ui /x-pack/test/screenshot_creation/apps/ml_docs @elastic/ml-ui @@ -252,28 +152,21 @@ /docs/api/machine-learning/ @elastic/mlr-docs # Additional plugins and packages maintained by the ML team. -/x-pack/plugins/aiops/ @elastic/ml-ui -/x-pack/plugins/data_visualizer/ @elastic/ml-ui -/x-pack/plugins/file_upload/ @elastic/ml-ui -/x-pack/plugins/transform/ @elastic/ml-ui /x-pack/test/accessibility/apps/transform.ts @elastic/ml-ui /x-pack/test/api_integration/apis/transform/ @elastic/ml-ui /x-pack/test/api_integration_basic/apis/transform/ @elastic/ml-ui /x-pack/test/functional/apps/transform/ @elastic/ml-ui /x-pack/test/functional/services/transform/ @elastic/ml-ui /x-pack/test/functional_basic/apps/transform/ @elastic/ml-ui -/examples/response_stream/ @elastic/ml-ui # Maps #CC# /x-pack/plugins/maps/ @elastic/kibana-gis -/x-pack/plugins/maps/ @elastic/kibana-gis /x-pack/test/api_integration/apis/maps/ @elastic/kibana-gis /x-pack/test/functional/apps/maps/ @elastic/kibana-gis /x-pack/test/functional/es_archives/maps/ @elastic/kibana-gis /x-pack/plugins/stack_alerts/server/rule_types/geo_containment @elastic/kibana-gis /x-pack/plugins/stack_alerts/public/rule_types/geo_containment @elastic/kibana-gis #CC# /x-pack/plugins/file_upload @elastic/kibana-gis -/x-pack/plugins/file_upload @elastic/kibana-gis # Operations /src/dev/license_checker/config.ts @elastic/kibana-operations @@ -302,25 +195,9 @@ /x-pack/test/visual_regression @elastic/kibana-qa # Core -/examples/hello_world/ @elastic/kibana-core -/src/core/ @elastic/kibana-core /config/kibana.yml @elastic/kibana-core /typings/ @elastic/kibana-core -/x-pack/plugins/global_search_providers @elastic/kibana-core -/x-pack/plugins/banners/ @elastic/kibana-core -/x-pack/plugins/features/ @elastic/kibana-core -/x-pack/plugins/licensing/ @elastic/kibana-core -/x-pack/plugins/global_search/ @elastic/kibana-core -/x-pack/plugins/cloud/ @elastic/kibana-core -/x-pack/plugins/cloud_integrations/cloud_chat/ @elastic/kibana-core -/x-pack/plugins/cloud_integrations/cloud_experiments/ @elastic/kibana-core -/x-pack/plugins/cloud_integrations/cloud_full_story/ @elastic/kibana-core -/x-pack/plugins/cloud_integrations/cloud_gain_sight/ @elastic/kibana-core -/x-pack/plugins/cloud_integrations/cloud_links/ @elastic/kibana-core /x-pack/test/saved_objects_field_count/ @elastic/kibana-core -/src/plugins/saved_objects_management/ @elastic/kibana-core -/src/plugins/advanced_settings/ @elastic/kibana-core -/x-pack/plugins/global_search_bar/ @elastic/kibana-core /test/analytics @elastic/kibana-core #CC# /src/core/server/csp/ @elastic/kibana-core #CC# /src/plugins/saved_objects/ @elastic/kibana-core @@ -331,13 +208,6 @@ #CC# /x-pack/plugins/global_search_providers/ @elastic/kibana-core # Kibana Telemetry -/src/plugins/kibana_usage_collection/ @elastic/kibana-core -/src/plugins/newsfeed/ @elastic/kibana-core -/src/plugins/telemetry/ @elastic/kibana-core -/src/plugins/telemetry_collection_manager/ @elastic/kibana-core -/src/plugins/telemetry_management_section/ @elastic/kibana-core -/src/plugins/usage_collection/ @elastic/kibana-core -/x-pack/plugins/telemetry_collection_xpack/ @elastic/kibana-core /.telemetryrc.json @elastic/kibana-core /x-pack/.telemetryrc.json @elastic/kibana-core /src/plugins/telemetry/schema/ @elastic/kibana-core @elastic/kibana-telemetry @@ -349,14 +219,10 @@ #CC# /x-pack/plugins/translations/ @elastic/kibana-localization @elastic/kibana-core # Kibana Platform Security -/src/plugins/interactive_setup/ @elastic/kibana-security /src/plugins/telemetry/server/config/telemetry_labels.ts @elastic/kibana-security /test/interactive_setup_api_integration/ @elastic/kibana-security /test/interactive_setup_functional/ @elastic/kibana-security /test/plugin_functional/test_suites/core_plugins/rendering.ts @elastic/kibana-security -/x-pack/plugins/spaces/ @elastic/kibana-security -/x-pack/plugins/encrypted_saved_objects/ @elastic/kibana-security -/x-pack/plugins/security/ @elastic/kibana-security /x-pack/test/api_integration/apis/security/ @elastic/kibana-security /x-pack/test/api_integration/apis/spaces/ @elastic/kibana-security /x-pack/test/ui_capabilities/ @elastic/kibana-security @@ -367,25 +233,14 @@ /x-pack/test/security_functional/ @elastic/kibana-security /x-pack/test/spaces_api_integration/ @elastic/kibana-security /x-pack/test/saved_object_api_integration/ @elastic/kibana-security -/examples/preboot_example/ @elastic/kibana-security @elastic/kibana-core -/examples/user_profile_examples/ @elastic/kibana-security #CC# /x-pack/plugins/security/ @elastic/kibana-security # Response Ops team -/x-pack/plugins/alerting/ @elastic/response-ops -/x-pack/plugins/actions/ @elastic/response-ops -/x-pack/plugins/event_log/ @elastic/response-ops -/x-pack/plugins/task_manager/ @elastic/response-ops -/x-pack/plugins/stack_connectors/ @elastic/response-ops /x-pack/test/alerting_api_integration/ @elastic/response-ops /x-pack/test/plugin_api_integration/test_suites/task_manager/ @elastic/response-ops -/x-pack/plugins/triggers_actions_ui/ @elastic/response-ops /x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/ @elastic/response-ops -/x-pack/test/functional_with_es_ssl/plugins/alerts/ @elastic/response-ops /docs/user/alerting/ @elastic/response-ops /docs/management/connectors/ @elastic/response-ops -/x-pack/plugins/stack_alerts/ @elastic/response-ops -/x-pack/plugins/cases/ @elastic/response-ops /x-pack/test/cases_api_integration/ @elastic/response-ops /x-pack/test/functional/services/cases/ @elastic/response-ops /x-pack/test/functional_with_es_ssl/apps/cases/ @elastic/response-ops @@ -396,44 +251,17 @@ /x-pack/plugins/cases/docs/openapi @elastic/mlr-docs # Enterprise Search -/x-pack/plugins/enterprise_search @elastic/enterprise-search-frontend /x-pack/test/functional_enterprise_search/ @elastic/enterprise-search-frontend /x-pack/plugins/enterprise_search/public/applications/shared/doc_links @elastic/ent-search-docs-team # Management Experience - Deployment Management -/src/plugins/dev_tools/ @elastic/platform-deployment-management -/src/plugins/console/ @elastic/platform-deployment-management -/src/plugins/es_ui_shared/ @elastic/platform-deployment-management -/src/plugins/management/ @elastic/platform-deployment-management -/x-pack/plugins/cross_cluster_replication/ @elastic/platform-deployment-management -/x-pack/plugins/index_lifecycle_management/ @elastic/platform-deployment-management -/x-pack/plugins/grokdebugger/ @elastic/platform-deployment-management -/x-pack/plugins/index_management/ @elastic/platform-deployment-management -/x-pack/plugins/runtime_fields @elastic/platform-deployment-management -/x-pack/plugins/license_api_guard/ @elastic/platform-deployment-management -/x-pack/plugins/license_management/ @elastic/platform-deployment-management -/x-pack/plugins/painless_lab/ @elastic/platform-deployment-management -/x-pack/plugins/remote_clusters/ @elastic/platform-deployment-management -/x-pack/plugins/rollup/ @elastic/platform-deployment-management -/x-pack/plugins/searchprofiler/ @elastic/platform-deployment-management -/x-pack/plugins/snapshot_restore/ @elastic/platform-deployment-management -/x-pack/plugins/upgrade_assistant/ @elastic/platform-deployment-management -/x-pack/plugins/watcher/ @elastic/platform-deployment-management -/x-pack/plugins/ingest_pipelines/ @elastic/platform-deployment-management #CC# /x-pack/plugins/cross_cluster_replication/ @elastic/platform-deployment-management -# Platform Onboarding -/src/plugins/guided_onboarding/ @elastic/platform-onboarding -/examples/guided_onboarding_example/ @elastic/platform-onboarding -/x-pack/plugins/cloud_integrations/cloud_data_migration/ @elastic/platform-onboarding - # Security Solution /x-pack/test/endpoint_api_integration_no_ingest/ @elastic/security-solution /x-pack/test/security_solution_endpoint/ @elastic/security-solution /x-pack/test/functional/es_archives/endpoint/ @elastic/security-solution -/x-pack/test/plugin_functional/plugins/resolver_test/ @elastic/security-solution /x-pack/test/plugin_functional/test_suites/resolver/ @elastic/security-solution -/x-pack/plugins/security_solution/ @elastic/security-solution /x-pack/test/detection_engine_api_integration @elastic/security-solution /x-pack/test/lists_api_integration @elastic/security-solution /x-pack/test/api_integration/apis/security_solution @elastic/security-solution @@ -442,7 +270,6 @@ # Security Solution sub teams ## Security Solution sub teams - Threat Hunting Investigations -/x-pack/plugins/timelines @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/common/search_strategy/timeline @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/common/types/timeline @elastic/security-threat-hunting-investigations @@ -560,7 +387,6 @@ /x-pack/plugins/security_solution/server/utils @elastic/security-detections-response-rules ## Security Solution sub teams - Security Platform -/x-pack/plugins/lists @elastic/security-solution-platform /x-pack/plugins/security_solution/cypress/e2e/data_sources @elastic/security-solution-platform /x-pack/plugins/security_solution/cypress/e2e/exceptions @elastic/security-solution-platform @@ -626,24 +452,19 @@ x-pack/plugins/security_solution/cypress/README.md @elastic/security-engineering x-pack/test/security_solution_cypress @elastic/security-engineering-productivity ## Security Solution sub teams - adaptive-workload-protection -x-pack/plugins/kubernetes_security @elastic/awp-viz -x-pack/plugins/session_view @elastic/awp-viz x-pack/plugins/security_solution/public/common/components/sessions_viewer @elastic/awp-viz x-pack/plugins/security_solution/public/kubernetes @elastic/awp-viz ## Security Solution sub teams - Protections Experience -x-pack/plugins/threat_intelligence @elastic/protections-experience x-pack/plugins/security_solution/public/threat_intelligence @elastic/protections-experience x-pack/test/threat_intelligence_cypress @elastic/protections-experience # Security Defend Workflows - OSQuery Ownership -/x-pack/plugins/osquery @elastic/security-defend-workflows /x-pack/plugins/security_solution/common/detection_engine/rule_response_actions @elastic/security-defend-workflows /x-pack/plugins/security_solution/public/detection_engine/rule_response_actions @elastic/security-defend-workflows /x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions @elastic/security-defend-workflows # Cloud Security Posture -/x-pack/plugins/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 @@ -676,9 +497,6 @@ x-pack/test/threat_intelligence_cypress @elastic/protections-experience # EUI design /src/plugins/kibana_react/public/page_template/ @elastic/eui-design @elastic/appex-sharedux -# Application Experience - - # Landing page for guided onboarding in Home plugin /src/plugins/home/public/application/components/guided_onboarding @elastic/platform-onboarding @@ -688,20 +506,95 @@ x-pack/test/threat_intelligence_cypress @elastic/protections-experience ## by running `node scripts/generate codeowners`. #### +x-pack/test/alerting_api_integration/common/plugins/aad @elastic/response-ops +packages/kbn-ace @elastic/platform-deployment-management +x-pack/plugins/actions @elastic/response-ops +x-pack/test/alerting_api_integration/common/plugins/actions_simulators @elastic/response-ops +src/plugins/advanced_settings @elastic/kibana-core +x-pack/packages/ml/aiops_components @elastic/ml-ui +x-pack/plugins/aiops @elastic/ml-ui +x-pack/packages/ml/aiops_utils @elastic/ml-ui +x-pack/test/alerting_api_integration/packages/helpers @elastic/response-ops +x-pack/test/alerting_api_integration/common/plugins/alerts @elastic/response-ops +x-pack/examples/alerting_example @elastic/response-ops +x-pack/test/functional_with_es_ssl/plugins/alerts @elastic/response-ops +x-pack/plugins/alerting @elastic/response-ops +packages/kbn-alerts @elastic/security-solution +x-pack/test/alerting_api_integration/common/plugins/alerts_restricted @elastic/response-ops +packages/kbn-alerts-ui-shared @elastic/response-ops +packages/kbn-ambient-common-types @elastic/kibana-operations +packages/kbn-ambient-ftr-types @elastic/kibana-operations +packages/kbn-ambient-storybook-types @elastic/kibana-operations +packages/kbn-ambient-ui-types @elastic/kibana-operations +packages/kbn-analytics @elastic/kibana-core packages/analytics/client @elastic/kibana-core +test/analytics/plugins/analytics_ftr_helpers @elastic/kibana-core +test/analytics/plugins/analytics_plugin_a @elastic/kibana-core packages/analytics/shippers/elastic_v3/browser @elastic/kibana-core packages/analytics/shippers/elastic_v3/common @elastic/kibana-core packages/analytics/shippers/elastic_v3/server @elastic/kibana-core packages/analytics/shippers/fullstory @elastic/kibana-core packages/analytics/shippers/gainsight @elastic/kibana-core +packages/kbn-apm-config-loader @elastic/kibana-core @vigneshshanmugam +x-pack/plugins/apm @elastic/apm-ui +packages/kbn-apm-synthtrace @elastic/apm-ui +packages/kbn-apm-synthtrace-client @elastic/apm-ui +packages/kbn-apm-utils @elastic/apm-ui +test/plugin_functional/plugins/app_link_test @elastic/kibana-core +x-pack/test/usage_collection/plugins/application_usage_test @elastic/kibana-core +x-pack/test/security_api_integration/plugins/audit_log @elastic/kibana-security +packages/kbn-axe-config @elastic/kibana-qa +packages/kbn-babel-preset @elastic/kibana-operations +packages/kbn-babel-register @elastic/kibana-operations +packages/kbn-babel-transform @elastic/kibana-operations +x-pack/plugins/banners @elastic/kibana-core +packages/kbn-bazel-runner @elastic/kibana-operations +examples/bfetch_explorer @elastic/appex-sharedux +src/plugins/bfetch @elastic/appex-sharedux +x-pack/plugins/canvas @elastic/kibana-presentation +x-pack/test/cases_api_integration/common/plugins/cases @elastic/response-ops +packages/kbn-cases-components @elastic/response-ops +x-pack/plugins/cases @elastic/response-ops +packages/kbn-cell-actions @elastic/security-threat-hunting-explore +src/plugins/chart_expressions/common @elastic/kibana-visualizations +packages/kbn-chart-icons @elastic/kibana-visualizations +src/plugins/charts @elastic/kibana-visualizations +packages/kbn-ci-stats-core @elastic/kibana-operations +packages/kbn-ci-stats-performance-metrics @elastic/kibana-operations +packages/kbn-ci-stats-reporter @elastic/kibana-operations +packages/kbn-ci-stats-shipper-cli @elastic/kibana-operations +packages/kbn-cli-dev-mode @elastic/kibana-operations +x-pack/plugins/cloud_integrations/cloud_chat @elastic/kibana-core +x-pack/plugins/cloud_integrations/cloud_data_migration @elastic/platform-onboarding +x-pack/plugins/cloud_defend @elastic/sec-cloudnative-integrations +x-pack/plugins/cloud_integrations/cloud_experiments @elastic/kibana-core +x-pack/plugins/cloud_integrations/cloud_full_story @elastic/kibana-core +x-pack/plugins/cloud_integrations/cloud_gain_sight @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/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 +packages/shared-ux/code_editor/types @elastic/appex-sharedux +packages/kbn-coloring @elastic/kibana-visualizations +packages/kbn-config @elastic/kibana-core +packages/kbn-config-mocks @elastic/kibana-core +packages/kbn-config-schema @elastic/kibana-core +src/plugins/console @elastic/platform-deployment-management packages/content-management/content_editor @elastic/appex-sharedux +src/plugins/content_management @elastic/appex-sharedux packages/content-management/table_list @elastic/appex-sharedux +examples/controls_example @elastic/kibana-presentation +src/plugins/controls @elastic/kibana-presentation +src/core @elastic/kibana-core packages/core/analytics/core-analytics-browser @elastic/kibana-core packages/core/analytics/core-analytics-browser-internal @elastic/kibana-core packages/core/analytics/core-analytics-browser-mocks @elastic/kibana-core packages/core/analytics/core-analytics-server @elastic/kibana-core packages/core/analytics/core-analytics-server-internal @elastic/kibana-core packages/core/analytics/core-analytics-server-mocks @elastic/kibana-core +test/plugin_functional/plugins/core_app_status @elastic/kibana-core packages/core/application/core-application-browser @elastic/kibana-core packages/core/application/core-application-browser-internal @elastic/kibana-core packages/core/application/core-application-browser-mocks @elastic/kibana-core @@ -762,12 +655,14 @@ 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 +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 packages/core/http/core-http-browser-mocks @elastic/kibana-core packages/core/http/core-http-common @elastic/kibana-core packages/core/http/core-http-context-server-internal @elastic/kibana-core packages/core/http/core-http-context-server-mocks @elastic/kibana-core +test/plugin_functional/plugins/core_http @elastic/kibana-core packages/core/http/core-http-request-handler-context-server @elastic/kibana-core packages/core/http/core-http-request-handler-context-server-internal @elastic/kibana-core packages/core/http/core-http-resources-server @elastic/kibana-core @@ -817,6 +712,17 @@ packages/core/notifications/core-notifications-browser-mocks @elastic/kibana-cor packages/core/overlays/core-overlays-browser @elastic/kibana-core packages/core/overlays/core-overlays-browser-internal @elastic/kibana-core packages/core/overlays/core-overlays-browser-mocks @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_a @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_appleave @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_b @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_chromeless @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_deep_links @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_deprecations @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_execution_context @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_helpmenu @elastic/kibana-core +test/node_roles_functional/plugins/core_plugin_initializer_context @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_route_timeouts @elastic/kibana-core +test/plugin_functional/plugins/core_plugin_static_assets @elastic/kibana-core packages/core/plugins/core-plugins-base-server-internal @elastic/kibana-core packages/core/plugins/core-plugins-browser @elastic/kibana-core packages/core/plugins/core-plugins-browser-internal @elastic/kibana-core @@ -827,6 +733,7 @@ packages/core/plugins/core-plugins-server-mocks @elastic/kibana-core packages/core/preboot/core-preboot-server @elastic/kibana-core packages/core/preboot/core-preboot-server-internal @elastic/kibana-core packages/core/preboot/core-preboot-server-mocks @elastic/kibana-core +test/plugin_functional/plugins/core_provider_plugin @elastic/kibana-core packages/core/rendering/core-rendering-browser-internal @elastic/kibana-core packages/core/rendering/core-rendering-browser-mocks @elastic/kibana-core packages/core/rendering/core-rendering-server-internal @elastic/kibana-core @@ -875,102 +782,208 @@ packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-co packages/core/usage-data/core-usage-data-server @elastic/kibana-core packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core packages/core/usage-data/core-usage-data-server-mocks @elastic/kibana-core -packages/home/sample_data_card @elastic/appex-sharedux -packages/home/sample_data_tab @elastic/appex-sharedux -packages/home/sample_data_types @elastic/appex-sharedux -packages/kbn-ace @elastic/platform-deployment-management -packages/kbn-alerts @elastic/security-solution -packages/kbn-ambient-common-types @elastic/kibana-operations -packages/kbn-ambient-ftr-types @elastic/kibana-operations -packages/kbn-ambient-storybook-types @elastic/kibana-operations -packages/kbn-ambient-ui-types @elastic/kibana-operations -packages/kbn-analytics @elastic/kibana-core -packages/kbn-apm-config-loader @elastic/kibana-core @vigneshshanmugam -packages/kbn-apm-synthtrace @elastic/apm-ui -packages/kbn-apm-synthtrace-client @elastic/apm-ui -packages/kbn-apm-utils @elastic/apm-ui -packages/kbn-axe-config @elastic/kibana-qa -packages/kbn-babel-plugin-package-imports @elastic/kibana-operations -packages/kbn-babel-preset @elastic/kibana-operations -packages/kbn-babel-register @elastic/kibana-operations -packages/kbn-babel-transform @elastic/kibana-operations -packages/kbn-bazel-runner @elastic/kibana-operations -packages/kbn-cases-components @elastic/response-ops -packages/kbn-cell-actions @elastic/security-threat-hunting-explore -packages/kbn-chart-icons @elastic/kibana-visualizations -packages/kbn-ci-stats-core @elastic/kibana-operations -packages/kbn-ci-stats-performance-metrics @elastic/kibana-operations -packages/kbn-ci-stats-reporter @elastic/kibana-operations -packages/kbn-ci-stats-shipper-cli @elastic/kibana-operations -packages/kbn-cli-dev-mode @elastic/kibana-operations -packages/kbn-coloring @elastic/kibana-visualizations -packages/kbn-config @elastic/kibana-core -packages/kbn-config-mocks @elastic/kibana-core -packages/kbn-config-schema @elastic/kibana-core +x-pack/plugins/cross_cluster_replication @elastic/platform-deployment-management packages/kbn-crypto @elastic/kibana-security packages/kbn-crypto-browser @elastic/kibana-core +x-pack/plugins/custom_branding @elastic/appex-sharedux +src/plugins/custom_integrations @elastic/fleet packages/kbn-cypress-config @elastic/kibana-operations +examples/dashboard_embeddable_examples @elastic/kibana-presentation +x-pack/plugins/dashboard_enhanced @elastic/kibana-presentation +src/plugins/dashboard @elastic/kibana-presentation +src/plugins/data @elastic/kibana-visualizations @elastic/kibana-data-discovery +test/plugin_functional/plugins/data_search @elastic/kibana-app-services +src/plugins/data_view_editor @elastic/kibana-data-discovery +examples/data_view_field_editor_example @elastic/kibana-app-services +src/plugins/data_view_field_editor @elastic/kibana-data-discovery +src/plugins/data_view_management @elastic/kibana-data-discovery +src/plugins/data_views @elastic/kibana-data-discovery +x-pack/plugins/data_visualizer @elastic/ml-ui packages/kbn-datemath @elastic/kibana-data-discovery packages/kbn-dev-cli-errors @elastic/kibana-operations packages/kbn-dev-cli-runner @elastic/kibana-operations packages/kbn-dev-proc-runner @elastic/kibana-operations +src/plugins/dev_tools @elastic/platform-deployment-management packages/kbn-dev-utils @elastic/kibana-operations +examples/developer_examples @elastic/appex-sharedux +x-pack/plugins/discover_enhanced @elastic/kibana-data-discovery +src/plugins/discover @elastic/kibana-data-discovery packages/kbn-doc-links @elastic/kibana-docs packages/kbn-docs-utils @elastic/kibana-operations packages/kbn-ebt-tools @elastic/kibana-core packages/kbn-ecs @elastic/kibana-core +x-pack/packages/kbn-ecs-data-quality-dashboard @elastic/security-threat-hunting-investigations +x-pack/plugins/ecs_data_quality_dashboard @elastic/security-threat-hunting-investigations +test/plugin_functional/plugins/elasticsearch_client_plugin @elastic/kibana-core +x-pack/test/plugin_api_integration/plugins/elasticsearch_client @elastic/kibana-core +x-pack/plugins/embeddable_enhanced @elastic/kibana-presentation +examples/embeddable_examples @elastic/kibana-presentation +examples/embeddable_explorer @elastic/kibana-presentation +src/plugins/embeddable @elastic/kibana-presentation +x-pack/examples/embedded_lens_example @elastic/kibana-visualizations +x-pack/plugins/encrypted_saved_objects @elastic/kibana-security +x-pack/plugins/enterprise_search @elastic/enterprise-search-frontend packages/kbn-es @elastic/kibana-operations packages/kbn-es-archiver @elastic/kibana-operations packages/kbn-es-errors @elastic/kibana-core packages/kbn-es-query @elastic/kibana-data-discovery packages/kbn-es-types @elastic/kibana-core @elastic/apm-ui +src/plugins/es_ui_shared @elastic/platform-deployment-management packages/kbn-eslint-config @elastic/kibana-operations packages/kbn-eslint-plugin-disable @elastic/kibana-operations packages/kbn-eslint-plugin-eslint @elastic/kibana-operations packages/kbn-eslint-plugin-imports @elastic/kibana-operations +x-pack/test/encrypted_saved_objects_api_integration/plugins/api_consumer_plugin @elastic/kibana-security +src/plugins/event_annotation @elastic/kibana-visualizations +x-pack/test/plugin_api_integration/plugins/event_log @elastic/response-ops +x-pack/plugins/event_log @elastic/response-ops packages/kbn-expect @elastic/kibana-operations +x-pack/examples/exploratory_view_example @elastic/uptime +src/plugins/expression_error @elastic/kibana-presentation +src/plugins/chart_expressions/expression_gauge @elastic/kibana-visualizations +src/plugins/chart_expressions/expression_heatmap @elastic/kibana-visualizations +src/plugins/expression_image @elastic/kibana-presentation +src/plugins/chart_expressions/expression_legacy_metric @elastic/kibana-visualizations +src/plugins/expression_metric @elastic/kibana-presentation +src/plugins/chart_expressions/expression_metric @elastic/kibana-visualizations +src/plugins/chart_expressions/expression_partition_vis @elastic/kibana-visualizations +src/plugins/expression_repeat_image @elastic/kibana-presentation +src/plugins/expression_reveal_image @elastic/kibana-presentation +src/plugins/expression_shape @elastic/kibana-presentation +src/plugins/chart_expressions/expression_tagcloud @elastic/kibana-visualizations +src/plugins/chart_expressions/expression_xy @elastic/kibana-visualizations +examples/expressions_explorer @elastic/kibana-app-services +src/plugins/expressions @elastic/kibana-visualizations packages/kbn-failed-test-reporter-cli @elastic/kibana-operations +x-pack/test/plugin_api_integration/plugins/feature_usage_test @elastic/kibana-security +x-pack/plugins/features @elastic/kibana-core +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 packages/kbn-field-types @elastic/kibana-data-discovery +x-pack/plugins/file_upload @elastic/kibana-gis +examples/files_example @elastic/appex-sharedux +src/plugins/files_management @elastic/appex-sharedux +src/plugins/files @elastic/appex-sharedux packages/kbn-find-used-node-modules @elastic/kibana-operations +x-pack/plugins/fleet @elastic/fleet packages/kbn-flot-charts @elastic/kibana-operations +x-pack/test/ui_capabilities/common/plugins/foo_plugin @elastic/kibana-security +src/plugins/ftr_apis @elastic/kibana-core packages/kbn-ftr-common-functional-services @elastic/kibana-operations packages/kbn-ftr-screenshot-filename @elastic/kibana-operations +x-pack/test/functional_with_es_ssl/plugins/cases @elastic/response-ops packages/kbn-generate @elastic/kibana-operations packages/kbn-get-repo-files @elastic/kibana-operations +x-pack/plugins/global_search_bar @elastic/kibana-core +x-pack/plugins/global_search @elastic/kibana-core +x-pack/plugins/global_search_providers @elastic/kibana-core +x-pack/test/plugin_functional/plugins/global_search_test @elastic/kibana-core +x-pack/plugins/graph @elastic/kibana-visualizations +x-pack/plugins/grokdebugger @elastic/platform-deployment-management packages/kbn-guided-onboarding @elastic/platform-onboarding +examples/guided_onboarding_example @elastic/platform-onboarding +src/plugins/guided_onboarding @elastic/platform-onboarding packages/kbn-handlebars @elastic/kibana-security packages/kbn-hapi-mocks @elastic/kibana-core packages/kbn-health-gateway-server @elastic/kibana-core +examples/hello_world @elastic/kibana-core +src/plugins/home @elastic/kibana-core +packages/home/sample_data_card @elastic/appex-sharedux +packages/home/sample_data_tab @elastic/appex-sharedux +packages/home/sample_data_types @elastic/appex-sharedux packages/kbn-i18n @elastic/kibana-core packages/kbn-i18n-react @elastic/kibana-core +x-pack/test/functional_embedded/plugins/iframe_embedded @elastic/kibana-core +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/platform-deployment-management +x-pack/plugins/index_management @elastic/platform-deployment-management +test/plugin_functional/plugins/index_patterns @elastic/kibana-app-services +x-pack/plugins/infra @elastic/infra-monitoring-ui +x-pack/plugins/ingest_pipelines @elastic/platform-deployment-management +src/plugins/input_control_vis @elastic/kibana-presentation +src/plugins/inspector @elastic/kibana-presentation +src/plugins/interactive_setup @elastic/kibana-security +test/interactive_setup_api_integration/plugins/test_endpoints @elastic/kibana-security packages/kbn-interpreter @elastic/kibana-visualizations packages/kbn-io-ts-utils @elastic/apm-ui packages/kbn-jest-serializers @elastic/kibana-operations packages/kbn-journeys @elastic/kibana-operations packages/kbn-json-ast @elastic/kibana-operations +test/health_gateway/plugins/status @elastic/kibana-core +test/plugin_functional/plugins/kbn_sample_panel_action @elastic/kibana-app-services +test/plugin_functional/plugins/kbn_top_nav @elastic/kibana-core +test/plugin_functional/plugins/kbn_tp_custom_visualizations @elastic/kibana-visualizations +test/interpreter_functional/plugins/kbn_tp_run_pipeline @elastic/kibana-core +x-pack/test/functional_cors/plugins/kibana_cors_test @elastic/kibana-security packages/kbn-kibana-manifest-schema @elastic/kibana-operations +src/plugins/kibana_overview @elastic/appex-sharedux +src/plugins/kibana_react @elastic/appex-sharedux +src/plugins/kibana_usage_collection @elastic/kibana-core +src/plugins/kibana_utils @elastic/kibana-app-services +x-pack/plugins/kubernetes_security @elastic/awp-viz packages/kbn-language-documentation-popover @elastic/kibana-visualizations +x-pack/plugins/lens @elastic/kibana-visualizations +x-pack/plugins/license_api_guard @elastic/platform-deployment-management +x-pack/plugins/license_management @elastic/platform-deployment-management +x-pack/plugins/licensing @elastic/kibana-core packages/kbn-lint-packages-cli @elastic/kibana-operations packages/kbn-lint-ts-projects-cli @elastic/kibana-operations +x-pack/plugins/lists @elastic/security-solution-platform +examples/locator_examples @elastic/kibana-app-services +examples/locator_explorer @elastic/kibana-app-services packages/kbn-logging @elastic/kibana-core packages/kbn-logging-mocks @elastic/kibana-core +x-pack/plugins/logstash @elastic/logstash packages/kbn-managed-vscode-config @elastic/kibana-operations packages/kbn-managed-vscode-config-cli @elastic/kibana-operations +src/plugins/management @elastic/platform-deployment-management +test/plugin_functional/plugins/management_test_plugin @elastic/kibana-app-services packages/kbn-mapbox-gl @elastic/kibana-gis +x-pack/examples/third_party_maps_source_example @elastic/kibana-gis +src/plugins/maps_ems @elastic/kibana-gis +x-pack/plugins/maps @elastic/kibana-gis +x-pack/packages/ml/agg_utils @elastic/ml-ui +x-pack/packages/ml/date_picker @elastic/ml-ui +x-pack/packages/ml/is_defined @elastic/ml-ui +x-pack/packages/ml/is_populated_object @elastic/ml-ui +x-pack/packages/ml/local_storage @elastic/ml-ui +x-pack/packages/ml/nested_property @elastic/ml-ui +x-pack/plugins/ml @elastic/ml-ui +x-pack/packages/ml/query_utils @elastic/ml-ui +x-pack/packages/ml/string_hash @elastic/ml-ui +x-pack/packages/ml/url_state @elastic/ml-ui packages/kbn-monaco @elastic/appex-sharedux +x-pack/plugins/monitoring_collection @elastic/infra-monitoring-ui +x-pack/plugins/monitoring @elastic/infra-monitoring-ui +src/plugins/navigation @elastic/appex-sharedux +src/plugins/newsfeed @elastic/kibana-core +test/common/plugins/newsfeed @elastic/kibana-core +x-pack/plugins/notifications @elastic/appex-sharedux +x-pack/test/cases_api_integration/common/plugins/observability @elastic/response-ops +x-pack/plugins/observability @elastic/observability-ui +x-pack/test/security_api_integration/plugins/oidc_provider @elastic/kibana-security +test/common/plugins/otel_metrics @elastic/infra-monitoring-ui packages/kbn-optimizer @elastic/kibana-operations packages/kbn-optimizer-webpack-helpers @elastic/kibana-operations packages/kbn-osquery-io-ts-types @elastic/security-asset-management +x-pack/plugins/osquery @elastic/security-defend-workflows +examples/partial_results_example @elastic/kibana-data-discovery +x-pack/plugins/painless_lab @elastic/platform-deployment-management packages/kbn-peggy @elastic/kibana-operations packages/kbn-peggy-loader @elastic/kibana-operations packages/kbn-performance-testing-dataset-extractor @elastic/kibana-performance-testing packages/kbn-picomatcher @elastic/kibana-operations -packages/kbn-plugin-discovery @elastic/kibana-operations packages/kbn-plugin-generator @elastic/kibana-operations packages/kbn-plugin-helpers @elastic/kibana-operations +examples/preboot_example @elastic/kibana-security @elastic/kibana-core +src/plugins/presentation_util @elastic/kibana-presentation +x-pack/plugins/profiling @elastic/profiling-ui packages/kbn-react-field @elastic/kibana-data-discovery +x-pack/plugins/remote_clusters @elastic/platform-deployment-management +test/plugin_functional/plugins/rendering_plugin @elastic/kibana-core packages/kbn-repo-file-maps @elastic/kibana-operations packages/kbn-repo-info @elastic/kibana-operations packages/kbn-repo-linter @elastic/kibana-operations @@ -978,9 +991,41 @@ packages/kbn-repo-packages @elastic/kibana-operations packages/kbn-repo-path @elastic/kibana-operations packages/kbn-repo-source-classifier @elastic/kibana-operations packages/kbn-repo-source-classifier-cli @elastic/kibana-operations +x-pack/examples/reporting_example @elastic/appex-sharedux +x-pack/plugins/reporting @elastic/appex-sharedux +x-pack/test/plugin_functional/plugins/resolver_test @elastic/security-solution +examples/response_stream @elastic/ml-ui packages/kbn-rison @elastic/kibana-operations +x-pack/plugins/rollup @elastic/platform-deployment-management +examples/routing_example @elastic/kibana-core packages/kbn-rule-data-utils @elastic/security-detections-response @elastic/actionable-observability @elastic/response-ops +x-pack/plugins/rule_registry @elastic/response-ops @elastic/actionable-observability +x-pack/plugins/runtime_fields @elastic/platform-deployment-management packages/kbn-safer-lodash-set @elastic/kibana-security +x-pack/test/security_api_integration/plugins/saml_provider @elastic/kibana-security +x-pack/test/plugin_api_integration/plugins/sample_task_plugin @elastic/response-ops +test/plugin_functional/plugins/saved_object_export_transforms @elastic/kibana-core +test/plugin_functional/plugins/saved_object_import_warnings @elastic/kibana-core +x-pack/test/saved_object_api_integration/common/plugins/saved_object_test_plugin @elastic/kibana-security +src/plugins/saved_objects_finder @elastic/kibana-data-discovery +test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type @elastic/kibana-core +test/plugin_functional/plugins/saved_objects_hidden_type @elastic/kibana-core +src/plugins/saved_objects_management @elastic/kibana-core +src/plugins/saved_objects @elastic/kibana-core +src/plugins/saved_objects_tagging_oss @elastic/appex-sharedux +x-pack/plugins/saved_objects_tagging @elastic/appex-sharedux +src/plugins/saved_search @elastic/kibana-data-discovery +examples/screenshot_mode_example @elastic/kibana-app-services +src/plugins/screenshot_mode @elastic/appex-sharedux +x-pack/examples/screenshotting_example @elastic/appex-sharedux +x-pack/plugins/screenshotting @elastic/kibana-reporting-services +examples/search_examples @elastic/kibana-data-discovery +x-pack/plugins/searchprofiler @elastic/platform-deployment-management +x-pack/test/security_api_integration/packages/helpers @elastic/kibana-core +x-pack/plugins/security @elastic/kibana-security +x-pack/test/cases_api_integration/common/plugins/security_solution @elastic/response-ops +x-pack/plugins/security_solution @elastic/security-solution +x-pack/test/security_functional/plugins/test_endpoints @elastic/kibana-security packages/kbn-securitysolution-autocomplete @elastic/security-solution-platform packages/kbn-securitysolution-ecs @elastic/security-threat-hunting-explore packages/kbn-securitysolution-es-utils @elastic/security-solution-platform @@ -999,57 +1044,28 @@ packages/kbn-securitysolution-t-grid @elastic/security-solution-platform packages/kbn-securitysolution-utils @elastic/security-solution-platform packages/kbn-server-http-tools @elastic/kibana-core packages/kbn-server-route-repository @elastic/apm-ui +test/plugin_functional/plugins/session_notifications @elastic/kibana-core +x-pack/plugins/session_view @elastic/awp-viz packages/kbn-set-map @elastic/kibana-operations +examples/share_examples @elastic/kibana-app-services +src/plugins/share @elastic/appex-sharedux packages/kbn-shared-svg @elastic/apm-ui -packages/kbn-shared-ux-utility @elastic/appex-sharedux -packages/kbn-slo-schema @elastic/actionable-observability -packages/kbn-some-dev-log @elastic/kibana-operations -packages/kbn-sort-package-json @elastic/kibana-operations -packages/kbn-spec-to-console @elastic/platform-deployment-management -packages/kbn-std @elastic/kibana-core -packages/kbn-stdio-dev-helpers @elastic/kibana-operations -packages/kbn-storybook @elastic/kibana-operations -packages/kbn-telemetry-tools @elastic/kibana-core -packages/kbn-test @elastic/kibana-operations -packages/kbn-test-jest-helpers @elastic/kibana-operations -packages/kbn-test-subj-selector @elastic/kibana-operations -packages/kbn-timelion-grammar @elastic/kibana-visualizations -packages/kbn-tinymath @elastic/kibana-visualizations -packages/kbn-tooling-log @elastic/kibana-operations -packages/kbn-ts-projects @elastic/kibana-operations -packages/kbn-ts-type-check-cli @elastic/kibana-operations -packages/kbn-typed-react-router-config @elastic/apm-ui -packages/kbn-ui-actions-browser @elastic/appex-sharedux -packages/kbn-ui-framework @elastic/kibana-design -packages/kbn-ui-shared-deps-npm @elastic/kibana-operations -packages/kbn-ui-shared-deps-src @elastic/kibana-operations -packages/kbn-ui-theme @elastic/kibana-operations -packages/kbn-user-profile-components @elastic/kibana-security -packages/kbn-utility-types @elastic/kibana-core -packages/kbn-utility-types-jest @elastic/kibana-operations -packages/kbn-utils @elastic/kibana-operations -packages/kbn-web-worker-stub @elastic/kibana-operations -packages/kbn-whereis-pkg-cli @elastic/kibana-operations -packages/kbn-yarn-lock-validator @elastic/kibana-operations packages/shared-ux/avatar/solution @elastic/appex-sharedux packages/shared-ux/avatar/user_profile/impl @elastic/appex-sharedux -packages/shared-ux/button_toolbar @elastic/appex-sharedux packages/shared-ux/button/exit_full_screen/impl @elastic/appex-sharedux packages/shared-ux/button/exit_full_screen/mocks @elastic/appex-sharedux packages/shared-ux/button/exit_full_screen/types @elastic/appex-sharedux +packages/shared-ux/button_toolbar @elastic/appex-sharedux packages/shared-ux/card/no_data/impl @elastic/appex-sharedux packages/shared-ux/card/no_data/mocks @elastic/appex-sharedux packages/shared-ux/card/no_data/types @elastic/appex-sharedux -packages/shared-ux/code_editor/impl @elastic/appex-sharedux -packages/shared-ux/code_editor/mocks @elastic/appex-sharedux -packages/shared-ux/code_editor/types @elastic/appex-sharedux packages/shared-ux/file/context @elastic/appex-sharedux -packages/shared-ux/file/file_picker/impl @elastic/appex-sharedux -packages/shared-ux/file/file_upload/impl @elastic/appex-sharedux packages/shared-ux/file/image/impl @elastic/appex-sharedux packages/shared-ux/file/image/mocks @elastic/appex-sharedux packages/shared-ux/file/mocks @elastic/appex-sharedux +packages/shared-ux/file/file_picker/impl @elastic/appex-sharedux packages/shared-ux/file/types @elastic/appex-sharedux +packages/shared-ux/file/file_upload/impl @elastic/appex-sharedux packages/shared-ux/file/util @elastic/appex-sharedux packages/shared-ux/link/redirect_app/impl @elastic/appex-sharedux packages/shared-ux/link/redirect_app/mocks @elastic/appex-sharedux @@ -1066,10 +1082,10 @@ packages/shared-ux/page/kibana_no_data/types @elastic/appex-sharedux packages/shared-ux/page/kibana_template/impl @elastic/appex-sharedux packages/shared-ux/page/kibana_template/mocks @elastic/appex-sharedux packages/shared-ux/page/kibana_template/types @elastic/appex-sharedux +packages/shared-ux/page/no_data/impl @elastic/appex-sharedux packages/shared-ux/page/no_data_config/impl @elastic/appex-sharedux packages/shared-ux/page/no_data_config/mocks @elastic/appex-sharedux packages/shared-ux/page/no_data_config/types @elastic/appex-sharedux -packages/shared-ux/page/no_data/impl @elastic/appex-sharedux packages/shared-ux/page/no_data/mocks @elastic/appex-sharedux packages/shared-ux/page/no_data/types @elastic/appex-sharedux packages/shared-ux/page/solution_nav @elastic/appex-sharedux @@ -1082,16 +1098,96 @@ packages/shared-ux/router/mocks @elastic/appex-sharedux packages/shared-ux/router/types @elastic/appex-sharedux packages/shared-ux/storybook/config @elastic/appex-sharedux packages/shared-ux/storybook/mock @elastic/appex-sharedux -src/plugins/chart_expressions/common @elastic/kibana-visualizations -x-pack/packages/ml/agg_utils @elastic/ml-ui -x-pack/packages/ml/aiops_components @elastic/ml-ui -x-pack/packages/ml/aiops_utils @elastic/ml-ui -x-pack/packages/ml/date_picker @elastic/ml-ui -x-pack/packages/ml/is_defined @elastic/ml-ui -x-pack/packages/ml/is_populated_object @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/query_utils @elastic/ml-ui -x-pack/packages/ml/string_hash @elastic/ml-ui -x-pack/packages/ml/url_state @elastic/ml-ui -x-pack/test/alerting_api_integration/packages/helpers @elastic/response-ops +packages/kbn-shared-ux-utility @elastic/appex-sharedux +packages/kbn-slo-schema @elastic/actionable-observability +x-pack/plugins/snapshot_restore @elastic/platform-deployment-management +packages/kbn-some-dev-log @elastic/kibana-operations +packages/kbn-sort-package-json @elastic/kibana-operations +x-pack/plugins/spaces @elastic/kibana-security +x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin @elastic/kibana-security +packages/kbn-spec-to-console @elastic/platform-deployment-management +x-pack/plugins/stack_alerts @elastic/response-ops +x-pack/plugins/stack_connectors @elastic/response-ops +x-pack/test/usage_collection/plugins/stack_management_usage_test @elastic/platform-deployment-management +examples/state_containers_examples @elastic/appex-sharedux +test/server_integration/plugins/status_plugin_a @elastic/kibana-core +test/server_integration/plugins/status_plugin_b @elastic/kibana-core +packages/kbn-std @elastic/kibana-core +packages/kbn-stdio-dev-helpers @elastic/kibana-operations +packages/kbn-storybook @elastic/kibana-operations +x-pack/plugins/synthetics @elastic/uptime +x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture @elastic/response-ops +x-pack/test/plugin_api_perf/plugins/task_manager_performance @elastic/response-ops +x-pack/plugins/task_manager @elastic/response-ops +src/plugins/telemetry_collection_manager @elastic/kibana-core +x-pack/plugins/telemetry_collection_xpack @elastic/kibana-core +src/plugins/telemetry_management_section @elastic/kibana-core +src/plugins/telemetry @elastic/kibana-core +test/plugin_functional/plugins/telemetry @elastic/kibana-core +packages/kbn-telemetry-tools @elastic/kibana-core +packages/kbn-test @elastic/kibana-operations +x-pack/test/licensing_plugin/plugins/test_feature_usage @elastic/kibana-security +packages/kbn-test-jest-helpers @elastic/kibana-operations +packages/kbn-test-subj-selector @elastic/kibana-operations +x-pack/examples/testing_embedded_lens @elastic/kibana-visualizations +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/protections-experience +x-pack/plugins/timelines @elastic/security-threat-hunting-investigations +packages/kbn-timelion-grammar @elastic/kibana-visualizations +packages/kbn-tinymath @elastic/kibana-visualizations +packages/kbn-tooling-log @elastic/kibana-operations +x-pack/plugins/transform @elastic/ml-ui +x-pack/plugins/translations @elastic/kibana-localization +x-pack/examples/triggers_actions_ui_example @elastic/response-ops +x-pack/plugins/triggers_actions_ui @elastic/response-ops +packages/kbn-ts-projects @elastic/kibana-operations +packages/kbn-ts-type-check-cli @elastic/kibana-operations +packages/kbn-typed-react-router-config @elastic/apm-ui +packages/kbn-ui-actions-browser @elastic/appex-sharedux +x-pack/examples/ui_actions_enhanced_examples @elastic/appex-sharedux +src/plugins/ui_actions_enhanced @elastic/appex-sharedux +examples/ui_action_examples @elastic/appex-sharedux +examples/ui_actions_explorer @elastic/appex-sharedux +src/plugins/ui_actions @elastic/appex-sharedux +packages/kbn-ui-framework @elastic/kibana-design +test/plugin_functional/plugins/ui_settings_plugin @elastic/kibana-core +packages/kbn-ui-shared-deps-npm @elastic/kibana-operations +packages/kbn-ui-shared-deps-src @elastic/kibana-operations +packages/kbn-ui-theme @elastic/kibana-operations +src/plugins/unified_field_list @elastic/kibana-data-discovery +src/plugins/unified_histogram @elastic/kibana-data-discovery +src/plugins/unified_search @elastic/kibana-visualizations +x-pack/plugins/upgrade_assistant @elastic/platform-deployment-management +x-pack/plugins/drilldowns/url_drilldown @elastic/kibana-app-services +src/plugins/url_forwarding @elastic/kibana-visualizations +src/plugins/usage_collection @elastic/kibana-core +test/plugin_functional/plugins/usage_collection @elastic/kibana-core +packages/kbn-user-profile-components @elastic/kibana-security +examples/user_profile_examples @elastic/kibana-security +x-pack/test/security_api_integration/plugins/user_profiles_consumer @elastic/kibana-security +packages/kbn-utility-types @elastic/kibana-core +packages/kbn-utility-types-jest @elastic/kibana-operations +packages/kbn-utils @elastic/kibana-operations +x-pack/plugins/ux @elastic/uptime +src/plugins/vis_default_editor @elastic/kibana-visualizations +src/plugins/vis_types/gauge @elastic/kibana-visualizations +src/plugins/vis_types/heatmap @elastic/kibana-visualizations +src/plugins/vis_type_markdown @elastic/kibana-presentation +src/plugins/vis_types/metric @elastic/kibana-visualizations +src/plugins/vis_types/pie @elastic/kibana-visualizations +src/plugins/vis_types/table @elastic/kibana-visualizations +src/plugins/vis_types/tagcloud @elastic/kibana-visualizations +src/plugins/vis_types/timelion @elastic/kibana-visualizations +src/plugins/vis_types/timeseries @elastic/kibana-visualizations +src/plugins/vis_types/vega @elastic/kibana-visualizations +src/plugins/vis_types/vislib @elastic/kibana-visualizations +src/plugins/vis_types/xy @elastic/kibana-visualizations +src/plugins/visualizations @elastic/kibana-visualizations +x-pack/plugins/watcher @elastic/platform-deployment-management +packages/kbn-web-worker-stub @elastic/kibana-operations +packages/kbn-whereis-pkg-cli @elastic/kibana-operations +packages/kbn-yarn-lock-validator @elastic/kibana-operations + +# Design (at the bottom for specificity of SASS files) +**/*.scss @elastic/kibana-design diff --git a/.github/workflows/add-to-ao-project.yml b/.github/workflows/add-to-ao-project.yml index c89e8fcefb712a..ea4b4fdeb18221 100644 --- a/.github/workflows/add-to-ao-project.yml +++ b/.github/workflows/add-to-ao-project.yml @@ -10,7 +10,7 @@ jobs: github.event.label.name == 'Team: Actionable Observability' steps: - name: Add - uses: richkuz/projectnext-label-assigner@1.0.2 + uses: richkuz/projectnext-label-assigner@1.1.0 id: add_to_projects with: config: | diff --git a/.gitignore b/.gitignore index 545a2f81120196..4d3db591bd7584 100644 --- a/.gitignore +++ b/.gitignore @@ -50,9 +50,14 @@ disabledPlugins webpackstats.json /config/* !/config/kibana.yml -!/config/kibana.serverless.yml +!/config/README.md +!/config/serverless.yml +!/config/serverless.es.yml +!/config/serverless.oblt.yml +!/config/serverless.security.yml !/config/node.options coverage +!/test/common/fixtures/plugins/coverage selenium .babel_register_cache.json .webpack.babelcache diff --git a/.i18nrc.json b/.i18nrc.json index 319c3e45aca475..d8a6b4689f78ec 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -2,6 +2,7 @@ "paths": { "advancedSettings": "src/plugins/advanced_settings", "alerts": "packages/kbn-alerts/src", + "alertsUIShared": "packages/kbn-alerts-ui-shared/src", "apmOss": "src/plugins/apm_oss", "autocomplete": "packages/kbn-securitysolution-autocomplete/src", "bfetch": "src/plugins/bfetch", @@ -15,6 +16,7 @@ "dashboard": "src/plugins/dashboard", "controls": "src/plugins/controls", "data": "src/plugins/data", + "ecsDataQualityDashboard": "x-pack/packages/kbn-ecs-data-quality-dashboard", "dataViews": "src/plugins/data_views", "devTools": "src/plugins/dev_tools", "discover": "src/plugins/discover", diff --git a/api_docs/actions.devdocs.json b/api_docs/actions.devdocs.json index 920536dd300078..2e090312b382b6 100644 --- a/api_docs/actions.devdocs.json +++ b/api_docs/actions.devdocs.json @@ -1905,7 +1905,9 @@ "label": "ActionsClient", "description": [], "signature": [ - "{ get: ({ id }: { id: string; }) => Promise<", + "{ create: ({ action: { actionTypeId, name, config, secrets }, }: ", + "CreateOptions", + ") => Promise<", { "pluginId": "actions", "scope": "server", @@ -1915,8 +1917,8 @@ }, "<", "ActionTypeConfig", - ">>; delete: ({ id }: { id: string; }) => Promise<{}>; create: ({ action: { actionTypeId, name, config, secrets }, }: ", - "CreateOptions", + ">>; update: ({ id, action }: ", + "UpdateOptions", ") => Promise<", { "pluginId": "actions", @@ -1927,9 +1929,7 @@ }, "<", "ActionTypeConfig", - ">>; update: ({ id, action }: ", - "UpdateOptions", - ") => Promise<", + ">>; get: ({ id }: { id: string; }) => Promise<", { "pluginId": "actions", "scope": "server", @@ -1939,17 +1939,7 @@ }, "<", "ActionTypeConfig", - ">>; execute: ({ actionId, params, source, relatedSavedObjects, }: Omit<", - "ExecuteOptions", - ", \"request\" | \"actionExecutionId\">) => Promise<", - { - "pluginId": "actions", - "scope": "common", - "docId": "kibActionsPluginApi", - "section": "def-common.ActionTypeExecutorResult", - "text": "ActionTypeExecutorResult" - }, - ">; getAll: () => Promise<", + ">>; getAll: () => Promise<", { "pluginId": "actions", "scope": "server", @@ -1967,9 +1957,19 @@ }, "<", "ActionTypeConfig", - ">[]>; getOAuthAccessToken: ({ type, options }: Readonly<{} & { options: Readonly<{} & { config: Readonly<{} & { clientId: string; jwtKeyId: string; userIdentifierValue: string; }>; tokenUrl: string; secrets: Readonly<{ privateKeyPassword?: string | undefined; } & { clientSecret: string; privateKey: string; }>; }> | Readonly<{} & { scope: string; config: Readonly<{} & { clientId: string; tenantId: string; }>; tokenUrl: string; secrets: Readonly<{} & { clientSecret: string; }>; }>; type: \"jwt\" | \"client\"; }>, configurationUtilities: ", + ">[]>; getOAuthAccessToken: ({ type, options }: Readonly<{} & { type: \"jwt\" | \"client\"; options: Readonly<{} & { tokenUrl: string; config: Readonly<{} & { clientId: string; jwtKeyId: string; userIdentifierValue: string; }>; secrets: Readonly<{ privateKeyPassword?: string | undefined; } & { clientSecret: string; privateKey: string; }>; }> | Readonly<{} & { tokenUrl: string; config: Readonly<{} & { clientId: string; tenantId: string; }>; secrets: Readonly<{} & { clientSecret: string; }>; scope: string; }>; }>, configurationUtilities: ", "ActionsConfigurationUtilities", - ") => Promise<{ accessToken: string | null; }>; enqueueExecution: (options: ", + ") => Promise<{ accessToken: string | null; }>; delete: ({ id }: { id: string; }) => Promise<{}>; execute: ({ actionId, params, source, relatedSavedObjects, }: Omit<", + "ExecuteOptions", + ", \"request\" | \"actionExecutionId\">) => Promise<", + { + "pluginId": "actions", + "scope": "common", + "docId": "kibActionsPluginApi", + "section": "def-common.ActionTypeExecutorResult", + "text": "ActionTypeExecutorResult" + }, + ">; enqueueExecution: (options: ", "ExecuteOptions", ") => Promise; bulkEnqueueExecution: (options: ", "ExecuteOptions", @@ -3218,7 +3218,7 @@ "label": "status", "description": [], "signature": [ - "\"error\" | \"ok\"" + "\"ok\" | \"error\"" ], "path": "x-pack/plugins/actions/common/types.ts", "deprecated": false, diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 6088695f37f3d4..4a1636c0b6604d 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; -Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 1e8a774d93c548..6861da631f571b 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index d39921cf49bb1f..133b7904c4ea1d 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; AIOps plugin maintained by ML team. -Contact [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/alerting.devdocs.json b/api_docs/alerting.devdocs.json index 6d65646822c9ca..3841ad03584371 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -50,15 +50,7 @@ "The rule to view" ], "signature": [ - "{ name: string; params: never; tags: string[]; id: string; monitoring?: ", - { - "pluginId": "alerting", - "scope": "common", - "docId": "kibAlertingPluginApi", - "section": "def-common.RuleMonitoring", - "text": "RuleMonitoring" - }, - " | undefined; enabled: boolean; actions: ", + "{ id: string; params: never; consumer: string; name: string; actions: ", { "pluginId": "alerting", "scope": "common", @@ -66,7 +58,7 @@ "section": "def-common.RuleAction", "text": "RuleAction" }, - "[]; throttle?: string | null | undefined; consumer: string; alertTypeId: string; schedule: ", + "[]; tags: string[]; enabled: boolean; alertTypeId: string; schedule: ", { "pluginId": "alerting", "scope": "common", @@ -82,7 +74,7 @@ "section": "def-common.MappedParams", "text": "MappedParams" }, - " | undefined; scheduledTaskId?: string | undefined; createdBy: string | null; updatedBy: string | null; createdAt: Date; updatedAt: Date; apiKeyOwner: string | null; muteAll: boolean; notifyWhen?: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\" | null | undefined; mutedInstanceIds: string[]; executionStatus: ", + " | undefined; scheduledTaskId?: string | undefined; createdBy: string | null; updatedBy: string | null; createdAt: Date; updatedAt: Date; apiKeyOwner: string | null; throttle?: string | null | undefined; muteAll: boolean; notifyWhen?: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\" | null | undefined; mutedInstanceIds: string[]; executionStatus: ", { "pluginId": "alerting", "scope": "common", @@ -90,7 +82,15 @@ "section": "def-common.RuleExecutionStatus", "text": "RuleExecutionStatus" }, - "; snoozeSchedule?: ", + "; monitoring?: ", + { + "pluginId": "alerting", + "scope": "common", + "docId": "kibAlertingPluginApi", + "section": "def-common.RuleMonitoring", + "text": "RuleMonitoring" + }, + " | undefined; snoozeSchedule?: ", { "pluginId": "alerting", "scope": "common", @@ -1994,7 +1994,7 @@ "section": "def-common.SanitizedRule", "text": "SanitizedRule" }, - ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"actions\" | \"throttle\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" + ", \"id\" | \"consumer\" | \"name\" | \"actions\" | \"tags\" | \"enabled\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"muteAll\" | \"notifyWhen\" | \"snoozeSchedule\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" ], "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false, @@ -2208,7 +2208,7 @@ "signature": [ "Pick<", "AlertFactory", - ", \"done\" | \"create\"> & { alertLimit: Pick<{ getValue: () => number; setLimitReached: (reached: boolean) => void; checkLimitUsage: () => void; }, \"getValue\" | \"setLimitReached\">; }" + ", \"create\" | \"done\"> & { alertLimit: Pick<{ getValue: () => number; setLimitReached: (reached: boolean) => void; checkLimitUsage: () => void; }, \"getValue\" | \"setLimitReached\">; }" ], "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false, @@ -2289,23 +2289,23 @@ "label": "dataViews", "description": [], "signature": [ - "{ get: (id: string, displayErrors?: boolean, refreshFields?: boolean) => Promise<", + "{ create: (spec: ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" }, - ">; delete: (indexPatternId: string) => Promise<{}>; create: (spec: ", + ", skipFetchFields?: boolean, displayErrors?: boolean) => Promise<", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" + "section": "def-common.DataView", + "text": "DataView" }, - ", skipFetchFields?: boolean, displayErrors?: boolean) => Promise<", + ">; get: (id: string, displayErrors?: boolean, refreshFields?: boolean) => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -2313,7 +2313,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ">; find: (search: string, size?: number) => Promise<", + ">; delete: (indexPatternId: string) => Promise<{}>; find: (search: string, size?: number) => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -3077,7 +3077,7 @@ "label": "AlertingRulesConfig", "description": [], "signature": [ - "Pick[] | undefined; } & { actions: Readonly<{ connectorTypeOverrides?: Readonly<{ max?: number | undefined; } & { id: string; }>[] | undefined; } & { max: number; }>; alerts: Readonly<{} & { max: number; }>; }>; minimumScheduleInterval: Readonly<{} & { value: string; enforce: boolean; }>; }>, \"minimumScheduleInterval\"> & { isUsingSecurity: boolean; }" + "Pick; run: Readonly<{ timeout?: string | undefined; ruleTypeOverrides?: Readonly<{ timeout?: string | undefined; } & { id: string; }>[] | undefined; } & { actions: Readonly<{ connectorTypeOverrides?: Readonly<{ max?: number | undefined; } & { id: string; }>[] | undefined; } & { max: number; }>; alerts: Readonly<{} & { max: number; }>; }>; }>, \"minimumScheduleInterval\"> & { isUsingSecurity: boolean; }" ], "path": "x-pack/plugins/alerting/server/config.ts", "deprecated": false, @@ -3122,7 +3122,7 @@ "label": "BulkEditOperation", "description": [], "signature": [ - "{ operation: \"delete\" | \"set\" | \"add\"; field: \"tags\"; value: string[]; } | { operation: \"set\" | \"add\"; field: \"actions\"; value: ", + "{ operation: \"delete\" | \"add\" | \"set\"; field: \"tags\"; value: string[]; } | { operation: \"add\" | \"set\"; field: \"actions\"; value: ", "NormalizedAlertAction", "[]; } | { operation: \"set\"; field: \"schedule\"; value: ", { @@ -3320,7 +3320,7 @@ "label": "RulesClient", "description": [], "signature": [ - "{ get: (params: ", - "GetParams", - ") => Promise<", + "CreateOptions", + ") => Promise<", { "pluginId": "alerting", "scope": "common", @@ -3338,13 +3338,7 @@ "section": "def-common.SanitizedRule", "text": "SanitizedRule" }, - " | ", - "SanitizedRuleWithLegacyId", - ">; delete: (params: { id: string; }) => Promise<{}>; aggregate: (params?: { options?: ", - "AggregateOptions", - " | undefined; } | undefined) => Promise<", - "AggregateResult", - ">; create: >; update: (params: ", - "CreateOptions", + "UpdateOptions", ") => Promise<", + { + "pluginId": "alerting", + "scope": "server", + "docId": "kibAlertingPluginApi", + "section": "def-server.PartialRule", + "text": "PartialRule" + }, + ">; get: (params: ", + "GetParams", + ") => Promise<", { "pluginId": "alerting", "scope": "common", @@ -3362,7 +3374,21 @@ "section": "def-common.SanitizedRule", "text": "SanitizedRule" }, - ">; find: | ", + "SanitizedRuleWithLegacyId", + ">; delete: (params: { id: string; }) => Promise<{}>; getGlobalExecutionLogWithAuth: (params: ", + "GetGlobalExecutionLogParams", + ") => Promise<", + { + "pluginId": "alerting", + "scope": "common", + "docId": "kibAlertingPluginApi", + "section": "def-common.IExecutionLogResult", + "text": "IExecutionLogResult" + }, + ">; getGlobalExecutionKpiWithAuth: (params: ", + "GetGlobalExecutionKPIParams", + ") => Promise<{ success: number; unknown: number; failure: number; warning: number; activeAlerts: number; newAlerts: number; recoveredAlerts: number; erroredActions: number; triggeredActions: number; }>; find: >; update: >; muteAll: (options: { id: string; }) => Promise; aggregate: (params?: { options?: ", + "AggregateOptions", + " | undefined; } | undefined) => Promise<", + "AggregateResult", + ">; clone: (params: ", - "UpdateOptions", - ") => Promise<", + " = never>(args_0: string, args_1: { newId?: string | undefined; }) => Promise<", { "pluginId": "alerting", - "scope": "server", + "scope": "common", "docId": "kibAlertingPluginApi", - "section": "def-server.PartialRule", - "text": "PartialRule" + "section": "def-common.SanitizedRule", + "text": "SanitizedRule" }, ">; resolve: >; enable: (options: { id: string; }) => Promise; disable: (options: { id: string; }) => Promise; clone: (args_0: string, args_1: { newId?: string | undefined; }) => Promise<", - { - "pluginId": "alerting", - "scope": "common", - "docId": "kibAlertingPluginApi", - "section": "def-common.SanitizedRule", - "text": "SanitizedRule" - }, - ">; getGlobalExecutionLogWithAuth: (params: ", - "GetGlobalExecutionLogParams", - ") => Promise<", - { - "pluginId": "alerting", - "scope": "common", - "docId": "kibAlertingPluginApi", - "section": "def-common.IExecutionLogResult", - "text": "IExecutionLogResult" - }, - ">; getGlobalExecutionKpiWithAuth: (params: ", - "GetGlobalExecutionKPIParams", - ") => Promise<{ success: number; unknown: number; failure: number; warning: number; activeAlerts: number; newAlerts: number; recoveredAlerts: number; erroredActions: number; triggeredActions: number; }>; muteAll: (options: { id: string; }) => Promise; getAlertState: (params: ", + ">; getAlertState: (params: ", "GetAlertStateParams", ") => Promise; getAlertSummary: (params: ", "GetAlertSummaryParams", @@ -3588,7 +3588,7 @@ }, " | ", "RuleWithLegacyId", - ")[]; total: number; }>; updateApiKey: (options: { id: string; }) => Promise; snooze: (options: ", + ")[]; total: number; }>; updateApiKey: (options: { id: string; }) => Promise; enable: (options: { id: string; }) => Promise; disable: (options: { id: string; }) => Promise; snooze: (options: ", "SnoozeParams", ") => Promise; unsnooze: (options: ", "UnsnoozeParams", @@ -5125,7 +5125,7 @@ "label": "freq", "description": [], "signature": [ - "0 | 2 | 1 | 3 | 4 | 5 | 6 | undefined" + "0 | 2 | 6 | 5 | 4 | 3 | 1 | undefined" ], "path": "x-pack/plugins/alerting/common/rule_snooze_type.ts", "deprecated": false, @@ -5974,7 +5974,7 @@ "label": "status", "description": [], "signature": [ - "\"error\" | \"warning\" | \"unknown\" | \"pending\" | \"ok\" | \"active\"" + "\"ok\" | \"error\" | \"active\" | \"pending\" | \"unknown\" | \"warning\"" ], "path": "x-pack/plugins/alerting/common/rule.ts", "deprecated": false, @@ -6080,6 +6080,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "alerting", + "id": "def-common.RuleLastRun.outcomeOrder", + "type": "number", + "tags": [], + "label": "outcomeOrder", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "alerting", "id": "def-common.RuleLastRun.warning", @@ -7666,7 +7680,7 @@ "label": "RuleAlertingOutcome", "description": [], "signature": [ - "\"warning\" | \"success\" | \"unknown\" | \"failure\"" + "\"unknown\" | \"warning\" | \"failure\" | \"success\"" ], "path": "x-pack/plugins/alerting/common/rule.ts", "deprecated": false, @@ -7681,7 +7695,7 @@ "label": "RuleExecutionStatuses", "description": [], "signature": [ - "\"error\" | \"warning\" | \"unknown\" | \"pending\" | \"ok\" | \"active\"" + "\"ok\" | \"error\" | \"active\" | \"pending\" | \"unknown\" | \"warning\"" ], "path": "x-pack/plugins/alerting/common/rule.ts", "deprecated": false, @@ -7919,15 +7933,7 @@ "label": "SanitizedRule", "description": [], "signature": [ - "{ name: string; params: Params; tags: string[]; id: string; monitoring?: ", - { - "pluginId": "alerting", - "scope": "common", - "docId": "kibAlertingPluginApi", - "section": "def-common.RuleMonitoring", - "text": "RuleMonitoring" - }, - " | undefined; enabled: boolean; actions: ", + "{ id: string; params: Params; consumer: string; name: string; actions: ", { "pluginId": "alerting", "scope": "common", @@ -7935,7 +7941,7 @@ "section": "def-common.RuleAction", "text": "RuleAction" }, - "[]; throttle?: string | null | undefined; consumer: string; alertTypeId: string; schedule: ", + "[]; tags: string[]; enabled: boolean; alertTypeId: string; schedule: ", { "pluginId": "alerting", "scope": "common", @@ -7951,7 +7957,7 @@ "section": "def-common.MappedParams", "text": "MappedParams" }, - " | undefined; scheduledTaskId?: string | undefined; createdBy: string | null; updatedBy: string | null; createdAt: Date; updatedAt: Date; apiKeyOwner: string | null; muteAll: boolean; notifyWhen?: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\" | null | undefined; mutedInstanceIds: string[]; executionStatus: ", + " | undefined; scheduledTaskId?: string | undefined; createdBy: string | null; updatedBy: string | null; createdAt: Date; updatedAt: Date; apiKeyOwner: string | null; throttle?: string | null | undefined; muteAll: boolean; notifyWhen?: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\" | null | undefined; mutedInstanceIds: string[]; executionStatus: ", { "pluginId": "alerting", "scope": "common", @@ -7959,7 +7965,15 @@ "section": "def-common.RuleExecutionStatus", "text": "RuleExecutionStatus" }, - "; snoozeSchedule?: ", + "; monitoring?: ", + { + "pluginId": "alerting", + "scope": "common", + "docId": "kibAlertingPluginApi", + "section": "def-common.RuleMonitoring", + "text": "RuleMonitoring" + }, + " | undefined; snoozeSchedule?: ", { "pluginId": "alerting", "scope": "common", @@ -7998,7 +8012,7 @@ "section": "def-common.SanitizedRule", "text": "SanitizedRule" }, - ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"actions\" | \"throttle\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" + ", \"id\" | \"consumer\" | \"name\" | \"actions\" | \"tags\" | \"enabled\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"muteAll\" | \"notifyWhen\" | \"snoozeSchedule\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" ], "path": "x-pack/plugins/alerting/common/rule.ts", "deprecated": false, @@ -8400,6 +8414,53 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "alerting", + "id": "def-common.RuleLastRunOutcomeOrderMap", + "type": "Object", + "tags": [], + "label": "RuleLastRunOutcomeOrderMap", + "description": [], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-common.RuleLastRunOutcomeOrderMap.succeeded", + "type": "number", + "tags": [], + "label": "succeeded", + "description": [], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.RuleLastRunOutcomeOrderMap.warning", + "type": "number", + "tags": [], + "label": "warning", + "description": [], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.RuleLastRunOutcomeOrderMap.failed", + "type": "number", + "tags": [], + "label": "failed", + "description": [], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-common.RuleLastRunOutcomeValues", diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 0a7fc408c7d96b..cfba3449e1e986 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; -Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 471 | 1 | 461 | 39 | +| 476 | 1 | 466 | 39 | ## Client diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index 262193c9126516..401f2a681fa887 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -63,7 +63,7 @@ "section": "def-common.LocatorPublic", "text": "LocatorPublic" }, - "<{ serviceName: undefined; } | ({ serviceName: string; } & { serviceOverviewTab?: \"metrics\" | \"logs\" | \"traces\" | \"errors\" | undefined; } & { query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", + "<{ serviceName: undefined; } | ({ serviceName: string; } & { serviceOverviewTab?: \"errors\" | \"traces\" | \"metrics\" | \"logs\" | undefined; } & { query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", "Branded", " { config$: ", "Observable", - "; autoCreateApmDataView: boolean; serviceMapEnabled: boolean; serviceMapFingerprintBucketSize: number; serviceMapFingerprintGlobalBucketSize: number; serviceMapTraceIdBucketSize: number; serviceMapTraceIdGlobalBucketSize: number; serviceMapMaxTracesPerRequest: number; ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; searchAggregatedTransactions: ", + "; searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; forceSyntheticSource: boolean; }>>; getApmIndices: () => Promise>; createApmEventClient: ({ request, context, debug, }: { debug?: boolean | undefined; request: ", + "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; indices: Readonly<{} & { error: string; metric: string; span: string; transaction: string; onboarding: string; }>; forceSyntheticSource: boolean; }>>; getApmIndices: () => Promise>; createApmEventClient: ({ request, context, debug, }: { debug?: boolean | undefined; request: ", { "pluginId": "@kbn/core-http-server", "scope": "common", @@ -448,9 +448,9 @@ "label": "config", "description": [], "signature": [ - "{ readonly indices: Readonly<{} & { metric: string; error: string; span: string; transaction: string; onboarding: string; }>; readonly autoCreateApmDataView: boolean; readonly serviceMapEnabled: boolean; readonly serviceMapFingerprintBucketSize: number; readonly serviceMapFingerprintGlobalBucketSize: number; readonly serviceMapTraceIdBucketSize: number; readonly serviceMapTraceIdGlobalBucketSize: number; readonly serviceMapMaxTracesPerRequest: number; readonly ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; readonly searchAggregatedTransactions: ", + "{ readonly autoCreateApmDataView: boolean; readonly serviceMapEnabled: boolean; readonly serviceMapFingerprintBucketSize: number; readonly serviceMapFingerprintGlobalBucketSize: number; readonly serviceMapTraceIdBucketSize: number; readonly serviceMapTraceIdGlobalBucketSize: number; readonly serviceMapMaxTracesPerRequest: number; readonly ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; readonly searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; readonly telemetryCollectionEnabled: boolean; readonly metricsInterval: number; readonly agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; readonly forceSyntheticSource: boolean; }" + "; readonly telemetryCollectionEnabled: boolean; readonly metricsInterval: number; readonly agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; readonly indices: Readonly<{} & { error: string; metric: string; span: string; transaction: string; onboarding: string; }>; readonly forceSyntheticSource: boolean; }" ], "path": "x-pack/plugins/apm/server/routes/typings.ts", "deprecated": false, @@ -546,7 +546,7 @@ "section": "def-server.LicensingPluginStart", "text": "LicensingPluginStart" }, - ">; }; observability: { setup: { getAlertDetailsConfig(): Readonly<{} & { metrics: Readonly<{} & { enabled: boolean; }>; apm: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; uptime: Readonly<{} & { enabled: boolean; }>; }>; getScopedAnnotationsClient: (requestContext: ", + ">; }; observability: { setup: { getAlertDetailsConfig(): Readonly<{} & { uptime: Readonly<{} & { enabled: boolean; }>; apm: Readonly<{} & { enabled: boolean; }>; metrics: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; }>; getScopedAnnotationsClient: (requestContext: ", { "pluginId": "@kbn/core-http-request-handler-context-server", "scope": "common", @@ -810,7 +810,7 @@ "label": "APIEndpoint", "description": [], "signature": [ - "\"POST /internal/apm/data_view/static\" | \"GET /internal/apm/data_view/title\" | \"GET /internal/apm/environments\" | \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\" | \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\" | \"GET /internal/apm/services/{serviceName}/errors/distribution\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\" | \"POST /internal/apm/latency/overall_distribution/transactions\" | \"GET /internal/apm/services/{serviceName}/metrics/charts\" | \"GET /internal/apm/services/{serviceName}/metrics/nodes\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\" | \"GET /internal/apm/observability_overview\" | \"GET /internal/apm/observability_overview/has_data\" | \"GET /internal/apm/service-map\" | \"GET /internal/apm/service-map/service/{serviceName}\" | \"GET /internal/apm/service-map/dependency\" | \"GET /internal/apm/services\" | \"POST /internal/apm/services/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/metadata/details\" | \"GET /internal/apm/services/{serviceName}/metadata/icons\" | \"GET /internal/apm/services/{serviceName}/agent\" | \"GET /internal/apm/services/{serviceName}/transaction_types\" | \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\" | \"GET /api/apm/services/{serviceName}/annotation/search\" | \"POST /api/apm/services/{serviceName}/annotation\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\" | \"GET /internal/apm/services/{serviceName}/throughput\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/dependencies\" | \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\" | \"GET /internal/apm/services/{serviceName}/anomaly_charts\" | \"GET /internal/apm/services/{serviceName}/alerts_count\" | \"GET /internal/apm/service-groups\" | \"GET /internal/apm/service-group\" | \"POST /internal/apm/service-group\" | \"DELETE /internal/apm/service-group\" | \"GET /internal/apm/service-group/services\" | \"GET /internal/apm/service-group/counts\" | \"GET /internal/apm/suggestions\" | \"GET /internal/apm/traces/{traceId}\" | \"GET /internal/apm/traces\" | \"GET /internal/apm/traces/{traceId}/root_transaction\" | \"GET /internal/apm/transactions/{transactionId}\" | \"GET /internal/apm/traces/find\" | \"POST /internal/apm/traces/aggregated_critical_path\" | \"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\" | \"GET /internal/apm/traces/{traceId}/spans/{spanId}\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\" | \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\" | \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\" | \"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\" | \"GET /internal/apm/rule_types/transaction_duration/chart_preview\" | \"GET /internal/apm/rule_types/error_count/chart_preview\" | \"GET /api/apm/settings/agent-configuration\" | \"GET /api/apm/settings/agent-configuration/view\" | \"DELETE /api/apm/settings/agent-configuration\" | \"PUT /api/apm/settings/agent-configuration\" | \"POST /api/apm/settings/agent-configuration/search\" | \"GET /api/apm/settings/agent-configuration/environments\" | \"GET /api/apm/settings/agent-configuration/agent_name\" | \"GET /internal/apm/settings/anomaly-detection/jobs\" | \"POST /internal/apm/settings/anomaly-detection/jobs\" | \"GET /internal/apm/settings/anomaly-detection/environments\" | \"POST /internal/apm/settings/anomaly-detection/update_to_v3\" | \"GET /internal/apm/settings/apm-index-settings\" | \"GET /internal/apm/settings/apm-indices\" | \"POST /internal/apm/settings/apm-indices/save\" | \"GET /internal/apm/settings/custom_links/transaction\" | \"GET /internal/apm/settings/custom_links\" | \"POST /internal/apm/settings/custom_links\" | \"PUT /internal/apm/settings/custom_links/{id}\" | \"DELETE /internal/apm/settings/custom_links/{id}\" | \"GET /api/apm/sourcemaps\" | \"POST /api/apm/sourcemaps\" | \"DELETE /api/apm/sourcemaps/{id}\" | \"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\" | \"GET /internal/apm/fleet/has_apm_policies\" | \"GET /internal/apm/fleet/agents\" | \"POST /api/apm/fleet/apm_server_schema\" | \"GET /internal/apm/fleet/apm_server_schema/unsupported\" | \"GET /internal/apm/fleet/migration_check\" | \"POST /internal/apm/fleet/cloud_apm_package_policy\" | \"GET /internal/apm/fleet/java_agent_versions\" | \"GET /internal/apm/dependencies/top_dependencies\" | \"GET /internal/apm/dependencies/upstream_services\" | \"GET /internal/apm/dependencies/metadata\" | \"GET /internal/apm/dependencies/charts/latency\" | \"GET /internal/apm/dependencies/charts/throughput\" | \"GET /internal/apm/dependencies/charts/error_rate\" | \"GET /internal/apm/dependencies/operations\" | \"GET /internal/apm/dependencies/charts/distribution\" | \"GET /internal/apm/dependencies/operations/spans\" | \"GET /internal/apm/correlations/field_candidates/transactions\" | \"GET /internal/apm/correlations/field_value_stats/transactions\" | \"POST /internal/apm/correlations/field_value_pairs/transactions\" | \"POST /internal/apm/correlations/significant_correlations/transactions\" | \"POST /internal/apm/correlations/p_values/transactions\" | \"GET /internal/apm/fallback_to_transactions\" | \"GET /internal/apm/has_data\" | \"GET /internal/apm/event_metadata/{processorEvent}/{id}\" | \"GET /internal/apm/agent_keys\" | \"GET /internal/apm/agent_keys/privileges\" | \"POST /internal/apm/api_key/invalidate\" | \"POST /api/apm/agent_keys\" | \"GET /internal/apm/storage_explorer\" | \"GET /internal/apm/services/{serviceName}/storage_details\" | \"GET /internal/apm/storage_chart\" | \"GET /internal/apm/storage_explorer/privileges\" | \"GET /internal/apm/storage_explorer_summary_stats\" | \"GET /internal/apm/storage_explorer/is_cross_cluster_search\" | \"GET /internal/apm/storage_explorer/get_services\" | \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\" | \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\" | \"GET /internal/apm/services/{serviceName}/infrastructure_attributes\" | \"GET /internal/apm/debug-telemetry\" | \"GET /internal/apm/time_range_metadata\" | \"GET /internal/apm/settings/labs\" | \"GET /internal/apm/get_agents_per_service\" | \"GET /internal/apm/services/{serviceName}/agent_instances\" | \"GET /internal/apm/services/{serviceName}/mobile/filters\" | \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\" | \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\" | \"GET /internal/apm/mobile-services/{serviceName}/stats\"" + "\"POST /internal/apm/data_view/static\" | \"GET /internal/apm/data_view/title\" | \"GET /internal/apm/environments\" | \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\" | \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\" | \"GET /internal/apm/services/{serviceName}/errors/distribution\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\" | \"POST /internal/apm/latency/overall_distribution/transactions\" | \"GET /internal/apm/services/{serviceName}/metrics/charts\" | \"GET /internal/apm/services/{serviceName}/metrics/nodes\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\" | \"GET /internal/apm/observability_overview\" | \"GET /internal/apm/observability_overview/has_data\" | \"GET /internal/apm/service-map\" | \"GET /internal/apm/service-map/service/{serviceName}\" | \"GET /internal/apm/service-map/dependency\" | \"GET /internal/apm/services\" | \"POST /internal/apm/services/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/metadata/details\" | \"GET /internal/apm/services/{serviceName}/metadata/icons\" | \"GET /internal/apm/services/{serviceName}/agent\" | \"GET /internal/apm/services/{serviceName}/transaction_types\" | \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\" | \"GET /api/apm/services/{serviceName}/annotation/search\" | \"POST /api/apm/services/{serviceName}/annotation\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\" | \"GET /internal/apm/services/{serviceName}/throughput\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/dependencies\" | \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\" | \"GET /internal/apm/services/{serviceName}/anomaly_charts\" | \"GET /internal/apm/services/{serviceName}/alerts_count\" | \"GET /internal/apm/service-groups\" | \"GET /internal/apm/service-group\" | \"POST /internal/apm/service-group\" | \"DELETE /internal/apm/service-group\" | \"GET /internal/apm/service-group/services\" | \"GET /internal/apm/service-group/counts\" | \"GET /internal/apm/suggestions\" | \"GET /internal/apm/traces/{traceId}\" | \"GET /internal/apm/traces\" | \"GET /internal/apm/traces/{traceId}/root_transaction\" | \"GET /internal/apm/transactions/{transactionId}\" | \"GET /internal/apm/traces/find\" | \"POST /internal/apm/traces/aggregated_critical_path\" | \"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\" | \"GET /internal/apm/traces/{traceId}/spans/{spanId}\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\" | \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\" | \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\" | \"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\" | \"GET /internal/apm/rule_types/transaction_duration/chart_preview\" | \"GET /internal/apm/rule_types/error_count/chart_preview\" | \"GET /api/apm/settings/agent-configuration\" | \"GET /api/apm/settings/agent-configuration/view\" | \"DELETE /api/apm/settings/agent-configuration\" | \"PUT /api/apm/settings/agent-configuration\" | \"POST /api/apm/settings/agent-configuration/search\" | \"GET /api/apm/settings/agent-configuration/environments\" | \"GET /api/apm/settings/agent-configuration/agent_name\" | \"GET /internal/apm/settings/anomaly-detection/jobs\" | \"POST /internal/apm/settings/anomaly-detection/jobs\" | \"GET /internal/apm/settings/anomaly-detection/environments\" | \"POST /internal/apm/settings/anomaly-detection/update_to_v3\" | \"GET /internal/apm/settings/apm-index-settings\" | \"GET /internal/apm/settings/apm-indices\" | \"POST /internal/apm/settings/apm-indices/save\" | \"GET /internal/apm/settings/custom_links/transaction\" | \"GET /internal/apm/settings/custom_links\" | \"POST /internal/apm/settings/custom_links\" | \"PUT /internal/apm/settings/custom_links/{id}\" | \"DELETE /internal/apm/settings/custom_links/{id}\" | \"GET /api/apm/sourcemaps\" | \"POST /api/apm/sourcemaps\" | \"DELETE /api/apm/sourcemaps/{id}\" | \"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\" | \"GET /internal/apm/fleet/has_apm_policies\" | \"GET /internal/apm/fleet/agents\" | \"POST /api/apm/fleet/apm_server_schema\" | \"GET /internal/apm/fleet/apm_server_schema/unsupported\" | \"GET /internal/apm/fleet/migration_check\" | \"POST /internal/apm/fleet/cloud_apm_package_policy\" | \"GET /internal/apm/fleet/java_agent_versions\" | \"GET /internal/apm/dependencies/top_dependencies\" | \"GET /internal/apm/dependencies/upstream_services\" | \"GET /internal/apm/dependencies/metadata\" | \"GET /internal/apm/dependencies/charts/latency\" | \"GET /internal/apm/dependencies/charts/throughput\" | \"GET /internal/apm/dependencies/charts/error_rate\" | \"GET /internal/apm/dependencies/operations\" | \"GET /internal/apm/dependencies/charts/distribution\" | \"GET /internal/apm/dependencies/operations/spans\" | \"GET /internal/apm/correlations/field_candidates/transactions\" | \"GET /internal/apm/correlations/field_value_stats/transactions\" | \"POST /internal/apm/correlations/field_value_pairs/transactions\" | \"POST /internal/apm/correlations/significant_correlations/transactions\" | \"POST /internal/apm/correlations/p_values/transactions\" | \"GET /internal/apm/fallback_to_transactions\" | \"GET /internal/apm/has_data\" | \"GET /internal/apm/event_metadata/{processorEvent}/{id}\" | \"GET /internal/apm/agent_keys\" | \"GET /internal/apm/agent_keys/privileges\" | \"POST /internal/apm/api_key/invalidate\" | \"POST /api/apm/agent_keys\" | \"GET /internal/apm/storage_explorer\" | \"GET /internal/apm/services/{serviceName}/storage_details\" | \"GET /internal/apm/storage_chart\" | \"GET /internal/apm/storage_explorer/privileges\" | \"GET /internal/apm/storage_explorer_summary_stats\" | \"GET /internal/apm/storage_explorer/is_cross_cluster_search\" | \"GET /internal/apm/storage_explorer/get_services\" | \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\" | \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\" | \"GET /internal/apm/services/{serviceName}/infrastructure_attributes\" | \"GET /internal/apm/debug-telemetry\" | \"GET /internal/apm/time_range_metadata\" | \"GET /internal/apm/settings/labs\" | \"GET /internal/apm/get_agents_per_service\" | \"GET /internal/apm/services/{serviceName}/agent_instances\" | \"GET /internal/apm/services/{serviceName}/mobile/filters\" | \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\" | \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\" | \"GET /internal/apm/mobile-services/{serviceName}/stats\" | \"GET /internal/apm/mobile-services/{serviceName}/location/stats\"" ], "path": "x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts", "deprecated": false, @@ -840,9 +840,9 @@ "label": "APMConfig", "description": [], "signature": [ - "{ readonly indices: Readonly<{} & { metric: string; error: string; span: string; transaction: string; onboarding: string; }>; readonly autoCreateApmDataView: boolean; readonly serviceMapEnabled: boolean; readonly serviceMapFingerprintBucketSize: number; readonly serviceMapFingerprintGlobalBucketSize: number; readonly serviceMapTraceIdBucketSize: number; readonly serviceMapTraceIdGlobalBucketSize: number; readonly serviceMapMaxTracesPerRequest: number; readonly ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; readonly searchAggregatedTransactions: ", + "{ readonly autoCreateApmDataView: boolean; readonly serviceMapEnabled: boolean; readonly serviceMapFingerprintBucketSize: number; readonly serviceMapFingerprintGlobalBucketSize: number; readonly serviceMapTraceIdBucketSize: number; readonly serviceMapTraceIdGlobalBucketSize: number; readonly serviceMapMaxTracesPerRequest: number; readonly ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; readonly searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; readonly telemetryCollectionEnabled: boolean; readonly metricsInterval: number; readonly agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; readonly forceSyntheticSource: boolean; }" + "; readonly telemetryCollectionEnabled: boolean; readonly metricsInterval: number; readonly agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; readonly indices: Readonly<{} & { error: string; metric: string; span: string; transaction: string; onboarding: string; }>; readonly forceSyntheticSource: boolean; }" ], "path": "x-pack/plugins/apm/server/index.ts", "deprecated": false, @@ -857,7 +857,7 @@ "label": "ApmIndicesConfigName", "description": [], "signature": [ - "\"metric\" | \"error\" | \"span\" | \"transaction\" | \"onboarding\"" + "\"error\" | \"metric\" | \"span\" | \"transaction\" | \"onboarding\"" ], "path": "x-pack/plugins/apm/server/index.ts", "deprecated": false, @@ -872,12 +872,78 @@ "label": "APMServerRouteRepository", "description": [], "signature": [ - "{ \"GET /internal/apm/mobile-services/{serviceName}/stats\": ", + "{ \"GET /internal/apm/mobile-services/{serviceName}/location/stats\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/mobile-services/{serviceName}/location/stats\", ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ serviceName: ", + "StringC", + "; }>; query: ", + "IntersectionC", + "<[", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + { + "pluginId": "@kbn/io-ts-utils", + "scope": "common", + "docId": "kibKbnIoTsUtilsPluginApi", + "section": "def-common.NonEmptyStringBrand", + "text": "NonEmptyStringBrand" + }, + ">]>; }>, ", + "PartialC", + "<{ offset: ", + "StringC", + "; }>, ", + "PartialC", + "<{ locationField: ", + "StringC", + "; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", ", + "MobileLocationStats", + ", ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/mobile-services/{serviceName}/stats\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/mobile-services/{serviceName}/stats\", ", @@ -941,9 +1007,9 @@ ">; \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\", ", @@ -1009,9 +1075,9 @@ ">; \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\", ", @@ -1077,9 +1143,9 @@ ">; \"GET /internal/apm/services/{serviceName}/mobile/filters\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/mobile/filters\", ", @@ -1137,9 +1203,9 @@ ">; \"GET /internal/apm/services/{serviceName}/agent_instances\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/agent_instances\", ", @@ -1197,9 +1263,9 @@ ">; \"GET /internal/apm/get_agents_per_service\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/get_agents_per_service\", ", @@ -1261,9 +1327,9 @@ ">; \"GET /internal/apm/settings/labs\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/settings/labs\", undefined, ", @@ -1279,9 +1345,9 @@ ">; \"GET /internal/apm/time_range_metadata\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/time_range_metadata\", ", @@ -1292,6 +1358,10 @@ "TypeC", "<{ useSpanName: ", "Type", + "; enableServiceTransactionMetrics: ", + "Type", + "; enableContinuousRollups: ", + "Type", "; }>, ", "TypeC", "<{ kuery: ", @@ -1317,9 +1387,9 @@ ">; \"GET /internal/apm/debug-telemetry\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/debug-telemetry\", undefined, ", @@ -1335,9 +1405,9 @@ ">; \"GET /internal/apm/services/{serviceName}/infrastructure_attributes\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/infrastructure_attributes\", ", @@ -1391,9 +1461,9 @@ ">; \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\", ", @@ -1431,9 +1501,9 @@ ">; \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\", ", @@ -1515,9 +1585,9 @@ ">; \"GET /internal/apm/storage_explorer/get_services\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/storage_explorer/get_services\", ", @@ -1585,9 +1655,9 @@ ">; \"GET /internal/apm/storage_explorer/is_cross_cluster_search\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/storage_explorer/is_cross_cluster_search\", undefined, ", @@ -1603,9 +1673,9 @@ ">; \"GET /internal/apm/storage_explorer_summary_stats\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/storage_explorer_summary_stats\", ", @@ -1683,9 +1753,9 @@ ">; \"GET /internal/apm/storage_explorer/privileges\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/storage_explorer/privileges\", undefined, ", @@ -1701,9 +1771,9 @@ ">; \"GET /internal/apm/storage_chart\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/storage_chart\", ", @@ -1781,9 +1851,9 @@ ">; \"GET /internal/apm/services/{serviceName}/storage_details\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/storage_details\", ", @@ -1873,9 +1943,9 @@ ">; \"GET /internal/apm/storage_explorer\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/storage_explorer\", ", @@ -1955,9 +2025,9 @@ ">; \"POST /api/apm/agent_keys\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/apm/agent_keys\", ", @@ -1993,9 +2063,9 @@ ">; \"POST /internal/apm/api_key/invalidate\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/api_key/invalidate\", ", @@ -2017,9 +2087,9 @@ ">; \"GET /internal/apm/agent_keys/privileges\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/agent_keys/privileges\", undefined, ", @@ -2035,9 +2105,9 @@ ">; \"GET /internal/apm/agent_keys\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/agent_keys\", undefined, ", @@ -2061,9 +2131,9 @@ ">; \"GET /internal/apm/event_metadata/{processorEvent}/{id}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/event_metadata/{processorEvent}/{id}\", ", @@ -2127,9 +2197,9 @@ ">; \"GET /internal/apm/has_data\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/has_data\", undefined, ", @@ -2145,9 +2215,9 @@ ">; \"GET /internal/apm/fallback_to_transactions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/fallback_to_transactions\", ", @@ -2177,9 +2247,9 @@ ">; \"POST /internal/apm/correlations/p_values/transactions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/correlations/p_values/transactions\", ", @@ -2251,9 +2321,9 @@ ">; \"POST /internal/apm/correlations/significant_correlations/transactions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/correlations/significant_correlations/transactions\", ", @@ -2333,9 +2403,9 @@ ">; \"POST /internal/apm/correlations/field_value_pairs/transactions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/correlations/field_value_pairs/transactions\", ", @@ -2401,9 +2471,9 @@ ">; \"GET /internal/apm/correlations/field_value_stats/transactions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/correlations/field_value_stats/transactions\", ", @@ -2475,9 +2545,9 @@ ">; \"GET /internal/apm/correlations/field_candidates/transactions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/correlations/field_candidates/transactions\", ", @@ -2535,9 +2605,9 @@ ">; \"GET /internal/apm/dependencies/operations/spans\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/operations/spans\", ", @@ -2601,9 +2671,9 @@ ">; \"GET /internal/apm/dependencies/charts/distribution\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/charts/distribution\", ", @@ -2665,9 +2735,9 @@ ">; \"GET /internal/apm/dependencies/operations\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/operations\", ", @@ -2729,9 +2799,9 @@ ">; \"GET /internal/apm/dependencies/charts/error_rate\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/charts/error_rate\", ", @@ -2793,9 +2863,9 @@ ">; \"GET /internal/apm/dependencies/charts/throughput\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/charts/throughput\", ", @@ -2857,9 +2927,9 @@ ">; \"GET /internal/apm/dependencies/charts/latency\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/charts/latency\", ", @@ -2921,9 +2991,9 @@ ">; \"GET /internal/apm/dependencies/metadata\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/metadata\", ", @@ -2953,9 +3023,9 @@ ">; \"GET /internal/apm/dependencies/upstream_services\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/upstream_services\", ", @@ -3041,9 +3111,9 @@ ">; \"GET /internal/apm/dependencies/top_dependencies\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/dependencies/top_dependencies\", ", @@ -3123,9 +3193,9 @@ ">; \"GET /internal/apm/fleet/java_agent_versions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/fleet/java_agent_versions\", undefined, ", @@ -3141,9 +3211,9 @@ ">; \"POST /internal/apm/fleet/cloud_apm_package_policy\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/fleet/cloud_apm_package_policy\", undefined, ", @@ -3167,9 +3237,9 @@ ">; \"GET /internal/apm/fleet/migration_check\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/fleet/migration_check\", undefined, ", @@ -3193,9 +3263,9 @@ ">; \"GET /internal/apm/fleet/apm_server_schema/unsupported\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/fleet/apm_server_schema/unsupported\", undefined, ", @@ -3211,9 +3281,9 @@ ">; \"POST /api/apm/fleet/apm_server_schema\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/apm/fleet/apm_server_schema\", ", @@ -3239,9 +3309,9 @@ ">; \"GET /internal/apm/fleet/agents\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/fleet/agents\", undefined, ", @@ -3257,9 +3327,9 @@ ">; \"GET /internal/apm/fleet/has_apm_policies\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/fleet/has_apm_policies\", undefined, ", @@ -3275,9 +3345,9 @@ ">; \"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\", undefined, ", @@ -3293,9 +3363,9 @@ ">; \"DELETE /api/apm/sourcemaps/{id}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"DELETE /api/apm/sourcemaps/{id}\", ", @@ -3317,9 +3387,9 @@ ">; \"POST /api/apm/sourcemaps\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/apm/sourcemaps\", ", @@ -3355,9 +3425,9 @@ ">; \"GET /api/apm/sourcemaps\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/apm/sourcemaps\", ", @@ -3383,9 +3453,9 @@ ">; \"DELETE /internal/apm/settings/custom_links/{id}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"DELETE /internal/apm/settings/custom_links/{id}\", ", @@ -3407,9 +3477,9 @@ ">; \"PUT /internal/apm/settings/custom_links/{id}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"PUT /internal/apm/settings/custom_links/{id}\", ", @@ -3463,9 +3533,9 @@ ">; \"POST /internal/apm/settings/custom_links\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/settings/custom_links\", ", @@ -3515,9 +3585,9 @@ ">; \"GET /internal/apm/settings/custom_links\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/settings/custom_links\", ", @@ -3547,9 +3617,9 @@ ">; \"GET /internal/apm/settings/custom_links/transaction\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/settings/custom_links/transaction\", ", @@ -3579,9 +3649,9 @@ ">; \"POST /internal/apm/settings/apm-indices/save\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/settings/apm-indices/save\", ", @@ -3609,9 +3679,9 @@ ">; \"GET /internal/apm/settings/apm-indices\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/settings/apm-indices\", undefined, ", @@ -3629,9 +3699,9 @@ ">; \"GET /internal/apm/settings/apm-index-settings\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/settings/apm-index-settings\", undefined, ", @@ -3642,14 +3712,14 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { apmIndexSettings: { configurationName: \"metric\" | \"error\" | \"span\" | \"transaction\" | \"onboarding\"; defaultValue: string; savedValue: string | undefined; }[]; }, ", + ", { apmIndexSettings: { configurationName: \"error\" | \"metric\" | \"span\" | \"transaction\" | \"onboarding\"; defaultValue: string; savedValue: string | undefined; }[]; }, ", "APMRouteCreateOptions", ">; \"POST /internal/apm/settings/anomaly-detection/update_to_v3\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/settings/anomaly-detection/update_to_v3\", undefined, ", @@ -3665,9 +3735,9 @@ ">; \"GET /internal/apm/settings/anomaly-detection/environments\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/settings/anomaly-detection/environments\", undefined, ", @@ -3683,9 +3753,9 @@ ">; \"POST /internal/apm/settings/anomaly-detection/jobs\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/settings/anomaly-detection/jobs\", ", @@ -3725,9 +3795,9 @@ ">; \"GET /internal/apm/settings/anomaly-detection/jobs\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/settings/anomaly-detection/jobs\", undefined, ", @@ -3745,9 +3815,9 @@ ">; \"GET /api/apm/settings/agent-configuration/agent_name\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/apm/settings/agent-configuration/agent_name\", ", @@ -3769,9 +3839,9 @@ ">; \"GET /api/apm/settings/agent-configuration/environments\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/apm/settings/agent-configuration/environments\", ", @@ -3793,9 +3863,9 @@ ">; \"POST /api/apm/settings/agent-configuration/search\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/apm/settings/agent-configuration/search\", ", @@ -3839,9 +3909,9 @@ ">; \"PUT /api/apm/settings/agent-configuration\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"PUT /api/apm/settings/agent-configuration\", ", @@ -3893,9 +3963,9 @@ ">; \"DELETE /api/apm/settings/agent-configuration\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"DELETE /api/apm/settings/agent-configuration\", ", @@ -3921,9 +3991,9 @@ ">; \"GET /api/apm/settings/agent-configuration/view\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/apm/settings/agent-configuration/view\", ", @@ -3949,9 +4019,9 @@ ">; \"GET /api/apm/settings/agent-configuration\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/apm/settings/agent-configuration\", undefined, ", @@ -3969,9 +4039,9 @@ ">; \"GET /internal/apm/rule_types/transaction_duration/chart_preview\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/rule_types/transaction_duration/chart_preview\", ", @@ -4041,9 +4111,9 @@ ">; \"GET /internal/apm/rule_types/error_count/chart_preview\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/rule_types/error_count/chart_preview\", ", @@ -4113,9 +4183,9 @@ ">; \"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\", ", @@ -4185,9 +4255,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\", ", @@ -4259,9 +4329,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\", ", @@ -4331,9 +4401,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\", ", @@ -4407,9 +4477,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\", ", @@ -4471,9 +4541,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transactions/traces/samples\", ", @@ -4543,9 +4613,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transactions/charts/latency\", ", @@ -4631,9 +4701,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\", ", @@ -4729,9 +4799,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\", ", @@ -4803,9 +4873,9 @@ ">; \"GET /internal/apm/traces/{traceId}/spans/{spanId}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/traces/{traceId}/spans/{spanId}\", ", @@ -4841,9 +4911,9 @@ ">; \"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\", ", @@ -4869,9 +4939,9 @@ ">; \"POST /internal/apm/traces/aggregated_critical_path\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/traces/aggregated_critical_path\", ", @@ -4937,9 +5007,9 @@ ">; \"GET /internal/apm/traces/find\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/traces/find\", ", @@ -4999,9 +5069,9 @@ ">; \"GET /internal/apm/transactions/{transactionId}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/transactions/{transactionId}\", ", @@ -5025,9 +5095,9 @@ ">; \"GET /internal/apm/traces/{traceId}/root_transaction\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/traces/{traceId}/root_transaction\", ", @@ -5051,9 +5121,9 @@ ">; \"GET /internal/apm/traces\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/traces\", ", @@ -5111,9 +5181,9 @@ ">; \"GET /internal/apm/traces/{traceId}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/traces/{traceId}\", ", @@ -5151,9 +5221,9 @@ ">; \"GET /internal/apm/suggestions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/suggestions\", ", @@ -5189,9 +5259,9 @@ ">; \"GET /internal/apm/service-group/counts\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/service-group/counts\", undefined, ", @@ -5207,9 +5277,9 @@ ">; \"GET /internal/apm/service-group/services\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/service-group/services\", ", @@ -5241,9 +5311,9 @@ ">; \"DELETE /internal/apm/service-group\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"DELETE /internal/apm/service-group\", ", @@ -5265,9 +5335,9 @@ ">; \"POST /internal/apm/service-group\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/service-group\", ", @@ -5313,9 +5383,9 @@ ">; \"GET /internal/apm/service-group\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/service-group\", ", @@ -5339,9 +5409,9 @@ ">; \"GET /internal/apm/service-groups\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/service-groups\", undefined, ", @@ -5359,9 +5429,9 @@ ">; \"GET /internal/apm/services/{serviceName}/alerts_count\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/alerts_count\", ", @@ -5411,9 +5481,9 @@ ">; \"GET /internal/apm/services/{serviceName}/anomaly_charts\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/anomaly_charts\", ", @@ -5469,9 +5539,9 @@ ">; \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/dependencies/breakdown\", ", @@ -5525,9 +5595,9 @@ ">; \"GET /internal/apm/services/{serviceName}/dependencies\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/dependencies\", ", @@ -5603,9 +5673,9 @@ ">; \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\", ", @@ -5709,9 +5779,9 @@ ">; \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\", ", @@ -5787,9 +5857,9 @@ ">; \"GET /internal/apm/services/{serviceName}/throughput\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/throughput\", ", @@ -5859,9 +5929,9 @@ ">; \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\", ", @@ -5913,9 +5983,9 @@ ">; \"POST /api/apm/services/{serviceName}/annotation\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/apm/services/{serviceName}/annotation\", ", @@ -5963,9 +6033,9 @@ ">; \"GET /api/apm/services/{serviceName}/annotation/search\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/apm/services/{serviceName}/annotation/search\", ", @@ -6017,9 +6087,9 @@ ">; \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\", ", @@ -6075,9 +6145,9 @@ ">; \"GET /internal/apm/services/{serviceName}/transaction_types\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/transaction_types\", ", @@ -6105,9 +6175,9 @@ ">; \"GET /internal/apm/services/{serviceName}/agent\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/agent\", ", @@ -6137,9 +6207,9 @@ ">; \"GET /internal/apm/services/{serviceName}/metadata/icons\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/metadata/icons\", ", @@ -6169,9 +6239,9 @@ ">; \"GET /internal/apm/services/{serviceName}/metadata/details\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/metadata/details\", ", @@ -6201,9 +6271,9 @@ ">; \"POST /internal/apm/services/detailed_statistics\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/services/detailed_statistics\", ", @@ -6309,9 +6379,9 @@ ">; \"GET /internal/apm/services\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services\", ", @@ -6419,9 +6489,9 @@ ">; \"GET /internal/apm/service-map/dependency\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/service-map/dependency\", ", @@ -6479,9 +6549,9 @@ ">; \"GET /internal/apm/service-map/service/{serviceName}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/service-map/service/{serviceName}\", ", @@ -6539,9 +6609,9 @@ ">; \"GET /internal/apm/service-map\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/service-map\", ", @@ -6554,6 +6624,8 @@ "StringC", "; serviceGroup: ", "StringC", + "; kuery: ", + "StringC", "; }>, ", "TypeC", "<{ environment: ", @@ -6597,9 +6669,9 @@ ">; \"GET /internal/apm/observability_overview/has_data\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/observability_overview/has_data\", undefined, ", @@ -6617,9 +6689,9 @@ ">; \"GET /internal/apm/observability_overview\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/observability_overview\", ", @@ -6651,9 +6723,9 @@ ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\", ", @@ -6715,9 +6787,9 @@ ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\", ", @@ -6771,9 +6843,9 @@ ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\", ", @@ -6831,9 +6903,9 @@ ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\", ", @@ -6903,9 +6975,9 @@ ">; \"GET /internal/apm/services/{serviceName}/metrics/nodes\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/metrics/nodes\", ", @@ -6959,9 +7031,9 @@ ">; \"GET /internal/apm/services/{serviceName}/metrics/charts\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/metrics/charts\", ", @@ -7025,9 +7097,9 @@ ">; \"POST /internal/apm/latency/overall_distribution/transactions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/latency/overall_distribution/transactions\", ", @@ -7125,9 +7197,9 @@ ">; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\", ", @@ -7191,9 +7263,9 @@ ">; \"GET /internal/apm/services/{serviceName}/errors/distribution\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/errors/distribution\", ", @@ -7257,9 +7329,9 @@ ">; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\", ", @@ -7321,9 +7393,9 @@ ">; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\", ", @@ -7379,9 +7451,9 @@ ">; \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\", ", @@ -7455,9 +7527,9 @@ ">; \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\", ", @@ -7519,9 +7591,9 @@ ">; \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\", ", @@ -7585,9 +7657,9 @@ ">; \"GET /internal/apm/environments\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/environments\", ", @@ -7627,9 +7699,9 @@ ">; \"GET /internal/apm/data_view/title\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /internal/apm/data_view/title\", undefined, ", @@ -7645,9 +7717,9 @@ ">; \"POST /internal/apm/data_view/static\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/apm/data_view/static\", undefined, ", @@ -7697,9 +7769,9 @@ "description": [], "signature": [ "Observable", - "; autoCreateApmDataView: boolean; serviceMapEnabled: boolean; serviceMapFingerprintBucketSize: number; serviceMapFingerprintGlobalBucketSize: number; serviceMapTraceIdBucketSize: number; serviceMapTraceIdGlobalBucketSize: number; serviceMapMaxTracesPerRequest: number; ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; searchAggregatedTransactions: ", + "; searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; forceSyntheticSource: boolean; }>>" + "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; indices: Readonly<{} & { error: string; metric: string; span: string; transaction: string; onboarding: string; }>; forceSyntheticSource: boolean; }>>" ], "path": "x-pack/plugins/apm/server/types.ts", "deprecated": false, diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index aa844e5b09b98d..36a6809a864a40 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; The user interface for Elastic APM -Contact [APM UI](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. +Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 42 | 0 | 42 | 64 | +| 42 | 0 | 42 | 65 | ## Client diff --git a/api_docs/banners.devdocs.json b/api_docs/banners.devdocs.json index ac8f2e365bb54e..6bd8c557af59f2 100644 --- a/api_docs/banners.devdocs.json +++ b/api_docs/banners.devdocs.json @@ -39,7 +39,7 @@ "label": "placement", "description": [], "signature": [ - "\"top\" | \"disabled\"" + "\"disabled\" | \"top\"" ], "path": "x-pack/plugins/banners/common/types.ts", "deprecated": false, @@ -137,7 +137,7 @@ "label": "BannerPlacement", "description": [], "signature": [ - "\"top\" | \"disabled\"" + "\"disabled\" | \"top\"" ], "path": "x-pack/plugins/banners/common/types.ts", "deprecated": false, diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index e42aa66ba15130..5fcae16afd66a0 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/bfetch.devdocs.json b/api_docs/bfetch.devdocs.json index 204bf7ff97932d..e4920b57c5d7b0 100644 --- a/api_docs/bfetch.devdocs.json +++ b/api_docs/bfetch.devdocs.json @@ -464,7 +464,7 @@ "section": "def-common.StreamingResponseHandler", "text": "StreamingResponseHandler" }, - ", method?: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | undefined, pluginRouter?: ", + ", method?: \"GET\" | \"DELETE\" | \"POST\" | \"PUT\" | undefined, pluginRouter?: ", { "pluginId": "@kbn/core-http-server", "scope": "common", @@ -488,7 +488,7 @@ "section": "def-common.RouteConfigOptions", "text": "RouteConfigOptions" }, - "<\"get\" | \"post\" | \"put\" | \"delete\"> | undefined) => void" + "<\"get\" | \"delete\" | \"post\" | \"put\"> | undefined) => void" ], "path": "src/plugins/bfetch/server/plugin.ts", "deprecated": false, @@ -556,7 +556,7 @@ "label": "method", "description": [], "signature": [ - "\"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | undefined" + "\"GET\" | \"DELETE\" | \"POST\" | \"PUT\" | undefined" ], "path": "src/plugins/bfetch/server/plugin.ts", "deprecated": false, @@ -608,7 +608,7 @@ "section": "def-common.RouteConfigOptions", "text": "RouteConfigOptions" }, - "<\"get\" | \"post\" | \"put\" | \"delete\"> | undefined" + "<\"get\" | \"delete\" | \"post\" | \"put\"> | undefined" ], "path": "src/plugins/bfetch/server/plugin.ts", "deprecated": false, diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index a9089191525aa7..9cb0a9d438e5bd 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index 507a20dfa46acd..d5b55fc41918b3 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; Adds Canvas application to Kibana -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/cases.devdocs.json b/api_docs/cases.devdocs.json index cbeaef4fdcb105..58b012ae5dfd1a 100644 --- a/api_docs/cases.devdocs.json +++ b/api_docs/cases.devdocs.json @@ -565,7 +565,7 @@ "signature": [ "{ features?: Partial<", "CasesContextFeatures", - "> | undefined; onClose?: (() => void) | undefined; basePath?: string | undefined; owner: string[]; permissions: ", + "> | undefined; owner: string[]; permissions: ", { "pluginId": "cases", "scope": "common", @@ -573,7 +573,7 @@ "section": "def-common.CasesPermissions", "text": "CasesPermissions" }, - "; releasePhase?: ", + "; basePath?: string | undefined; releasePhase?: ", "ReleasePhase", " | undefined; hiddenStatuses?: ", "CaseStatusWithAllStatus", @@ -585,7 +585,7 @@ "section": "def-common.Case", "text": "Case" }, - " | undefined) => void) | undefined; }" + " | undefined) => void) | undefined; onClose?: (() => void) | undefined; }" ], "path": "x-pack/plugins/cases/public/client/ui/get_all_cases_selector_modal.tsx", "deprecated": false, @@ -602,7 +602,7 @@ "signature": [ "{ features?: Partial<", "CasesContextFeatures", - "> | undefined; basePath?: string | undefined; owner: string[]; permissions: ", + "> | undefined; owner: string[]; permissions: ", { "pluginId": "cases", "scope": "common", @@ -626,7 +626,7 @@ }, "> | undefined; timelineIntegration?: ", "CasesTimelineIntegration", - " | undefined; releasePhase?: ", + " | undefined; basePath?: string | undefined; releasePhase?: ", "ReleasePhase", " | undefined; }" ], @@ -645,7 +645,7 @@ "signature": [ "{ features?: Partial<", "CasesContextFeatures", - "> | undefined; onClose?: (() => void) | undefined; basePath?: string | undefined; owner: string[]; permissions: ", + "> | undefined; owner: string[]; permissions: ", { "pluginId": "cases", "scope": "common", @@ -653,9 +653,9 @@ "section": "def-common.CasesPermissions", "text": "CasesPermissions" }, - "; releasePhase?: ", + "; basePath?: string | undefined; releasePhase?: ", "ReleasePhase", - " | undefined; afterCaseCreated?: ((theCase: ", + " | undefined; onClose?: (() => void) | undefined; afterCaseCreated?: ((theCase: ", { "pluginId": "cases", "scope": "common", @@ -714,7 +714,7 @@ "signature": [ "{ features?: Partial<", "CasesContextFeatures", - "> | undefined; basePath?: string | undefined; owner: string[]; permissions: ", + "> | undefined; owner: string[]; permissions: ", { "pluginId": "cases", "scope": "common", @@ -722,7 +722,7 @@ "section": "def-common.CasesPermissions", "text": "CasesPermissions" }, - "; releasePhase?: ", + "; basePath?: string | undefined; releasePhase?: ", "ReleasePhase", " | undefined; maxCasesToShow: number; }" ], diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 2d8551887ea6bc..bcd1b98325f690 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; The Case management system in Kibana -Contact [ResponseOps](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index d0d2e02408c125..592897ece19d66 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 36afca8e9eaa3e..bcd015fbbc2a8e 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/cloud_chat.mdx b/api_docs/cloud_chat.mdx index 388ea70a265d46..e585b0114ad08a 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; Chat available on Elastic Cloud deployments for quicker assistance. -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index b5cc444de5929f..9c3a4362afddd9 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; Static migration page where self-managed users can see text/copy about migrating to Elastic Cloud -Contact [Platform Onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) for questions regarding this plugin. +Contact [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 709f926ca99470..5d63726e6089f1 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; Defend for Containers -Contact [Cloud Native Integrations](https://github.com/orgs/elastic/teams/sec-cloudnative-integrations) for questions regarding this plugin. +Contact [@elastic/sec-cloudnative-integrations](https://github.com/orgs/elastic/teams/sec-cloudnative-integrations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index a595af1bdc56d3..01ecab5ec0f4db 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; Provides the necessary APIs to implement A/B testing scenarios, fetching the variations in configuration and reporting back metrics to track conversion rates of the experiments. -Contact [Kibana Core](https://github.com/orgs/elastic/teams/@elastic/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index 2bfbb41b0a5804..67f06aaea6d47b 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; The cloud security posture plugin -Contact [Cloud Security Posture](https://github.com/orgs/elastic/teams/cloud-posture-security) for questions regarding this plugin. +Contact [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/console.mdx b/api_docs/console.mdx index a74023abe5093d..9bdbaa509bde99 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; -Contact [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/content_management.devdocs.json b/api_docs/content_management.devdocs.json index 338c6568fdb4da..e745837e88bc3d 100644 --- a/api_docs/content_management.devdocs.json +++ b/api_docs/content_management.devdocs.json @@ -17,7 +17,22 @@ "path": "src/plugins/content_management/public/types.ts", "deprecated": false, "trackAdoption": false, - "children": [], + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-public.ContentManagementPublicStart.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "ContentClient" + ], + "path": "src/plugins/content_management/public/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], "lifecycle": "start", "initialIsOpen": true } @@ -61,7 +76,192 @@ "common": { "classes": [], "functions": [], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.CreateIn", + "type": "Interface", + "tags": [], + "label": "CreateIn", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.CreateIn", + "text": "CreateIn" + }, + "" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.CreateIn.contentType", + "type": "Uncategorized", + "tags": [], + "label": "contentType", + "description": [], + "signature": [ + "T" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.CreateIn.data", + "type": "Uncategorized", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "Data" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.CreateIn.options", + "type": "Uncategorized", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "Options | undefined" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.GetIn", + "type": "Interface", + "tags": [], + "label": "GetIn", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.GetIn", + "text": "GetIn" + }, + "" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.GetIn.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.GetIn.contentType", + "type": "string", + "tags": [], + "label": "contentType", + "description": [], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.GetIn.options", + "type": "Uncategorized", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "Options | undefined" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.ProcedureSchemas", + "type": "Interface", + "tags": [], + "label": "ProcedureSchemas", + "description": [], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.ProcedureSchemas.in", + "type": "CompoundType", + "tags": [], + "label": "in", + "description": [], + "signature": [ + "false | ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + " | undefined" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.ProcedureSchemas.out", + "type": "CompoundType", + "tags": [], + "label": "out", + "description": [], + "signature": [ + "false | ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + " | undefined" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], "enums": [], "misc": [ { @@ -93,8 +293,93 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.ProcedureName", + "type": "Type", + "tags": [], + "label": "ProcedureName", + "description": [], + "signature": [ + "\"create\" | \"get\"" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], - "objects": [] + "objects": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.procedureNames", + "type": "Object", + "tags": [], + "label": "procedureNames", + "description": [], + "signature": [ + "readonly [\"get\", \"create\"]" + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.schemas", + "type": "Object", + "tags": [], + "label": "schemas", + "description": [], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.schemas.get", + "type": "Object", + "tags": [], + "label": "get", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.ProcedureSchemas", + "text": "ProcedureSchemas" + } + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.schemas.create", + "type": "Object", + "tags": [], + "label": "create", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.ProcedureSchemas", + "text": "ProcedureSchemas" + } + ], + "path": "src/plugins/content_management/common/rpc.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ] } } \ No newline at end of file diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 42c25c9b8cab30..9e890c09c5c896 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; Content management app -Contact [@elastic/kibana-global-experience](https://github.com/orgs/elastic/teams/@elastic/kibana-global-experience) for questions regarding this plugin. +Contact [@elastic/kibana-global-experience](https://github.com/orgs/elastic/teams/kibana-global-experience) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 5 | 0 | 5 | 0 | +| 22 | 0 | 22 | 1 | ## Client @@ -38,6 +38,12 @@ Contact [@elastic/kibana-global-experience](https://github.com/orgs/elastic/team ## Common +### Objects + + +### Interfaces + + ### Consts, variables and types diff --git a/api_docs/controls.devdocs.json b/api_docs/controls.devdocs.json index dcb9d22fa212eb..fa83ba64ab654d 100644 --- a/api_docs/controls.devdocs.json +++ b/api_docs/controls.devdocs.json @@ -1695,6 +1695,38 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.onFatalError", + "type": "Function", + "tags": [], + "label": "onFatalError", + "description": [], + "signature": [ + "(e: Error) => void" + ], + "path": "src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.onFatalError.$1", + "type": "Object", + "tags": [], + "label": "e", + "description": [], + "signature": [ + "Error" + ], + "path": "src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "controls", "id": "def-public.OptionsListEmbeddable.destroy", @@ -4337,10 +4369,10 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableInput.hideExclude", + "id": "def-public.OptionsListEmbeddableInput.hideActionBar", "type": "CompoundType", "tags": [], - "label": "hideExclude", + "label": "hideActionBar", "description": [], "signature": [ "boolean | undefined" @@ -4351,10 +4383,10 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableInput.hideExists", + "id": "def-public.OptionsListEmbeddableInput.hideExclude", "type": "CompoundType", "tags": [], - "label": "hideExists", + "label": "hideExclude", "description": [], "signature": [ "boolean | undefined" @@ -4365,10 +4397,10 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableInput.hideSort", + "id": "def-public.OptionsListEmbeddableInput.hideExists", "type": "CompoundType", "tags": [], - "label": "hideSort", + "label": "hideExists", "description": [], "signature": [ "boolean | undefined" @@ -4379,10 +4411,10 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableInput.hideActionBar", + "id": "def-public.OptionsListEmbeddableInput.hideSort", "type": "CompoundType", "tags": [], - "label": "hideActionBar", + "label": "hideSort", "description": [], "signature": [ "boolean | undefined" @@ -4833,7 +4865,7 @@ "ControlStyle", " | undefined; ignoreParentSettings?: ", "ParentIgnoreSettings", - " | undefined; } & { fieldName: string; parentFieldName?: string | undefined; childFieldName?: string | undefined; dataViewId: string; }" + " | undefined; } & { fieldName: string; dataViewId: string; }" ], "path": "src/plugins/controls/common/types.ts", "deprecated": false, @@ -5947,10 +5979,10 @@ }, { "parentPluginId": "controls", - "id": "def-common.OptionsListEmbeddableInput.hideExclude", + "id": "def-common.OptionsListEmbeddableInput.hideActionBar", "type": "CompoundType", "tags": [], - "label": "hideExclude", + "label": "hideActionBar", "description": [], "signature": [ "boolean | undefined" @@ -5961,10 +5993,10 @@ }, { "parentPluginId": "controls", - "id": "def-common.OptionsListEmbeddableInput.hideExists", + "id": "def-common.OptionsListEmbeddableInput.hideExclude", "type": "CompoundType", "tags": [], - "label": "hideExists", + "label": "hideExclude", "description": [], "signature": [ "boolean | undefined" @@ -5975,10 +6007,10 @@ }, { "parentPluginId": "controls", - "id": "def-common.OptionsListEmbeddableInput.hideSort", + "id": "def-common.OptionsListEmbeddableInput.hideExists", "type": "CompoundType", "tags": [], - "label": "hideSort", + "label": "hideExists", "description": [], "signature": [ "boolean | undefined" @@ -5989,10 +6021,10 @@ }, { "parentPluginId": "controls", - "id": "def-common.OptionsListEmbeddableInput.hideActionBar", + "id": "def-common.OptionsListEmbeddableInput.hideSort", "type": "CompoundType", "tags": [], - "label": "hideActionBar", + "label": "hideSort", "description": [], "signature": [ "boolean | undefined" diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 708a14c08b8b09..33b1de5640f7f4 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 268 | 0 | 264 | 9 | +| 270 | 0 | 266 | 9 | ## Client diff --git a/api_docs/core.devdocs.json b/api_docs/core.devdocs.json deleted file mode 100644 index acff52ac225858..00000000000000 --- a/api_docs/core.devdocs.json +++ /dev/null @@ -1,72413 +0,0 @@ -{ - "id": "core", - "client": { - "classes": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi", - "type": "Class", - "tags": [], - "label": "ToastsApi", - "description": [ - "\nMethods for adding and removing global toast messages." - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser-internal", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserInternalPluginApi", - "section": "def-common.ToastsApi", - "text": "ToastsApi" - }, - " implements ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.IToasts", - "text": "IToasts" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.Unnamed.$1", - "type": "Object", - "tags": [], - "label": "deps", - "description": [], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.Unnamed.$1.uiSettings", - "type": "Object", - "tags": [], - "label": "uiSettings", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-browser", - "scope": "common", - "docId": "kibKbnCoreUiSettingsBrowserPluginApi", - "section": "def-common.IUiSettingsClient", - "text": "IUiSettingsClient" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.get$", - "type": "Function", - "tags": [], - "label": "get$", - "description": [ - "Observable of the toast messages to show to the user." - ], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - }, - "[]>" - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.add", - "type": "Function", - "tags": [], - "label": "add", - "description": [ - "\nAdds a new toast to current array of toast.\n" - ], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ") => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.add.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [ - "- a {@link ToastInput }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "a {@link Toast }" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.remove", - "type": "Function", - "tags": [], - "label": "remove", - "description": [ - "\nRemoves a toast from the current array of toasts if present." - ], - "signature": [ - "(toastOrId: string | ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - }, - ") => void" - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.remove.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrId", - "description": [ - "- a {@link Toast } returned by {@link ToastsApi.add } or its id" - ], - "signature": [ - "string | ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addInfo", - "type": "Function", - "tags": [], - "label": "addInfo", - "description": [ - "\nAdds a new toast pre-configured with the info color and info icon.\n" - ], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ", options?: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addInfo.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [ - "- a {@link ToastInput }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addInfo.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- a {@link ToastOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - }, - " | undefined" - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "a {@link Toast }" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addSuccess", - "type": "Function", - "tags": [], - "label": "addSuccess", - "description": [ - "\nAdds a new toast pre-configured with the success color and check icon.\n" - ], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ", options?: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addSuccess.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [ - "- a {@link ToastInput }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addSuccess.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- a {@link ToastOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - }, - " | undefined" - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "a {@link Toast }" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addWarning", - "type": "Function", - "tags": [], - "label": "addWarning", - "description": [ - "\nAdds a new toast pre-configured with the warning color and help icon.\n" - ], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ", options?: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addWarning.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [ - "- a {@link ToastInput }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addWarning.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- a {@link ToastOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - }, - " | undefined" - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "a {@link Toast }" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addDanger", - "type": "Function", - "tags": [], - "label": "addDanger", - "description": [ - "\nAdds a new toast pre-configured with the danger color and alert icon.\n" - ], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ", options?: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addDanger.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [ - "- a {@link ToastInput }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addDanger.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- a {@link ToastOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - }, - " | undefined" - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "a {@link Toast }" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addError", - "type": "Function", - "tags": [], - "label": "addError", - "description": [ - "\nAdds a new toast that displays an exception message with a button to open the full stacktrace in a modal.\n" - ], - "signature": [ - "(error: Error, options: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ErrorToastOptions", - "text": "ErrorToastOptions" - }, - ") => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [ - "- an `Error` instance." - ], - "signature": [ - "Error" - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsApi.addError.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- {@link ErrorToastOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ErrorToastOptions", - "text": "ErrorToastOptions" - } - ], - "path": "packages/core/notifications/core-notifications-browser-internal/src/toasts/toasts_api.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "a {@link Toast }" - ] - } - ], - "initialIsOpen": false - } - ], - "functions": [], - "interfaces": [ - { - "parentPluginId": "core", - "id": "def-public.App", - "type": "Interface", - "tags": [], - "label": "App", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.App", - "text": "App" - }, - " extends ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppNavOptions", - "text": "AppNavOptions" - } - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.App.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\nThe unique identifier of the application.\n\nCan only be composed of alphanumeric characters, `-`, `:` and `_`" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.title", - "type": "string", - "tags": [], - "label": "title", - "description": [ - "\nThe title of the application." - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.category", - "type": "Object", - "tags": [], - "label": "category", - "description": [ - "\nThe category definition of the product\nSee {@link AppCategory}\nSee DEFAULT_APP_CATEGORIES for more reference" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-common", - "scope": "common", - "docId": "kibKbnCoreApplicationCommonPluginApi", - "section": "def-common.AppCategory", - "text": "AppCategory" - }, - " | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.status", - "type": "CompoundType", - "tags": [], - "label": "status", - "description": [ - "\nThe initial status of the application.\nDefaulting to `accessible`" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppStatus", - "text": "AppStatus" - }, - " | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.navLinkStatus", - "type": "CompoundType", - "tags": [], - "label": "navLinkStatus", - "description": [ - "\nThe initial status of the application's navLink.\nDefaulting to `visible` if `status` is `accessible` and `hidden` if status is `inaccessible`\nSee {@link AppNavLinkStatus}" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppNavLinkStatus", - "text": "AppNavLinkStatus" - }, - " | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.searchable", - "type": "CompoundType", - "tags": [], - "label": "searchable", - "description": [ - "\nThe initial flag to determine if the application is searchable in the global search.\nDefaulting to `true` if `navLinkStatus` is `visible` or omitted." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.defaultPath", - "type": "string", - "tags": [], - "label": "defaultPath", - "description": [ - "\nAllow to define the default path a user should be directed to when navigating to the app.\nWhen defined, this value will be used as a default for the `path` option when calling {@link ApplicationStart.navigateToApp | navigateToApp}`,\nand will also be appended to the {@link ChromeNavLink | application navLink} in the navigation bar." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.updater$", - "type": "Object", - "tags": [], - "label": "updater$", - "description": [ - "\nAn {@link AppUpdater} observable that can be used to update the application {@link AppUpdatableFields} at runtime.\n" - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppUpdater", - "text": "AppUpdater" - }, - "> | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.capabilities", - "type": "Object", - "tags": [], - "label": "capabilities", - "description": [ - "\nCustom capabilities defined by the app." - ], - "signature": [ - "Partial<", - { - "pluginId": "@kbn/core-capabilities-common", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesCommonPluginApi", - "section": "def-common.Capabilities", - "text": "Capabilities" - }, - "> | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.chromeless", - "type": "CompoundType", - "tags": [], - "label": "chromeless", - "description": [ - "\nHide the UI chrome when the application is mounted. Defaults to `false`.\nTakes precedence over chrome service visibility settings." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.mount", - "type": "Function", - "tags": [], - "label": "mount", - "description": [ - "\nA mount function called when the user navigates to this app's route." - ], - "signature": [ - "(params: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppMountParameters", - "text": "AppMountParameters" - }, - ") => ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppUnmount", - "text": "AppUnmount" - }, - " | Promise<", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppUnmount", - "text": "AppUnmount" - }, - ">" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.App.mount.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppMountParameters", - "text": "AppMountParameters" - }, - "" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.App.appRoute", - "type": "string", - "tags": [], - "label": "appRoute", - "description": [ - "\nOverride the application's routing path from `/app/${id}`.\nMust be unique across registered applications. Should not include the\nbase path from HTTP." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.exactRoute", - "type": "CompoundType", - "tags": [], - "label": "exactRoute", - "description": [ - "\nIf set to true, the application's route will only be checked against an exact match. Defaults to `false`.\n" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.keywords", - "type": "Array", - "tags": [], - "label": "keywords", - "description": [ - "Optional keywords to match with in deep links search. Omit if this part of the hierarchy does not have a page URL." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.App.deepLinks", - "type": "Array", - "tags": [], - "label": "deepLinks", - "description": [ - "\nInput type for registering secondary in-app locations for an application.\n\nDeep links must include at least one of `path` or `deepLinks`. A deep link that does not have a `path`\nrepresents a topological level in the application's hierarchy, but does not have a destination URL that is\nuser-accessible.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppDeepLink", - "text": "AppDeepLink" - }, - "[] | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppCategory", - "type": "Interface", - "tags": [], - "label": "AppCategory", - "description": [ - "\nA category definition for nav links to know where to sort them in the left hand nav" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppCategory.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\nUnique identifier for the categories" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppCategory.label", - "type": "string", - "tags": [], - "label": "label", - "description": [ - "\nLabel used for category name.\nAlso used as aria-label if one isn't set." - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppCategory.ariaLabel", - "type": "string", - "tags": [], - "label": "ariaLabel", - "description": [ - "\nIf the visual label isn't appropriate for screen readers,\ncan override it here" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppCategory.order", - "type": "number", - "tags": [], - "label": "order", - "description": [ - "\nThe order that categories will be sorted in\nPrefer large steps between categories to allow for further editing\n(Default categories are in steps of 1000)" - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppCategory.euiIconType", - "type": "string", - "tags": [], - "label": "euiIconType", - "description": [ - "\nDefine an icon to be used for the category\nIf the category is only 1 item, and no icon is defined, will default to the product icon\nDefaults to initials if no icon is defined" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveConfirmAction", - "type": "Interface", - "tags": [], - "label": "AppLeaveConfirmAction", - "description": [ - "\nAction to return from a {@link AppLeaveHandler} to show a confirmation\nmessage when trying to leave an application.\n\nSee {@link AppLeaveActionFactory}\n" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppLeaveConfirmAction.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveActionType", - "text": "AppLeaveActionType" - }, - ".confirm" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveConfirmAction.text", - "type": "string", - "tags": [], - "label": "text", - "description": [], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveConfirmAction.title", - "type": "string", - "tags": [], - "label": "title", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveConfirmAction.confirmButtonText", - "type": "string", - "tags": [], - "label": "confirmButtonText", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveConfirmAction.buttonColor", - "type": "CompoundType", - "tags": [], - "label": "buttonColor", - "description": [], - "signature": [ - "EuiButtonColor", - " | undefined" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveConfirmAction.callback", - "type": "Function", - "tags": [], - "label": "callback", - "description": [], - "signature": [ - "(() => void) | undefined" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveDefaultAction", - "type": "Interface", - "tags": [], - "label": "AppLeaveDefaultAction", - "description": [ - "\nAction to return from a {@link AppLeaveHandler} to execute the default\nbehaviour when leaving the application.\n\nSee {@link AppLeaveActionFactory}\n" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppLeaveDefaultAction.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveActionType", - "text": "AppLeaveActionType" - }, - ".default" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationSetup", - "type": "Interface", - "tags": [], - "label": "ApplicationSetup", - "description": [], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ApplicationSetup.register", - "type": "Function", - "tags": [], - "label": "register", - "description": [ - "\nRegister an mountable application to the system." - ], - "signature": [ - "(app: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.App", - "text": "App" - }, - ") => void" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ApplicationSetup.register.$1", - "type": "Object", - "tags": [], - "label": "app", - "description": [ - "- an {@link App }" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.App", - "text": "App" - }, - "" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationSetup.registerAppUpdater", - "type": "Function", - "tags": [], - "label": "registerAppUpdater", - "description": [ - "\nRegister an application updater that can be used to change the {@link AppUpdatableFields} fields\nof all applications at runtime.\n\nThis is meant to be used by plugins that needs to updates the whole list of applications.\nTo only updates a specific application, use the `updater$` property of the registered application instead.\n" - ], - "signature": [ - "(appUpdater$: ", - "Observable", - "<", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppUpdater", - "text": "AppUpdater" - }, - ">) => void" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ApplicationSetup.registerAppUpdater.$1", - "type": "Object", - "tags": [], - "label": "appUpdater$", - "description": [], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppUpdater", - "text": "AppUpdater" - }, - ">" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart", - "type": "Interface", - "tags": [], - "label": "ApplicationStart", - "description": [], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.capabilities", - "type": "Object", - "tags": [], - "label": "capabilities", - "description": [ - "\nGets the read-only capabilities." - ], - "signature": [ - "{ readonly [x: string]: Readonly<{ [x: string]: boolean | Readonly<{ [x: string]: boolean; }>; }>; readonly navLinks: Readonly<{ [x: string]: boolean; }>; readonly management: Readonly<{ [x: string]: Readonly<{ [x: string]: boolean; }>; }>; readonly catalogue: Readonly<{ [x: string]: boolean; }>; }" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.applications$", - "type": "Object", - "tags": [], - "label": "applications$", - "description": [ - "\nObservable emitting the list of currently registered apps and their associated status.\n" - ], - "signature": [ - "Observable", - ">" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.navigateToApp", - "type": "Function", - "tags": [], - "label": "navigateToApp", - "description": [ - "\nNavigate to a given app\n" - ], - "signature": [ - "(appId: string, options?: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.NavigateToAppOptions", - "text": "NavigateToAppOptions" - }, - " | undefined) => Promise" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.navigateToApp.$1", - "type": "string", - "tags": [], - "label": "appId", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.navigateToApp.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- navigation options" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.NavigateToAppOptions", - "text": "NavigateToAppOptions" - }, - " | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.navigateToUrl", - "type": "Function", - "tags": [], - "label": "navigateToUrl", - "description": [ - "\nNavigate to given URL in a SPA friendly way when possible (when the URL will redirect to a valid application\nwithin the current basePath).\n\nThe method resolves pathnames the same way browsers do when resolving a `` value. The provided `url` can be:\n- an absolute URL\n- an absolute path\n- a path relative to the current URL (window.location.href)\n\nIf all these criteria are true for the given URL:\n- (only for absolute URLs) The origin of the URL matches the origin of the browser's current location\n- The resolved pathname of the provided URL/path starts with the current basePath (eg. /mybasepath/s/my-space)\n- The pathname segment after the basePath matches any known application route (eg. /app// or any application's `appRoute` configuration)\n\nThen a SPA navigation will be performed using `navigateToApp` using the corresponding application and path.\nOtherwise, fallback to a full page reload to navigate to the url using `window.location.assign`.\n" - ], - "signature": [ - "(url: string, options?: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.NavigateToUrlOptions", - "text": "NavigateToUrlOptions" - }, - " | undefined) => Promise" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.navigateToUrl.$1", - "type": "string", - "tags": [], - "label": "url", - "description": [ - "- an absolute URL, an absolute path or a relative path, to navigate to." - ], - "signature": [ - "string" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.navigateToUrl.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- navigation options" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.NavigateToUrlOptions", - "text": "NavigateToUrlOptions" - }, - " | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.getUrlForApp", - "type": "Function", - "tags": [], - "label": "getUrlForApp", - "description": [ - "\nReturns the absolute path (or URL) to a given app, including the global base path.\n\nBy default, it returns the absolute path of the application (e.g `/basePath/app/my-app`).\nUse the `absolute` option to generate an absolute url instead (e.g `http://host:port/basePath/app/my-app`)\n\nNote that when generating absolute urls, the origin (protocol, host and port) are determined from the browser's current location.\n" - ], - "signature": [ - "(appId: string, options?: { path?: string | undefined; absolute?: boolean | undefined; deepLinkId?: string | undefined; } | undefined) => string" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.getUrlForApp.$1", - "type": "string", - "tags": [], - "label": "appId", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.getUrlForApp.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.getUrlForApp.$2.path", - "type": "string", - "tags": [], - "label": "path", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.getUrlForApp.$2.absolute", - "type": "CompoundType", - "tags": [], - "label": "absolute", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.getUrlForApp.$2.deepLinkId", - "type": "string", - "tags": [], - "label": "deepLinkId", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ApplicationStart.currentAppId$", - "type": "Object", - "tags": [], - "label": "currentAppId$", - "description": [ - "\nAn observable that emits the current application id and each subsequent id update." - ], - "signature": [ - "Observable", - "" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters", - "type": "Interface", - "tags": [], - "label": "AppMountParameters", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppMountParameters", - "text": "AppMountParameters" - }, - "" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters.element", - "type": "Object", - "tags": [], - "label": "element", - "description": [ - "\nThe container element to render the application into." - ], - "signature": [ - "HTMLElement" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters.history", - "type": "Object", - "tags": [], - "label": "history", - "description": [ - "\nA scoped history instance for your application. Should be used to wire up\nyour applications Router.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.ScopedHistory", - "text": "ScopedHistory" - }, - "" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters.appBasePath", - "type": "string", - "tags": [ - "deprecated" - ], - "label": "appBasePath", - "description": [ - "\nThe route path for configuring navigation to the application.\nThis string should not include the base path from HTTP.\n" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": true, - "removeBy": "8.8.0", - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-application-browser-internal", - "path": "packages/core/application/core-application-browser-internal/src/ui/app_container.tsx" - }, - { - "plugin": "@kbn/core-application-browser-mocks", - "path": "packages/core/application/core-application-browser-mocks/src/application_service.mock.ts" - }, - { - "plugin": "management", - "path": "src/plugins/management/public/application.tsx" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/public/applications/integrations/index.tsx" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/authentication/logout/logout_app.test.ts" - }, - { - "plugin": "kibanaOverview", - "path": "src/plugins/kibana_overview/public/application.tsx" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters.onAppLeave", - "type": "Function", - "tags": [], - "label": "onAppLeave", - "description": [ - "\nA function that can be used to register a handler that will be called\nwhen the user is leaving the current application, allowing to\nprompt a confirmation message before actually changing the page.\n\nThis will be called either when the user goes to another application, or when\ntrying to close the tab or manually changing the url.\n\n" - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveHandler", - "text": "AppLeaveHandler" - }, - ") => void" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters.onAppLeave.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveHandler", - "text": "AppLeaveHandler" - } - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters.setHeaderActionMenu", - "type": "Function", - "tags": [], - "label": "setHeaderActionMenu", - "description": [ - "\nA function that can be used to set the mount point used to populate the application action container\nin the chrome header.\n\nCalling the handler multiple time will erase the current content of the action menu with the mount from the latest call.\nCalling the handler with `undefined` will unmount the current mount point.\nCalling the handler after the application has been unmounted will have no effect.\n" - ], - "signature": [ - "(menuMount: ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - " | undefined) => void" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters.setHeaderActionMenu.$1", - "type": "Function", - "tags": [], - "label": "menuMount", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - " | undefined" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.AppMountParameters.theme$", - "type": "Object", - "tags": [], - "label": "theme$", - "description": [ - "\nAn observable emitting {@link CoreTheme | Core's theme}.\nShould be used when mounting the application to include theme information.\n" - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-theme-browser", - "scope": "common", - "docId": "kibKbnCoreThemeBrowserPluginApi", - "section": "def-common.CoreTheme", - "text": "CoreTheme" - }, - ">" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppNavOptions", - "type": "Interface", - "tags": [], - "label": "AppNavOptions", - "description": [ - "\nApp navigation menu options" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppNavOptions.order", - "type": "number", - "tags": [], - "label": "order", - "description": [ - "\nAn ordinal used to sort nav links relative to one another for display." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppNavOptions.tooltip", - "type": "string", - "tags": [], - "label": "tooltip", - "description": [ - "\nA tooltip shown when hovering over app link." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppNavOptions.euiIconType", - "type": "string", - "tags": [], - "label": "euiIconType", - "description": [ - "\nA EUI iconType that will be used for the app's icon. This icon\ntakes precedence over the `icon` property." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppNavOptions.icon", - "type": "string", - "tags": [], - "label": "icon", - "description": [ - "\nA URL to an image file used as an icon. Used as a fallback\nif `euiIconType` is not provided." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.Capabilities", - "type": "Interface", - "tags": [], - "label": "Capabilities", - "description": [ - "\nThe read-only set of capabilities available for the current UI session.\nCapabilities are simple key-value pairs of (string, boolean), where the string denotes the capability ID,\nand the boolean is a flag indicating if the capability is enabled or disabled.\n" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.Capabilities.navLinks", - "type": "Object", - "tags": [], - "label": "navLinks", - "description": [ - "Navigation link capabilities." - ], - "signature": [ - "{ [x: string]: boolean; }" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.Capabilities.management", - "type": "Object", - "tags": [], - "label": "management", - "description": [ - "Management section capabilities." - ], - "signature": [ - "{ [sectionId: string]: Record; }" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.Capabilities.catalogue", - "type": "Object", - "tags": [], - "label": "catalogue", - "description": [ - "Catalogue capabilities. Catalogue entries drive the visibility of the Kibana homepage options." - ], - "signature": [ - "{ [x: string]: boolean; }" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.Capabilities.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[key: string]: Record>", - "description": [ - "Custom capabilities, registered by plugins." - ], - "signature": [ - "[key: string]: Record>" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeBadge", - "type": "Interface", - "tags": [], - "label": "ChromeBadge", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeBadge.text", - "type": "string", - "tags": [], - "label": "text", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeBadge.tooltip", - "type": "string", - "tags": [], - "label": "tooltip", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeBadge.iconType", - "type": "CompoundType", - "tags": [], - "label": "iconType", - "description": [], - "signature": [ - "IconType", - " | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeDocTitle", - "type": "Interface", - "tags": [], - "label": "ChromeDocTitle", - "description": [ - "\nAPIs for accessing and updating the document title.\n" - ], - "path": "packages/core/chrome/core-chrome-browser/src/doc_title.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeDocTitle.change", - "type": "Function", - "tags": [], - "label": "change", - "description": [ - "\nChanges the current document title.\n" - ], - "signature": [ - "(newTitle: string | string[]) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/doc_title.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeDocTitle.change.$1", - "type": "CompoundType", - "tags": [], - "label": "newTitle", - "description": [ - "The new title to set, either a string or string array" - ], - "signature": [ - "string | string[]" - ], - "path": "packages/core/chrome/core-chrome-browser/src/doc_title.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeDocTitle.reset", - "type": "Function", - "tags": [], - "label": "reset", - "description": [ - "\nResets the document title to it's initial value.\n(meaning the one present in the title meta at application load.)" - ], - "signature": [ - "() => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/doc_title.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtension", - "type": "Interface", - "tags": [], - "label": "ChromeHelpExtension", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtension.appName", - "type": "string", - "tags": [], - "label": "appName", - "description": [ - "\nProvide your plugin's name to create a header for separation" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtension.links", - "type": "Array", - "tags": [], - "label": "links", - "description": [ - "\nCreates unified links for sending users to documentation, GitHub, Discuss, or a custom link/button" - ], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuLink", - "text": "ChromeHelpExtensionMenuLink" - }, - "[] | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtension.content", - "type": "Function", - "tags": [], - "label": "content", - "description": [ - "\nCustom content to occur below the list of links" - ], - "signature": [ - "((element: HTMLDivElement, menuActions: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpMenuActions", - "text": "ChromeHelpMenuActions" - }, - ") => () => void) | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtension.content.$1", - "type": "Object", - "tags": [], - "label": "element", - "description": [], - "signature": [ - "HTMLDivElement" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtension.content.$2", - "type": "Object", - "tags": [], - "label": "menuActions", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpMenuActions", - "text": "ChromeHelpMenuActions" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuCustomLink", - "type": "Interface", - "tags": [], - "label": "ChromeHelpExtensionMenuCustomLink", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuCustomLink", - "text": "ChromeHelpExtensionMenuCustomLink" - }, - " extends ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionLinkBase", - "text": "ChromeHelpExtensionLinkBase" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuCustomLink.linkType", - "type": "string", - "tags": [], - "label": "linkType", - "description": [ - "\nExtend EuiButtonEmpty to provide extra functionality" - ], - "signature": [ - "\"custom\"" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuCustomLink.href", - "type": "string", - "tags": [], - "label": "href", - "description": [ - "\nURL of the link" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuCustomLink.content", - "type": "CompoundType", - "tags": [], - "label": "content", - "description": [ - "\nContent of the button (in lieu of `children`)" - ], - "signature": [ - "boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuCustomLink.external", - "type": "CompoundType", - "tags": [], - "label": "external", - "description": [ - "\nOpens link in new tab" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuDiscussLink", - "type": "Interface", - "tags": [], - "label": "ChromeHelpExtensionMenuDiscussLink", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuDiscussLink", - "text": "ChromeHelpExtensionMenuDiscussLink" - }, - " extends ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionLinkBase", - "text": "ChromeHelpExtensionLinkBase" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuDiscussLink.linkType", - "type": "string", - "tags": [], - "label": "linkType", - "description": [ - "\nCreates a generic give feedback link with comment icon" - ], - "signature": [ - "\"discuss\"" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuDiscussLink.href", - "type": "string", - "tags": [], - "label": "href", - "description": [ - "\nURL to discuss page.\ni.e. `https://discuss.elastic.co/c/${appName}`" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuDocumentationLink", - "type": "Interface", - "tags": [], - "label": "ChromeHelpExtensionMenuDocumentationLink", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuDocumentationLink", - "text": "ChromeHelpExtensionMenuDocumentationLink" - }, - " extends ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionLinkBase", - "text": "ChromeHelpExtensionLinkBase" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuDocumentationLink.linkType", - "type": "string", - "tags": [], - "label": "linkType", - "description": [ - "\nCreates a deep-link to app-specific documentation" - ], - "signature": [ - "\"documentation\"" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuDocumentationLink.href", - "type": "string", - "tags": [], - "label": "href", - "description": [ - "\nURL to documentation page.\ni.e. `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/${appName}.html`," - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuGitHubLink", - "type": "Interface", - "tags": [], - "label": "ChromeHelpExtensionMenuGitHubLink", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuGitHubLink", - "text": "ChromeHelpExtensionMenuGitHubLink" - }, - " extends ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionLinkBase", - "text": "ChromeHelpExtensionLinkBase" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuGitHubLink.linkType", - "type": "string", - "tags": [], - "label": "linkType", - "description": [ - "\nCreates a link to a new github issue in the Kibana repo" - ], - "signature": [ - "\"github\"" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuGitHubLink.labels", - "type": "Array", - "tags": [], - "label": "labels", - "description": [ - "\nInclude at least one app-specific label to be applied to the new github issue" - ], - "signature": [ - "string[]" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuGitHubLink.title", - "type": "string", - "tags": [], - "label": "title", - "description": [ - "\nProvides initial text for the title of the issue" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpMenuActions", - "type": "Interface", - "tags": [], - "label": "ChromeHelpMenuActions", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpMenuActions.hideHelpMenu", - "type": "Function", - "tags": [], - "label": "hideHelpMenu", - "description": [], - "signature": [ - "() => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControl", - "type": "Interface", - "tags": [], - "label": "ChromeNavControl", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControl.order", - "type": "number", - "tags": [], - "label": "order", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControl.mount", - "type": "Function", - "tags": [], - "label": "mount", - "description": [], - "signature": [ - "(element: HTMLElement) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.UnmountCallback", - "text": "UnmountCallback" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControl.mount.$1", - "type": "Uncategorized", - "tags": [], - "label": "element", - "description": [], - "signature": [ - "T" - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/mount_point.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls", - "type": "Interface", - "tags": [], - "label": "ChromeNavControls", - "description": [ - "\n{@link ChromeNavControls | APIs} for registering new controls to be displayed in the navigation bar.\n" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls.registerLeft", - "type": "Function", - "tags": [], - "label": "registerLeft", - "description": [ - "Register a nav control to be presented on the bottom-left side of the chrome header." - ], - "signature": [ - "(navControl: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControl", - "text": "ChromeNavControl" - }, - ") => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls.registerLeft.$1", - "type": "Object", - "tags": [], - "label": "navControl", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControl", - "text": "ChromeNavControl" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls.registerRight", - "type": "Function", - "tags": [], - "label": "registerRight", - "description": [ - "Register a nav control to be presented on the top-right side of the chrome header." - ], - "signature": [ - "(navControl: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControl", - "text": "ChromeNavControl" - }, - ") => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls.registerRight.$1", - "type": "Object", - "tags": [], - "label": "navControl", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControl", - "text": "ChromeNavControl" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls.registerCenter", - "type": "Function", - "tags": [], - "label": "registerCenter", - "description": [ - "Register a nav control to be presented on the top-center side of the chrome header." - ], - "signature": [ - "(navControl: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControl", - "text": "ChromeNavControl" - }, - ") => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls.registerCenter.$1", - "type": "Object", - "tags": [], - "label": "navControl", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControl", - "text": "ChromeNavControl" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls.registerExtension", - "type": "Function", - "tags": [], - "label": "registerExtension", - "description": [ - "Register an extension to be presented to the left of the top-right side of the chrome header." - ], - "signature": [ - "(navControl: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControl", - "text": "ChromeNavControl" - }, - ") => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavControls.registerExtension.$1", - "type": "Object", - "tags": [], - "label": "navControl", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControl", - "text": "ChromeNavControl" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_controls.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink", - "type": "Interface", - "tags": [], - "label": "ChromeNavLink", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\nA unique identifier for looking up links." - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.title", - "type": "string", - "tags": [], - "label": "title", - "description": [ - "\nThe title of the application." - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.category", - "type": "Object", - "tags": [], - "label": "category", - "description": [ - "\nThe category the app lives in" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-common", - "scope": "common", - "docId": "kibKbnCoreApplicationCommonPluginApi", - "section": "def-common.AppCategory", - "text": "AppCategory" - }, - " | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.baseUrl", - "type": "string", - "tags": [], - "label": "baseUrl", - "description": [ - "\nThe base route used to open the root of an application." - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.url", - "type": "string", - "tags": [], - "label": "url", - "description": [ - "\nThe route used to open the default path and the deep links of an application." - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.order", - "type": "number", - "tags": [], - "label": "order", - "description": [ - "\nAn ordinal used to sort nav links relative to one another for display." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.tooltip", - "type": "string", - "tags": [], - "label": "tooltip", - "description": [ - "\nA tooltip shown when hovering over an app link." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.euiIconType", - "type": "string", - "tags": [], - "label": "euiIconType", - "description": [ - "\nA EUI iconType that will be used for the app's icon. This icon\ntakes precedence over the `icon` property." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.icon", - "type": "string", - "tags": [], - "label": "icon", - "description": [ - "\nA URL to an image file used as an icon. Used as a fallback\nif `euiIconType` is not provided." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.href", - "type": "string", - "tags": [], - "label": "href", - "description": [ - "\nSettled state between `url`, `baseUrl`, and `active`" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.disabled", - "type": "CompoundType", - "tags": [], - "label": "disabled", - "description": [ - "\nDisables a link from being clickable.\n" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLink.hidden", - "type": "CompoundType", - "tags": [], - "label": "hidden", - "description": [ - "\nHides a link from the navigation." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks", - "type": "Interface", - "tags": [], - "label": "ChromeNavLinks", - "description": [ - "\n{@link ChromeNavLinks | APIs} for manipulating nav links.\n" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks.getNavLinks$", - "type": "Function", - "tags": [], - "label": "getNavLinks$", - "description": [ - "\nGet an observable for a sorted list of navlinks." - ], - "signature": [ - "() => ", - "Observable", - "[]>" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nGet the state of a navlink at this point in time." - ], - "signature": [ - "(id: string) => ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavLink", - "text": "ChromeNavLink" - }, - " | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks.get.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks.getAll", - "type": "Function", - "tags": [], - "label": "getAll", - "description": [ - "\nGet the current state of all navlinks." - ], - "signature": [ - "() => Readonly<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavLink", - "text": "ChromeNavLink" - }, - ">[]" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks.has", - "type": "Function", - "tags": [], - "label": "has", - "description": [ - "\nCheck whether or not a navlink exists." - ], - "signature": [ - "(id: string) => boolean" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks.has.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks.enableForcedAppSwitcherNavigation", - "type": "Function", - "tags": [], - "label": "enableForcedAppSwitcherNavigation", - "description": [ - "\nEnable forced navigation mode, which will trigger a page refresh\nwhen a nav link is clicked and only the hash is updated.\n" - ], - "signature": [ - "() => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeNavLinks.getForceAppSwitcherNavigation$", - "type": "Function", - "tags": [], - "label": "getForceAppSwitcherNavigation$", - "description": [ - "\nAn observable of the forced app switcher state." - ], - "signature": [ - "() => ", - "Observable", - "" - ], - "path": "packages/core/chrome/core-chrome-browser/src/nav_links.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessed", - "type": "Interface", - "tags": [], - "label": "ChromeRecentlyAccessed", - "description": [ - "\n{@link ChromeRecentlyAccessed | APIs} for recently accessed history." - ], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessed.add", - "type": "Function", - "tags": [], - "label": "add", - "description": [ - "\nAdds a new item to the recently accessed history.\n" - ], - "signature": [ - "(link: string, label: string, id: string) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessed.add.$1", - "type": "string", - "tags": [], - "label": "link", - "description": [ - "a relative URL to the resource (not including the {@link HttpStart.basePath | `http.basePath`})" - ], - "signature": [ - "string" - ], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessed.add.$2", - "type": "string", - "tags": [], - "label": "label", - "description": [ - "the label to display in the UI" - ], - "signature": [ - "string" - ], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessed.add.$3", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "a unique string used to de-duplicate the recently accessed list." - ], - "signature": [ - "string" - ], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessed.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nGets an Array of the current recently accessed history.\n" - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeRecentlyAccessedHistoryItem", - "text": "ChromeRecentlyAccessedHistoryItem" - }, - "[]" - ], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessed.get$", - "type": "Function", - "tags": [], - "label": "get$", - "description": [ - "\nGets an Observable of the array of recently accessed history.\n" - ], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeRecentlyAccessedHistoryItem", - "text": "ChromeRecentlyAccessedHistoryItem" - }, - "[]>" - ], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessedHistoryItem", - "type": "Interface", - "tags": [], - "label": "ChromeRecentlyAccessedHistoryItem", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessedHistoryItem.link", - "type": "string", - "tags": [], - "label": "link", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessedHistoryItem.label", - "type": "string", - "tags": [], - "label": "label", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeRecentlyAccessedHistoryItem.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/recently_accessed.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart", - "type": "Interface", - "tags": [], - "label": "ChromeStart", - "description": [ - "\nChromeStart allows plugins to customize the global chrome header UI and\nenrich the UX with additional information about the current location of the\nbrowser.\n" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.navLinks", - "type": "Object", - "tags": [], - "label": "navLinks", - "description": [ - "{@inheritdoc ChromeNavLinks}" - ], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavLinks", - "text": "ChromeNavLinks" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.navControls", - "type": "Object", - "tags": [], - "label": "navControls", - "description": [ - "{@inheritdoc ChromeNavControls}" - ], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavControls", - "text": "ChromeNavControls" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.recentlyAccessed", - "type": "Object", - "tags": [], - "label": "recentlyAccessed", - "description": [ - "{@inheritdoc ChromeRecentlyAccessed}" - ], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeRecentlyAccessed", - "text": "ChromeRecentlyAccessed" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.docTitle", - "type": "Object", - "tags": [], - "label": "docTitle", - "description": [ - "{@inheritdoc ChromeDocTitle}" - ], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeDocTitle", - "text": "ChromeDocTitle" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.getIsVisible$", - "type": "Function", - "tags": [], - "label": "getIsVisible$", - "description": [ - "\nGet an observable of the current visibility state of the chrome." - ], - "signature": [ - "() => ", - "Observable", - "" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setIsVisible", - "type": "Function", - "tags": [], - "label": "setIsVisible", - "description": [ - "\nSet the temporary visibility for the chrome. This does nothing if the chrome is hidden\nby default and should be used to hide the chrome for things like full-screen modes\nwith an exit button." - ], - "signature": [ - "(isVisible: boolean) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setIsVisible.$1", - "type": "boolean", - "tags": [], - "label": "isVisible", - "description": [], - "signature": [ - "boolean" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.getBadge$", - "type": "Function", - "tags": [], - "label": "getBadge$", - "description": [ - "\nGet an observable of the current badge" - ], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeBadge", - "text": "ChromeBadge" - }, - " | undefined>" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setBadge", - "type": "Function", - "tags": [], - "label": "setBadge", - "description": [ - "\nOverride the current badge" - ], - "signature": [ - "(badge?: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeBadge", - "text": "ChromeBadge" - }, - " | undefined) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setBadge.$1", - "type": "Object", - "tags": [], - "label": "badge", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeBadge", - "text": "ChromeBadge" - }, - " | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.getBreadcrumbs$", - "type": "Function", - "tags": [], - "label": "getBreadcrumbs$", - "description": [ - "\nGet an observable of the current list of breadcrumbs" - ], - "signature": [ - "() => ", - "Observable", - "<", - "EuiBreadcrumbProps", - "[]>" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setBreadcrumbs", - "type": "Function", - "tags": [], - "label": "setBreadcrumbs", - "description": [ - "\nOverride the current set of breadcrumbs" - ], - "signature": [ - "(newBreadcrumbs: ", - "EuiBreadcrumbProps", - "[]) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setBreadcrumbs.$1", - "type": "Array", - "tags": [], - "label": "newBreadcrumbs", - "description": [], - "signature": [ - "EuiBreadcrumbProps", - "[]" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.getBreadcrumbsAppendExtension$", - "type": "Function", - "tags": [], - "label": "getBreadcrumbsAppendExtension$", - "description": [ - "\nGet an observable of the current extension appended to breadcrumbs" - ], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeBreadcrumbsAppendExtension", - "text": "ChromeBreadcrumbsAppendExtension" - }, - " | undefined>" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setBreadcrumbsAppendExtension", - "type": "Function", - "tags": [], - "label": "setBreadcrumbsAppendExtension", - "description": [ - "\nMount an element next to the last breadcrumb" - ], - "signature": [ - "(breadcrumbsAppendExtension?: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeBreadcrumbsAppendExtension", - "text": "ChromeBreadcrumbsAppendExtension" - }, - " | undefined) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setBreadcrumbsAppendExtension.$1", - "type": "Object", - "tags": [], - "label": "breadcrumbsAppendExtension", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeBreadcrumbsAppendExtension", - "text": "ChromeBreadcrumbsAppendExtension" - }, - " | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.getCustomNavLink$", - "type": "Function", - "tags": [], - "label": "getCustomNavLink$", - "description": [ - "\nGet an observable of the current custom nav link" - ], - "signature": [ - "() => ", - "Observable", - " | undefined>" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setCustomNavLink", - "type": "Function", - "tags": [], - "label": "setCustomNavLink", - "description": [ - "\nOverride the current set of custom nav link" - ], - "signature": [ - "(newCustomNavLink?: Partial<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavLink", - "text": "ChromeNavLink" - }, - "> | undefined) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setCustomNavLink.$1", - "type": "Object", - "tags": [], - "label": "newCustomNavLink", - "description": [], - "signature": [ - "Partial<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeNavLink", - "text": "ChromeNavLink" - }, - "> | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.getGlobalHelpExtensionMenuLinks$", - "type": "Function", - "tags": [], - "label": "getGlobalHelpExtensionMenuLinks$", - "description": [ - "\nGet the list of the registered global help extension menu links" - ], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeGlobalHelpExtensionMenuLink", - "text": "ChromeGlobalHelpExtensionMenuLink" - }, - "[]>" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.registerGlobalHelpExtensionMenuLink", - "type": "Function", - "tags": [], - "label": "registerGlobalHelpExtensionMenuLink", - "description": [ - "\nAppend a global help extension menu link" - ], - "signature": [ - "(globalHelpExtensionMenuLink: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeGlobalHelpExtensionMenuLink", - "text": "ChromeGlobalHelpExtensionMenuLink" - }, - ") => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.registerGlobalHelpExtensionMenuLink.$1", - "type": "Object", - "tags": [], - "label": "globalHelpExtensionMenuLink", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeGlobalHelpExtensionMenuLink", - "text": "ChromeGlobalHelpExtensionMenuLink" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.getHelpExtension$", - "type": "Function", - "tags": [], - "label": "getHelpExtension$", - "description": [ - "\nGet an observable of the current custom help content" - ], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtension", - "text": "ChromeHelpExtension" - }, - " | undefined>" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setHelpExtension", - "type": "Function", - "tags": [], - "label": "setHelpExtension", - "description": [ - "\nOverride the current set of custom help content" - ], - "signature": [ - "(helpExtension?: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtension", - "text": "ChromeHelpExtension" - }, - " | undefined) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setHelpExtension.$1", - "type": "Object", - "tags": [], - "label": "helpExtension", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtension", - "text": "ChromeHelpExtension" - }, - " | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setHelpSupportUrl", - "type": "Function", - "tags": [], - "label": "setHelpSupportUrl", - "description": [ - "\nOverride the default support URL shown in the help menu" - ], - "signature": [ - "(url: string) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setHelpSupportUrl.$1", - "type": "string", - "tags": [], - "label": "url", - "description": [ - "The updated support URL" - ], - "signature": [ - "string" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.getIsNavDrawerLocked$", - "type": "Function", - "tags": [], - "label": "getIsNavDrawerLocked$", - "description": [ - "\nGet an observable of the current locked state of the nav drawer." - ], - "signature": [ - "() => ", - "Observable", - "" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setHeaderBanner", - "type": "Function", - "tags": [], - "label": "setHeaderBanner", - "description": [ - "\nSet the banner that will appear on top of the chrome header.\n" - ], - "signature": [ - "(headerBanner?: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeUserBanner", - "text": "ChromeUserBanner" - }, - " | undefined) => void" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.setHeaderBanner.$1", - "type": "Object", - "tags": [], - "label": "headerBanner", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeUserBanner", - "text": "ChromeUserBanner" - }, - " | undefined" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeStart.hasHeaderBanner$", - "type": "Function", - "tags": [], - "label": "hasHeaderBanner$", - "description": [ - "\nGet an observable of the current header banner presence state." - ], - "signature": [ - "() => ", - "Observable", - "" - ], - "path": "packages/core/chrome/core-chrome-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeUserBanner", - "type": "Interface", - "tags": [], - "label": "ChromeUserBanner", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeUserBanner.content", - "type": "Function", - "tags": [], - "label": "content", - "description": [], - "signature": [ - "(element: HTMLDivElement) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.UnmountCallback", - "text": "UnmountCallback" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ChromeUserBanner.content.$1", - "type": "Uncategorized", - "tags": [], - "label": "element", - "description": [], - "signature": [ - "T" - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/mount_point.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ContextProviderOpts", - "type": "Interface", - "tags": [], - "label": "ContextProviderOpts", - "description": [ - "\nDefinition of a context provider" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ContextProviderOpts.name", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "\nThe name of the provider." - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ContextProviderOpts.context$", - "type": "Object", - "tags": [], - "label": "context$", - "description": [ - "\nObservable that emits the custom context." - ], - "signature": [ - "Observable", - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ContextProviderOpts.schema", - "type": "Object", - "tags": [], - "label": "schema", - "description": [ - "\nSchema declaring and documenting the expected output in the context$\n" - ], - "signature": [ - "{ [Key in keyof Required]: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.SchemaValue", - "text": "SchemaValue" - }, - "; }" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup", - "type": "Interface", - "tags": [], - "label": "CoreSetup", - "description": [ - "\nCore services exposed to the `Plugin` setup lifecycle\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-browser", - "scope": "common", - "docId": "kibKbnCoreLifecycleBrowserPluginApi", - "section": "def-common.CoreSetup", - "text": "CoreSetup" - }, - "" - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.analytics", - "type": "Object", - "tags": [], - "label": "analytics", - "description": [ - "{@link AnalyticsServiceSetup}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; registerEventType: (eventTypeOps: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - ") => void; registerShipper: (Shipper: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - ", shipperConfig: ShipperConfig, opts?: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined) => void; registerContextProvider: (contextProviderOpts: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - ") => void; removeContextProvider: (contextProviderName: string) => void; }" - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.application", - "type": "Object", - "tags": [], - "label": "application", - "description": [ - "{@link ApplicationSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.ApplicationSetup", - "text": "ApplicationSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.customBranding", - "type": "Object", - "tags": [], - "label": "customBranding", - "description": [ - "{@link CustomBrandingSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-custom-branding-browser", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingBrowserPluginApi", - "section": "def-common.CustomBrandingSetup", - "text": "CustomBrandingSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.fatalErrors", - "type": "Object", - "tags": [], - "label": "fatalErrors", - "description": [ - "{@link FatalErrorsSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-fatal-errors-browser", - "scope": "common", - "docId": "kibKbnCoreFatalErrorsBrowserPluginApi", - "section": "def-common.FatalErrorsSetup", - "text": "FatalErrorsSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.http", - "type": "Object", - "tags": [], - "label": "http", - "description": [ - "{@link HttpSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpSetup", - "text": "HttpSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.notifications", - "type": "Object", - "tags": [], - "label": "notifications", - "description": [ - "{@link NotificationsSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.NotificationsSetup", - "text": "NotificationsSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.uiSettings", - "type": "Object", - "tags": [ - "Deprecated" - ], - "label": "uiSettings", - "description": [ - "{@link IUiSettingsClient}\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-browser", - "scope": "common", - "docId": "kibKbnCoreUiSettingsBrowserPluginApi", - "section": "def-common.IUiSettingsClient", - "text": "IUiSettingsClient" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.settings", - "type": "Object", - "tags": [], - "label": "settings", - "description": [ - "{@link SettingsStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-browser", - "scope": "common", - "docId": "kibKbnCoreUiSettingsBrowserPluginApi", - "section": "def-common.SettingsStart", - "text": "SettingsStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.executionContext", - "type": "Object", - "tags": [], - "label": "executionContext", - "description": [ - "{@link ExecutionContextSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-browser", - "scope": "common", - "docId": "kibKbnCoreExecutionContextBrowserPluginApi", - "section": "def-common.ExecutionContextSetup", - "text": "ExecutionContextSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.theme", - "type": "Object", - "tags": [], - "label": "theme", - "description": [ - "{@link ThemeServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-theme-browser", - "scope": "common", - "docId": "kibKbnCoreThemeBrowserPluginApi", - "section": "def-common.ThemeServiceSetup", - "text": "ThemeServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreSetup.getStartServices", - "type": "Function", - "tags": [], - "label": "getStartServices", - "description": [ - "{@link StartServicesAccessor}" - ], - "signature": [ - "() => Promise<[", - { - "pluginId": "@kbn/core-lifecycle-browser", - "scope": "common", - "docId": "kibKbnCoreLifecycleBrowserPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - }, - ", TPluginsStart, TStart]>" - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart", - "type": "Interface", - "tags": [], - "label": "CoreStart", - "description": [ - "\nCore services exposed to the `Plugin` start lifecycle\n" - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.CoreStart.analytics", - "type": "Object", - "tags": [], - "label": "analytics", - "description": [ - "{@link AnalyticsServiceStart}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; }" - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.application", - "type": "Object", - "tags": [], - "label": "application", - "description": [ - "{@link ApplicationStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.ApplicationStart", - "text": "ApplicationStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.chrome", - "type": "Object", - "tags": [], - "label": "chrome", - "description": [ - "{@link ChromeStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeStart", - "text": "ChromeStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.customBranding", - "type": "Object", - "tags": [], - "label": "customBranding", - "description": [ - "{@link CustomBrandingStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-custom-branding-browser", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingBrowserPluginApi", - "section": "def-common.CustomBrandingStart", - "text": "CustomBrandingStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.docLinks", - "type": "Object", - "tags": [], - "label": "docLinks", - "description": [ - "{@link DocLinksStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-doc-links-browser", - "scope": "common", - "docId": "kibKbnCoreDocLinksBrowserPluginApi", - "section": "def-common.DocLinksStart", - "text": "DocLinksStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.executionContext", - "type": "Object", - "tags": [], - "label": "executionContext", - "description": [ - "{@link ExecutionContextStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-browser", - "scope": "common", - "docId": "kibKbnCoreExecutionContextBrowserPluginApi", - "section": "def-common.ExecutionContextSetup", - "text": "ExecutionContextSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.http", - "type": "Object", - "tags": [], - "label": "http", - "description": [ - "{@link HttpStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpSetup", - "text": "HttpSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.savedObjects", - "type": "Object", - "tags": [ - "deprecated" - ], - "label": "savedObjects", - "description": [ - "\n{@link SavedObjectsStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsBrowserPluginApi", - "section": "def-common.SavedObjectsStart", - "text": "SavedObjectsStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-plugins-browser-internal", - "path": "packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-browser-internal", - "path": "packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/plugin.ts" - }, - { - "plugin": "home", - "path": "src/plugins/home/public/plugin.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/search/expressions/kibana_context.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/plugin.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/plugin.tsx" - }, - { - "plugin": "unifiedSearch", - "path": "src/plugins/unified_search/public/types.ts" - }, - { - "plugin": "presentationUtil", - "path": "src/plugins/presentation_util/public/services/dashboards/dashboards_service.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/plugin.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/dashboard_saved_object_service.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/index.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/index.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/lens_attribute_service.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/lens_attribute_service.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/visualizations/xy/visualization.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/visualizations/xy/visualization.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/mounter.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/search_embeddable_factory.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/main/components/top_nav/open_search_panel.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/main/hooks/use_discover_state.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "fileUpload", - "path": "x-pack/plugins/file_upload/public/kibana_services.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/kibana_services.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/app.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/kibana/platform.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/kibana/platform.ts" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/source_picker.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/source_modal.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/plugin.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/use_monitor_name.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/manage_locations/hooks/use_location_monitors.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/manage_locations/hooks/use_locations_api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/hooks/use_invalid_monitors.tsx" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_selector/use_recently_viewed_monitors.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/settings/global_params/delete_param.tsx" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/settings/private_locations/hooks/use_location_monitors.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/settings/private_locations/hooks/use_locations_api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_name.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/plugin.ts" - }, - { - "plugin": "transform", - "path": "x-pack/plugins/transform/public/app/mount_management_section.ts" - }, - { - "plugin": "watcher", - "path": "x-pack/plugins/watcher/public/plugin.ts" - }, - { - "plugin": "@kbn/core-plugins-browser-internal", - "path": "packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts" - }, - { - "plugin": "unifiedSearch", - "path": "src/plugins/unified_search/public/types.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/plugin.tsx" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/services/dashboard_service.ts" - }, - { - "plugin": "cloudSecurityPosture", - "path": "x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/guidance_panel/guidance_panel.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/hooks/use_dashboard_button_href.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/use_create_security_dashboard_link.ts" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.i18n", - "type": "Object", - "tags": [], - "label": "i18n", - "description": [ - "{@link I18nStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-i18n-browser", - "scope": "common", - "docId": "kibKbnCoreI18nBrowserPluginApi", - "section": "def-common.I18nStart", - "text": "I18nStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.notifications", - "type": "Object", - "tags": [], - "label": "notifications", - "description": [ - "{@link NotificationsStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.NotificationsStart", - "text": "NotificationsStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.overlays", - "type": "Object", - "tags": [], - "label": "overlays", - "description": [ - "{@link OverlayStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayStart", - "text": "OverlayStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.uiSettings", - "type": "Object", - "tags": [ - "Deprecated" - ], - "label": "uiSettings", - "description": [ - "{@link IUiSettingsClient}\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-browser", - "scope": "common", - "docId": "kibKbnCoreUiSettingsBrowserPluginApi", - "section": "def-common.IUiSettingsClient", - "text": "IUiSettingsClient" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.settings", - "type": "Object", - "tags": [], - "label": "settings", - "description": [ - "{@link SettingsStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-browser", - "scope": "common", - "docId": "kibKbnCoreUiSettingsBrowserPluginApi", - "section": "def-common.SettingsStart", - "text": "SettingsStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.fatalErrors", - "type": "Object", - "tags": [], - "label": "fatalErrors", - "description": [ - "{@link FatalErrorsStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-fatal-errors-browser", - "scope": "common", - "docId": "kibKbnCoreFatalErrorsBrowserPluginApi", - "section": "def-common.FatalErrorsSetup", - "text": "FatalErrorsSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.deprecations", - "type": "Object", - "tags": [], - "label": "deprecations", - "description": [ - "{@link DeprecationsServiceStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-browser", - "scope": "common", - "docId": "kibKbnCoreDeprecationsBrowserPluginApi", - "section": "def-common.DeprecationsServiceStart", - "text": "DeprecationsServiceStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreStart.theme", - "type": "Object", - "tags": [], - "label": "theme", - "description": [ - "{@link ThemeServiceStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-theme-browser", - "scope": "common", - "docId": "kibKbnCoreThemeBrowserPluginApi", - "section": "def-common.ThemeServiceStart", - "text": "ThemeServiceStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.CoreTheme", - "type": "Interface", - "tags": [], - "label": "CoreTheme", - "description": [ - "\nContains all the required information to apply Kibana's theme at the various levels it can be used.\n" - ], - "path": "packages/core/theme/core-theme-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.CoreTheme.darkMode", - "type": "boolean", - "tags": [], - "label": "darkMode", - "description": [ - "is dark mode enabled or not" - ], - "path": "packages/core/theme/core-theme-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.CustomBrandingSetup", - "type": "Interface", - "tags": [], - "label": "CustomBrandingSetup", - "description": [], - "path": "packages/core/custom-branding/core-custom-branding-browser/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.CustomBrandingSetup.customBranding$", - "type": "Object", - "tags": [], - "label": "customBranding$", - "description": [], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-custom-branding-common", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingCommonPluginApi", - "section": "def-common.CustomBranding", - "text": "CustomBranding" - }, - ">" - ], - "path": "packages/core/custom-branding/core-custom-branding-browser/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CustomBrandingSetup.hasCustomBranding$", - "type": "Object", - "tags": [], - "label": "hasCustomBranding$", - "description": [], - "signature": [ - "Observable", - "" - ], - "path": "packages/core/custom-branding/core-custom-branding-browser/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.CustomBrandingStart", - "type": "Interface", - "tags": [], - "label": "CustomBrandingStart", - "description": [], - "path": "packages/core/custom-branding/core-custom-branding-browser/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.CustomBrandingStart.customBranding$", - "type": "Object", - "tags": [], - "label": "customBranding$", - "description": [], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-custom-branding-common", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingCommonPluginApi", - "section": "def-common.CustomBranding", - "text": "CustomBranding" - }, - ">" - ], - "path": "packages/core/custom-branding/core-custom-branding-browser/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.CustomBrandingStart.hasCustomBranding$", - "type": "Object", - "tags": [], - "label": "hasCustomBranding$", - "description": [], - "signature": [ - "Observable", - "" - ], - "path": "packages/core/custom-branding/core-custom-branding-browser/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.DeprecationsServiceStart", - "type": "Interface", - "tags": [], - "label": "DeprecationsServiceStart", - "description": [ - "\nDeprecationsService provides methods to fetch domain deprecation details from\nthe Kibana server.\n" - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.DeprecationsServiceStart.getAllDeprecations", - "type": "Function", - "tags": [], - "label": "getAllDeprecations", - "description": [ - "\nGrabs deprecations details for all domains." - ], - "signature": [ - "() => Promise<", - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DomainDeprecationDetails", - "text": "DomainDeprecationDetails" - }, - "[]>" - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.DeprecationsServiceStart.getDeprecations", - "type": "Function", - "tags": [], - "label": "getDeprecations", - "description": [ - "\nGrabs deprecations for a specific domain.\n" - ], - "signature": [ - "(domainId: string) => Promise<", - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DomainDeprecationDetails", - "text": "DomainDeprecationDetails" - }, - "[]>" - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.DeprecationsServiceStart.getDeprecations.$1", - "type": "string", - "tags": [], - "label": "domainId", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.DeprecationsServiceStart.isDeprecationResolvable", - "type": "Function", - "tags": [], - "label": "isDeprecationResolvable", - "description": [ - "\nReturns a boolean if the provided deprecation can be automatically resolvable.\n" - ], - "signature": [ - "(details: ", - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DomainDeprecationDetails", - "text": "DomainDeprecationDetails" - }, - ") => boolean" - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.DeprecationsServiceStart.isDeprecationResolvable.$1", - "type": "CompoundType", - "tags": [], - "label": "details", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DomainDeprecationDetails", - "text": "DomainDeprecationDetails" - } - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.DeprecationsServiceStart.resolveDeprecation", - "type": "Function", - "tags": [], - "label": "resolveDeprecation", - "description": [ - "\nCalls the correctiveActions.api to automatically resolve the depprecation.\n" - ], - "signature": [ - "(details: ", - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DomainDeprecationDetails", - "text": "DomainDeprecationDetails" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-deprecations-browser", - "scope": "common", - "docId": "kibKbnCoreDeprecationsBrowserPluginApi", - "section": "def-common.ResolveDeprecationResponse", - "text": "ResolveDeprecationResponse" - }, - ">" - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.DeprecationsServiceStart.resolveDeprecation.$1", - "type": "CompoundType", - "tags": [], - "label": "details", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DomainDeprecationDetails", - "text": "DomainDeprecationDetails" - } - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.DocLinksStart", - "type": "Interface", - "tags": [], - "label": "DocLinksStart", - "description": [], - "path": "packages/core/doc-links/core-doc-links-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.DocLinksStart.DOC_LINK_VERSION", - "type": "string", - "tags": [], - "label": "DOC_LINK_VERSION", - "description": [], - "path": "packages/core/doc-links/core-doc-links-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.DocLinksStart.ELASTIC_WEBSITE_URL", - "type": "string", - "tags": [], - "label": "ELASTIC_WEBSITE_URL", - "description": [], - "path": "packages/core/doc-links/core-doc-links-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.DocLinksStart.links", - "type": "Object", - "tags": [], - "label": "links", - "description": [], - "signature": [ - { - "pluginId": "@kbn/doc-links", - "scope": "common", - "docId": "kibKbnDocLinksPluginApi", - "section": "def-common.DocLinks", - "text": "DocLinks" - } - ], - "path": "packages/core/doc-links/core-doc-links-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.EnvironmentMode", - "type": "Interface", - "tags": [], - "label": "EnvironmentMode", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.EnvironmentMode.name", - "type": "CompoundType", - "tags": [], - "label": "name", - "description": [], - "signature": [ - "\"production\" | \"development\"" - ], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EnvironmentMode.dev", - "type": "boolean", - "tags": [], - "label": "dev", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EnvironmentMode.prod", - "type": "boolean", - "tags": [], - "label": "prod", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ErrorToastOptions", - "type": "Interface", - "tags": [], - "label": "ErrorToastOptions", - "description": [ - "\nOptions available for {@link IToasts} error APIs." - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ErrorToastOptions", - "text": "ErrorToastOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastOptions", - "text": "ToastOptions" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ErrorToastOptions.title", - "type": "string", - "tags": [], - "label": "title", - "description": [ - "\nThe title of the toast and the dialog when expanding the message." - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ErrorToastOptions.toastMessage", - "type": "string", - "tags": [], - "label": "toastMessage", - "description": [ - "\nThe message to be shown in the toast. If this is not specified the error's\nmessage will be shown in the toast instead. Overwriting that message can\nbe used to provide more user-friendly toasts. If you specify this, the error\nmessage will still be shown in the detailed error modal." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.Event", - "type": "Interface", - "tags": [], - "label": "Event", - "description": [ - "\nDefinition of the full event structure" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - "" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.Event.timestamp", - "type": "string", - "tags": [], - "label": "timestamp", - "description": [ - "\nThe time the event was generated in ISO format." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.Event.event_type", - "type": "string", - "tags": [], - "label": "event_type", - "description": [ - "\nThe event type." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.Event.properties", - "type": "Uncategorized", - "tags": [], - "label": "properties", - "description": [ - "\nThe specific properties of the event type." - ], - "signature": [ - "Properties" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.Event.context", - "type": "Object", - "tags": [], - "label": "context", - "description": [ - "\nThe {@link EventContext} enriched during the processing pipeline." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - } - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext", - "type": "Interface", - "tags": [], - "label": "EventContext", - "description": [ - "\nDefinition of the context that can be appended to the events through the {@link IAnalyticsClient.registerContextProvider}." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.EventContext.cluster_uuid", - "type": "string", - "tags": [], - "label": "cluster_uuid", - "description": [ - "\nThe UUID of the cluster" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.cluster_name", - "type": "string", - "tags": [], - "label": "cluster_name", - "description": [ - "\nThe name of the cluster." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.license_id", - "type": "string", - "tags": [], - "label": "license_id", - "description": [ - "\nThe license ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.userId", - "type": "string", - "tags": [], - "label": "userId", - "description": [ - "\nThe unique user ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.cloudId", - "type": "string", - "tags": [], - "label": "cloudId", - "description": [ - "\nThe Cloud ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.isElasticCloudUser", - "type": "CompoundType", - "tags": [], - "label": "isElasticCloudUser", - "description": [ - "\n`true` if the user is logged in via the Elastic Cloud authentication provider." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "\nThe product's version." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.pageName", - "type": "string", - "tags": [], - "label": "pageName", - "description": [ - "\nThe name of the current page." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.applicationId", - "type": "string", - "tags": [], - "label": "applicationId", - "description": [ - "\nThe current application ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.entityId", - "type": "string", - "tags": [], - "label": "entityId", - "description": [ - "\nThe current entity ID (dashboard ID, visualization ID, etc.)." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventContext.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[key: string]: unknown", - "description": [ - "\nAdditional keys are allowed." - ], - "signature": [ - "[key: string]: unknown" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventTypeOpts", - "type": "Interface", - "tags": [], - "label": "EventTypeOpts", - "description": [ - "\nDefinition of an Event Type." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.EventTypeOpts.eventType", - "type": "string", - "tags": [], - "label": "eventType", - "description": [ - "\nThe event type's unique name." - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventTypeOpts.schema", - "type": "Object", - "tags": [], - "label": "schema", - "description": [ - "\nSchema declaring and documenting the expected structure of this event type.\n" - ], - "signature": [ - "{ [Key in keyof Required]: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.SchemaValue", - "text": "SchemaValue" - }, - "; }" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup", - "type": "Interface", - "tags": [], - "label": "ExecutionContextSetup", - "description": [ - "\nKibana execution context.\nUsed to provide execution context to Elasticsearch, reporting, performance monitoring, etc." - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup.context$", - "type": "Object", - "tags": [], - "label": "context$", - "description": [ - "\nThe current context observable" - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - ">" - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup.set", - "type": "Function", - "tags": [], - "label": "set", - "description": [ - "\nSet the current top level context" - ], - "signature": [ - "(c$: ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - ") => void" - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup.set.$1", - "type": "Object", - "tags": [], - "label": "c$", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - } - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nGet the current top level context" - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - } - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup.clear", - "type": "Function", - "tags": [], - "label": "clear", - "description": [ - "\nclears the context" - ], - "signature": [ - "() => void" - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup.getAsLabels", - "type": "Function", - "tags": [], - "label": "getAsLabels", - "description": [ - "\nreturns apm labels" - ], - "signature": [ - "() => ", - "Labels" - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup.withGlobalContext", - "type": "Function", - "tags": [], - "label": "withGlobalContext", - "description": [ - "\nmerges the current top level context with the specific event context" - ], - "signature": [ - "(context?: ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - } - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextSetup.withGlobalContext.$1", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined" - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.FatalErrorInfo", - "type": "Interface", - "tags": [], - "label": "FatalErrorInfo", - "description": [ - "\nRepresents the `message` and `stack` of a fatal Error\n" - ], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/get_error_info.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.FatalErrorInfo.message", - "type": "string", - "tags": [], - "label": "message", - "description": [], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/get_error_info.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.FatalErrorInfo.stack", - "type": "string", - "tags": [], - "label": "stack", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/get_error_info.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.FatalErrorsSetup", - "type": "Interface", - "tags": [], - "label": "FatalErrorsSetup", - "description": [ - "\nFatalErrors stop the Kibana Public Core and displays a fatal error screen\nwith details about the Kibana build and the error.\n" - ], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.FatalErrorsSetup.add", - "type": "Function", - "tags": [], - "label": "add", - "description": [ - "\nAdd a new fatal error. This will stop the Kibana Public Core and display\na fatal error screen with details about the Kibana build and the error.\n" - ], - "signature": [ - "(error: string | Error, source?: string | undefined) => never" - ], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.FatalErrorsSetup.add.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [ - "- The error to display" - ], - "signature": [ - "string | Error" - ], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.FatalErrorsSetup.add.$2", - "type": "string", - "tags": [], - "label": "source", - "description": [ - "- Adds a prefix of the form `${source}: ` to the error message" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.FatalErrorsSetup.get$", - "type": "Function", - "tags": [], - "label": "get$", - "description": [ - "\nAn Observable that will emit whenever a fatal error is added with `add()`" - ], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-fatal-errors-browser", - "scope": "common", - "docId": "kibKbnCoreFatalErrorsBrowserPluginApi", - "section": "def-common.FatalErrorInfo", - "text": "FatalErrorInfo" - }, - ">" - ], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptions", - "type": "Interface", - "tags": [], - "label": "HttpFetchOptions", - "description": [ - "\nAll options that may be used with a {@link HttpHandler}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpFetchOptions", - "text": "HttpFetchOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpRequestInit", - "text": "HttpRequestInit" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptions.query", - "type": "Object", - "tags": [], - "label": "query", - "description": [ - "\nThe query string for an HTTP request. See {@link HttpFetchQuery}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpFetchQuery", - "text": "HttpFetchQuery" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptions.prependBasePath", - "type": "CompoundType", - "tags": [], - "label": "prependBasePath", - "description": [ - "\nWhether or not the request should automatically prepend the basePath. Defaults to `true`." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptions.headers", - "type": "Object", - "tags": [], - "label": "headers", - "description": [ - "\nHeaders to send with the request. See {@link HttpHeadersInit}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHeadersInit", - "text": "HttpHeadersInit" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptions.asSystemRequest", - "type": "CompoundType", - "tags": [], - "label": "asSystemRequest", - "description": [ - "\nWhether or not the request should include the \"system request\" header to differentiate an end user request from\nKibana internal request.\nCan be read on the server-side using KibanaRequest#isSystemRequest. Defaults to `false`." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptions.asResponse", - "type": "CompoundType", - "tags": [], - "label": "asResponse", - "description": [ - "\nWhen `true` the return type of {@link HttpHandler} will be an {@link HttpResponse} with detailed request and\nresponse information. When `false`, the return type will just be the parsed response body. Defaults to `false`." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptions.context", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptionsWithPath", - "type": "Interface", - "tags": [], - "label": "HttpFetchOptionsWithPath", - "description": [ - "\nSimilar to {@link HttpFetchOptions} but with the URL path included." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpFetchOptionsWithPath", - "text": "HttpFetchOptionsWithPath" - }, - " extends ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpFetchOptions", - "text": "HttpFetchOptions" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpFetchOptionsWithPath.path", - "type": "string", - "tags": [], - "label": "path", - "description": [], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpFetchQuery", - "type": "Interface", - "tags": [], - "label": "HttpFetchQuery", - "description": [], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpFetchQuery.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[key: string]: string | number | boolean | string[] | number[] | boolean[] | null | undefined", - "description": [ - "\nTypeScript note: Technically we should use this interface instead, but @types/node uses the below stricter\ndefinition, so to avoid TypeScript errors, we'll restrict our version.\n\n[key: string]:\n | string\n | number\n | boolean\n | Array\n | undefined\n | null;" - ], - "signature": [ - "[key: string]: string | number | boolean | string[] | number[] | boolean[] | null | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpHandler", - "type": "Interface", - "tags": [], - "label": "HttpHandler", - "description": [ - "\nA function for making an HTTP requests to Kibana's backend. See {@link HttpFetchOptions} for options and\n{@link HttpResponse} for the response.\n" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpHandler.Unnamed", - "type": "Any", - "tags": [], - "label": "Unnamed", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpHandler.Unnamed", - "type": "Any", - "tags": [], - "label": "Unnamed", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpHandler.Unnamed", - "type": "Any", - "tags": [], - "label": "Unnamed", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpHandler.Unnamed", - "type": "Any", - "tags": [], - "label": "Unnamed", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpHeadersInit", - "type": "Interface", - "tags": [], - "label": "HttpHeadersInit", - "description": [ - "\nHeaders to append to the request. Any headers that begin with `kbn-` are considered private to Core and will cause\n{@link HttpHandler} to throw an error." - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpHeadersInit.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[name: string]: any", - "description": [], - "signature": [ - "[name: string]: any" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor", - "type": "Interface", - "tags": [], - "label": "HttpInterceptor", - "description": [ - "\nAn object that may define global interceptor functions for different parts of the request and response lifecycle.\nSee {@link IHttpInterceptController}.\n" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.request", - "type": "Function", - "tags": [], - "label": "request", - "description": [ - "\nDefine an interceptor to be executed before a request is sent." - ], - "signature": [ - "((fetchOptions: Readonly<", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpFetchOptionsWithPath", - "text": "HttpFetchOptionsWithPath" - }, - ">, controller: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpInterceptController", - "text": "IHttpInterceptController" - }, - ") => void | ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - ">) | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.request.$1", - "type": "Object", - "tags": [], - "label": "fetchOptions", - "description": [], - "signature": [ - "Readonly<", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpFetchOptionsWithPath", - "text": "HttpFetchOptionsWithPath" - }, - ">" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.request.$2", - "type": "Object", - "tags": [], - "label": "controller", - "description": [ - "{@link IHttpInterceptController }" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpInterceptController", - "text": "IHttpInterceptController" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.requestError", - "type": "Function", - "tags": [], - "label": "requestError", - "description": [ - "\nDefine an interceptor to be executed if a request interceptor throws an error or returns a rejected Promise." - ], - "signature": [ - "((httpErrorRequest: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpInterceptorRequestError", - "text": "HttpInterceptorRequestError" - }, - ", controller: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpInterceptController", - "text": "IHttpInterceptController" - }, - ") => void | ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - ">) | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.requestError.$1", - "type": "Object", - "tags": [], - "label": "httpErrorRequest", - "description": [ - "{@link HttpInterceptorRequestError }" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpInterceptorRequestError", - "text": "HttpInterceptorRequestError" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.requestError.$2", - "type": "Object", - "tags": [], - "label": "controller", - "description": [ - "{@link IHttpInterceptController }" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpInterceptController", - "text": "IHttpInterceptController" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.response", - "type": "Function", - "tags": [], - "label": "response", - "description": [ - "\nDefine an interceptor to be executed after a response is received." - ], - "signature": [ - "((httpResponse: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpResponse", - "text": "HttpResponse" - }, - ", controller: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpInterceptController", - "text": "IHttpInterceptController" - }, - ") => void | ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - "<", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpResponseInterceptorOverrides", - "text": "IHttpResponseInterceptorOverrides" - }, - ">) | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.response.$1", - "type": "Object", - "tags": [], - "label": "httpResponse", - "description": [ - "{@link HttpResponse }" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpResponse", - "text": "HttpResponse" - }, - "" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.response.$2", - "type": "Object", - "tags": [], - "label": "controller", - "description": [ - "{@link IHttpInterceptController }" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpInterceptController", - "text": "IHttpInterceptController" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.responseError", - "type": "Function", - "tags": [], - "label": "responseError", - "description": [ - "\nDefine an interceptor to be executed if a response interceptor throws an error or returns a rejected Promise." - ], - "signature": [ - "((httpErrorResponse: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpInterceptorResponseError", - "text": "HttpInterceptorResponseError" - }, - ", controller: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpInterceptController", - "text": "IHttpInterceptController" - }, - ") => void | ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - "<", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpResponseInterceptorOverrides", - "text": "IHttpResponseInterceptorOverrides" - }, - ">) | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.responseError.$1", - "type": "Object", - "tags": [], - "label": "httpErrorResponse", - "description": [ - "{@link HttpInterceptorResponseError }" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpInterceptorResponseError", - "text": "HttpInterceptorResponseError" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptor.responseError.$2", - "type": "Object", - "tags": [], - "label": "controller", - "description": [ - "{@link IHttpInterceptController }" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpInterceptController", - "text": "IHttpInterceptController" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptorRequestError", - "type": "Interface", - "tags": [], - "label": "HttpInterceptorRequestError", - "description": [], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptorRequestError.fetchOptions", - "type": "Object", - "tags": [], - "label": "fetchOptions", - "description": [], - "signature": [ - "{ readonly path: string; readonly query?: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpFetchQuery", - "text": "HttpFetchQuery" - }, - " | undefined; readonly prependBasePath?: boolean | undefined; readonly headers?: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHeadersInit", - "text": "HttpHeadersInit" - }, - " | undefined; readonly asSystemRequest?: boolean | undefined; readonly asResponse?: boolean | undefined; readonly context?: ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined; readonly body?: BodyInit | null | undefined; readonly cache?: RequestCache | undefined; readonly credentials?: RequestCredentials | undefined; readonly integrity?: string | undefined; readonly keepalive?: boolean | undefined; readonly method?: string | undefined; readonly mode?: RequestMode | undefined; readonly redirect?: RequestRedirect | undefined; readonly referrer?: string | undefined; readonly referrerPolicy?: ReferrerPolicy | undefined; readonly signal?: AbortSignal | null | undefined; readonly window?: null | undefined; }" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptorRequestError.error", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptorResponseError", - "type": "Interface", - "tags": [], - "label": "HttpInterceptorResponseError", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpInterceptorResponseError", - "text": "HttpInterceptorResponseError" - }, - " extends ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpResponse", - "text": "HttpResponse" - }, - "" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptorResponseError.request", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - "{ readonly cache: RequestCache; readonly credentials: RequestCredentials; readonly destination: RequestDestination; readonly headers: Headers; readonly integrity: string; readonly keepalive: boolean; readonly method: string; readonly mode: RequestMode; readonly redirect: RequestRedirect; readonly referrer: string; readonly referrerPolicy: ReferrerPolicy; readonly signal: AbortSignal; readonly url: string; readonly clone: () => Request; readonly body: ReadableStream | null; readonly bodyUsed: boolean; readonly arrayBuffer: () => Promise; readonly blob: () => Promise; readonly formData: () => Promise; readonly json: () => Promise; readonly text: () => Promise; }" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpInterceptorResponseError.error", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpFetchError", - "text": "IHttpFetchError" - }, - "" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit", - "type": "Interface", - "tags": [], - "label": "HttpRequestInit", - "description": [ - "\nFetch API options available to {@link HttpHandler}s.\n" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.body", - "type": "CompoundType", - "tags": [], - "label": "body", - "description": [ - "\nA BodyInit object or null to set request's body." - ], - "signature": [ - "BodyInit | null | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.cache", - "type": "CompoundType", - "tags": [], - "label": "cache", - "description": [ - "\nThe cache mode associated with request, which is a string indicating how the request will interact with the\nbrowser's cache when fetching." - ], - "signature": [ - "RequestCache | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.credentials", - "type": "CompoundType", - "tags": [], - "label": "credentials", - "description": [ - "\nThe credentials mode associated with request, which is a string indicating whether credentials will be sent with\nthe request always, never, or only when sent to a same-origin URL." - ], - "signature": [ - "RequestCredentials | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.headers", - "type": "Object", - "tags": [], - "label": "headers", - "description": [ - "{@link HttpHeadersInit}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHeadersInit", - "text": "HttpHeadersInit" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.integrity", - "type": "string", - "tags": [], - "label": "integrity", - "description": [ - "\nSubresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of\nmultiple hashes separated by whitespace." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.keepalive", - "type": "CompoundType", - "tags": [], - "label": "keepalive", - "description": [ - "Whether or not request can outlive the global in which it was created." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.method", - "type": "string", - "tags": [], - "label": "method", - "description": [ - "HTTP method, which is \"GET\" by default." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.mode", - "type": "CompoundType", - "tags": [], - "label": "mode", - "description": [ - "\nThe mode associated with request, which is a string indicating whether the request will use CORS, or will be\nrestricted to same-origin URLs." - ], - "signature": [ - "RequestMode | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.redirect", - "type": "CompoundType", - "tags": [], - "label": "redirect", - "description": [ - "\nThe redirect mode associated with request, which is a string indicating how redirects for the request will be\nhandled during fetching. A request will follow redirects by default." - ], - "signature": [ - "RequestRedirect | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.referrer", - "type": "string", - "tags": [], - "label": "referrer", - "description": [ - "\nThe referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to\nindicate no referrer, and \"about:client\" when defaulting to the global's default. This is used during fetching to\ndetermine the value of the `Referer` header of the request being made." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.referrerPolicy", - "type": "CompoundType", - "tags": [], - "label": "referrerPolicy", - "description": [ - "\nThe referrer policy associated with request. This is used during fetching to compute the value of the request's\nreferrer." - ], - "signature": [ - "ReferrerPolicy | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.signal", - "type": "CompoundType", - "tags": [], - "label": "signal", - "description": [ - "\nReturns the signal associated with request, which is an AbortSignal object indicating whether or not request has\nbeen aborted, and its abort event handler." - ], - "signature": [ - "AbortSignal | null | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpRequestInit.window", - "type": "Uncategorized", - "tags": [], - "label": "window", - "description": [ - "\nCan only be null. Used to disassociate request from any Window." - ], - "signature": [ - "null | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpResponse", - "type": "Interface", - "tags": [], - "label": "HttpResponse", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpResponse", - "text": "HttpResponse" - }, - "" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpResponse.fetchOptions", - "type": "Object", - "tags": [], - "label": "fetchOptions", - "description": [ - "The original {@link HttpFetchOptionsWithPath} used to send this request." - ], - "signature": [ - "{ readonly path: string; readonly query?: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpFetchQuery", - "text": "HttpFetchQuery" - }, - " | undefined; readonly prependBasePath?: boolean | undefined; readonly headers?: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHeadersInit", - "text": "HttpHeadersInit" - }, - " | undefined; readonly asSystemRequest?: boolean | undefined; readonly asResponse?: boolean | undefined; readonly context?: ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined; readonly body?: BodyInit | null | undefined; readonly cache?: RequestCache | undefined; readonly credentials?: RequestCredentials | undefined; readonly integrity?: string | undefined; readonly keepalive?: boolean | undefined; readonly method?: string | undefined; readonly mode?: RequestMode | undefined; readonly redirect?: RequestRedirect | undefined; readonly referrer?: string | undefined; readonly referrerPolicy?: ReferrerPolicy | undefined; readonly signal?: AbortSignal | null | undefined; readonly window?: null | undefined; }" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpResponse.request", - "type": "Object", - "tags": [], - "label": "request", - "description": [ - "Raw request sent to Kibana server." - ], - "signature": [ - "{ readonly cache: RequestCache; readonly credentials: RequestCredentials; readonly destination: RequestDestination; readonly headers: Headers; readonly integrity: string; readonly keepalive: boolean; readonly method: string; readonly mode: RequestMode; readonly redirect: RequestRedirect; readonly referrer: string; readonly referrerPolicy: ReferrerPolicy; readonly signal: AbortSignal; readonly url: string; readonly clone: () => Request; readonly body: ReadableStream | null; readonly bodyUsed: boolean; readonly arrayBuffer: () => Promise; readonly blob: () => Promise; readonly formData: () => Promise; readonly json: () => Promise; readonly text: () => Promise; }" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpResponse.response", - "type": "Object", - "tags": [], - "label": "response", - "description": [ - "Raw response received, may be undefined if there was an error." - ], - "signature": [ - "Readonly | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpResponse.body", - "type": "Uncategorized", - "tags": [], - "label": "body", - "description": [ - "Parsed body received, may be undefined if there was an error." - ], - "signature": [ - "TResponseBody | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup", - "type": "Interface", - "tags": [], - "label": "HttpSetup", - "description": [], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.basePath", - "type": "Object", - "tags": [], - "label": "basePath", - "description": [ - "\nAPIs for manipulating the basePath on URL segments.\nSee {@link IBasePath}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IBasePath", - "text": "IBasePath" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.anonymousPaths", - "type": "Object", - "tags": [], - "label": "anonymousPaths", - "description": [ - "\nAPIs for denoting certain paths for not requiring authentication" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IAnonymousPaths", - "text": "IAnonymousPaths" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.externalUrl", - "type": "Object", - "tags": [], - "label": "externalUrl", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IExternalUrl", - "text": "IExternalUrl" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.intercept", - "type": "Function", - "tags": [], - "label": "intercept", - "description": [ - "\nAdds a new {@link HttpInterceptor} to the global HTTP client." - ], - "signature": [ - "(interceptor: ", - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpInterceptor", - "text": "HttpInterceptor" - }, - ") => () => void" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.intercept.$1", - "type": "Object", - "tags": [], - "label": "interceptor", - "description": [ - "a {@link HttpInterceptor }" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpInterceptor", - "text": "HttpInterceptor" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "a function for removing the attached interceptor." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.fetch", - "type": "Function", - "tags": [], - "label": "fetch", - "description": [ - "Makes an HTTP request. Defaults to a GET request unless overridden. See {@link HttpHandler} for options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHandler", - "text": "HttpHandler" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.delete", - "type": "Function", - "tags": [], - "label": "delete", - "description": [ - "Makes an HTTP request with the DELETE method. See {@link HttpHandler} for options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHandler", - "text": "HttpHandler" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "Makes an HTTP request with the GET method. See {@link HttpHandler} for options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHandler", - "text": "HttpHandler" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.head", - "type": "Function", - "tags": [], - "label": "head", - "description": [ - "Makes an HTTP request with the HEAD method. See {@link HttpHandler} for options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHandler", - "text": "HttpHandler" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.options", - "type": "Function", - "tags": [], - "label": "options", - "description": [ - "Makes an HTTP request with the OPTIONS method. See {@link HttpHandler} for options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHandler", - "text": "HttpHandler" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.patch", - "type": "Function", - "tags": [], - "label": "patch", - "description": [ - "Makes an HTTP request with the PATCH method. See {@link HttpHandler} for options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHandler", - "text": "HttpHandler" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.post", - "type": "Function", - "tags": [], - "label": "post", - "description": [ - "Makes an HTTP request with the POST method. See {@link HttpHandler} for options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHandler", - "text": "HttpHandler" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.put", - "type": "Function", - "tags": [], - "label": "put", - "description": [ - "Makes an HTTP request with the PUT method. See {@link HttpHandler} for options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpHandler", - "text": "HttpHandler" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.addLoadingCountSource", - "type": "Function", - "tags": [], - "label": "addLoadingCountSource", - "description": [ - "\nAdds a new source of loading counts. Used to show the global loading indicator when sum of all observed counts are\nmore than 0." - ], - "signature": [ - "(countSource$: ", - "Observable", - ") => void" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.addLoadingCountSource.$1", - "type": "Object", - "tags": [], - "label": "countSource$", - "description": [ - "an Observable to subscribe to for loading count updates." - ], - "signature": [ - "Observable", - "" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.HttpSetup.getLoadingCount$", - "type": "Function", - "tags": [], - "label": "getLoadingCount$", - "description": [ - "\nGet the sum of all loading count sources as a single Observable." - ], - "signature": [ - "() => ", - "Observable", - "" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.I18nStart", - "type": "Interface", - "tags": [], - "label": "I18nStart", - "description": [ - "\nI18nStart.Context is required by any localizable React component from \\@kbn/i18n and \\@elastic/eui packages\nand is supposed to be used as the topmost component for any i18n-compatible React tree.\n" - ], - "path": "packages/core/i18n/core-i18n-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.I18nStart.Context", - "type": "Function", - "tags": [], - "label": "Context", - "description": [ - "\nReact Context provider required as the topmost component for any i18n-compatible React tree." - ], - "signature": [ - "({ children }: { children: React.ReactNode; }) => JSX.Element" - ], - "path": "packages/core/i18n/core-i18n-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.I18nStart.Context.$1", - "type": "Object", - "tags": [], - "label": "{ children }", - "description": [], - "path": "packages/core/i18n/core-i18n-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.I18nStart.Context.$1.children", - "type": "CompoundType", - "tags": [], - "label": "children", - "description": [], - "signature": [ - "boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined" - ], - "path": "packages/core/i18n/core-i18n-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient", - "type": "Interface", - "tags": [], - "label": "IAnalyticsClient", - "description": [ - "\nAnalytics client's public APIs" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.reportEvent", - "type": "Function", - "tags": [ - "track-adoption" - ], - "label": "reportEvent", - "description": [ - "\nReports a telemetry event." - ], - "signature": [ - "(eventType: string, eventData: EventTypeData) => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": true, - "references": [ - { - "plugin": "@kbn/ebt-tools", - "path": "packages/kbn-ebt-tools/src/performance_metric_events/helpers.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-root-server-internal", - "path": "packages/core/root/core-root-server-internal/src/server.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/server/analytics/analytics_service.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/analytics/types.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/analytics/analytics_service.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/server/services/telemetry/fleet_usage_sender.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/server/services/telemetry/fleet_usage_sender.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-mocks", - "path": "packages/core/analytics/core-analytics-browser-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-mocks", - "path": "packages/core/analytics/core-analytics-browser-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/analytics/analytics.stub.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/server/analytics/analytics_service.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/server/analytics/analytics_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.test.mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.test.mocks.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.reportEvent.$1", - "type": "string", - "tags": [], - "label": "eventType", - "description": [ - "The event type registered via the `registerEventType` API." - ], - "signature": [ - "string" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.reportEvent.$2", - "type": "Uncategorized", - "tags": [], - "label": "eventData", - "description": [ - "The properties matching the schema declared in the `registerEventType` API." - ], - "signature": [ - "EventTypeData" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.registerEventType", - "type": "Function", - "tags": [], - "label": "registerEventType", - "description": [ - "\nRegisters the event type that will be emitted via the reportEvent API." - ], - "signature": [ - "(eventTypeOps: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - ") => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.registerEventType.$1", - "type": "Object", - "tags": [], - "label": "eventTypeOps", - "description": [ - "The definition of the event type {@link EventTypeOpts }." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.registerShipper", - "type": "Function", - "tags": [], - "label": "registerShipper", - "description": [ - "\nSet up the shipper that will be used to report the telemetry events." - ], - "signature": [ - "(Shipper: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - ", shipperConfig: ShipperConfig, opts?: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined) => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.registerShipper.$1", - "type": "Object", - "tags": [], - "label": "Shipper", - "description": [ - "The {@link IShipper } class to instantiate the shipper." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.registerShipper.$2", - "type": "Uncategorized", - "tags": [], - "label": "shipperConfig", - "description": [ - "The config specific to the Shipper to instantiate." - ], - "signature": [ - "ShipperConfig" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.registerShipper.$3", - "type": "Object", - "tags": [], - "label": "opts", - "description": [ - "Additional options to register the shipper {@link RegisterShipperOpts }." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.optIn", - "type": "Function", - "tags": [], - "label": "optIn", - "description": [ - "\nUsed to control the user's consent to report the data.\nIn the advanced mode, it allows to \"cherry-pick\" which events and shippers are enabled/disabled." - ], - "signature": [ - "(optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.optIn.$1", - "type": "Object", - "tags": [], - "label": "optInConfig", - "description": [ - "{@link OptInConfig }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - } - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.registerContextProvider", - "type": "Function", - "tags": [ - "track-adoption" - ], - "label": "registerContextProvider", - "description": [ - "\nRegisters the context provider to enrich any reported events." - ], - "signature": [ - "(contextProviderOpts: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - ") => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": true, - "references": [ - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-execution-context-browser-internal", - "path": "packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.ts" - }, - { - "plugin": "@kbn/core-elasticsearch-server-internal", - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/register_analytics_context_provider.ts" - }, - { - "plugin": "@kbn/core-environment-server-internal", - "path": "packages/core/environment/core-environment-server-internal/src/environment_service.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "licensing", - "path": "x-pack/plugins/licensing/common/register_analytics_context_provider.ts" - }, - { - "plugin": "cloud", - "path": "x-pack/plugins/cloud/common/register_cloud_deployment_id_analytics_context.ts" - }, - { - "plugin": "telemetry", - "path": "src/plugins/telemetry/server/plugin.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.ts" - }, - { - "plugin": "telemetry", - "path": "src/plugins/telemetry/public/plugin.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-mocks", - "path": "packages/core/analytics/core-analytics-browser-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/analytics_service.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/analytics_service.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "@kbn/core-execution-context-browser-internal", - "path": "packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.test.ts" - }, - { - "plugin": "@kbn/core-execution-context-browser-internal", - "path": "packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/core-elasticsearch-server-internal", - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/register_analytics_context_provider.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.test.mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.test.mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.registerContextProvider.$1", - "type": "Object", - "tags": [], - "label": "contextProviderOpts", - "description": [ - "{@link ContextProviderOpts }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.removeContextProvider", - "type": "Function", - "tags": [], - "label": "removeContextProvider", - "description": [ - "\nRemoves the context provider and stop enriching the events from its context." - ], - "signature": [ - "(contextProviderName: string) => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.removeContextProvider.$1", - "type": "string", - "tags": [], - "label": "contextProviderName", - "description": [ - "The name of the context provider to remove." - ], - "signature": [ - "string" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.telemetryCounter$", - "type": "Object", - "tags": [], - "label": "telemetryCounter$", - "description": [ - "\nObservable to emit the stats of the processed events." - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.flush", - "type": "Function", - "tags": [], - "label": "flush", - "description": [ - "\nForces all shippers to send all their enqueued events and fulfills the returned promise." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IAnalyticsClient.shutdown", - "type": "Function", - "tags": [], - "label": "shutdown", - "description": [ - "\nStops the client. Flushing any pending events in the process." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IAnonymousPaths", - "type": "Interface", - "tags": [], - "label": "IAnonymousPaths", - "description": [ - "\nAPIs for denoting paths as not requiring authentication" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnonymousPaths.isAnonymous", - "type": "Function", - "tags": [], - "label": "isAnonymous", - "description": [ - "\nDetermines whether the provided path doesn't require authentication. `path` should include the current basePath." - ], - "signature": [ - "(path: string) => boolean" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnonymousPaths.isAnonymous.$1", - "type": "string", - "tags": [], - "label": "path", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IAnonymousPaths.register", - "type": "Function", - "tags": [], - "label": "register", - "description": [ - "\nRegister `path` as not requiring authentication. `path` should not include the current basePath." - ], - "signature": [ - "(path: string) => void" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IAnonymousPaths.register.$1", - "type": "string", - "tags": [], - "label": "path", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IBasePath", - "type": "Interface", - "tags": [], - "label": "IBasePath", - "description": [ - "\nAPIs for manipulating the basePath on URL segments." - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IBasePath.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nGets the `basePath` string." - ], - "signature": [ - "() => string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IBasePath.prepend", - "type": "Function", - "tags": [], - "label": "prepend", - "description": [ - "\nPrepends `path` with the basePath." - ], - "signature": [ - "(url: string) => string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IBasePath.prepend.$1", - "type": "string", - "tags": [], - "label": "url", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IBasePath.remove", - "type": "Function", - "tags": [], - "label": "remove", - "description": [ - "\nRemoves the prepended basePath from the `path`." - ], - "signature": [ - "(url: string) => string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IBasePath.remove.$1", - "type": "string", - "tags": [], - "label": "url", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IBasePath.serverBasePath", - "type": "string", - "tags": [], - "label": "serverBasePath", - "description": [ - "\nReturns the server's root basePath as configured, without any namespace prefix.\n\nSee {@link BasePath.get} for getting the basePath value for a specific request" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.IBasePath.publicBaseUrl", - "type": "string", - "tags": [], - "label": "publicBaseUrl", - "description": [ - "\nThe server's publicly exposed base URL, if configured. Includes protocol, host, port (optional) and the\n{@link IBasePath.serverBasePath}.\n" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IExternalUrl", - "type": "Interface", - "tags": [], - "label": "IExternalUrl", - "description": [ - "\nAPIs for working with external URLs.\n" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IExternalUrl.isInternalUrl", - "type": "Function", - "tags": [], - "label": "isInternalUrl", - "description": [ - "\nDetermines if the provided URL is an internal url.\n" - ], - "signature": [ - "(relativeOrAbsoluteUrl: string) => boolean" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IExternalUrl.isInternalUrl.$1", - "type": "string", - "tags": [], - "label": "relativeOrAbsoluteUrl", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IExternalUrl.validateUrl", - "type": "Function", - "tags": [], - "label": "validateUrl", - "description": [ - "\nDetermines if the provided URL is a valid location to send users.\nValidation is based on the configured allow list in kibana.yml.\n\nIf the URL is valid, then a URL will be returned.\nOtherwise, this will return null.\n" - ], - "signature": [ - "(relativeOrAbsoluteUrl: string) => URL | null" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IExternalUrl.validateUrl.$1", - "type": "string", - "tags": [], - "label": "relativeOrAbsoluteUrl", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IHttpFetchError", - "type": "Interface", - "tags": [], - "label": "IHttpFetchError", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpFetchError", - "text": "IHttpFetchError" - }, - " extends Error" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IHttpFetchError.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.IHttpFetchError.request", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - "Request" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.IHttpFetchError.response", - "type": "Object", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "Response | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.IHttpFetchError.body", - "type": "Uncategorized", - "tags": [], - "label": "body", - "description": [], - "signature": [ - "TResponseBody | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IHttpInterceptController", - "type": "Interface", - "tags": [], - "label": "IHttpInterceptController", - "description": [ - "\nUsed to halt a request Promise chain in a {@link HttpInterceptor}." - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IHttpInterceptController.halted", - "type": "boolean", - "tags": [], - "label": "halted", - "description": [ - "Whether or not this chain has been halted." - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.IHttpInterceptController.halt", - "type": "Function", - "tags": [], - "label": "halt", - "description": [ - "Halt the request Promise chain and do not process further interceptors or response handlers." - ], - "signature": [ - "() => void" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IHttpResponseInterceptorOverrides", - "type": "Interface", - "tags": [], - "label": "IHttpResponseInterceptorOverrides", - "description": [ - "\nProperties that can be returned by HttpInterceptor.request to override the response." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.IHttpResponseInterceptorOverrides", - "text": "IHttpResponseInterceptorOverrides" - }, - "" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IHttpResponseInterceptorOverrides.response", - "type": "Object", - "tags": [], - "label": "response", - "description": [ - "Raw response received, may be undefined if there was an error." - ], - "signature": [ - "Readonly | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.IHttpResponseInterceptorOverrides.body", - "type": "Uncategorized", - "tags": [], - "label": "body", - "description": [ - "Parsed body received, may be undefined if there was an error." - ], - "signature": [ - "TResponseBody | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IShipper", - "type": "Interface", - "tags": [], - "label": "IShipper", - "description": [ - "\nBasic structure of a Shipper" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IShipper.reportEvents", - "type": "Function", - "tags": [], - "label": "reportEvents", - "description": [ - "\nAdapts and ships the event to the persisting/analytics solution." - ], - "signature": [ - "(events: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - ">[]) => void" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IShipper.reportEvents.$1", - "type": "Array", - "tags": [], - "label": "events", - "description": [ - "batched events {@link Event }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - ">[]" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IShipper.optIn", - "type": "Function", - "tags": [], - "label": "optIn", - "description": [ - "\nStops/restarts the shipping mechanism based on the value of isOptedIn" - ], - "signature": [ - "(isOptedIn: boolean) => void" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IShipper.optIn.$1", - "type": "boolean", - "tags": [], - "label": "isOptedIn", - "description": [ - "`true` for resume sending events. `false` to stop." - ], - "signature": [ - "boolean" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IShipper.extendContext", - "type": "Function", - "tags": [], - "label": "extendContext", - "description": [ - "\nPerform any necessary calls to the persisting/analytics solution to set the event's context." - ], - "signature": [ - "((newContext: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - }, - ") => void) | undefined" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IShipper.extendContext.$1", - "type": "Object", - "tags": [], - "label": "newContext", - "description": [ - "The full new context to set {@link EventContext }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - } - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IShipper.telemetryCounter$", - "type": "Object", - "tags": [], - "label": "telemetryCounter$", - "description": [ - "\nObservable to emit the stats of the processed events." - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - "> | undefined" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.IShipper.flush", - "type": "Function", - "tags": [], - "label": "flush", - "description": [ - "\nSends all the enqueued events and fulfills the returned promise." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IShipper.shutdown", - "type": "Function", - "tags": [], - "label": "shutdown", - "description": [ - "\nShutdown the shipper." - ], - "signature": [ - "() => void" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts", - "type": "Interface", - "tags": [], - "label": "IToasts", - "description": [ - "\nMethods for adding and removing global toast messages. See {@link ToastsApi}." - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IToasts.get$", - "type": "Function", - "tags": [], - "label": "get$", - "description": [], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - }, - "[]>" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.add", - "type": "Function", - "tags": [], - "label": "add", - "description": [], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ") => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IToasts.add.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.remove", - "type": "Function", - "tags": [], - "label": "remove", - "description": [], - "signature": [ - "(toastOrId: string | ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - }, - ") => void" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IToasts.remove.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrId", - "description": [], - "signature": [ - "string | ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addInfo", - "type": "Function", - "tags": [], - "label": "addInfo", - "description": [], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ", options?: any) => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IToasts.addInfo.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addInfo.$2", - "type": "Any", - "tags": [], - "label": "options", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addSuccess", - "type": "Function", - "tags": [], - "label": "addSuccess", - "description": [], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ", options?: any) => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IToasts.addSuccess.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addSuccess.$2", - "type": "Any", - "tags": [], - "label": "options", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addWarning", - "type": "Function", - "tags": [], - "label": "addWarning", - "description": [], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ", options?: any) => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IToasts.addWarning.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addWarning.$2", - "type": "Any", - "tags": [], - "label": "options", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addDanger", - "type": "Function", - "tags": [], - "label": "addDanger", - "description": [], - "signature": [ - "(toastOrTitle: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - }, - ", options?: any) => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IToasts.addDanger.$1", - "type": "CompoundType", - "tags": [], - "label": "toastOrTitle", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInput", - "text": "ToastInput" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addDanger.$2", - "type": "Any", - "tags": [], - "label": "options", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addError", - "type": "Function", - "tags": [], - "label": "addError", - "description": [], - "signature": [ - "(error: Error, options: ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ErrorToastOptions", - "text": "ErrorToastOptions" - }, - ") => ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.Toast", - "text": "Toast" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IToasts.addError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IToasts.addError.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ErrorToastOptions", - "text": "ErrorToastOptions" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient", - "type": "Interface", - "tags": [], - "label": "IUiSettingsClient", - "description": [ - "\nClient-side client that provides access to the advanced settings stored in elasticsearch.\nThe settings provide control over the behavior of the Kibana application.\nFor example, a user can specify how to display numeric or date fields.\nUsers can adjust the settings via Management UI.\n{@link IUiSettingsClient}\n" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nGets the value for a specific uiSetting. If this setting has no user-defined value\nthen the `defaultOverride` parameter is returned (and parsed if setting is of type\n\"json\" or \"number). If the parameter is not defined and the key is not registered\nby any plugin then an error is thrown, otherwise reads the default value defined by a plugin." - ], - "signature": [ - "(key: string, defaultOverride?: T | undefined) => T" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.get.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.get.$2", - "type": "Uncategorized", - "tags": [], - "label": "defaultOverride", - "description": [], - "signature": [ - "T | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.get$", - "type": "Function", - "tags": [], - "label": "get$", - "description": [ - "\nGets an observable of the current value for a config key, and all updates to that config\nkey in the future. Providing a `defaultOverride` argument behaves the same as it does in #get()" - ], - "signature": [ - "(key: string, defaultOverride?: T | undefined) => ", - "Observable", - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.get$.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.get$.$2", - "type": "Uncategorized", - "tags": [], - "label": "defaultOverride", - "description": [], - "signature": [ - "T | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.getAll", - "type": "Function", - "tags": [], - "label": "getAll", - "description": [ - "\nGets the metadata about all uiSettings, including the type, default value, and user value\nfor each key." - ], - "signature": [ - "() => Readonly>>" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.set", - "type": "Function", - "tags": [], - "label": "set", - "description": [ - "\nSets the value for a uiSetting. If the setting is not registered by any plugin\nit will be stored as a custom setting. The new value will be synchronously available via\nthe `get()` method and sent to the server in the background. If the request to the\nserver fails then a updateErrors$ will be notified and the setting will be\nreverted to its value before `set()` was called." - ], - "signature": [ - "(key: string, value: any) => Promise" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.set.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.set.$2", - "type": "Any", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.remove", - "type": "Function", - "tags": [], - "label": "remove", - "description": [ - "\nRemoves the user-defined value for a setting, causing it to revert to the default. This\nmethod behaves the same as calling `set(key, null)`, including the synchronization, custom\nsetting, and error behavior of that method." - ], - "signature": [ - "(key: string) => Promise" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.remove.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.isDeclared", - "type": "Function", - "tags": [], - "label": "isDeclared", - "description": [ - "\nReturns true if the key is a \"known\" uiSetting, meaning it is either registered\nby any plugin or was previously added as a custom setting via the `set()` method." - ], - "signature": [ - "(key: string) => boolean" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.isDeclared.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.isDefault", - "type": "Function", - "tags": [], - "label": "isDefault", - "description": [ - "\nReturns true if the setting has no user-defined value or is unknown" - ], - "signature": [ - "(key: string) => boolean" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.isDefault.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.isCustom", - "type": "Function", - "tags": [], - "label": "isCustom", - "description": [ - "\nReturns true if the setting wasn't registered by any plugin, but was either\nadded directly via `set()`, or is an unknown setting found in the uiSettings saved\nobject" - ], - "signature": [ - "(key: string) => boolean" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.isCustom.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.isOverridden", - "type": "Function", - "tags": [], - "label": "isOverridden", - "description": [ - "\nShows whether the uiSettings value set by the user." - ], - "signature": [ - "(key: string) => boolean" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.isOverridden.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.getUpdate$", - "type": "Function", - "tags": [], - "label": "getUpdate$", - "description": [ - "\nReturns an Observable that notifies subscribers of each update to the uiSettings,\nincluding the key, newValue, and oldValue of the setting that changed." - ], - "signature": [ - "() => ", - "Observable", - "<{ key: string; newValue: T; oldValue: T; }>" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.IUiSettingsClient.getUpdateErrors$", - "type": "Function", - "tags": [], - "label": "getUpdateErrors$", - "description": [ - "\nReturns an Observable that notifies subscribers of each error while trying to update\nthe settings, containing the actual Error class." - ], - "signature": [ - "() => ", - "Observable", - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToAppOptions", - "type": "Interface", - "tags": [], - "label": "NavigateToAppOptions", - "description": [ - "\nOptions for the {@link ApplicationStart.navigateToApp | navigateToApp API}" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.NavigateToAppOptions.deepLinkId", - "type": "string", - "tags": [], - "label": "deepLinkId", - "description": [ - "\noptional {@link App.deepLinks | deep link} id inside the application to navigate to.\nIf an additional {@link NavigateToAppOptions.path | path} is defined it will be appended to the deep link path." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToAppOptions.path", - "type": "string", - "tags": [], - "label": "path", - "description": [ - "\noptional path inside application to deep link to.\nIf undefined, will use {@link App.defaultPath | the app's default path} as default." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToAppOptions.state", - "type": "Unknown", - "tags": [], - "label": "state", - "description": [ - "\noptional state to forward to the application" - ], - "signature": [ - "unknown" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToAppOptions.replace", - "type": "CompoundType", - "tags": [], - "label": "replace", - "description": [ - "\nif true, will not create a new history entry when navigating (using `replace` instead of `push`)" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToAppOptions.openInNewTab", - "type": "CompoundType", - "tags": [], - "label": "openInNewTab", - "description": [ - "\nif true, will open the app in new tab, will share session information via window.open if base" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToAppOptions.skipAppLeave", - "type": "CompoundType", - "tags": [], - "label": "skipAppLeave", - "description": [ - "\nif true, will bypass the default onAppLeave behavior" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToUrlOptions", - "type": "Interface", - "tags": [], - "label": "NavigateToUrlOptions", - "description": [ - "\nOptions for the {@link ApplicationStart.navigateToUrl | navigateToUrl API}" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.NavigateToUrlOptions.skipAppLeave", - "type": "CompoundType", - "tags": [], - "label": "skipAppLeave", - "description": [ - "\nif true, will bypass the default onAppLeave behavior" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToUrlOptions.forceRedirect", - "type": "CompoundType", - "tags": [], - "label": "forceRedirect", - "description": [ - "\nif true will force a full page reload/refresh/assign, overriding the outcome of other url checks against current the location (effectively using `window.location.assign` instead of `push`)" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.NavigateToUrlOptions.state", - "type": "Unknown", - "tags": [], - "label": "state", - "description": [ - "\noptional state to forward to the application" - ], - "signature": [ - "unknown" - ], - "path": "packages/core/application/core-application-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.NotificationsSetup", - "type": "Interface", - "tags": [], - "label": "NotificationsSetup", - "description": [], - "path": "packages/core/notifications/core-notifications-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.NotificationsSetup.toasts", - "type": "Object", - "tags": [], - "label": "toasts", - "description": [ - "{@link ToastsSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.IToasts", - "text": "IToasts" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.NotificationsStart", - "type": "Interface", - "tags": [], - "label": "NotificationsStart", - "description": [], - "path": "packages/core/notifications/core-notifications-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.NotificationsStart.toasts", - "type": "Object", - "tags": [], - "label": "toasts", - "description": [ - "{@link ToastsStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.IToasts", - "text": "IToasts" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OptInConfig", - "type": "Interface", - "tags": [], - "label": "OptInConfig", - "description": [ - "\n" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OptInConfig.global", - "type": "Object", - "tags": [], - "label": "global", - "description": [ - "\nControls the global enabled/disabled behaviour of the client and shippers." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfigPerType", - "text": "OptInConfigPerType" - } - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OptInConfig.event_types", - "type": "Object", - "tags": [], - "label": "event_types", - "description": [ - "\nControls if an event type should be disabled for a specific type of shipper." - ], - "signature": [ - "Record | undefined" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart", - "type": "Interface", - "tags": [], - "label": "OverlayBannersStart", - "description": [], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.add", - "type": "Function", - "tags": [], - "label": "add", - "description": [ - "\nAdd a new banner\n" - ], - "signature": [ - "(mount: ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - ", priority?: number | undefined) => string" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.add.$1", - "type": "Function", - "tags": [], - "label": "mount", - "description": [ - "{@link MountPoint }" - ], - "signature": [ - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - "" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.add.$2", - "type": "number", - "tags": [], - "label": "priority", - "description": [ - "optional priority order to display this banner. Higher priority values are shown first." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "a unique identifier for the given banner to be used with {@link OverlayBannersStart.remove } and\n{@link OverlayBannersStart.replace }" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.remove", - "type": "Function", - "tags": [], - "label": "remove", - "description": [ - "\nRemove a banner\n" - ], - "signature": [ - "(id: string) => boolean" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.remove.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "the unique identifier for the banner returned by {@link OverlayBannersStart.add }" - ], - "signature": [ - "string" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "if the banner was found or not" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.replace", - "type": "Function", - "tags": [], - "label": "replace", - "description": [ - "\nReplace a banner in place\n" - ], - "signature": [ - "(id: string | undefined, mount: ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - ", priority?: number | undefined) => string" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.replace.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "the unique identifier for the banner returned by {@link OverlayBannersStart.add }" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.replace.$2", - "type": "Function", - "tags": [], - "label": "mount", - "description": [ - "{@link MountPoint }" - ], - "signature": [ - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - "" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.replace.$3", - "type": "number", - "tags": [], - "label": "priority", - "description": [ - "optional priority order to display this banner. Higher priority values are shown first." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "a new identifier for the given banner to be used with {@link OverlayBannersStart.remove } and\n{@link OverlayBannersStart.replace }" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayBannersStart.getComponent", - "type": "Function", - "tags": [], - "label": "getComponent", - "description": [], - "signature": [ - "() => JSX.Element" - ], - "path": "packages/core/overlays/core-overlays-browser/src/banners.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions", - "type": "Interface", - "tags": [], - "label": "OverlayFlyoutOpenOptions", - "description": [], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.className", - "type": "string", - "tags": [], - "label": "className", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.closeButtonAriaLabel", - "type": "string", - "tags": [], - "label": "closeButtonAriaLabel", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.ownFocus", - "type": "CompoundType", - "tags": [], - "label": "ownFocus", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.datatestsubj", - "type": "string", - "tags": [], - "label": "'data-test-subj'", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.arialabel", - "type": "string", - "tags": [], - "label": "'aria-label'", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.size", - "type": "CompoundType", - "tags": [], - "label": "size", - "description": [], - "signature": [ - "\"m\" | \"s\" | \"l\" | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.maxWidth", - "type": "CompoundType", - "tags": [], - "label": "maxWidth", - "description": [], - "signature": [ - "string | number | boolean | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.hideCloseButton", - "type": "CompoundType", - "tags": [], - "label": "hideCloseButton", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.outsideClickCloses", - "type": "CompoundType", - "tags": [], - "label": "outsideClickCloses", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.maskProps", - "type": "CompoundType", - "tags": [], - "label": "maskProps", - "description": [], - "signature": [ - "EuiOverlayMaskProps", - " | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.onClose", - "type": "Function", - "tags": [], - "label": "onClose", - "description": [ - "\nEuiFlyout onClose handler.\nIf provided the consumer is responsible for calling flyout.close() to close the flyout;" - ], - "signature": [ - "((flyout: ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.OverlayRef", - "text": "OverlayRef" - }, - ") => void) | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutOpenOptions.onClose.$1", - "type": "Object", - "tags": [], - "label": "flyout", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.OverlayRef", - "text": "OverlayRef" - } - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutStart", - "type": "Interface", - "tags": [], - "label": "OverlayFlyoutStart", - "description": [ - "\nAPIs to open and manage fly-out dialogs.\n" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutStart.open", - "type": "Function", - "tags": [ - "return" - ], - "label": "open", - "description": [ - "\nOpens a flyout panel with the given mount point inside. You can use\n`close()` on the returned FlyoutRef to close the flyout.\n" - ], - "signature": [ - "(mount: ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - ", options?: ", - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayFlyoutOpenOptions", - "text": "OverlayFlyoutOpenOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.OverlayRef", - "text": "OverlayRef" - } - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutStart.open.$1", - "type": "Function", - "tags": [], - "label": "mount", - "description": [ - "{@link MountPoint } - Mounts the children inside a flyout panel" - ], - "signature": [ - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - "" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayFlyoutStart.open.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link OverlayFlyoutOpenOptions } - options for the flyout" - ], - "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayFlyoutOpenOptions", - "text": "OverlayFlyoutOpenOptions" - }, - " | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions", - "type": "Interface", - "tags": [], - "label": "OverlayModalConfirmOptions", - "description": [], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.title", - "type": "string", - "tags": [], - "label": "title", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.cancelButtonText", - "type": "string", - "tags": [], - "label": "cancelButtonText", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.confirmButtonText", - "type": "string", - "tags": [], - "label": "confirmButtonText", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.className", - "type": "string", - "tags": [], - "label": "className", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.closeButtonAriaLabel", - "type": "string", - "tags": [], - "label": "closeButtonAriaLabel", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.datatestsubj", - "type": "string", - "tags": [], - "label": "'data-test-subj'", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.defaultFocusedButton", - "type": "CompoundType", - "tags": [], - "label": "defaultFocusedButton", - "description": [], - "signature": [ - "\"cancel\" | \"confirm\" | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.buttonColor", - "type": "CompoundType", - "tags": [], - "label": "buttonColor", - "description": [], - "signature": [ - "EuiButtonColor", - " | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalConfirmOptions.maxWidth", - "type": "CompoundType", - "tags": [], - "label": "maxWidth", - "description": [ - "\nSets the max-width of the modal.\nSet to `true` to use the default (`euiBreakpoints 'm'`),\nset to `false` to not restrict the width,\nset to a number for a custom width in px,\nset to a string for a custom width in custom measurement." - ], - "signature": [ - "string | number | boolean | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalOpenOptions", - "type": "Interface", - "tags": [], - "label": "OverlayModalOpenOptions", - "description": [], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayModalOpenOptions.className", - "type": "string", - "tags": [], - "label": "className", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalOpenOptions.closeButtonAriaLabel", - "type": "string", - "tags": [], - "label": "closeButtonAriaLabel", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalOpenOptions.datatestsubj", - "type": "string", - "tags": [], - "label": "'data-test-subj'", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalOpenOptions.maxWidth", - "type": "CompoundType", - "tags": [], - "label": "maxWidth", - "description": [], - "signature": [ - "string | number | boolean | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalStart", - "type": "Interface", - "tags": [], - "label": "OverlayModalStart", - "description": [ - "\nAPIs to open and manage modal dialogs.\n" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayModalStart.open", - "type": "Function", - "tags": [ - "return" - ], - "label": "open", - "description": [ - "\nOpens a modal panel with the given mount point inside. You can use\n`close()` on the returned OverlayRef to close the modal.\n" - ], - "signature": [ - "(mount: ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - ", options?: ", - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayModalOpenOptions", - "text": "OverlayModalOpenOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.OverlayRef", - "text": "OverlayRef" - } - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayModalStart.open.$1", - "type": "Function", - "tags": [], - "label": "mount", - "description": [ - "{@link MountPoint } - Mounts the children inside the modal" - ], - "signature": [ - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - "" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalStart.open.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link OverlayModalOpenOptions } - options for the modal" - ], - "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayModalOpenOptions", - "text": "OverlayModalOpenOptions" - }, - " | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalStart.openConfirm", - "type": "Function", - "tags": [], - "label": "openConfirm", - "description": [ - "\nOpens a confirmation modal with the given text or mountpoint as a message.\nReturns a Promise resolving to `true` if user confirmed or `false` otherwise.\n" - ], - "signature": [ - "(message: string | ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - ", options?: ", - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayModalConfirmOptions", - "text": "OverlayModalConfirmOptions" - }, - " | undefined) => Promise" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayModalStart.openConfirm.$1", - "type": "CompoundType", - "tags": [], - "label": "message", - "description": [ - "{@link MountPoint } - string or mountpoint to be used a the confirm message body" - ], - "signature": [ - "string | ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - "" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayModalStart.openConfirm.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link OverlayModalConfirmOptions } - options for the confirm modal" - ], - "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayModalConfirmOptions", - "text": "OverlayModalConfirmOptions" - }, - " | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayRef", - "type": "Interface", - "tags": [], - "label": "OverlayRef", - "description": [ - "\nReturned by {@link OverlayStart} methods for closing a mounted overlay." - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/overlay_ref.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayRef.onClose", - "type": "Object", - "tags": [], - "label": "onClose", - "description": [ - "\nA Promise that will resolve once this overlay is closed.\n\nOverlays can close from user interaction, calling `close()` on the overlay\nreference or another overlay replacing yours via `openModal` or `openFlyout`." - ], - "signature": [ - "Promise" - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/overlay_ref.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayRef.close", - "type": "Function", - "tags": [], - "label": "close", - "description": [ - "\nCloses the referenced overlay if it's still open which in turn will\nresolve the `onClose` Promise. If the overlay had already been\nclosed this method does nothing." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/overlay_ref.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayStart", - "type": "Interface", - "tags": [], - "label": "OverlayStart", - "description": [], - "path": "packages/core/overlays/core-overlays-browser/src/overlays.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.banners", - "type": "Object", - "tags": [], - "label": "banners", - "description": [ - "{@link OverlayBannersStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayBannersStart", - "text": "OverlayBannersStart" - } - ], - "path": "packages/core/overlays/core-overlays-browser/src/overlays.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openFlyout", - "type": "Function", - "tags": [], - "label": "openFlyout", - "description": [ - "{@link OverlayFlyoutStart#open}" - ], - "signature": [ - "(mount: ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - ", options?: ", - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayFlyoutOpenOptions", - "text": "OverlayFlyoutOpenOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.OverlayRef", - "text": "OverlayRef" - } - ], - "path": "packages/core/overlays/core-overlays-browser/src/overlays.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openFlyout.$1", - "type": "Function", - "tags": [], - "label": "mount", - "description": [], - "signature": [ - "(element: HTMLElement) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.UnmountCallback", - "text": "UnmountCallback" - } - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openFlyout.$1.$1", - "type": "Uncategorized", - "tags": [], - "label": "element", - "description": [], - "signature": [ - "T" - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/mount_point.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openFlyout.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayFlyoutOpenOptions", - "text": "OverlayFlyoutOpenOptions" - }, - " | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/flyout.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openModal", - "type": "Function", - "tags": [], - "label": "openModal", - "description": [ - "{@link OverlayModalStart#open}" - ], - "signature": [ - "(mount: ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - ", options?: ", - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayModalOpenOptions", - "text": "OverlayModalOpenOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.OverlayRef", - "text": "OverlayRef" - } - ], - "path": "packages/core/overlays/core-overlays-browser/src/overlays.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openModal.$1", - "type": "Function", - "tags": [], - "label": "mount", - "description": [], - "signature": [ - "(element: HTMLElement) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.UnmountCallback", - "text": "UnmountCallback" - } - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openModal.$1.$1", - "type": "Uncategorized", - "tags": [], - "label": "element", - "description": [], - "signature": [ - "T" - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/mount_point.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openModal.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayModalOpenOptions", - "text": "OverlayModalOpenOptions" - }, - " | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openConfirm", - "type": "Function", - "tags": [], - "label": "openConfirm", - "description": [ - "{@link OverlayModalStart#openConfirm}" - ], - "signature": [ - "(message: string | ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - ", options?: ", - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayModalConfirmOptions", - "text": "OverlayModalConfirmOptions" - }, - " | undefined) => Promise" - ], - "path": "packages/core/overlays/core-overlays-browser/src/overlays.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openConfirm.$1", - "type": "CompoundType", - "tags": [], - "label": "message", - "description": [], - "signature": [ - "string | ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - "" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.OverlayStart.openConfirm.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayModalConfirmOptions", - "text": "OverlayModalConfirmOptions" - }, - " | undefined" - ], - "path": "packages/core/overlays/core-overlays-browser/src/modal.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.PackageInfo", - "type": "Interface", - "tags": [], - "label": "PackageInfo", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.PackageInfo.version", - "type": "string", - "tags": [], - "label": "version", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.PackageInfo.branch", - "type": "string", - "tags": [], - "label": "branch", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.PackageInfo.buildNum", - "type": "number", - "tags": [], - "label": "buildNum", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.PackageInfo.buildSha", - "type": "string", - "tags": [], - "label": "buildSha", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.PackageInfo.dist", - "type": "boolean", - "tags": [], - "label": "dist", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.Plugin", - "type": "Interface", - "tags": [], - "label": "Plugin", - "description": [ - "\nThe interface that should be returned by a `PluginInitializer`.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-browser", - "scope": "common", - "docId": "kibKbnCorePluginsBrowserPluginApi", - "section": "def-common.Plugin", - "text": "Plugin" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.Plugin.setup", - "type": "Function", - "tags": [], - "label": "setup", - "description": [], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-lifecycle-browser", - "scope": "common", - "docId": "kibKbnCoreLifecycleBrowserPluginApi", - "section": "def-common.CoreSetup", - "text": "CoreSetup" - }, - ", plugins: TPluginsSetup) => TSetup" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.Plugin.setup.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-browser", - "scope": "common", - "docId": "kibKbnCoreLifecycleBrowserPluginApi", - "section": "def-common.CoreSetup", - "text": "CoreSetup" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.Plugin.setup.$2", - "type": "Uncategorized", - "tags": [], - "label": "plugins", - "description": [], - "signature": [ - "TPluginsSetup" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.Plugin.start", - "type": "Function", - "tags": [], - "label": "start", - "description": [], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-lifecycle-browser", - "scope": "common", - "docId": "kibKbnCoreLifecycleBrowserPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - }, - ", plugins: TPluginsStart) => TStart" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.Plugin.start.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-browser", - "scope": "common", - "docId": "kibKbnCoreLifecycleBrowserPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - } - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.Plugin.start.$2", - "type": "Uncategorized", - "tags": [], - "label": "plugins", - "description": [], - "signature": [ - "TPluginsStart" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.Plugin.stop", - "type": "Function", - "tags": [], - "label": "stop", - "description": [], - "signature": [ - "(() => void) | undefined" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.PluginInitializerContext", - "type": "Interface", - "tags": [], - "label": "PluginInitializerContext", - "description": [ - "\nThe available core services passed to a `PluginInitializer`\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-browser", - "scope": "common", - "docId": "kibKbnCorePluginsBrowserPluginApi", - "section": "def-common.PluginInitializerContext", - "text": "PluginInitializerContext" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin_initializer.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.PluginInitializerContext.opaqueId", - "type": "Uncategorized", - "tags": [], - "label": "opaqueId", - "description": [ - "\nA symbol used to identify this plugin in the system. Needed when registering handlers or context providers." - ], - "signature": [ - "symbol" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin_initializer.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.PluginInitializerContext.env", - "type": "Object", - "tags": [], - "label": "env", - "description": [], - "signature": [ - "{ mode: Readonly<", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.EnvironmentMode", - "text": "EnvironmentMode" - }, - ">; packageInfo: Readonly<", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.PackageInfo", - "text": "PackageInfo" - }, - ">; }" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin_initializer.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.PluginInitializerContext.logger", - "type": "Object", - "tags": [], - "label": "logger", - "description": [], - "signature": [ - { - "pluginId": "@kbn/logging", - "scope": "common", - "docId": "kibKbnLoggingPluginApi", - "section": "def-common.LoggerFactory", - "text": "LoggerFactory" - } - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin_initializer.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.PluginInitializerContext.config", - "type": "Object", - "tags": [], - "label": "config", - "description": [], - "signature": [ - "{ get: () => T; }" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin_initializer.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ResolvedSimpleSavedObject", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "ResolvedSimpleSavedObject", - "description": [ - "\nThis interface is a very simple wrapper for SavedObjects resolved from the server\nwith the {@link SavedObjectsClientContract}.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.ResolvedSimpleSavedObject", - "text": "ResolvedSimpleSavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_resolve.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_resolve.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "spaces", - "path": "x-pack/plugins/spaces/public/legacy_urls/types.ts" - }, - { - "plugin": "spaces", - "path": "x-pack/plugins/spaces/public/legacy_urls/types.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/types.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/types.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/types.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/types.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/types.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/types.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/types.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/types.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/common/ui/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/common/ui/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/common/ui/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/common/ui/types.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/workpad.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/workpad.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/workpad.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/workpad.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/use_workspace_loader.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/use_workspace_loader.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/use_workspace_loader.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/use_workspace_loader.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ResolvedSimpleSavedObject.saved_object", - "type": "Object", - "tags": [], - "label": "saved_object", - "description": [ - "\nThe saved object that was found." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SimpleSavedObject", - "text": "SimpleSavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ResolvedSimpleSavedObject.outcome", - "type": "CompoundType", - "tags": [], - "label": "outcome", - "description": [ - "\nThe outcome for a successful `resolve` call is one of the following values:\n\n * `'exactMatch'` -- One document exactly matched the given ID.\n * `'aliasMatch'` -- One document with a legacy URL alias matched the given ID; in this case the `saved_object.id` field is different\n than the given ID.\n * `'conflict'` -- Two documents matched the given ID, one was an exact match and another with a legacy URL alias; in this case the\n `saved_object` object is the exact match, and the `saved_object.id` field is the same as the given ID." - ], - "signature": [ - "\"conflict\" | \"exactMatch\" | \"aliasMatch\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ResolvedSimpleSavedObject.alias_target_id", - "type": "string", - "tags": [], - "label": "alias_target_id", - "description": [ - "\nThe ID of the object that the legacy URL alias points to.\n\n**Note:** this field is *only* included when an alias was found (in other words, when the outcome is `'aliasMatch'` or `'conflict'`)." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ResolvedSimpleSavedObject.alias_purpose", - "type": "CompoundType", - "tags": [], - "label": "alias_purpose", - "description": [ - "\nThe reason this alias was created.\n\nCurrently this is used to determine whether or not a toast should be shown when a user is redirected from a legacy URL; if the alias\nwas created because of saved object conversion, then we will display a toast telling the user that the object has a new URL.\n\n**Note:** this field is *only* included when an alias was found (in other words, when the outcome is `'aliasMatch'` or `'conflict'`)." - ], - "signature": [ - "\"savedObjectConversion\" | \"savedObjectImport\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ResponseErrorBody", - "type": "Interface", - "tags": [], - "label": "ResponseErrorBody", - "description": [], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ResponseErrorBody.message", - "type": "string", - "tags": [], - "label": "message", - "description": [], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ResponseErrorBody.statusCode", - "type": "number", - "tags": [], - "label": "statusCode", - "description": [], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ResponseErrorBody.attributes", - "type": "Object", - "tags": [], - "label": "attributes", - "description": [], - "signature": [ - "Record | undefined" - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectError", - "type": "Interface", - "tags": [], - "label": "SavedObjectError", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectError.error", - "type": "string", - "tags": [], - "label": "error", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectError.message", - "type": "string", - "tags": [], - "label": "message", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectError.statusCode", - "type": "number", - "tags": [], - "label": "statusCode", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectError.metadata", - "type": "Object", - "tags": [], - "label": "metadata", - "description": [], - "signature": [ - "Record | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBatchResponse", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsBatchResponse", - "description": [ - "\nBatch response for simple saved objects\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBatchResponse", - "text": "SavedObjectsBatchResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/base.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBatchResponse.savedObjects", - "type": "Array", - "tags": [], - "label": "savedObjects", - "description": [ - "Array of simple saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SimpleSavedObject", - "text": "SimpleSavedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/base.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkCreateObject", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsBulkCreateObject", - "description": [ - "\nPer-object parameters for bulk create operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkCreateObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "Create a SavedObject of this type." - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkCreateObject.attributes", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "Attributes for the saved object to be created." - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkCreateOptions", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsBulkCreateOptions", - "description": [ - "\nOptions for bulk create operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkCreateOptions.overwrite", - "type": "CompoundType", - "tags": [], - "label": "overwrite", - "description": [ - "If a document with the given `id` already exists, overwrite its contents (default=false)." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkResolveResponse", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsBulkResolveResponse", - "description": [ - "\nReturn type of the Saved Objects `bulkResolve()` method.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkResolveResponse", - "text": "SavedObjectsBulkResolveResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_resolve.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkResolveResponse.resolved_objects", - "type": "Array", - "tags": [], - "label": "resolved_objects", - "description": [ - "Array of {@link ResolvedSimpleSavedObject} that were resolved" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.ResolvedSimpleSavedObject", - "text": "ResolvedSimpleSavedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_resolve.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkUpdateObject", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsBulkUpdateObject", - "description": [ - "\nPer-object parameters for bulk update operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkUpdateObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "Type of the saved object to update" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkUpdateObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "ID of the saved object to update" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkUpdateObject.attributes", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "The attributes to update" - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkUpdateObject.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "The version string for the saved object" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkUpdateObject.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "Array of references to other saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkUpdateOptions", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsBulkUpdateOptions", - "description": [ - "\nOptions for bulk update operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsBulkUpdateOptions.namespace", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "\nThe namespace from which to apply the bulk update operation\nNot permitted if spaces extension is enabled" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsClientContract", - "description": [ - "\nThe client-side SavedObjectsClient is a thin convenience library around the SavedObjects\nHTTP API for interacting with Saved Objects.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser", - "path": "packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser", - "path": "packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/lib/get_title.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/lib/get_title.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "home", - "path": "src/plugins/home/public/application/kibana_services.ts" - }, - { - "plugin": "home", - "path": "src/plugins/home/public/application/kibana_services.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/initialize_saved_object.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/initialize_saved_object.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/plugin.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/plugin.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/types.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/types.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/plugin.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/plugin.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/dimension_panel/reference_editor.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/dimension_panel/reference_editor.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/dimension_panel/dimension_panel.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/dimension_panel/dimension_panel.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/operations/definitions/index.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/operations/definitions/index.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/util/dependency_cache.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/util/dependency_cache.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/services/dashboard_service.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/services/dashboard_service.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/platform.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/platform.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/save_modal.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/save_modal.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/store.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/store.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/use_workspace_loader.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/use_workspace_loader.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts" - }, - { - "plugin": "watcher", - "path": "x-pack/plugins/watcher/public/application/lib/api.ts" - }, - { - "plugin": "watcher", - "path": "x-pack/plugins/watcher/public/application/lib/api.ts" - }, - { - "plugin": "watcher", - "path": "x-pack/plugins/watcher/public/application/lib/api.ts" - }, - { - "plugin": "watcher", - "path": "x-pack/plugins/watcher/public/application/index.tsx" - }, - { - "plugin": "watcher", - "path": "x-pack/plugins/watcher/public/application/index.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/mocks.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/mocks.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/contexts/query_input_bar_context.ts" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/contexts/query_input_bar_context.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/update_basic_attributes.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/update_basic_attributes.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.create", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "create", - "description": [ - "\nCreates an object\n" - ], - "signature": [ - "(type: string, attributes: T, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SimpleSavedObject", - "text": "SimpleSavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/create_source.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/create_source.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_saved_object.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/update_basic_attributes.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.create.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of object to create" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.create.$2", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "- the attributes of the object" - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.create.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsCreateOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "The result of the create operation - the created saved object" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkCreate", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "bulkCreate", - "description": [ - "\nCreates multiple objects at once\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkCreateOptions", - "text": "SavedObjectsBulkCreateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBatchResponse", - "text": "SavedObjectsBatchResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "home", - "path": "src/plugins/home/public/application/components/home_app.js" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkCreate.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array of objects containing type, attributes" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkCreate.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBulkCreateOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkCreateOptions", - "text": "SavedObjectsBulkCreateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "The result of the create operation containing created saved objects." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.delete", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "delete", - "description": [ - "\nDeletes an object\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - }, - " | undefined) => Promise<{}>" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/build_saved_object.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.delete.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type the of object to delete" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.delete.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the id of the object to delete" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.delete.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsDeleteOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkDelete", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "bulkDelete", - "description": [ - "\nDeletes multiple documents at once" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectTypeIdTuple", - "text": "SavedObjectTypeIdTuple" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkDeleteResponse", - "text": "SavedObjectsBulkDeleteResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/settings/global_params/delete_param.tsx" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkDelete.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array of objects containing id, type" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectTypeIdTuple", - "text": "SavedObjectTypeIdTuple" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkDelete.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- optional force argument to force deletion of objects in a namespace other than the scoped client" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "The bulk delete result for the saved objects for the given types and ids." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.find", - "type": "Function", - "tags": [ - "property", - "property", - "property", - "property", - "property", - "property", - "property", - "deprecated" - ], - "label": "find", - "description": [ - "\nSearch for objects\n" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "presentationUtil", - "path": "src/plugins/presentation_util/public/services/dashboards/dashboards_service.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/routes/list_page/load_list_and_render.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/util/index_utils.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/recognize/resolvers.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/services/dashboard_service.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - }, - { - "plugin": "cloudSecurityPosture", - "path": "x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/hooks/use_dashboard_button_href.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/use_monitor_name.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/manage_locations/hooks/use_location_monitors.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/settings/private_locations/hooks/use_location_monitors.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_name.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/services/dashboard_service.test.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.test.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.find.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsFindOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "A find result with objects matching the specified search." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.get", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "get", - "description": [ - "\nFetches a single object\n" - ], - "signature": [ - "(type: string, id: string) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SimpleSavedObject", - "text": "SimpleSavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/lib/get_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/initialize_saved_object.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/update_basic_attributes.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/util/index_utils.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" - }, - { - "plugin": "cloudSecurityPosture", - "path": "x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.get.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to get" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.get.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the object to get" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The saved object for the given type and id." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkGet", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "bulkGet", - "description": [ - "\nReturns an array of objects by id\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectTypeIdTuple", - "text": "SavedObjectTypeIdTuple" - }, - "[]) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBatchResponse", - "text": "SavedObjectsBatchResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkGet.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array ids, or an array of objects containing id and optionally type" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectTypeIdTuple", - "text": "SavedObjectTypeIdTuple" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The saved objects with the given type and ids requested" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.resolve", - "type": "Function", - "tags": [ - "note", - "deprecated" - ], - "label": "resolve", - "description": [ - "\nResolves a single object\n" - ], - "signature": [ - "(type: string, id: string) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.ResolvedSimpleSavedObject", - "text": "ResolvedSimpleSavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.resolve.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to resolve" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.resolve.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the object to resolve" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The resolve result for the saved object for the given type and id." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkResolve", - "type": "Function", - "tags": [ - "note", - "deprecated" - ], - "label": "bulkResolve", - "description": [ - "\nResolves an array of objects by id, using any legacy URL aliases if they exist\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectTypeIdTuple", - "text": "SavedObjectTypeIdTuple" - }, - "[]) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkResolveResponse", - "text": "SavedObjectsBulkResolveResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/hooks/use_invalid_monitors.tsx" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_selector/use_recently_viewed_monitors.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkResolve.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array of objects containing id, type" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectTypeIdTuple", - "text": "SavedObjectTypeIdTuple" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The bulk resolve result for the saved objects for the given types and ids." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.update", - "type": "Function", - "tags": [ - "prop", - "prop", - "deprecated" - ], - "label": "update", - "description": [ - "\nUpdates an object\n" - ], - "signature": [ - "(type: string, id: string, attributes: T, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SimpleSavedObject", - "text": "SimpleSavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.update.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to update" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.update.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the object to update" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.update.$3", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "- the attributes to update" - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.update.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsUpdateOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the udpated simple saved object" - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkUpdate", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "bulkUpdate", - "description": [ - "\nUpdate multiple documents at once\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "[]) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBatchResponse", - "text": "SavedObjectsBatchResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsClientContract.bulkUpdate.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array of objects containing type, id, attributes, and references" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "the result of the bulk update operation containing both failed and updated saved objects." - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsCreateOptions", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsCreateOptions", - "description": [ - "\nOptions for creating a saved object.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsCreateOptions.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\n(Not recommended) Specify an id instead of having the saved objects service generate one for you." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsCreateOptions.overwrite", - "type": "CompoundType", - "tags": [], - "label": "overwrite", - "description": [ - "If a document with the given `id` already exists, overwrite it's contents (default=false)." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsCreateOptions.migrationVersion", - "type": "Object", - "tags": [], - "label": "migrationVersion", - "description": [ - "{@inheritDoc SavedObjectsMigrationVersion}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsMigrationVersion", - "text": "SavedObjectsMigrationVersion" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsCreateOptions.coreMigrationVersion", - "type": "string", - "tags": [], - "label": "coreMigrationVersion", - "description": [ - "A semver value that is used when upgrading objects between Kibana versions." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsCreateOptions.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "Array of referenced saved objects." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsDeleteOptions", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsDeleteOptions", - "description": [ - "\nOptions for deleting a saved object.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/delete.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsDeleteOptions.force", - "type": "CompoundType", - "tags": [], - "label": "force", - "description": [ - "Force deletion of an object that exists in multiple namespaces (default=false)" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/delete.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindOptionsReference", - "type": "Interface", - "tags": [], - "label": "SavedObjectsFindOptionsReference", - "description": [ - "\nAn object reference for use in find operation options\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindOptionsReference.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindOptionsReference.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindResponse", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsFindResponse", - "description": [ - "\nReturn type of the Saved Objects `find()` method.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsBatchResponse", - "text": "SavedObjectsBatchResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/saved_queries/use_saved_queries.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/saved_queries/use_saved_queries.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_packs.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_packs.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindResponse.aggregations", - "type": "Uncategorized", - "tags": [], - "label": "aggregations", - "description": [ - "aggregations from the search query" - ], - "signature": [ - "A | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindResponse.total", - "type": "number", - "tags": [], - "label": "total", - "description": [ - "total number of results" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindResponse.perPage", - "type": "number", - "tags": [], - "label": "perPage", - "description": [ - "number of results per page" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindResponse.page", - "type": "number", - "tags": [], - "label": "page", - "description": [ - "current page in results" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportActionRequiredWarning", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportActionRequiredWarning", - "description": [ - "\nA warning meant to notify that a specific user action is required to finalize the import\nof some type of object.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportActionRequiredWarning.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"action_required\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportActionRequiredWarning.message", - "type": "string", - "tags": [], - "label": "message", - "description": [ - "The translated message to display to the user." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportActionRequiredWarning.actionPath", - "type": "string", - "tags": [], - "label": "actionPath", - "description": [ - "The path (without the basePath) that the user should be redirect to address this warning." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportActionRequiredWarning.buttonLabel", - "type": "string", - "tags": [], - "label": "buttonLabel", - "description": [ - "An optional label to use for the link button. If unspecified, a default label will be used." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportAmbiguousConflictError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportAmbiguousConflictError", - "description": [ - "\nRepresents a failure to import due to a conflict, which can be resolved in different ways with an overwrite." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportAmbiguousConflictError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"ambiguous_conflict\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportAmbiguousConflictError.destinations", - "type": "Array", - "tags": [], - "label": "destinations", - "description": [], - "signature": [ - "{ id: string; title?: string | undefined; updatedAt?: string | undefined; }[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportConflictError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportConflictError", - "description": [ - "\nRepresents a failure to import due to a conflict." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportConflictError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"conflict\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportConflictError.destinationId", - "type": "string", - "tags": [], - "label": "destinationId", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportFailure", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportFailure", - "description": [ - "\nRepresents a failure to import." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportFailure.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportFailure.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportFailure.meta", - "type": "Object", - "tags": [], - "label": "meta", - "description": [], - "signature": [ - "{ title?: string | undefined; icon?: string | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportFailure.overwrite", - "type": "CompoundType", - "tags": [], - "label": "overwrite", - "description": [ - "\nIf `overwrite` is specified, an attempt was made to overwrite an existing object." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportFailure.error", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportConflictError", - "text": "SavedObjectsImportConflictError" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportAmbiguousConflictError", - "text": "SavedObjectsImportAmbiguousConflictError" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportUnsupportedTypeError", - "text": "SavedObjectsImportUnsupportedTypeError" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportMissingReferencesError", - "text": "SavedObjectsImportMissingReferencesError" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportUnknownError", - "text": "SavedObjectsImportUnknownError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportMissingReferencesError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportMissingReferencesError", - "description": [ - "\nRepresents a failure to import due to missing references." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportMissingReferencesError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"missing_references\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportMissingReferencesError.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [], - "signature": [ - "{ type: string; id: string; }[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportResponse", - "description": [ - "\nThe response describing the result of an import." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportResponse.success", - "type": "boolean", - "tags": [], - "label": "success", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportResponse.successCount", - "type": "number", - "tags": [], - "label": "successCount", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportResponse.successResults", - "type": "Array", - "tags": [], - "label": "successResults", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportSuccess", - "text": "SavedObjectsImportSuccess" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportResponse.warnings", - "type": "Array", - "tags": [], - "label": "warnings", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportWarning", - "text": "SavedObjectsImportWarning" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportResponse.errors", - "type": "Array", - "tags": [], - "label": "errors", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportFailure", - "text": "SavedObjectsImportFailure" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportRetry", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportRetry", - "description": [ - "\nDescribes a retry operation for importing a saved object." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportRetry.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportRetry.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportRetry.overwrite", - "type": "boolean", - "tags": [], - "label": "overwrite", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportRetry.destinationId", - "type": "string", - "tags": [], - "label": "destinationId", - "description": [ - "\nThe object ID that will be created or overwritten. If not specified, the `id` field will be used." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportRetry.replaceReferences", - "type": "Array", - "tags": [], - "label": "replaceReferences", - "description": [], - "signature": [ - "{ type: string; from: string; to: string; }[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportRetry.createNewCopy", - "type": "CompoundType", - "tags": [], - "label": "createNewCopy", - "description": [ - "\nIf `createNewCopy` is specified, the new object has a new (undefined) origin ID. This is only needed for the case where\n`createNewCopies` mode is disabled and ambiguous source conflicts are detected." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportRetry.ignoreMissingReferences", - "type": "CompoundType", - "tags": [], - "label": "ignoreMissingReferences", - "description": [ - "\nIf `ignoreMissingReferences` is specified, reference validation will be skipped for this object." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSimpleWarning", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportSimpleWarning", - "description": [ - "\nA simple informative warning that will be displayed to the user.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSimpleWarning.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"simple\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSimpleWarning.message", - "type": "string", - "tags": [], - "label": "message", - "description": [ - "The translated message to display to the user" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSuccess", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportSuccess", - "description": [ - "\nRepresents a successful import." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSuccess.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSuccess.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSuccess.destinationId", - "type": "string", - "tags": [], - "label": "destinationId", - "description": [ - "\nIf `destinationId` is specified, the new object has a new ID that is different from the import ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSuccess.createNewCopy", - "type": "CompoundType", - "tags": [ - "deprecated" - ], - "label": "createNewCopy", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "spaces", - "path": "x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_internal.tsx" - }, - { - "plugin": "savedObjectsManagement", - "path": "src/plugins/saved_objects_management/public/lib/resolve_import_errors.ts" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSuccess.meta", - "type": "Object", - "tags": [], - "label": "meta", - "description": [], - "signature": [ - "{ title?: string | undefined; icon?: string | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportSuccess.overwrite", - "type": "CompoundType", - "tags": [], - "label": "overwrite", - "description": [ - "\nIf `overwrite` is specified, this object overwrote an existing one (or will do so, in the case of a pending resolution)." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportUnknownError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportUnknownError", - "description": [ - "\nRepresents a failure to import due to an unknown reason." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportUnknownError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"unknown\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportUnknownError.message", - "type": "string", - "tags": [], - "label": "message", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportUnknownError.statusCode", - "type": "number", - "tags": [], - "label": "statusCode", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportUnsupportedTypeError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportUnsupportedTypeError", - "description": [ - "\nRepresents a failure to import due to having an unsupported saved object type." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportUnsupportedTypeError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"unsupported_type\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsMigrationVersion", - "type": "Interface", - "tags": [], - "label": "SavedObjectsMigrationVersion", - "description": [ - "\nInformation about the migrations that have been applied to this SavedObject.\nWhen Kibana starts up, KibanaMigrator detects outdated documents and\nmigrates them based on this value. For each migration that has been applied,\nthe plugin's name is used as a key and the latest migration version as the\nvalue.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsMigrationVersion.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[pluginName: string]: string", - "description": [ - "The plugin name and version string" - ], - "signature": [ - "[pluginName: string]: string" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsStart", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsStart", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser", - "path": "packages/core/saved-objects/core-saved-objects-browser/index.ts" - }, - { - "plugin": "@kbn/core-lifecycle-browser", - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts" - }, - { - "plugin": "@kbn/core-lifecycle-browser", - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/services.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/services.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/new_vis_modal.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/new_vis_modal.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/types.ts" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "observability", - "path": "x-pack/plugins/observability/public/application/types.ts" - }, - { - "plugin": "observability", - "path": "x-pack/plugins/observability/public/application/types.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/platform.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/platform.ts" - }, - { - "plugin": "transform", - "path": "x-pack/plugins/transform/public/app/app_dependencies.tsx" - }, - { - "plugin": "transform", - "path": "x-pack/plugins/transform/public/app/app_dependencies.tsx" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsStart.client", - "type": "Object", - "tags": [], - "label": "client", - "description": [ - "{@link SavedObjectsClientContract}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsUpdateOptions", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsUpdateOptions", - "description": [ - "\nOptions for updating a saved object\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsUpdateOptions.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "version of the saved object" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsUpdateOptions.upsert", - "type": "Uncategorized", - "tags": [], - "label": "upsert", - "description": [ - "Alternative attributes for the saved object if upserting" - ], - "signature": [ - "Attributes | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsUpdateOptions.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "Array of references to other saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectTypeIdTuple", - "type": "Interface", - "tags": [], - "label": "SavedObjectTypeIdTuple", - "description": [ - "\nAn identifier for a saved object within a space.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SavedObjectTypeIdTuple.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The id of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectTypeIdTuple.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ScopedHistory", - "type": "Interface", - "tags": [], - "label": "ScopedHistory", - "description": [ - "\nA wrapper around a `History` instance that is scoped to a particular base path of the history stack. Behaves\nsimilarly to the `basename` option except that this wrapper hides any history stack entries from outside the scope\nof this base path.\n\nThis wrapper also allows Core and Plugins to share a single underlying global `History` instance without exposing\nthe history of other applications.\n\nThe {@link ScopedHistory.createSubHistory | createSubHistory} method is particularly useful for applications that\ncontain any number of \"sub-apps\" which should not have access to the main application's history or basePath.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.ScopedHistory", - "text": "ScopedHistory" - }, - " extends ", - "History", - "" - ], - "path": "packages/core/application/core-application-browser/src/scoped_history.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ScopedHistory.createSubHistory", - "type": "Function", - "tags": [], - "label": "createSubHistory", - "description": [ - "\nCreates a `ScopedHistory` for a subpath of this `ScopedHistory`. Useful for applications that may have sub-apps\nthat do not need access to the containing application's history.\n" - ], - "signature": [ - "(basePath: string) => ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.ScopedHistory", - "text": "ScopedHistory" - }, - "" - ], - "path": "packages/core/application/core-application-browser/src/scoped_history.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ScopedHistory.createSubHistory.$1", - "type": "string", - "tags": [], - "label": "basePath", - "description": [ - "the URL path scope for the sub history" - ], - "signature": [ - "string" - ], - "path": "packages/core/application/core-application-browser/src/scoped_history.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.ScopedHistory.createHref", - "type": "Function", - "tags": [], - "label": "createHref", - "description": [ - "\nCreates an href (string) to the location.\nIf `prependBasePath` is true (default), it will prepend the location's path with the scoped history basePath.\n" - ], - "signature": [ - "(location: ", - "LocationDescriptorObject", - ", options?: { prependBasePath?: boolean | undefined; } | undefined) => string" - ], - "path": "packages/core/application/core-application-browser/src/scoped_history.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ScopedHistory.createHref.$1", - "type": "Object", - "tags": [], - "label": "location", - "description": [], - "signature": [ - "LocationDescriptorObject", - "" - ], - "path": "packages/core/application/core-application-browser/src/scoped_history.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ScopedHistory.createHref.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "path": "packages/core/application/core-application-browser/src/scoped_history.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ScopedHistory.createHref.$2.prependBasePath", - "type": "CompoundType", - "tags": [], - "label": "prependBasePath", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/application/core-application-browser/src/scoped_history.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ShipperClassConstructor", - "type": "Interface", - "tags": [], - "label": "ShipperClassConstructor", - "description": [ - "\nConstructor of a {@link IShipper}" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ShipperClassConstructor.shipperName", - "type": "string", - "tags": [], - "label": "shipperName", - "description": [ - "\nThe shipper's unique name" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.ShipperClassConstructor.new", - "type": "Function", - "tags": [], - "label": "new", - "description": [ - "\nThe constructor" - ], - "signature": [ - "any" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ShipperClassConstructor.new.$1", - "type": "Uncategorized", - "tags": [], - "label": "config", - "description": [ - "The shipper's custom config" - ], - "signature": [ - "Config" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.ShipperClassConstructor.new.$2", - "type": "Object", - "tags": [], - "label": "initContext", - "description": [ - "Common context {@link AnalyticsClientInitContext }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.AnalyticsClientInitContext", - "text": "AnalyticsClientInitContext" - } - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SimpleSavedObject", - "description": [ - "\nVery simple wrapper for SavedObjects loaded from the server\nwith the {@link SavedObjectsClientContract}.\n\nIt provides basic functionality for creating/saving/deleting saved objects,\nbut doesn't include any type-specific implementations.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SimpleSavedObject", - "text": "SimpleSavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/base.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/base.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" - }, - { - "plugin": "presentationUtil", - "path": "src/plugins/presentation_util/public/services/dashboards/types.ts" - }, - { - "plugin": "presentationUtil", - "path": "src/plugins/presentation_util/public/services/dashboards/types.ts" - }, - { - "plugin": "presentationUtil", - "path": "src/plugins/presentation_util/public/services/dashboards/types.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/vis_types/vis_type_alias_registry.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/vis_types/vis_type_alias_registry.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "aiops", - "path": "x-pack/plugins/aiops/public/application/utils/search_utils.ts" - }, - { - "plugin": "aiops", - "path": "x-pack/plugins/aiops/public/application/utils/search_utils.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/common/types/kibana.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/common/types/kibana.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/maps_vis_type_alias.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/maps_vis_type_alias.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/maps_vis_type_alias.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/common/types/index.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/common/types/index.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/types.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/types.ts" - }, - { - "plugin": "cloudSecurityPosture", - "path": "x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts" - }, - { - "plugin": "cloudSecurityPosture", - "path": "x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts" - }, - { - "plugin": "cloudSecurityPosture", - "path": "x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/types/app_state.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/types/app_state.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/common/types/synthetics_monitor.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/common/types/synthetics_monitor.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/common/types/synthetics_monitor.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/hooks/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/hooks/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.attributes", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "attributes of the object, templated" - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject._version", - "type": "string", - "tags": [], - "label": "_version", - "description": [ - " version of the saved object" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "ID of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "Type of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.migrationVersion", - "type": "Object", - "tags": [], - "label": "migrationVersion", - "description": [ - "Migration version of the saved object" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsMigrationVersion", - "text": "SavedObjectsMigrationVersion" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.coreMigrationVersion", - "type": "string", - "tags": [], - "label": "coreMigrationVersion", - "description": [ - "Core migration version of the saved object" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.error", - "type": "Object", - "tags": [], - "label": "error", - "description": [ - "Error associated with this object, undefined if no error" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectError", - "text": "SavedObjectError" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "References to other saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.updatedAt", - "type": "string", - "tags": [], - "label": "updatedAt", - "description": [ - "The date this object was last updated" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.createdAt", - "type": "string", - "tags": [], - "label": "createdAt", - "description": [ - "The date this object was created" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.namespaces", - "type": "Array", - "tags": [], - "label": "namespaces", - "description": [ - "\nSpace(s) that this saved object exists in. This attribute is not used for \"global\" saved object types which are registered with\n`namespaceType: 'agnostic'`." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nGets an attribute of this object\n" - ], - "signature": [ - "(key: string) => any" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.get.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [ - "- the name of the attribute" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The value of the attribute." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.set", - "type": "Function", - "tags": [], - "label": "set", - "description": [ - "\nSets an attribute of this object\n" - ], - "signature": [ - "(key: string, value: any) => T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.set.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [ - "- the name of the attribute" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.set.$2", - "type": "Any", - "tags": [], - "label": "value", - "description": [ - "- the value for the attribute" - ], - "signature": [ - "any" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The updated attributes of this object." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.has", - "type": "Function", - "tags": [], - "label": "has", - "description": [ - "\nChecks if this object has an attribute\n" - ], - "signature": [ - "(key: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.has.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [ - "- the name of the attribute" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "true if the attribute exists." - ] - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.save", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "save", - "description": [ - "\nSaves this object" - ], - "signature": [ - "() => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SimpleSavedObject", - "text": "SimpleSavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - } - ], - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-public.SimpleSavedObject.delete", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "delete", - "description": [ - "\nDeletes this object" - ], - "signature": [ - "() => Promise<{}>" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - } - ], - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.TelemetryCounter", - "type": "Interface", - "tags": [], - "label": "TelemetryCounter", - "description": [ - "\nShape of the events emitted by the telemetryCounter$ observable" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.TelemetryCounter.type", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [ - "\n{@link TelemetryCounterType}" - ], - "signature": [ - "\"succeeded\" | \"failed\" | \"enqueued\" | \"sent_to_shipper\" | \"dropped\"" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.TelemetryCounter.source", - "type": "string", - "tags": [], - "label": "source", - "description": [ - "\nWho emitted the event? It can be \"client\" or the name of the shipper." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.TelemetryCounter.event_type", - "type": "string", - "tags": [], - "label": "event_type", - "description": [ - "\nThe event type the success/failure/drop event refers to." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.TelemetryCounter.code", - "type": "string", - "tags": [], - "label": "code", - "description": [ - "\nCode to provide additional information about the success or failure. Examples are 200/400/504/ValidationError/UnknownError" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.TelemetryCounter.count", - "type": "number", - "tags": [], - "label": "count", - "description": [ - "\nThe number of events that this counter refers to." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ThemeServiceSetup", - "type": "Interface", - "tags": [], - "label": "ThemeServiceSetup", - "description": [], - "path": "packages/core/theme/core-theme-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ThemeServiceSetup.theme$", - "type": "Object", - "tags": [], - "label": "theme$", - "description": [], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-theme-browser", - "scope": "common", - "docId": "kibKbnCoreThemeBrowserPluginApi", - "section": "def-common.CoreTheme", - "text": "CoreTheme" - }, - ">" - ], - "path": "packages/core/theme/core-theme-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ThemeServiceStart", - "type": "Interface", - "tags": [], - "label": "ThemeServiceStart", - "description": [], - "path": "packages/core/theme/core-theme-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ThemeServiceStart.theme$", - "type": "Object", - "tags": [], - "label": "theme$", - "description": [], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-theme-browser", - "scope": "common", - "docId": "kibKbnCoreThemeBrowserPluginApi", - "section": "def-common.CoreTheme", - "text": "CoreTheme" - }, - ">" - ], - "path": "packages/core/theme/core-theme-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ToastOptions", - "type": "Interface", - "tags": [], - "label": "ToastOptions", - "description": [ - "\nOptions available for {@link IToasts} APIs." - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.ToastOptions.toastLifeTimeMs", - "type": "number", - "tags": [], - "label": "toastLifeTimeMs", - "description": [ - "\nHow long should the toast remain on screen." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams", - "type": "Interface", - "tags": [], - "label": "UiSettingsParams", - "description": [ - "\nUiSettings parameters defined by the plugins." - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsParams", - "text": "UiSettingsParams" - }, - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.name", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "title in the UI" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.value", - "type": "Uncategorized", - "tags": [], - "label": "value", - "description": [ - "default value to fall back to if a user doesn't provide any" - ], - "signature": [ - "T | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.description", - "type": "string", - "tags": [], - "label": "description", - "description": [ - "description provided to a user in UI" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.category", - "type": "Array", - "tags": [], - "label": "category", - "description": [ - "used to group the configured setting in the UI" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.options", - "type": "CompoundType", - "tags": [], - "label": "options", - "description": [ - "array of permitted values for this setting" - ], - "signature": [ - "string[] | number[] | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.optionLabels", - "type": "Object", - "tags": [], - "label": "optionLabels", - "description": [ - "text labels for 'select' type UI element" - ], - "signature": [ - "Record | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.requiresPageReload", - "type": "CompoundType", - "tags": [], - "label": "requiresPageReload", - "description": [ - "a flag indicating whether new value applying requires page reloading" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.readonly", - "type": "CompoundType", - "tags": [], - "label": "readonly", - "description": [ - "a flag indicating that value cannot be changed" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.sensitive", - "type": "CompoundType", - "tags": [], - "label": "sensitive", - "description": [ - "\na flag indicating that value might contain user sensitive data.\nused by telemetry to mask the value of the setting when sent." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.type", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [ - "defines a type of UI element {@link UiSettingsType}" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsType", - "text": "UiSettingsType" - }, - " | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.deprecation", - "type": "Object", - "tags": [], - "label": "deprecation", - "description": [ - "optional deprecation information. Used to generate a deprecation warning." - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.DeprecationSettings", - "text": "DeprecationSettings" - }, - " | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.order", - "type": "number", - "tags": [], - "label": "order", - "description": [ - "\nindex of the settings within its category (ascending order, smallest will be displayed first).\nUsed for ordering in the UI.\n" - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.schema", - "type": "Object", - "tags": [], - "label": "schema", - "description": [], - "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.Type", - "text": "Type" - }, - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.metric", - "type": "Object", - "tags": [ - "deprecated" - ], - "label": "metric", - "description": [ - "\nMetric to track once this property changes" - ], - "signature": [ - "{ type: string; name: string; } | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/server/ui_settings.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/server/ui_settings.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/server/ui_settings.ts" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsParams.scope", - "type": "CompoundType", - "tags": [], - "label": "scope", - "description": [ - "\nScope of the setting. `Global` denotes a setting globally available across namespaces. `Namespace` denotes a setting\nscoped to a namespace. The default value is 'namespace'" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsScope", - "text": "UiSettingsScope" - }, - " | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsState", - "type": "Interface", - "tags": [], - "label": "UiSettingsState", - "description": [], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.UiSettingsState.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[key: string]: PublicUiSettingsParams & UserProvidedValues", - "description": [], - "signature": [ - "[key: string]: ", - { - "pluginId": "@kbn/core-ui-settings-browser", - "scope": "common", - "docId": "kibKbnCoreUiSettingsBrowserPluginApi", - "section": "def-common.PublicUiSettingsParams", - "text": "PublicUiSettingsParams" - }, - " & ", - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UserProvidedValues", - "text": "UserProvidedValues" - }, - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.UserProvidedValues", - "type": "Interface", - "tags": [], - "label": "UserProvidedValues", - "description": [ - "\nDescribes the values explicitly set by user." - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UserProvidedValues", - "text": "UserProvidedValues" - }, - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-public.UserProvidedValues.userValue", - "type": "Uncategorized", - "tags": [], - "label": "userValue", - "description": [], - "signature": [ - "T | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.UserProvidedValues.isOverridden", - "type": "CompoundType", - "tags": [], - "label": "isOverridden", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - } - ], - "enums": [ - { - "parentPluginId": "core", - "id": "def-public.AppLeaveActionType", - "type": "Enum", - "tags": [], - "label": "AppLeaveActionType", - "description": [ - "\nPossible type of actions on application leave.\n" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppNavLinkStatus", - "type": "Enum", - "tags": [], - "label": "AppNavLinkStatus", - "description": [ - "\nStatus of the application's navLink.\n" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppStatus", - "type": "Enum", - "tags": [], - "label": "AppStatus", - "description": [ - "\nAccessibility status of an application.\n" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], - "misc": [ - { - "parentPluginId": "core", - "id": "def-public.AnalyticsServiceSetup", - "type": "Type", - "tags": [], - "label": "AnalyticsServiceSetup", - "description": [ - "\nExposes the public APIs of the AnalyticsClient during the setup phase.\n{@link AnalyticsClient}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; registerEventType: (eventTypeOps: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - ") => void; registerShipper: (Shipper: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - ", shipperConfig: ShipperConfig, opts?: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined) => void; registerContextProvider: (contextProviderOpts: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - ") => void; removeContextProvider: (contextProviderName: string) => void; }" - ], - "path": "packages/core/analytics/core-analytics-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AnalyticsServiceStart", - "type": "Type", - "tags": [], - "label": "AnalyticsServiceStart", - "description": [ - "\nExposes the public APIs of the AnalyticsClient during the start phase\n{@link AnalyticsClient}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; }" - ], - "path": "packages/core/analytics/core-analytics-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.APP_WRAPPER_CLASS", - "type": "string", - "tags": [], - "label": "APP_WRAPPER_CLASS", - "description": [ - "\nThe class name for top level *and* nested application wrappers to ensure proper layout" - ], - "signature": [ - "\"kbnAppWrapper\"" - ], - "path": "packages/core/application/core-application-common/src/app_wrapper_class.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppDeepLink", - "type": "Type", - "tags": [], - "label": "AppDeepLink", - "description": [ - "\nInput type for registering secondary in-app locations for an application.\n\nDeep links must include at least one of `path` or `deepLinks`. A deep link that does not have a `path`\nrepresents a topological level in the application's hierarchy, but does not have a destination URL that is\nuser-accessible." - ], - "signature": [ - "{ id: string; title: string; keywords?: string[] | undefined; navLinkStatus?: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppNavLinkStatus", - "text": "AppNavLinkStatus" - }, - " | undefined; searchable?: boolean | undefined; } & ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppNavOptions", - "text": "AppNavOptions" - }, - " & ({ path: string; deepLinks?: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppDeepLink", - "text": "AppDeepLink" - }, - "[] | undefined; } | { path?: string | undefined; deepLinks: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppDeepLink", - "text": "AppDeepLink" - }, - "[]; })" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveAction", - "type": "Type", - "tags": [], - "label": "AppLeaveAction", - "description": [ - "\nPossible actions to return from a {@link AppLeaveHandler}\n\nSee {@link AppLeaveConfirmAction} and {@link AppLeaveDefaultAction}\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveDefaultAction", - "text": "AppLeaveDefaultAction" - }, - " | ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveConfirmAction", - "text": "AppLeaveConfirmAction" - } - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveHandler", - "type": "Type", - "tags": [], - "label": "AppLeaveHandler", - "description": [ - "\nA handler that will be executed before leaving the application, either when\ngoing to another application or when closing the browser tab or manually changing\nthe url.\nShould return `confirm` to prompt a message to the user before leaving the page, or `default`\nto keep the default behavior (doing nothing).\n\nSee {@link AppMountParameters} for detailed usage examples.\n" - ], - "signature": [ - "(factory: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveActionFactory", - "text": "AppLeaveActionFactory" - }, - ", nextAppId?: string | undefined) => ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveAction", - "text": "AppLeaveAction" - } - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppLeaveHandler.$1", - "type": "Object", - "tags": [], - "label": "factory", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppLeaveActionFactory", - "text": "AppLeaveActionFactory" - } - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppLeaveHandler.$2", - "type": "string", - "tags": [], - "label": "nextAppId", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-browser/src/app_leave.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppMount", - "type": "Type", - "tags": [], - "label": "AppMount", - "description": [ - "\nA mount function called when the user navigates to this app's route.\n" - ], - "signature": [ - "(params: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppMountParameters", - "text": "AppMountParameters" - }, - ") => ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppUnmount", - "text": "AppUnmount" - }, - " | Promise<", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppUnmount", - "text": "AppUnmount" - }, - ">" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [ - "An unmounting function that will be called to unmount the application. See {@link AppUnmount }." - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppMount.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "{@link AppMountParameters }" - ], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppMountParameters", - "text": "AppMountParameters" - }, - "" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppUnmount", - "type": "Type", - "tags": [], - "label": "AppUnmount", - "description": [ - "\nA function called when an application should be unmounted from the page. This function should be synchronous." - ], - "signature": [ - "() => void" - ], - "path": "packages/core/application/core-application-browser/src/app_mount.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppUpdatableFields", - "type": "Type", - "tags": [], - "label": "AppUpdatableFields", - "description": [ - "\nDefines the list of fields that can be updated via an {@link AppUpdater}." - ], - "signature": [ - "{ status?: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppStatus", - "text": "AppStatus" - }, - " | undefined; tooltip?: string | undefined; searchable?: boolean | undefined; deepLinks?: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppDeepLink", - "text": "AppDeepLink" - }, - "[] | undefined; navLinkStatus?: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppNavLinkStatus", - "text": "AppNavLinkStatus" - }, - " | undefined; defaultPath?: string | undefined; }" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.AppUpdater", - "type": "Type", - "tags": [], - "label": "AppUpdater", - "description": [ - "\nUpdater for applications.\nsee {@link ApplicationSetup}" - ], - "signature": [ - "(app: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.App", - "text": "App" - }, - ") => Partial<", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppUpdatableFields", - "text": "AppUpdatableFields" - }, - "> | undefined" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.AppUpdater.$1", - "type": "Object", - "tags": [], - "label": "app", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.App", - "text": "App" - }, - "" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeBreadcrumb", - "type": "Type", - "tags": [], - "label": "ChromeBreadcrumb", - "description": [], - "signature": [ - "Omit, \"color\" | \"aria-current\"> & ", - "CommonProps", - " & { href?: string | undefined; rel?: string | undefined; onClick?: React.MouseEventHandler | undefined; text: React.ReactNode; truncate?: boolean | undefined; color?: \"warning\" | \"subdued\" | \"primary\" | \"accent\" | \"success\" | \"danger\" | \"text\" | \"ghost\" | undefined; 'aria-current'?: boolean | \"date\" | \"location\" | \"time\" | \"page\" | \"false\" | \"true\" | \"step\" | undefined; }" - ], - "path": "packages/core/chrome/core-chrome-browser/src/breadcrumb.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionLinkBase", - "type": "Type", - "tags": [], - "label": "ChromeHelpExtensionLinkBase", - "description": [], - "signature": [ - "{ iconType?: ", - "IconType", - " | undefined; 'data-test-subj'?: string | undefined; rel?: string | undefined; target?: string | (string & {}) | undefined; }" - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ChromeHelpExtensionMenuLink", - "type": "Type", - "tags": [], - "label": "ChromeHelpExtensionMenuLink", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuGitHubLink", - "text": "ChromeHelpExtensionMenuGitHubLink" - }, - " | ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuDiscussLink", - "text": "ChromeHelpExtensionMenuDiscussLink" - }, - " | ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuDocumentationLink", - "text": "ChromeHelpExtensionMenuDocumentationLink" - }, - " | ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeHelpExtensionMenuCustomLink", - "text": "ChromeHelpExtensionMenuCustomLink" - } - ], - "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.DomainDeprecationDetails", - "type": "Type", - "tags": [], - "label": "DomainDeprecationDetails", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DeprecationsDetails", - "text": "DeprecationsDetails" - }, - " & { domainId: string; }" - ], - "path": "packages/core/deprecations/core-deprecations-common/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.EventType", - "type": "Type", - "tags": [], - "label": "EventType", - "description": [ - "\nEvent Type used for indexed structures. Only used to improve the readability of the types" - ], - "signature": [ - "string" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ExecutionContextStart", - "type": "Type", - "tags": [], - "label": "ExecutionContextStart", - "description": [ - "\nSee {@link ExecutionContextSetup}." - ], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-browser", - "scope": "common", - "docId": "kibKbnCoreExecutionContextBrowserPluginApi", - "section": "def-common.ExecutionContextSetup", - "text": "ExecutionContextSetup" - } - ], - "path": "packages/core/execution-context/core-execution-context-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.FatalErrorsStart", - "type": "Type", - "tags": [], - "label": "FatalErrorsStart", - "description": [ - "\nFatalErrors stop the Kibana Public Core and displays a fatal error screen\nwith details about the Kibana build and the error.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-fatal-errors-browser", - "scope": "common", - "docId": "kibKbnCoreFatalErrorsBrowserPluginApi", - "section": "def-common.FatalErrorsSetup", - "text": "FatalErrorsSetup" - } - ], - "path": "packages/core/fatal-errors/core-fatal-errors-browser/src/contract.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.HttpStart", - "type": "Type", - "tags": [], - "label": "HttpStart", - "description": [ - "\nSee {@link HttpSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-browser", - "scope": "common", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-common.HttpSetup", - "text": "HttpSetup" - } - ], - "path": "packages/core/http/core-http-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.KibanaExecutionContext", - "type": "Type", - "tags": [], - "label": "KibanaExecutionContext", - "description": [], - "signature": [ - "{ readonly type?: string | undefined; readonly name?: string | undefined; readonly page?: string | undefined; readonly id?: string | undefined; readonly description?: string | undefined; readonly url?: string | undefined; readonly meta?: { [key: string]: string | number | boolean | undefined; } | undefined; child?: ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined; }" - ], - "path": "packages/core/execution-context/core-execution-context-common/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.MountPoint", - "type": "Type", - "tags": [], - "label": "MountPoint", - "description": [ - "\nA function that should mount DOM content inside the provided container element\nand return a handler to unmount it.\n" - ], - "signature": [ - "(element: T) => ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.UnmountCallback", - "text": "UnmountCallback" - } - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/mount_point.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [ - "a {@link UnmountCallback } that unmount the element on call." - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.MountPoint.$1", - "type": "Uncategorized", - "tags": [], - "label": "element", - "description": [ - "the container element to render into" - ], - "signature": [ - "T" - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/mount_point.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.PluginInitializer", - "type": "Type", - "tags": [], - "label": "PluginInitializer", - "description": [ - "\nThe `plugin` export at the root of a plugin's `public` directory should conform\nto this interface.\n" - ], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-plugins-browser", - "scope": "common", - "docId": "kibKbnCorePluginsBrowserPluginApi", - "section": "def-common.PluginInitializerContext", - "text": "PluginInitializerContext" - }, - ") => ", - { - "pluginId": "@kbn/core-plugins-browser", - "scope": "common", - "docId": "kibKbnCorePluginsBrowserPluginApi", - "section": "def-common.Plugin", - "text": "Plugin" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin_initializer.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-public.PluginInitializer.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-plugins-browser", - "scope": "common", - "docId": "kibKbnCorePluginsBrowserPluginApi", - "section": "def-common.PluginInitializerContext", - "text": "PluginInitializerContext" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-browser/src/plugin_initializer.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.PluginOpaqueId", - "type": "Type", - "tags": [], - "label": "PluginOpaqueId", - "description": [], - "signature": [ - "symbol" - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.PublicAppDeepLinkInfo", - "type": "Type", - "tags": [], - "label": "PublicAppDeepLinkInfo", - "description": [ - "\nPublic information about a registered app's {@link AppDeepLink | deepLinks}\n" - ], - "signature": [ - "Omit<", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppDeepLink", - "text": "AppDeepLink" - }, - ", \"searchable\" | \"keywords\" | \"deepLinks\" | \"navLinkStatus\"> & { deepLinks: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.PublicAppDeepLinkInfo", - "text": "PublicAppDeepLinkInfo" - }, - "[]; keywords: string[]; navLinkStatus: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppNavLinkStatus", - "text": "AppNavLinkStatus" - }, - "; searchable: boolean; }" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.PublicAppInfo", - "type": "Type", - "tags": [], - "label": "PublicAppInfo", - "description": [ - "\nPublic information about a registered {@link App | application}\n" - ], - "signature": [ - "Omit<", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.App", - "text": "App" - }, - ", \"searchable\" | \"mount\" | \"updater$\" | \"keywords\" | \"deepLinks\"> & { status: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppStatus", - "text": "AppStatus" - }, - "; navLinkStatus: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppNavLinkStatus", - "text": "AppNavLinkStatus" - }, - "; appRoute: string; keywords: string[]; deepLinks: ", - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.PublicAppDeepLinkInfo", - "text": "PublicAppDeepLinkInfo" - }, - "[]; searchable: boolean; }" - ], - "path": "packages/core/application/core-application-browser/src/application.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.PublicUiSettingsParams", - "type": "Type", - "tags": [], - "label": "PublicUiSettingsParams", - "description": [], - "signature": [ - "{ name?: string | undefined; value?: unknown; description?: string | undefined; category?: string[] | undefined; options?: string[] | number[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; type?: ", - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsType", - "text": "UiSettingsType" - }, - " | undefined; deprecation?: ", - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.DeprecationSettings", - "text": "DeprecationSettings" - }, - " | undefined; order?: number | undefined; metric?: { type: string; name: string; } | undefined; scope?: ", - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsScope", - "text": "UiSettingsScope" - }, - " | undefined; }" - ], - "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ResolveDeprecationResponse", - "type": "Type", - "tags": [], - "label": "ResolveDeprecationResponse", - "description": [ - "\nResponse from correctiveActions.api call from automatically resolving the deprecation" - ], - "signature": [ - "{ status: \"ok\"; } | { status: \"fail\"; reason: string; }" - ], - "path": "packages/core/deprecations/core-deprecations-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObject", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "SavedObject", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-common", - "path": "packages/core/saved-objects/core-saved-objects-common/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "home", - "path": "src/plugins/home/server/services/sample_data/sample_data_registry.ts" - }, - { - "plugin": "home", - "path": "src/plugins/home/server/services/sample_data/sample_data_registry.ts" - }, - { - "plugin": "home", - "path": "src/plugins/home/server/services/sample_data/sample_data_registry.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/index.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/index.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/index.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/query/route_handler_context.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/query/route_handler_context.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/query/route_handler_context.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/query/route_handler_context.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/query/route_handler_context.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/query/route_handler_context.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/server/utils.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/server/utils.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/server/utils.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/saved_objects_client_wrapper.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/search/session/sessions_mgmt/lib/api.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/search/session/sessions_mgmt/lib/api.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/search/session/sessions_mgmt/lib/api.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/shareable_runtime/types.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/shareable_runtime/types.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/kibana/workpad.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/kibana/workpad.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/types.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/types.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/assets/use_assets_status.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/assets/use_assets_status.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/assets/use_assets_status.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/assets/use_assets_status.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/monitor_detail_flyout.tsx" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/monitor_detail_flyout.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-server", - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts" - }, - { - "plugin": "@kbn/core-saved-objects-server", - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts" - }, - { - "plugin": "@kbn/core-saved-objects-server", - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/lib/regenerate_ids.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/lib/regenerate_ids.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "@kbn/core-saved-objects-import-export-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" - }, - { - "plugin": "apm", - "path": "x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/types.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/types.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/so_references.ts" - }, - { - "plugin": "lists", - "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts" - }, - { - "plugin": "lists", - "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts" - }, - { - "plugin": "lists", - "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts" - }, - { - "plugin": "lists", - "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts" - }, - { - "plugin": "lists", - "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.test.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.test.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/user_risk_score_dashboards.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/user_risk_score_dashboards.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/api.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/common/types.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/common/types.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/test_utils/index.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/test_utils/index.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/test_utils/index.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_view.stub.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_view.stub.ts" - }, - { - "plugin": "savedObjectsManagement", - "path": "src/plugins/saved_objects_management/server/lib/find_relationships.test.ts" - }, - { - "plugin": "savedObjectsManagement", - "path": "src/plugins/saved_objects_management/server/lib/find_relationships.test.ts" - }, - { - "plugin": "savedObjectsManagement", - "path": "src/plugins/saved_objects_management/server/lib/find_relationships.test.ts" - }, - { - "plugin": "savedObjectsManagement", - "path": "src/plugins/saved_objects_management/server/lib/find_relationships.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/search/saved_objects/search_session_migration.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/index.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/index.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/settings/hooks/use_params_list.ts" - }, - { - "plugin": "synthetics", - "path": "x-pack/plugins/synthetics/public/apps/synthetics/components/settings/hooks/use_params_list.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" - }, - { - "plugin": "@kbn/core-ui-settings-server-internal", - "path": "packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts" - }, - { - "plugin": "@kbn/core-ui-settings-server-internal", - "path": "packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts" - }, - { - "plugin": "@kbn/core-ui-settings-server-internal", - "path": "packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts" - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectAttribute", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "SavedObjectAttribute", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectAttributeSingle", - "text": "SavedObjectAttributeSingle" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectAttributeSingle", - "text": "SavedObjectAttributeSingle" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-common", - "path": "packages/core/saved-objects/core-saved-objects-common/index.ts" - }, - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts" - }, - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts" - }, - { - "plugin": "triggersActionsUi", - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts" - }, - { - "plugin": "triggersActionsUi", - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts" - }, - { - "plugin": "triggersActionsUi", - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectAttributes", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "SavedObjectAttributes", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-common", - "path": "packages/core/saved-objects/core-saved-objects-common/index.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/create_source.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/create_source.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/types.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/types.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/show_saved_object.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/settings.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/settings.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/shareable_runtime/types.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/shareable_runtime/types.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/common/types.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/common/types.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/common/types/modules.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/common/types/modules.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts" - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectAttributeSingle", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "SavedObjectAttributeSingle", - "description": [], - "signature": [ - "string | number | boolean | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectAttributes", - "text": "SavedObjectAttributes" - }, - " | null | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-common", - "path": "packages/core/saved-objects/core-saved-objects-common/index.ts" - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectReference", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "SavedObjectReference", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-common", - "path": "packages/core/saved-objects/core-saved-objects-common/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-server", - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/types.ts" - }, - { - "plugin": "savedObjectsManagement", - "path": "src/plugins/saved_objects_management/public/services/types/record.ts" - }, - { - "plugin": "savedObjectsManagement", - "path": "src/plugins/saved_objects_management/public/services/types/record.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/state_management/selectors.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/state_management/selectors.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/state_management/selectors.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/utils.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/utils.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/utils.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/utils.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/loader.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/loader.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/loader.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/loader.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/loader.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/text_based/text_based_languages.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/text_based/text_based_languages.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/save_modal_container.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/save_modal_container.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/persistence/saved_object_store.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/common/types/models/epm.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/types/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/types/persistence.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/datasources/form_based/form_based.test.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/bwc/types.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/bwc/types.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/decorator/inject_tag_references.test.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/decorator/inject_tag_references.test.ts" - }, - { - "plugin": "kibanaUtils", - "path": "src/plugins/kibana_utils/common/persistable_state/types.ts" - }, - { - "plugin": "kibanaUtils", - "path": "src/plugins/kibana_utils/common/persistable_state/types.ts" - }, - { - "plugin": "kibanaUtils", - "path": "src/plugins/kibana_utils/common/persistable_state/types.ts" - }, - { - "plugin": "kibanaUtils", - "path": "src/plugins/kibana_utils/common/persistable_state/types.ts" - }, - { - "plugin": "kibanaUtils", - "path": "src/plugins/kibana_utils/common/persistable_state/types.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/expression_functions/expression_function.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/expression_functions/expression_function.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/expression_functions/expression_function.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/service/expressions_services.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/service/expressions_services.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/service/expressions_services.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/service/expressions_services.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/executor/executor.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/executor/executor.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/executor/executor.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/expressions/load_index_pattern.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/expressions/load_index_pattern.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/expressions/kibana_context.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/expressions/kibana_context.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/search_source/extract_references.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/search_source/extract_references.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/search_source/extract_references.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/search_source/inject_references.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/search_source/inject_references.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/query/filters/persistable_state.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/query/filters/persistable_state.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/query/filters/persistable_state.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/query/persistable_state.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/query/persistable_state.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/query/persistable_state.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/common/lib/migrate_base_input.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/common/lib/migrate_base_input.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/common/lib/migrate_base_input.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/common/lib/inject.ts" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/common/lib/inject.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" - }, - { - "plugin": "savedObjectsTaggingOss", - "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/controls_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/controls_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/controls_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/timeseries_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/timeseries_references.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualization_references/timeseries_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_container/persistable_state/dashboard_container_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_container/persistable_state/dashboard_container_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/common/dashboard_container/persistable_state/dashboard_container_references.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/options_list/options_list_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/options_list/options_list_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/options_list/options_list_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/range_slider/range_slider_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/range_slider/range_slider_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/range_slider/range_slider_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/time_slider/time_slider_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/time_slider/time_slider_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/time_slider/time_slider_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/control_group/control_group_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/control_group/control_group_persistable_state.ts" - }, - { - "plugin": "controls", - "path": "src/plugins/controls/common/control_group/control_group_persistable_state.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/references.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/references.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/references.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/references.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/references.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/references.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/components/connected/tag_list.tsx" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/components/connected/tag_list.tsx" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/public/dynamic_actions/dynamic_action_enhancement.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/public/dynamic_actions/dynamic_action_enhancement.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/common/embeddable_factory/index.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/common/embeddable_factory/index.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/common/embeddable_factory/index.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/common/embeddable_factory/index.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/common/embeddable_factory/index.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/common/migrations/references.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/common/migrations/references.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/common/migrations/references.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/common/migrations/references.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/common/migrations/references.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/map_attribute_service.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_lens.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_lens.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_map.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_map.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_search.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_search.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_visualization.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_visualization.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/attachment_framework/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/attachment_framework/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/attachment_framework/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/attachment_framework/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/so_references.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/so_references.ts" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/common/drilldowns/dashboard_drilldown/dashboard_drilldown_persistable_state.ts" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/common/drilldowns/dashboard_drilldown/dashboard_drilldown_persistable_state.ts" - }, - { - "plugin": "dashboardEnhanced", - "path": "x-pack/plugins/dashboard_enhanced/common/drilldowns/dashboard_drilldown/dashboard_drilldown_persistable_state.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts" - }, - { - "plugin": "uiActionsEnhanced", - "path": "src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/references.test.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/references.test.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.test.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.test.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/public/utils.test.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/test_utils/index.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/common/test_utils/index.ts" - }, - { - "plugin": "globalSearchProviders", - "path": "x-pack/plugins/global_search_providers/server/providers/saved_objects/map_object_to_result.test.ts" - }, - { - "plugin": "globalSearchProviders", - "path": "x-pack/plugins/global_search_providers/server/providers/saved_objects/map_object_to_result.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/persistable_state.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/persistable_state.test.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/executor/executor.test.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/executor/executor.test.ts" - }, - { - "plugin": "expressions", - "path": "src/plugins/expressions/common/executor/executor.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/search_source/inject_references.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/common/search/search_source/inject_references.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/common/locator/locator.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/common/locator/locator.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/common/locator/locator.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/share_action.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/share_action.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_references_manager.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_references_manager.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_references_manager.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/types.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/types.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/cpu.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/cpu.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/load.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/load.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/memory.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/memory.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/rx.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/rx.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/tx.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/tx.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/diskio_read.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/diskio_read.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/diskio_write.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/common/visualizations/lens/hosts/diskio_write.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_references_manager.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_references_manager.test.ts" - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsFindOptions", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsFindOptions", - "description": [ - "\nBrowser options for finding saved objects\n" - ], - "signature": [ - "{ type: string | string[]; filter?: any; search?: string | undefined; fields?: string[] | undefined; aggs?: Record | undefined; page?: number | undefined; perPage?: number | undefined; sortField?: string | undefined; searchFields?: string[] | undefined; hasReference?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - "[] | undefined; hasReferenceOperator?: \"AND\" | \"OR\" | undefined; hasNoReference?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - "[] | undefined; hasNoReferenceOperator?: \"AND\" | \"OR\" | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; namespaces?: string[] | undefined; preference?: string | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-api-browser", - "path": "packages/core/saved-objects/core-saved-objects-api-browser/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" - }, - { - "plugin": "cloudSecurityPosture", - "path": "x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts" - }, - { - "plugin": "cloudSecurityPosture", - "path": "x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts" - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsImportWarning", - "type": "Type", - "tags": [], - "label": "SavedObjectsImportWarning", - "description": [ - "\nComposite type of all the possible types of import warnings.\n\nSee {@link SavedObjectsImportSimpleWarning} and {@link SavedObjectsImportActionRequiredWarning}\nfor more details.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportSimpleWarning", - "text": "SavedObjectsImportSimpleWarning" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportActionRequiredWarning", - "text": "SavedObjectsImportActionRequiredWarning" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.SavedObjectsNamespaceType", - "type": "Type", - "tags": [], - "label": "SavedObjectsNamespaceType", - "description": [ - "\nThe namespace type dictates how a saved object can be interacted in relation to namespaces. Each type is mutually exclusive:\n * single (default): This type of saved object is namespace-isolated, e.g., it exists in only one namespace.\n * multiple: This type of saved object is shareable, e.g., it can exist in one or more namespaces.\n * multiple-isolated: This type of saved object is namespace-isolated, e.g., it exists in only one namespace, but object IDs must be\n unique across all namespaces. This is intended to be an intermediate step when objects with a \"single\" namespace type are being\n converted to a \"multiple\" namespace type. In other words, objects with a \"multiple-isolated\" namespace type will be *share-capable*,\n but will not actually be shareable until the namespace type is changed to \"multiple\".\n * agnostic: This type of saved object is global.\n" - ], - "signature": [ - "\"single\" | \"multiple\" | \"multiple-isolated\" | \"agnostic\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.StartServicesAccessor", - "type": "Type", - "tags": [], - "label": "StartServicesAccessor", - "description": [ - "\nAllows plugins to get access to APIs available in start inside async\nhandlers, such as {@link App.mount}. Promise will not resolve until Core\nand plugin dependencies have completed `start`.\n" - ], - "signature": [ - "() => Promise<[", - { - "pluginId": "@kbn/core-lifecycle-browser", - "scope": "common", - "docId": "kibKbnCoreLifecycleBrowserPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - }, - ", TPluginsStart, TStart]>" - ], - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.TelemetryCounterType", - "type": "Type", - "tags": [], - "label": "TelemetryCounterType", - "description": [ - "\nIndicates if the event contains data about succeeded, failed or dropped events:\n- enqueued: The event was accepted and will be sent to the shippers when they become available (and opt-in === true).\n- sent_to_shipper: The event was sent to at least one shipper.\n- succeeded: The event was successfully sent by the shipper.\n- failed: There was an error when processing/shipping the event. Refer to the Telemetry Counter's code for the reason.\n- dropped: The event was dropped from the queue. Refer to the Telemetry Counter's code for the reason." - ], - "signature": [ - "\"succeeded\" | \"failed\" | \"enqueued\" | \"sent_to_shipper\" | \"dropped\"" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.Toast", - "type": "Type", - "tags": [], - "label": "Toast", - "description": [], - "signature": [ - "Pick<", - "Toast", - ", \"children\" | \"onError\" | \"hidden\" | \"color\" | \"className\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"placeholder\" | \"security\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"toastLifeTimeMs\" | \"iconType\" | \"onClose\" | \"data-test-subj\" | \"css\"> & { title?: string | ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - " | undefined; text?: string | ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - " | undefined; } & { id: string; }" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ToastInput", - "type": "Type", - "tags": [], - "label": "ToastInput", - "description": [ - "\nInputs for {@link IToasts} APIs." - ], - "signature": [ - "string | ", - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.ToastInputFields", - "text": "ToastInputFields" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ToastInputFields", - "type": "Type", - "tags": [], - "label": "ToastInputFields", - "description": [ - "\nAllowed fields for {@link ToastInput}.\n" - ], - "signature": [ - "Pick<", - "Toast", - ", \"children\" | \"onError\" | \"hidden\" | \"color\" | \"className\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"placeholder\" | \"security\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"toastLifeTimeMs\" | \"iconType\" | \"onClose\" | \"data-test-subj\" | \"css\"> & { title?: string | ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - " | undefined; text?: string | ", - { - "pluginId": "@kbn/core-mount-utils-browser", - "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.MountPoint", - "text": "MountPoint" - }, - " | undefined; }" - ], - "path": "packages/core/notifications/core-notifications-browser/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsSetup", - "type": "Type", - "tags": [], - "label": "ToastsSetup", - "description": [ - "\n{@link IToasts}" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.IToasts", - "text": "IToasts" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.ToastsStart", - "type": "Type", - "tags": [], - "label": "ToastsStart", - "description": [ - "\n{@link IToasts}" - ], - "signature": [ - { - "pluginId": "@kbn/core-notifications-browser", - "scope": "common", - "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.IToasts", - "text": "IToasts" - } - ], - "path": "packages/core/notifications/core-notifications-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.UiSettingsType", - "type": "Type", - "tags": [], - "label": "UiSettingsType", - "description": [ - "\nUI element type to represent the settings." - ], - "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"image\" | \"json\" | \"markdown\" | \"select\" | \"array\"" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.UnmountCallback", - "type": "Type", - "tags": [], - "label": "UnmountCallback", - "description": [ - "\nA function that will unmount the element previously mounted by\nthe associated {@link MountPoint}\n" - ], - "signature": [ - "() => void" - ], - "path": "packages/core/mount-utils/core-mount-utils-browser/src/mount_point.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-public.URL_MAX_LENGTH", - "type": "CompoundType", - "tags": [], - "label": "URL_MAX_LENGTH", - "description": [ - "\nThe max URL length allowed by the current browser. Should be used to display warnings to users when query parameters\ncause URL to exceed this limit." - ], - "signature": [ - "2000 | 25000" - ], - "path": "packages/core/apps/core-apps-browser-internal/src/errors/url_overflow.tsx", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], - "objects": [ - { - "parentPluginId": "core", - "id": "def-public.DEFAULT_APP_CATEGORIES", - "type": "Object", - "tags": [], - "label": "DEFAULT_APP_CATEGORIES", - "description": [], - "signature": [ - "{ [x: string]: ", - { - "pluginId": "@kbn/core-application-common", - "scope": "common", - "docId": "kibKbnCoreApplicationCommonPluginApi", - "section": "def-common.AppCategory", - "text": "AppCategory" - }, - "; }" - ], - "path": "packages/core/application/core-application-common/src/default_app_categories.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ] - }, - "server": { - "classes": [ - { - "parentPluginId": "core", - "id": "def-server.CspConfig", - "type": "Class", - "tags": [], - "label": "CspConfig", - "description": [ - "\nCSP configuration for use in Kibana." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server-internal", - "scope": "common", - "docId": "kibKbnCoreHttpServerInternalPluginApi", - "section": "def-common.CspConfig", - "text": "CspConfig" - }, - " implements ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ICspConfig", - "text": "ICspConfig" - } - ], - "path": "packages/core/http/core-http-server-internal/src/csp/csp_config.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CspConfig.DEFAULT", - "type": "Object", - "tags": [], - "label": "DEFAULT", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server-internal", - "scope": "common", - "docId": "kibKbnCoreHttpServerInternalPluginApi", - "section": "def-common.CspConfig", - "text": "CspConfig" - } - ], - "path": "packages/core/http/core-http-server-internal/src/csp/csp_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CspConfig.directives", - "type": "Object", - "tags": [], - "label": "#directives", - "description": [], - "signature": [ - "CspDirectives" - ], - "path": "packages/core/http/core-http-server-internal/src/csp/csp_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CspConfig.strict", - "type": "boolean", - "tags": [], - "label": "strict", - "description": [], - "path": "packages/core/http/core-http-server-internal/src/csp/csp_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CspConfig.warnLegacyBrowsers", - "type": "boolean", - "tags": [], - "label": "warnLegacyBrowsers", - "description": [], - "path": "packages/core/http/core-http-server-internal/src/csp/csp_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CspConfig.disableEmbedding", - "type": "boolean", - "tags": [], - "label": "disableEmbedding", - "description": [], - "path": "packages/core/http/core-http-server-internal/src/csp/csp_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CspConfig.header", - "type": "string", - "tags": [], - "label": "header", - "description": [], - "path": "packages/core/http/core-http-server-internal/src/csp/csp_config.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventLoopDelaysMonitor", - "type": "Class", - "tags": [], - "label": "EventLoopDelaysMonitor", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-metrics-collectors-server-internal", - "scope": "common", - "docId": "kibKbnCoreMetricsCollectorsServerInternalPluginApi", - "section": "def-common.EventLoopDelaysMonitor", - "text": "EventLoopDelaysMonitor" - }, - " implements ", - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.IEventLoopDelaysMonitor", - "text": "IEventLoopDelaysMonitor" - }, - "<", - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.IntervalHistogram", - "text": "IntervalHistogram" - }, - ">" - ], - "path": "packages/core/metrics/core-metrics-collectors-server-internal/src/event_loop_delays_monitor.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.EventLoopDelaysMonitor.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [ - "\nCreating a new instance from EventLoopDelaysMonitor will\nautomatically start tracking event loop delays." - ], - "signature": [ - "any" - ], - "path": "packages/core/metrics/core-metrics-collectors-server-internal/src/event_loop_delays_monitor.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.EventLoopDelaysMonitor.collect", - "type": "Function", - "tags": [], - "label": "collect", - "description": [ - "\nCollect gathers event loop delays metrics from nodejs perf_hooks.monitorEventLoopDelay\nthe histogram calculations start from the last time `reset` was called or this\nEventLoopDelaysMonitor instance was created.\n\nReturns metrics in milliseconds." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.IntervalHistogram", - "text": "IntervalHistogram" - } - ], - "path": "packages/core/metrics/core-metrics-collectors-server-internal/src/event_loop_delays_monitor.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.EventLoopDelaysMonitor.reset", - "type": "Function", - "tags": [], - "label": "reset", - "description": [ - "\nResets the collected histogram data." - ], - "signature": [ - "() => void" - ], - "path": "packages/core/metrics/core-metrics-collectors-server-internal/src/event_loop_delays_monitor.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.EventLoopDelaysMonitor.stop", - "type": "Function", - "tags": [], - "label": "stop", - "description": [ - "\nDisables updating the interval timer for collecting new data points." - ], - "signature": [ - "() => void" - ], - "path": "packages/core/metrics/core-metrics-collectors-server-internal/src/event_loop_delays_monitor.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidationError", - "type": "Class", - "tags": [], - "label": "RouteValidationError", - "description": [ - "\nError to return when the validation is not successful." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationError", - "text": "RouteValidationError" - }, - " extends ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.SchemaTypeError", - "text": "SchemaTypeError" - } - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteValidationError.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteValidationError.Unnamed.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "string | Error" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidationError.Unnamed.$2", - "type": "Array", - "tags": [], - "label": "path", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers", - "type": "Class", - "tags": [], - "label": "SavedObjectsErrorHelpers", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isSavedObjectsClientError", - "type": "Function", - "tags": [], - "label": "isSavedObjectsClientError", - "description": [], - "signature": [ - "(error: any) => error is ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isSavedObjectsClientError.$1", - "type": "Any", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateBadRequestError", - "type": "Function", - "tags": [], - "label": "decorateBadRequestError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateBadRequestError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateBadRequestError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createBadRequestError", - "type": "Function", - "tags": [], - "label": "createBadRequestError", - "description": [], - "signature": [ - "(reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createBadRequestError.$1", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createUnsupportedTypeError", - "type": "Function", - "tags": [], - "label": "createUnsupportedTypeError", - "description": [], - "signature": [ - "(type: string) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createUnsupportedTypeError.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isBadRequestError", - "type": "Function", - "tags": [], - "label": "isBadRequestError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isBadRequestError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createInvalidVersionError", - "type": "Function", - "tags": [], - "label": "createInvalidVersionError", - "description": [], - "signature": [ - "(versionInput?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createInvalidVersionError.$1", - "type": "string", - "tags": [], - "label": "versionInput", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isInvalidVersionError", - "type": "Function", - "tags": [], - "label": "isInvalidVersionError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isInvalidVersionError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateNotAuthorizedError", - "type": "Function", - "tags": [], - "label": "decorateNotAuthorizedError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateNotAuthorizedError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateNotAuthorizedError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isNotAuthorizedError", - "type": "Function", - "tags": [], - "label": "isNotAuthorizedError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isNotAuthorizedError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateForbiddenError", - "type": "Function", - "tags": [], - "label": "decorateForbiddenError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateForbiddenError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateForbiddenError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isForbiddenError", - "type": "Function", - "tags": [], - "label": "isForbiddenError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isForbiddenError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateRequestEntityTooLargeError", - "type": "Function", - "tags": [], - "label": "decorateRequestEntityTooLargeError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateRequestEntityTooLargeError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateRequestEntityTooLargeError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isRequestEntityTooLargeError", - "type": "Function", - "tags": [], - "label": "isRequestEntityTooLargeError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isRequestEntityTooLargeError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createGenericNotFoundError", - "type": "Function", - "tags": [], - "label": "createGenericNotFoundError", - "description": [], - "signature": [ - "(type?: string | null, id?: string | null) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createGenericNotFoundError.$1", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string | null" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createGenericNotFoundError.$2", - "type": "CompoundType", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string | null" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createIndexAliasNotFoundError", - "type": "Function", - "tags": [], - "label": "createIndexAliasNotFoundError", - "description": [], - "signature": [ - "(alias: string) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createIndexAliasNotFoundError.$1", - "type": "string", - "tags": [], - "label": "alias", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateIndexAliasNotFoundError", - "type": "Function", - "tags": [], - "label": "decorateIndexAliasNotFoundError", - "description": [], - "signature": [ - "(error: Error, alias: string) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateIndexAliasNotFoundError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateIndexAliasNotFoundError.$2", - "type": "string", - "tags": [], - "label": "alias", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isNotFoundError", - "type": "Function", - "tags": [], - "label": "isNotFoundError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isNotFoundError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateConflictError", - "type": "Function", - "tags": [], - "label": "decorateConflictError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateConflictError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateConflictError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createConflictError", - "type": "Function", - "tags": [], - "label": "createConflictError", - "description": [], - "signature": [ - "(type: string, id: string, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createConflictError.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createConflictError.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createConflictError.$3", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isConflictError", - "type": "Function", - "tags": [], - "label": "isConflictError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isConflictError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateTooManyRequestsError", - "type": "Function", - "tags": [], - "label": "decorateTooManyRequestsError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateTooManyRequestsError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateTooManyRequestsError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createTooManyRequestsError", - "type": "Function", - "tags": [], - "label": "createTooManyRequestsError", - "description": [], - "signature": [ - "(type: string, id: string) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createTooManyRequestsError.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createTooManyRequestsError.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isTooManyRequestsError", - "type": "Function", - "tags": [], - "label": "isTooManyRequestsError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isTooManyRequestsError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateEsCannotExecuteScriptError", - "type": "Function", - "tags": [], - "label": "decorateEsCannotExecuteScriptError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateEsCannotExecuteScriptError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateEsCannotExecuteScriptError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isEsCannotExecuteScriptError", - "type": "Function", - "tags": [], - "label": "isEsCannotExecuteScriptError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isEsCannotExecuteScriptError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateEsUnavailableError", - "type": "Function", - "tags": [], - "label": "decorateEsUnavailableError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateEsUnavailableError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateEsUnavailableError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isEsUnavailableError", - "type": "Function", - "tags": [], - "label": "isEsUnavailableError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isEsUnavailableError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateGeneralError", - "type": "Function", - "tags": [], - "label": "decorateGeneralError", - "description": [], - "signature": [ - "(error: Error, reason?: string | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateGeneralError.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.decorateGeneralError.$2", - "type": "string", - "tags": [], - "label": "reason", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isGeneralError", - "type": "Function", - "tags": [], - "label": "isGeneralError", - "description": [], - "signature": [ - "(error: Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - }, - ") => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.isGeneralError.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createGenericNotFoundEsUnavailableError", - "type": "Function", - "tags": [], - "label": "createGenericNotFoundEsUnavailableError", - "description": [], - "signature": [ - "(type?: string | null, id?: string | null) => ", - { - "pluginId": "@kbn/core-saved-objects-utils-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsUtilsServerPluginApi", - "section": "def-common.DecoratedError", - "text": "DecoratedError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createGenericNotFoundEsUnavailableError.$1", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string | null" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsErrorHelpers.createGenericNotFoundEsUnavailableError.$2", - "type": "CompoundType", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string | null" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_error_helpers.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError", - "type": "Class", - "tags": [], - "label": "SavedObjectsExportError", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsExportError", - "text": "SavedObjectsExportError" - }, - " extends Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.Unnamed.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.Unnamed.$2", - "type": "string", - "tags": [], - "label": "message", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.Unnamed.$3", - "type": "Object", - "tags": [], - "label": "attributes", - "description": [], - "signature": [ - "Record | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.exportSizeExceeded", - "type": "Function", - "tags": [], - "label": "exportSizeExceeded", - "description": [], - "signature": [ - "(limit: number) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsExportError", - "text": "SavedObjectsExportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.exportSizeExceeded.$1", - "type": "number", - "tags": [], - "label": "limit", - "description": [], - "signature": [ - "number" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.objectFetchError", - "type": "Function", - "tags": [], - "label": "objectFetchError", - "description": [], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsExportError", - "text": "SavedObjectsExportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.objectFetchError.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.objectTransformError", - "type": "Function", - "tags": [], - "label": "objectTransformError", - "description": [ - "\nError returned when a {@link SavedObjectsExportTransform | export transform} threw an error" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[], cause: Error) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsExportError", - "text": "SavedObjectsExportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.objectTransformError.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.objectTransformError.$2", - "type": "Object", - "tags": [], - "label": "cause", - "description": [], - "signature": [ - "Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.invalidTransformError", - "type": "Function", - "tags": [], - "label": "invalidTransformError", - "description": [ - "\nError returned when a {@link SavedObjectsExportTransform | export transform} performed an invalid operation\nduring the transform, such as removing objects from the export, or changing an object's type or id." - ], - "signature": [ - "(objectKeys: string[]) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsExportError", - "text": "SavedObjectsExportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportError.invalidTransformError.$1", - "type": "Array", - "tags": [], - "label": "objectKeys", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError", - "type": "Class", - "tags": [], - "label": "SavedObjectsImportError", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsImportError", - "text": "SavedObjectsImportError" - }, - " extends Error" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.importSizeExceeded", - "type": "Function", - "tags": [], - "label": "importSizeExceeded", - "description": [], - "signature": [ - "(limit: number) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsImportError", - "text": "SavedObjectsImportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.importSizeExceeded.$1", - "type": "number", - "tags": [], - "label": "limit", - "description": [], - "signature": [ - "number" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.nonUniqueImportObjects", - "type": "Function", - "tags": [], - "label": "nonUniqueImportObjects", - "description": [], - "signature": [ - "(nonUniqueEntries: string[]) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsImportError", - "text": "SavedObjectsImportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.nonUniqueImportObjects.$1", - "type": "Array", - "tags": [], - "label": "nonUniqueEntries", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.nonUniqueRetryObjects", - "type": "Function", - "tags": [], - "label": "nonUniqueRetryObjects", - "description": [], - "signature": [ - "(nonUniqueRetryObjects: string[]) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsImportError", - "text": "SavedObjectsImportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.nonUniqueRetryObjects.$1", - "type": "Array", - "tags": [], - "label": "nonUniqueRetryObjects", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.nonUniqueRetryDestinations", - "type": "Function", - "tags": [], - "label": "nonUniqueRetryDestinations", - "description": [], - "signature": [ - "(nonUniqueRetryDestinations: string[]) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsImportError", - "text": "SavedObjectsImportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.nonUniqueRetryDestinations.$1", - "type": "Array", - "tags": [], - "label": "nonUniqueRetryDestinations", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.referencesFetchError", - "type": "Function", - "tags": [], - "label": "referencesFetchError", - "description": [], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]) => ", - { - "pluginId": "@kbn/core-saved-objects-import-export-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsImportExportServerInternalPluginApi", - "section": "def-common.SavedObjectsImportError", - "text": "SavedObjectsImportError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportError.referencesFetchError.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository", - "type": "Class", - "tags": [], - "label": "SavedObjectsRepository", - "description": [ - "\nSaved Objects Respositiry - the client entry point for saved object manipulation.\n\nThe SOR calls the Elasticsearch client and leverages extension implementations to\nsupport spaces, security, and encryption features.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server-internal", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerInternalPluginApi", - "section": "def-common.SavedObjectsRepository", - "text": "SavedObjectsRepository" - }, - " implements ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsRepository", - "text": "ISavedObjectsRepository" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.create", - "type": "Function", - "tags": [], - "label": "create", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.create}" - ], - "signature": [ - "(type: string, attributes: T, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.create.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.create.$2", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.create.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkCreate", - "type": "Function", - "tags": [], - "label": "bulkCreate", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.bulkCreate}" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResponse", - "text": "SavedObjectsBulkResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkCreate.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkCreate.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.checkConflicts", - "type": "Function", - "tags": [], - "label": "checkConflicts", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.checkConflicts}" - ], - "signature": [ - "(objects?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsObject", - "text": "SavedObjectsCheckConflictsObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsResponse", - "text": "SavedObjectsCheckConflictsResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.checkConflicts.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsObject", - "text": "SavedObjectsCheckConflictsObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.checkConflicts.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.delete", - "type": "Function", - "tags": [], - "label": "delete", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.delete}" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - }, - ") => Promise<{}>" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.delete.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.delete.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.delete.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkDelete", - "type": "Function", - "tags": [], - "label": "bulkDelete", - "description": [ - "\n {@inheritDoc ISavedObjectsRepository.bulkDelete}" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteObject", - "text": "SavedObjectsBulkDeleteObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteResponse", - "text": "SavedObjectsBulkDeleteResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkDelete.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteObject", - "text": "SavedObjectsBulkDeleteObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkDelete.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.deleteByNamespace", - "type": "Function", - "tags": [], - "label": "deleteByNamespace", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.deleteByNamespace}" - ], - "signature": [ - "(namespace: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteByNamespaceOptions", - "text": "SavedObjectsDeleteByNamespaceOptions" - }, - ") => Promise" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.deleteByNamespace.$1", - "type": "string", - "tags": [], - "label": "namespace", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.deleteByNamespace.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteByNamespaceOptions", - "text": "SavedObjectsDeleteByNamespaceOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.find", - "type": "Function", - "tags": [], - "label": "find", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.find}" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - }, - ", internalOptions?: ", - "SavedObjectsFindInternalOptions", - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.find.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.find.$2", - "type": "Object", - "tags": [], - "label": "internalOptions", - "description": [], - "signature": [ - "SavedObjectsFindInternalOptions" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkGet", - "type": "Function", - "tags": [], - "label": "bulkGet", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.bulkGet}" - ], - "signature": [ - "(objects?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkGetObject", - "text": "SavedObjectsBulkGetObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResponse", - "text": "SavedObjectsBulkResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkGet.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkGetObject", - "text": "SavedObjectsBulkGetObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkGet.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkResolve", - "type": "Function", - "tags": [], - "label": "bulkResolve", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.bulkResolve}" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveObject", - "text": "SavedObjectsBulkResolveObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveResponse", - "text": "SavedObjectsBulkResolveResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkResolve.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveObject", - "text": "SavedObjectsBulkResolveObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkResolve.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.get}" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.get.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.get.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.get.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.resolve", - "type": "Function", - "tags": [], - "label": "resolve", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.resolve}" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsResolveResponse", - "text": "SavedObjectsResolveResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.resolve.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.resolve.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.resolve.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.update", - "type": "Function", - "tags": [], - "label": "update", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.update}" - ], - "signature": [ - "(type: string, id: string, attributes: Partial, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.update.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.update.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.update.$3", - "type": "Object", - "tags": [], - "label": "attributes", - "description": [], - "signature": [ - "Partial" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.update.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.collectMultiNamespaceReferences", - "type": "Function", - "tags": [], - "label": "collectMultiNamespaceReferences", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.collectMultiNamespaceReferences}" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesObject", - "text": "SavedObjectsCollectMultiNamespaceReferencesObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesOptions", - "text": "SavedObjectsCollectMultiNamespaceReferencesOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesResponse", - "text": "SavedObjectsCollectMultiNamespaceReferencesResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.collectMultiNamespaceReferences.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesObject", - "text": "SavedObjectsCollectMultiNamespaceReferencesObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.collectMultiNamespaceReferences.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesOptions", - "text": "SavedObjectsCollectMultiNamespaceReferencesOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.updateObjectsSpaces", - "type": "Function", - "tags": [], - "label": "updateObjectsSpaces", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.updateObjectsSpaces}" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesObject", - "text": "SavedObjectsUpdateObjectsSpacesObject" - }, - "[], spacesToAdd: string[], spacesToRemove: string[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesOptions", - "text": "SavedObjectsUpdateObjectsSpacesOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesResponse", - "text": "SavedObjectsUpdateObjectsSpacesResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.updateObjectsSpaces.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesObject", - "text": "SavedObjectsUpdateObjectsSpacesObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.updateObjectsSpaces.$2", - "type": "Array", - "tags": [], - "label": "spacesToAdd", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.updateObjectsSpaces.$3", - "type": "Array", - "tags": [], - "label": "spacesToRemove", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.updateObjectsSpaces.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesOptions", - "text": "SavedObjectsUpdateObjectsSpacesOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkUpdate", - "type": "Function", - "tags": [], - "label": "bulkUpdate", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.bulkUpdate}" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateOptions", - "text": "SavedObjectsBulkUpdateOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateResponse", - "text": "SavedObjectsBulkUpdateResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkUpdate.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.bulkUpdate.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateOptions", - "text": "SavedObjectsBulkUpdateOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.removeReferencesTo", - "type": "Function", - "tags": [], - "label": "removeReferencesTo", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.removeReferencesTo}" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToOptions", - "text": "SavedObjectsRemoveReferencesToOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToResponse", - "text": "SavedObjectsRemoveReferencesToResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.removeReferencesTo.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.removeReferencesTo.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.removeReferencesTo.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToOptions", - "text": "SavedObjectsRemoveReferencesToOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.incrementCounter", - "type": "Function", - "tags": [], - "label": "incrementCounter", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.incrementCounter}" - ], - "signature": [ - "(type: string, id: string, counterFields: (string | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterField", - "text": "SavedObjectsIncrementCounterField" - }, - ")[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterOptions", - "text": "SavedObjectsIncrementCounterOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.incrementCounter.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.incrementCounter.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.incrementCounter.$3", - "type": "Array", - "tags": [], - "label": "counterFields", - "description": [], - "signature": [ - "(string | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterField", - "text": "SavedObjectsIncrementCounterField" - }, - ")[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.incrementCounter.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterOptions", - "text": "SavedObjectsIncrementCounterOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.openPointInTimeForType", - "type": "Function", - "tags": [], - "label": "openPointInTimeForType", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.openPointInTimeForType}" - ], - "signature": [ - "(type: string | string[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeOptions", - "text": "SavedObjectsOpenPointInTimeOptions" - }, - ", internalOptions?: ", - "SavedObjectsFindInternalOptions", - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeResponse", - "text": "SavedObjectsOpenPointInTimeResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.openPointInTimeForType.$1", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string | string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.openPointInTimeForType.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeOptions", - "text": "SavedObjectsOpenPointInTimeOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.openPointInTimeForType.$3", - "type": "Object", - "tags": [], - "label": "internalOptions", - "description": [], - "signature": [ - "SavedObjectsFindInternalOptions" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.closePointInTime", - "type": "Function", - "tags": [], - "label": "closePointInTime", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.closePointInTime}" - ], - "signature": [ - "(id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined, internalOptions?: ", - "SavedObjectsFindInternalOptions", - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClosePointInTimeResponse", - "text": "SavedObjectsClosePointInTimeResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.closePointInTime.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.closePointInTime.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.closePointInTime.$3", - "type": "Object", - "tags": [], - "label": "internalOptions", - "description": [], - "signature": [ - "SavedObjectsFindInternalOptions" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.createPointInTimeFinder", - "type": "Function", - "tags": [], - "label": "createPointInTimeFinder", - "description": [ - "\n{@inheritDoc ISavedObjectsRepository.createPointInTimeFinder}" - ], - "signature": [ - "(findOptions: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderOptions", - "text": "SavedObjectsCreatePointInTimeFinderOptions" - }, - ", dependencies?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderDependencies", - "text": "SavedObjectsCreatePointInTimeFinderDependencies" - }, - " | undefined, internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsPointInTimeFinder", - "text": "ISavedObjectsPointInTimeFinder" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.createPointInTimeFinder.$1", - "type": "Object", - "tags": [], - "label": "findOptions", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderOptions", - "text": "SavedObjectsCreatePointInTimeFinderOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.createPointInTimeFinder.$2", - "type": "Object", - "tags": [], - "label": "dependencies", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderDependencies", - "text": "SavedObjectsCreatePointInTimeFinderDependencies" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepository.createPointInTimeFinder.$3", - "type": "Object", - "tags": [], - "label": "internalOptions", - "description": [], - "signature": [ - "SavedObjectsFindInternalOptions", - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils", - "type": "Class", - "tags": [], - "label": "SavedObjectsUtils", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.namespaceIdToString", - "type": "Function", - "tags": [], - "label": "namespaceIdToString", - "description": [ - "\nConverts a given saved object namespace ID to its string representation. All namespace IDs have an identical string representation, with\nthe exception of the `undefined` namespace ID (which has a namespace string of `'default'`).\n" - ], - "signature": [ - "(namespace?: string | undefined) => string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.namespaceIdToString.$1", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "The namespace ID, which must be either a non-empty string or `undefined`." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.namespaceStringToId", - "type": "Function", - "tags": [], - "label": "namespaceStringToId", - "description": [ - "\nConverts a given saved object namespace string to its ID representation. All namespace strings have an identical ID representation, with\nthe exception of the `'default'` namespace string (which has a namespace ID of `undefined`).\n" - ], - "signature": [ - "(namespace: string) => string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.namespaceStringToId.$1", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "The namespace string, which must be non-empty." - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.createEmptyFindResponse", - "type": "Function", - "tags": [], - "label": "createEmptyFindResponse", - "description": [ - "\nCreates an empty response for a find operation." - ], - "signature": [ - "({ page, perPage, }: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.createEmptyFindResponse.$1", - "type": "Object", - "tags": [], - "label": "{\n page = FIND_DEFAULT_PAGE,\n perPage = FIND_DEFAULT_PER_PAGE,\n }", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.generateId", - "type": "Function", - "tags": [], - "label": "generateId", - "description": [ - "\nGenerates a random ID for a saved objects." - ], - "signature": [ - "() => string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.isRandomId", - "type": "Function", - "tags": [ - "todo" - ], - "label": "isRandomId", - "description": [ - "\nValidates that a saved object ID has been randomly generated.\n" - ], - "signature": [ - "(id: string | undefined) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.isRandomId.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of a saved object." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.getConvertedObjectId", - "type": "Function", - "tags": [], - "label": "getConvertedObjectId", - "description": [ - "\nUses a single-namespace object's \"legacy ID\" to determine what its new ID will be after it is converted to a multi-namespace type.\n" - ], - "signature": [ - "(namespace: string | undefined, type: string, id: string) => string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.getConvertedObjectId.$1", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "The namespace of the saved object before it is converted." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.getConvertedObjectId.$2", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the saved object before it is converted." - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUtils.getConvertedObjectId.$3", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the saved object before it is converted." - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/saved_objects_utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The ID of the saved object after it is converted." - ] - } - ], - "initialIsOpen": false - } - ], - "functions": [ - { - "parentPluginId": "core", - "id": "def-server.mergeSavedObjectMigrationMaps", - "type": "Function", - "tags": [], - "label": "mergeSavedObjectMigrationMaps", - "description": [ - "\nMerges two saved object migration maps.\n\nIf there is a migration for a given version on only one of the maps,\nthat migration function will be used:\n\nmergeSavedObjectMigrationMaps({ '1.2.3': f }, { '4.5.6': g }) -> { '1.2.3': f, '4.5.6': g }\n\nIf there is a migration for a given version on both maps, the migrations will be composed:\n\nmergeSavedObjectMigrationMaps({ '1.2.3': f }, { '1.2.3': g }) -> { '1.2.3': (doc, context) => f(g(doc, context), context) }\n" - ], - "signature": [ - "(map1: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationMap", - "text": "SavedObjectMigrationMap" - }, - ", map2: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationMap", - "text": "SavedObjectMigrationMap" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationMap", - "text": "SavedObjectMigrationMap" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/merge_migration_maps.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.mergeSavedObjectMigrationMaps.$1", - "type": "Object", - "tags": [], - "label": "map1", - "description": [ - "- The first map to merge" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationMap", - "text": "SavedObjectMigrationMap" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/merge_migration_maps.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.mergeSavedObjectMigrationMaps.$2", - "type": "Object", - "tags": [], - "label": "map2", - "description": [ - "- The second map to merge" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationMap", - "text": "SavedObjectMigrationMap" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-utils-server/src/merge_migration_maps.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The merged map {@link SavedObjectMigrationMap }" - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.pollEsNodesVersion", - "type": "Function", - "tags": [], - "label": "pollEsNodesVersion", - "description": [], - "signature": [ - "({ internalClient, log, kibanaVersion, ignoreVersionMismatch, esVersionCheckInterval: healthCheckInterval, }: ", - { - "pluginId": "@kbn/core-elasticsearch-server-internal", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerInternalPluginApi", - "section": "def-common.PollEsNodesVersionOptions", - "text": "PollEsNodesVersionOptions" - }, - ") => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-elasticsearch-server-internal", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerInternalPluginApi", - "section": "def-common.NodesVersionCompatibility", - "text": "NodesVersionCompatibility" - }, - ">" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.pollEsNodesVersion.$1", - "type": "Object", - "tags": [], - "label": "{\n internalClient,\n log,\n kibanaVersion,\n ignoreVersionMismatch,\n esVersionCheckInterval: healthCheckInterval,\n}", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server-internal", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerInternalPluginApi", - "section": "def-common.PollEsNodesVersionOptions", - "text": "PollEsNodesVersionOptions" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - } - ], - "interfaces": [ - { - "parentPluginId": "core", - "id": "def-server.AddAuditEventParams", - "type": "Interface", - "tags": [], - "label": "AddAuditEventParams", - "description": [ - "\nThe AddAuditEventParams interface contains settings for adding\naudit events via the ISavedObjectsSecurityExtension." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AddAuditEventParams.action", - "type": "Enum", - "tags": [], - "label": "action", - "description": [ - "\nThe relevant action" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.AuditAction", - "text": "AuditAction" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AddAuditEventParams.outcome", - "type": "string", - "tags": [], - "label": "outcome", - "description": [ - "\nThe outcome of the operation\n'failure' | 'success' | 'unknown'" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AddAuditEventParams.savedObject", - "type": "Object", - "tags": [], - "label": "savedObject", - "description": [ - "\nrelevant saved object information\nobject containing type & id strings" - ], - "signature": [ - "{ type: string; id: string; } | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AddAuditEventParams.addToSpaces", - "type": "Object", - "tags": [], - "label": "addToSpaces", - "description": [ - "\nArray of spaces being added. For\nUPDATE_OBJECTS_SPACES action only" - ], - "signature": [ - "readonly string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AddAuditEventParams.deleteFromSpaces", - "type": "Object", - "tags": [], - "label": "deleteFromSpaces", - "description": [ - "\nArray of spaces being removed. For\nUPDATE_OBJECTS_SPACES action only" - ], - "signature": [ - "readonly string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AddAuditEventParams.error", - "type": "Object", - "tags": [], - "label": "error", - "description": [ - "\nrelevant error information to add to\nthe audit event" - ], - "signature": [ - "Error | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AppCategory", - "type": "Interface", - "tags": [], - "label": "AppCategory", - "description": [ - "\nA category definition for nav links to know where to sort them in the left hand nav" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AppCategory.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\nUnique identifier for the categories" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AppCategory.label", - "type": "string", - "tags": [], - "label": "label", - "description": [ - "\nLabel used for category name.\nAlso used as aria-label if one isn't set." - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AppCategory.ariaLabel", - "type": "string", - "tags": [], - "label": "ariaLabel", - "description": [ - "\nIf the visual label isn't appropriate for screen readers,\ncan override it here" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AppCategory.order", - "type": "number", - "tags": [], - "label": "order", - "description": [ - "\nThe order that categories will be sorted in\nPrefer large steps between categories to allow for further editing\n(Default categories are in steps of 1000)" - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AppCategory.euiIconType", - "type": "string", - "tags": [], - "label": "euiIconType", - "description": [ - "\nDefine an icon to be used for the category\nIf the category is only 1 item, and no icon is defined, will default to the product icon\nDefaults to initials if no icon is defined" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/application/core-application-common/src/app_category.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AsyncPlugin", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "AsyncPlugin", - "description": [ - "\nA plugin with asynchronous lifecycle methods.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.AsyncPlugin", - "text": "AsyncPlugin" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": true, - "removeBy": "8.8.0", - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-plugins-server", - "path": "packages/core/plugins/core-plugins-server/src/types.ts" - }, - { - "plugin": "@kbn/core-plugins-server", - "path": "packages/core/plugins/core-plugins-server/src/index.ts" - }, - { - "plugin": "@kbn/core-plugins-server", - "path": "packages/core/plugins/core-plugins-server/index.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AsyncPlugin.setup", - "type": "Function", - "tags": [], - "label": "setup", - "description": [], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreSetup", - "text": "CoreSetup" - }, - ", plugins: TPluginsSetup) => TSetup | Promise" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AsyncPlugin.setup.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreSetup", - "text": "CoreSetup" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.AsyncPlugin.setup.$2", - "type": "Uncategorized", - "tags": [], - "label": "plugins", - "description": [], - "signature": [ - "TPluginsSetup" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.AsyncPlugin.start", - "type": "Function", - "tags": [], - "label": "start", - "description": [], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - }, - ", plugins: TPluginsStart) => TStart | Promise" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AsyncPlugin.start.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - } - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.AsyncPlugin.start.$2", - "type": "Uncategorized", - "tags": [], - "label": "plugins", - "description": [], - "signature": [ - "TPluginsStart" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.AsyncPlugin.stop", - "type": "Function", - "tags": [], - "label": "stop", - "description": [], - "signature": [ - "(() => void) | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthorizationTypeEntry", - "type": "Interface", - "tags": [], - "label": "AuthorizationTypeEntry", - "description": [ - "\nThe AuthorizationTypeEntry interface contains space-related details\nfor CheckAuthorizationResults." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthorizationTypeEntry.authorizedSpaces", - "type": "Array", - "tags": [], - "label": "authorizedSpaces", - "description": [ - "\nAn array of authorized spaces for the associated type/action\nin the associated record/map." - ], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthorizationTypeEntry.isGloballyAuthorized", - "type": "CompoundType", - "tags": [], - "label": "isGloballyAuthorized", - "description": [ - "\nIs the associated type/action globally authorized?" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthRedirectedParams", - "type": "Interface", - "tags": [], - "label": "AuthRedirectedParams", - "description": [ - "\nResult of auth redirection." - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthRedirectedParams.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "\nHeaders to attach for auth redirect.\nMust include \"location\" header" - ], - "signature": [ - "{ location: string; } & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthResultAuthenticated", - "type": "Interface", - "tags": [], - "label": "AuthResultAuthenticated", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultAuthenticated", - "text": "AuthResultAuthenticated" - }, - " extends ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultParams", - "text": "AuthResultParams" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthResultAuthenticated.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultType", - "text": "AuthResultType" - }, - ".authenticated" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthResultNotHandled", - "type": "Interface", - "tags": [], - "label": "AuthResultNotHandled", - "description": [], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthResultNotHandled.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultType", - "text": "AuthResultType" - }, - ".notHandled" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthResultParams", - "type": "Interface", - "tags": [], - "label": "AuthResultParams", - "description": [ - "\nResult of successful authentication." - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthResultParams.state", - "type": "Object", - "tags": [], - "label": "state", - "description": [ - "\nData to associate with an incoming request. Any downstream plugin may get access to the data." - ], - "signature": [ - "Record | undefined" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthResultParams.requestHeaders", - "type": "Object", - "tags": [], - "label": "requestHeaders", - "description": [ - "\nAuth specific headers to attach to a request object.\nUsed to perform a request to Elasticsearch on behalf of an authenticated user." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthHeaders", - "text": "AuthHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthResultParams.responseHeaders", - "type": "Object", - "tags": [], - "label": "responseHeaders", - "description": [ - "\nAuth specific headers to attach to a response object.\nUsed to send back authentication mechanism related headers to a client when needed." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthHeaders", - "text": "AuthHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthResultRedirected", - "type": "Interface", - "tags": [], - "label": "AuthResultRedirected", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultRedirected", - "text": "AuthResultRedirected" - }, - " extends ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthRedirectedParams", - "text": "AuthRedirectedParams" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthResultRedirected.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultType", - "text": "AuthResultType" - }, - ".redirected" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthToolkit", - "type": "Interface", - "tags": [], - "label": "AuthToolkit", - "description": [], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthToolkit.authenticated", - "type": "Function", - "tags": [], - "label": "authenticated", - "description": [ - "Authentication is successful with given credentials, allow request to pass through" - ], - "signature": [ - "(data?: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultParams", - "text": "AuthResultParams" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResult", - "text": "AuthResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthToolkit.authenticated.$1", - "type": "Object", - "tags": [], - "label": "data", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultParams", - "text": "AuthResultParams" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.AuthToolkit.notHandled", - "type": "Function", - "tags": [], - "label": "notHandled", - "description": [ - "\nUser has no credentials.\nAllows user to access a resource when authRequired is 'optional'\nRejects a request when authRequired: true" - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResult", - "text": "AuthResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.AuthToolkit.redirected", - "type": "Function", - "tags": [], - "label": "redirected", - "description": [ - "\nRedirects user to another location to complete authentication when authRequired: true\nAllows user to access a resource without redirection when authRequired: 'optional'" - ], - "signature": [ - "(headers: { location: string; } & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResult", - "text": "AuthResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthToolkit.redirected.$1", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [], - "signature": [ - "{ location: string; } & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.Capabilities", - "type": "Interface", - "tags": [], - "label": "Capabilities", - "description": [ - "\nThe read-only set of capabilities available for the current UI session.\nCapabilities are simple key-value pairs of (string, boolean), where the string denotes the capability ID,\nand the boolean is a flag indicating if the capability is enabled or disabled.\n" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Capabilities.navLinks", - "type": "Object", - "tags": [], - "label": "navLinks", - "description": [ - "Navigation link capabilities." - ], - "signature": [ - "{ [x: string]: boolean; }" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.Capabilities.management", - "type": "Object", - "tags": [], - "label": "management", - "description": [ - "Management section capabilities." - ], - "signature": [ - "{ [sectionId: string]: Record; }" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.Capabilities.catalogue", - "type": "Object", - "tags": [], - "label": "catalogue", - "description": [ - "Catalogue capabilities. Catalogue entries drive the visibility of the Kibana homepage options." - ], - "signature": [ - "{ [x: string]: boolean; }" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.Capabilities.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[key: string]: Record>", - "description": [ - "Custom capabilities, registered by plugins." - ], - "signature": [ - "[key: string]: Record>" - ], - "path": "packages/core/capabilities/core-capabilities-common/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSetup", - "type": "Interface", - "tags": [], - "label": "CapabilitiesSetup", - "description": [ - "\nAPIs to manage the {@link Capabilities} that will be used by the application.\n\nPlugins relying on capabilities to toggle some of their features should register them during the setup phase\nusing the `registerProvider` method.\n\nPlugins having the responsibility to restrict capabilities depending on a given context should register\ntheir capabilities switcher using the `registerSwitcher` method.\n\nRefers to the methods documentation for complete description and examples.\n" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSetup.registerProvider", - "type": "Function", - "tags": [], - "label": "registerProvider", - "description": [ - "\nRegister a {@link CapabilitiesProvider} to be used to provide {@link Capabilities}\nwhen resolving them.\n" - ], - "signature": [ - "(provider: ", - { - "pluginId": "@kbn/core-capabilities-server", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.CapabilitiesProvider", - "text": "CapabilitiesProvider" - }, - ") => void" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSetup.registerProvider.$1", - "type": "Function", - "tags": [], - "label": "provider", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-capabilities-server", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.CapabilitiesProvider", - "text": "CapabilitiesProvider" - } - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSetup.registerSwitcher", - "type": "Function", - "tags": [], - "label": "registerSwitcher", - "description": [ - "\nRegister a {@link CapabilitiesSwitcher} to be used to change the default state\nof the {@link Capabilities} entries when resolving them.\n\nA capabilities switcher can only change the state of existing capabilities.\nCapabilities added or removed when invoking the switcher will be ignored.\n" - ], - "signature": [ - "(switcher: ", - { - "pluginId": "@kbn/core-capabilities-server", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.CapabilitiesSwitcher", - "text": "CapabilitiesSwitcher" - }, - ") => void" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSetup.registerSwitcher.$1", - "type": "Function", - "tags": [], - "label": "switcher", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-capabilities-server", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.CapabilitiesSwitcher", - "text": "CapabilitiesSwitcher" - } - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesStart", - "type": "Interface", - "tags": [], - "label": "CapabilitiesStart", - "description": [ - "\nAPIs to access the application {@link Capabilities}.\n" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesStart.resolveCapabilities", - "type": "Function", - "tags": [], - "label": "resolveCapabilities", - "description": [ - "\nResolve the {@link Capabilities} to be used for given request" - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", options?: ", - { - "pluginId": "@kbn/core-capabilities-server", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.ResolveCapabilitiesOptions", - "text": "ResolveCapabilitiesOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-capabilities-common", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesCommonPluginApi", - "section": "def-common.Capabilities", - "text": "Capabilities" - }, - ">" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesStart.resolveCapabilities.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesStart.resolveCapabilities.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-capabilities-server", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.ResolveCapabilitiesOptions", - "text": "ResolveCapabilitiesOptions" - }, - " | undefined" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CheckAuthorizationResult", - "type": "Interface", - "tags": [], - "label": "CheckAuthorizationResult", - "description": [ - "\nThe CheckAuthorizationResult interface contains the overall status of an\nauthorization check and the specific authorized privileges as an\nAuthorizationTypeMap." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.CheckAuthorizationResult", - "text": "CheckAuthorizationResult" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CheckAuthorizationResult.status", - "type": "CompoundType", - "tags": [], - "label": "status", - "description": [ - "\nThe overall status of the authorization check as a string:\n'fully_authorized' | 'partially_authorized' | 'unauthorized'" - ], - "signature": [ - "\"fully_authorized\" | \"partially_authorized\" | \"unauthorized\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CheckAuthorizationResult.typeMap", - "type": "Object", - "tags": [], - "label": "typeMap", - "description": [ - "\nThe specific authorized privileges: a map of type to record\nof action/AuthorizationTypeEntry (spaces/globallyAuthz'd)" - ], - "signature": [ - "Map>" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationContext", - "type": "Interface", - "tags": [], - "label": "ConfigDeprecationContext", - "description": [ - "\nDeprecation context provided to {@link ConfigDeprecation | config deprecations}\n" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationContext.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "The current Kibana version, e.g `7.16.1`, `8.0.0`" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationContext.branch", - "type": "string", - "tags": [], - "label": "branch", - "description": [ - "The current Kibana branch, e.g `7.x`, `7.16`, `master`" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationContext.docLinks", - "type": "Object", - "tags": [], - "label": "docLinks", - "description": [ - "Allow direct access to the doc links from the deprecation handler" - ], - "signature": [ - { - "pluginId": "@kbn/doc-links", - "scope": "common", - "docId": "kibKbnDocLinksPluginApi", - "section": "def-common.DocLinks", - "text": "DocLinks" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory", - "type": "Interface", - "tags": [], - "label": "ConfigDeprecationFactory", - "description": [ - "\nProvides helpers to generates the most commonly used {@link ConfigDeprecation}\nwhen invoking a {@link ConfigDeprecationProvider}.\n\nSee methods documentation for more detailed examples.\n" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.deprecate", - "type": "Function", - "tags": [], - "label": "deprecate", - "description": [ - "\nDeprecate a configuration property from inside a plugin's configuration path.\nWill log a deprecation warning if the deprecatedKey was found.\n" - ], - "signature": [ - "(deprecatedKey: string, removeBy: string, details: ", - "FactoryConfigDeprecationDetails", - ") => ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecation", - "text": "ConfigDeprecation" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.deprecate.$1", - "type": "string", - "tags": [], - "label": "deprecatedKey", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.deprecate.$2", - "type": "string", - "tags": [], - "label": "removeBy", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.deprecate.$3", - "type": "CompoundType", - "tags": [], - "label": "details", - "description": [], - "signature": [ - "FactoryConfigDeprecationDetails" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.deprecateFromRoot", - "type": "Function", - "tags": [], - "label": "deprecateFromRoot", - "description": [ - "\nDeprecate a configuration property from the root configuration.\nWill log a deprecation warning if the deprecatedKey was found.\n\nThis should be only used when deprecating properties from different configuration's path.\nTo deprecate properties from inside a plugin's configuration, use 'deprecate' instead.\n" - ], - "signature": [ - "(deprecatedKey: string, removeBy: string, details: ", - "FactoryConfigDeprecationDetails", - ") => ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecation", - "text": "ConfigDeprecation" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.deprecateFromRoot.$1", - "type": "string", - "tags": [], - "label": "deprecatedKey", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.deprecateFromRoot.$2", - "type": "string", - "tags": [], - "label": "removeBy", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.deprecateFromRoot.$3", - "type": "CompoundType", - "tags": [], - "label": "details", - "description": [], - "signature": [ - "FactoryConfigDeprecationDetails" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.rename", - "type": "Function", - "tags": [], - "label": "rename", - "description": [ - "\nRename a configuration property from inside a plugin's configuration path.\nWill log a deprecation warning if the oldKey was found and deprecation applied.\n" - ], - "signature": [ - "(oldKey: string, newKey: string, details: ", - "FactoryConfigDeprecationDetails", - ") => ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecation", - "text": "ConfigDeprecation" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.rename.$1", - "type": "string", - "tags": [], - "label": "oldKey", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.rename.$2", - "type": "string", - "tags": [], - "label": "newKey", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.rename.$3", - "type": "CompoundType", - "tags": [], - "label": "details", - "description": [], - "signature": [ - "FactoryConfigDeprecationDetails" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.renameFromRoot", - "type": "Function", - "tags": [], - "label": "renameFromRoot", - "description": [ - "\nRename a configuration property from the root configuration.\nWill log a deprecation warning if the oldKey was found and deprecation applied.\n\nThis should be only used when renaming properties from different configuration's path.\nTo rename properties from inside a plugin's configuration, use 'rename' instead.\n" - ], - "signature": [ - "(oldKey: string, newKey: string, details: ", - "FactoryConfigDeprecationDetails", - ") => ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecation", - "text": "ConfigDeprecation" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.renameFromRoot.$1", - "type": "string", - "tags": [], - "label": "oldKey", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.renameFromRoot.$2", - "type": "string", - "tags": [], - "label": "newKey", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.renameFromRoot.$3", - "type": "CompoundType", - "tags": [], - "label": "details", - "description": [], - "signature": [ - "FactoryConfigDeprecationDetails" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.unused", - "type": "Function", - "tags": [], - "label": "unused", - "description": [ - "\nRemove a configuration property from inside a plugin's configuration path.\nWill log a deprecation warning if the unused key was found and deprecation applied.\n" - ], - "signature": [ - "(unusedKey: string, details: ", - "FactoryConfigDeprecationDetails", - ") => ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecation", - "text": "ConfigDeprecation" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.unused.$1", - "type": "string", - "tags": [], - "label": "unusedKey", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.unused.$2", - "type": "CompoundType", - "tags": [], - "label": "details", - "description": [], - "signature": [ - "FactoryConfigDeprecationDetails" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.unusedFromRoot", - "type": "Function", - "tags": [], - "label": "unusedFromRoot", - "description": [ - "\nRemove a configuration property from the root configuration.\nWill log a deprecation warning if the unused key was found and deprecation applied.\n\nThis should be only used when removing properties from outside of a plugin's configuration.\nTo remove properties from inside a plugin's configuration, use 'unused' instead.\n" - ], - "signature": [ - "(unusedKey: string, details: ", - "FactoryConfigDeprecationDetails", - ") => ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecation", - "text": "ConfigDeprecation" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.unusedFromRoot.$1", - "type": "string", - "tags": [], - "label": "unusedKey", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationFactory.unusedFromRoot.$2", - "type": "CompoundType", - "tags": [], - "label": "details", - "description": [], - "signature": [ - "FactoryConfigDeprecationDetails" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ContextProviderOpts", - "type": "Interface", - "tags": [], - "label": "ContextProviderOpts", - "description": [ - "\nDefinition of a context provider" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ContextProviderOpts.name", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "\nThe name of the provider." - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ContextProviderOpts.context$", - "type": "Object", - "tags": [], - "label": "context$", - "description": [ - "\nObservable that emits the custom context." - ], - "signature": [ - "Observable", - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ContextProviderOpts.schema", - "type": "Object", - "tags": [], - "label": "schema", - "description": [ - "\nSchema declaring and documenting the expected output in the context$\n" - ], - "signature": [ - "{ [Key in keyof Required]: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.SchemaValue", - "text": "SchemaValue" - }, - "; }" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreConfigUsageData", - "type": "Interface", - "tags": [], - "label": "CoreConfigUsageData", - "description": [ - "\nUsage data on this cluster's configuration of Core features" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreConfigUsageData.elasticsearch", - "type": "Object", - "tags": [], - "label": "elasticsearch", - "description": [], - "signature": [ - "{ sniffOnStart: boolean; sniffIntervalMs?: number | undefined; sniffOnConnectionFault: boolean; numberOfHostsConfigured: number; requestHeadersWhitelistConfigured: boolean; customHeadersConfigured: boolean; shardTimeoutMs: number; requestTimeoutMs: number; pingTimeoutMs: number; logQueries: boolean; ssl: { verificationMode: \"none\" | \"full\" | \"certificate\"; certificateAuthoritiesConfigured: boolean; certificateConfigured: boolean; keyConfigured: boolean; keystoreConfigured: boolean; truststoreConfigured: boolean; alwaysPresentCertificate: boolean; }; apiVersion: string; healthCheckDelayMs: number; principal: \"unknown\" | \"elastic_user\" | \"kibana_user\" | \"kibana_system_user\" | \"other_user\" | \"kibana_service_account\"; }" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreConfigUsageData.http", - "type": "Object", - "tags": [], - "label": "http", - "description": [], - "signature": [ - "{ basePathConfigured: boolean; maxPayloadInBytes: number; rewriteBasePath: boolean; keepaliveTimeout: number; socketTimeout: number; compression: { enabled: boolean; referrerWhitelistConfigured: boolean; }; xsrf: { disableProtection: boolean; allowlistConfigured: boolean; }; requestId: { allowFromAnyIp: boolean; ipAllowlistConfigured: boolean; }; ssl: { certificateAuthoritiesConfigured: boolean; certificateConfigured: boolean; cipherSuites: string[]; keyConfigured: boolean; keystoreConfigured: boolean; truststoreConfigured: boolean; redirectHttpFromPortConfigured: boolean; supportedProtocols: string[]; clientAuthentication: \"optional\" | \"none\" | \"required\"; }; securityResponseHeaders: { strictTransportSecurity: string; xContentTypeOptions: string; referrerPolicy: string; permissionsPolicyConfigured: boolean; disableEmbedding: boolean; crossOriginOpenerPolicy: string; }; }" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreConfigUsageData.logging", - "type": "Object", - "tags": [], - "label": "logging", - "description": [], - "signature": [ - "{ appendersTypesUsed: string[]; loggersConfiguredCount: number; }" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreConfigUsageData.savedObjects", - "type": "Object", - "tags": [], - "label": "savedObjects", - "description": [], - "signature": [ - "{ customIndex: boolean; maxImportPayloadBytes: number; maxImportExportSize: number; }" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreConfigUsageData.deprecatedKeys", - "type": "Object", - "tags": [], - "label": "deprecatedKeys", - "description": [], - "signature": [ - "{ set: string[]; unset: string[]; }" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreEnvironmentUsageData", - "type": "Interface", - "tags": [], - "label": "CoreEnvironmentUsageData", - "description": [ - "\nUsage data on this Kibana node's runtime environment." - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreEnvironmentUsageData.memory", - "type": "Object", - "tags": [], - "label": "memory", - "description": [], - "signature": [ - "{ heapTotalBytes: number; heapUsedBytes: number; heapSizeLimit: number; }" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreIncrementCounterParams", - "type": "Interface", - "tags": [], - "label": "CoreIncrementCounterParams", - "description": [], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreIncrementCounterParams.counterName", - "type": "string", - "tags": [], - "label": "counterName", - "description": [ - "The name of the counter" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreIncrementCounterParams.counterType", - "type": "string", - "tags": [], - "label": "counterType", - "description": [ - "The counter type (\"count\" by default)" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreIncrementCounterParams.incrementBy", - "type": "number", - "tags": [], - "label": "incrementBy", - "description": [ - "Increment the counter by this number (1 if not specified)" - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CorePreboot", - "type": "Interface", - "tags": [], - "label": "CorePreboot", - "description": [ - "\nContext passed to the `setup` method of `preboot` plugins." - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_preboot.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CorePreboot.analytics", - "type": "Object", - "tags": [], - "label": "analytics", - "description": [ - "{@link AnalyticsServicePreboot}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; registerEventType: (eventTypeOps: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - ") => void; registerShipper: (Shipper: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - ", shipperConfig: ShipperConfig, opts?: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined) => void; registerContextProvider: (contextProviderOpts: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - ") => void; removeContextProvider: (contextProviderName: string) => void; }" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_preboot.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CorePreboot.elasticsearch", - "type": "Object", - "tags": [], - "label": "elasticsearch", - "description": [ - "{@link ElasticsearchServicePreboot}" - ], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchServicePreboot", - "text": "ElasticsearchServicePreboot" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_preboot.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CorePreboot.http", - "type": "Object", - "tags": [], - "label": "http", - "description": [ - "{@link HttpServicePreboot}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServicePreboot", - "text": "HttpServicePreboot" - }, - "<", - { - "pluginId": "@kbn/core-http-request-handler-context-server", - "scope": "common", - "docId": "kibKbnCoreHttpRequestHandlerContextServerPluginApi", - "section": "def-common.RequestHandlerContext", - "text": "RequestHandlerContext" - }, - ">" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_preboot.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CorePreboot.preboot", - "type": "Object", - "tags": [], - "label": "preboot", - "description": [ - "{@link PrebootServicePreboot}" - ], - "signature": [ - { - "pluginId": "@kbn/core-preboot-server", - "scope": "common", - "docId": "kibKbnCorePrebootServerPluginApi", - "section": "def-common.PrebootServicePreboot", - "text": "PrebootServicePreboot" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_preboot.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreRequestHandlerContext", - "type": "Interface", - "tags": [], - "label": "CoreRequestHandlerContext", - "description": [ - "\nThe `core` context provided to route handler.\n\nProvides the following clients and services:\n - {@link SavedObjectsClient | savedObjects.client} - Saved Objects client\n which uses the credentials of the incoming request\n - {@link ISavedObjectTypeRegistry | savedObjects.typeRegistry} - Type registry containing\n all the registered types.\n - {@link IScopedClusterClient | elasticsearch.client} - Elasticsearch\n data client which uses the credentials of the incoming request\n - {@link IUiSettingsClient | uiSettings.client} - uiSettings client\n which uses the credentials of the incoming request" - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreRequestHandlerContext.savedObjects", - "type": "Object", - "tags": [], - "label": "savedObjects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRequestHandlerContext", - "text": "SavedObjectsRequestHandlerContext" - } - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreRequestHandlerContext.elasticsearch", - "type": "Object", - "tags": [], - "label": "elasticsearch", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchRequestHandlerContext", - "text": "ElasticsearchRequestHandlerContext" - } - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreRequestHandlerContext.uiSettings", - "type": "Object", - "tags": [], - "label": "uiSettings", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-server", - "scope": "common", - "docId": "kibKbnCoreUiSettingsServerPluginApi", - "section": "def-common.UiSettingsRequestHandlerContext", - "text": "UiSettingsRequestHandlerContext" - } - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreRequestHandlerContext.deprecations", - "type": "Object", - "tags": [], - "label": "deprecations", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-server", - "scope": "common", - "docId": "kibKbnCoreDeprecationsServerPluginApi", - "section": "def-common.DeprecationsRequestHandlerContext", - "text": "DeprecationsRequestHandlerContext" - } - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreServicesUsageData", - "type": "Interface", - "tags": [], - "label": "CoreServicesUsageData", - "description": [ - "\nUsage data from Core services" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreServicesUsageData.savedObjects", - "type": "Object", - "tags": [], - "label": "savedObjects", - "description": [], - "signature": [ - "{ indices: { alias: string; docsCount: number; docsDeleted: number; storeSizeBytes: number; primaryStoreSizeBytes: number; savedObjectsDocsCount: number; }[]; legacyUrlAliases: { activeCount: number; inactiveCount: number; disabledCount: number; totalCount: number; }; }" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup", - "type": "Interface", - "tags": [], - "label": "CoreSetup", - "description": [ - "\nContext passed to the `setup` method of `standard` plugins.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreSetup", - "text": "CoreSetup" - }, - "" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.analytics", - "type": "Object", - "tags": [], - "label": "analytics", - "description": [ - "{@link AnalyticsServiceSetup}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; registerEventType: (eventTypeOps: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - ") => void; registerShipper: (Shipper: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - ", shipperConfig: ShipperConfig, opts?: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined) => void; registerContextProvider: (contextProviderOpts: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - ") => void; removeContextProvider: (contextProviderName: string) => void; }" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.capabilities", - "type": "Object", - "tags": [], - "label": "capabilities", - "description": [ - "{@link CapabilitiesSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-capabilities-server", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.CapabilitiesSetup", - "text": "CapabilitiesSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.customBranding", - "type": "Object", - "tags": [], - "label": "customBranding", - "description": [ - "{@link CustomBrandingSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-custom-branding-server", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingServerPluginApi", - "section": "def-common.CustomBrandingSetup", - "text": "CustomBrandingSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.docLinks", - "type": "Object", - "tags": [], - "label": "docLinks", - "description": [ - "{@link DocLinksServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-doc-links-server", - "scope": "common", - "docId": "kibKbnCoreDocLinksServerPluginApi", - "section": "def-common.DocLinksServiceSetup", - "text": "DocLinksServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.elasticsearch", - "type": "Object", - "tags": [], - "label": "elasticsearch", - "description": [ - "{@link ElasticsearchServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchServiceSetup", - "text": "ElasticsearchServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.executionContext", - "type": "Object", - "tags": [], - "label": "executionContext", - "description": [ - "{@link ExecutionContextSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-server", - "scope": "common", - "docId": "kibKbnCoreExecutionContextServerPluginApi", - "section": "def-common.ExecutionContextSetup", - "text": "ExecutionContextSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.http", - "type": "CompoundType", - "tags": [], - "label": "http", - "description": [ - "{@link HttpServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServiceSetup", - "text": "HttpServiceSetup" - }, - "<", - { - "pluginId": "@kbn/core-http-request-handler-context-server", - "scope": "common", - "docId": "kibKbnCoreHttpRequestHandlerContextServerPluginApi", - "section": "def-common.RequestHandlerContext", - "text": "RequestHandlerContext" - }, - "> & { resources: ", - { - "pluginId": "@kbn/core-http-resources-server", - "scope": "common", - "docId": "kibKbnCoreHttpResourcesServerPluginApi", - "section": "def-common.HttpResources", - "text": "HttpResources" - }, - "; }" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.i18n", - "type": "Object", - "tags": [], - "label": "i18n", - "description": [ - "{@link I18nServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-i18n-server", - "scope": "common", - "docId": "kibKbnCoreI18nServerPluginApi", - "section": "def-common.I18nServiceSetup", - "text": "I18nServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.logging", - "type": "Object", - "tags": [], - "label": "logging", - "description": [ - "{@link LoggingServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-logging-server", - "scope": "common", - "docId": "kibKbnCoreLoggingServerPluginApi", - "section": "def-common.LoggingServiceSetup", - "text": "LoggingServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.metrics", - "type": "Object", - "tags": [], - "label": "metrics", - "description": [ - "{@link MetricsServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.MetricsServiceSetup", - "text": "MetricsServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.savedObjects", - "type": "Object", - "tags": [], - "label": "savedObjects", - "description": [ - "{@link SavedObjectsServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsServiceSetup", - "text": "SavedObjectsServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.status", - "type": "Object", - "tags": [], - "label": "status", - "description": [ - "{@link StatusServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-status-server", - "scope": "common", - "docId": "kibKbnCoreStatusServerPluginApi", - "section": "def-common.StatusServiceSetup", - "text": "StatusServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.uiSettings", - "type": "Object", - "tags": [], - "label": "uiSettings", - "description": [ - "{@link UiSettingsServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-server", - "scope": "common", - "docId": "kibKbnCoreUiSettingsServerPluginApi", - "section": "def-common.UiSettingsServiceSetup", - "text": "UiSettingsServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.deprecations", - "type": "Object", - "tags": [], - "label": "deprecations", - "description": [ - "{@link DeprecationsServiceSetup}" - ], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-server", - "scope": "common", - "docId": "kibKbnCoreDeprecationsServerPluginApi", - "section": "def-common.DeprecationsServiceSetup", - "text": "DeprecationsServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreSetup.getStartServices", - "type": "Function", - "tags": [], - "label": "getStartServices", - "description": [ - "{@link StartServicesAccessor}" - ], - "signature": [ - "() => Promise<[", - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - }, - ", TPluginsStart, TStart]>" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart", - "type": "Interface", - "tags": [], - "label": "CoreStart", - "description": [ - "\nContext passed to the plugins `start` method.\n" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreStart.analytics", - "type": "Object", - "tags": [], - "label": "analytics", - "description": [ - "{@link AnalyticsServiceStart}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; }" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.capabilities", - "type": "Object", - "tags": [], - "label": "capabilities", - "description": [ - "{@link CapabilitiesStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-capabilities-server", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.CapabilitiesStart", - "text": "CapabilitiesStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.customBranding", - "type": "Object", - "tags": [], - "label": "customBranding", - "description": [ - "{@link CustomBrandingStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-custom-branding-server", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingServerPluginApi", - "section": "def-common.CustomBrandingStart", - "text": "CustomBrandingStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.docLinks", - "type": "Object", - "tags": [], - "label": "docLinks", - "description": [ - "{@link DocLinksServiceStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-doc-links-server", - "scope": "common", - "docId": "kibKbnCoreDocLinksServerPluginApi", - "section": "def-common.DocLinksServiceSetup", - "text": "DocLinksServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.elasticsearch", - "type": "Object", - "tags": [], - "label": "elasticsearch", - "description": [ - "{@link ElasticsearchServiceStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchServiceStart", - "text": "ElasticsearchServiceStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.executionContext", - "type": "Object", - "tags": [], - "label": "executionContext", - "description": [ - "{@link ExecutionContextStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-server", - "scope": "common", - "docId": "kibKbnCoreExecutionContextServerPluginApi", - "section": "def-common.ExecutionContextSetup", - "text": "ExecutionContextSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.http", - "type": "Object", - "tags": [], - "label": "http", - "description": [ - "{@link HttpServiceStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServiceStart", - "text": "HttpServiceStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.metrics", - "type": "Object", - "tags": [], - "label": "metrics", - "description": [ - "{@link MetricsServiceStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.MetricsServiceSetup", - "text": "MetricsServiceSetup" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.savedObjects", - "type": "Object", - "tags": [], - "label": "savedObjects", - "description": [ - "{@link SavedObjectsServiceStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsServiceStart", - "text": "SavedObjectsServiceStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStart.uiSettings", - "type": "Object", - "tags": [], - "label": "uiSettings", - "description": [ - "{@link UiSettingsServiceStart}" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-server", - "scope": "common", - "docId": "kibKbnCoreUiSettingsServerPluginApi", - "section": "def-common.UiSettingsServiceStart", - "text": "UiSettingsServiceStart" - } - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStatus", - "type": "Interface", - "tags": [], - "label": "CoreStatus", - "description": [ - "\nStatus of core services.\n" - ], - "path": "packages/core/status/core-status-common/src/core_status.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreStatus.elasticsearch", - "type": "Object", - "tags": [], - "label": "elasticsearch", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-status-common", - "scope": "common", - "docId": "kibKbnCoreStatusCommonPluginApi", - "section": "def-common.ServiceStatus", - "text": "ServiceStatus" - }, - "" - ], - "path": "packages/core/status/core-status-common/src/core_status.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreStatus.savedObjects", - "type": "Object", - "tags": [], - "label": "savedObjects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-status-common", - "scope": "common", - "docId": "kibKbnCoreStatusCommonPluginApi", - "section": "def-common.ServiceStatus", - "text": "ServiceStatus" - }, - "" - ], - "path": "packages/core/status/core-status-common/src/core_status.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageCounter", - "type": "Interface", - "tags": [], - "label": "CoreUsageCounter", - "description": [], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageData", - "type": "Interface", - "tags": [], - "label": "CoreUsageData", - "description": [ - "\nType describing Core's usage data payload" - ], - "signature": [ - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreUsageData", - "text": "CoreUsageData" - }, - " extends ", - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreUsageStats", - "text": "CoreUsageStats" - } - ], - "path": "packages/core/usage-data/core-usage-data-server/src/start_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreUsageData.config", - "type": "Object", - "tags": [], - "label": "config", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreConfigUsageData", - "text": "CoreConfigUsageData" - } - ], - "path": "packages/core/usage-data/core-usage-data-server/src/start_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageData.services", - "type": "Object", - "tags": [], - "label": "services", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreServicesUsageData", - "text": "CoreServicesUsageData" - } - ], - "path": "packages/core/usage-data/core-usage-data-server/src/start_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageData.environment", - "type": "Object", - "tags": [], - "label": "environment", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreEnvironmentUsageData", - "text": "CoreEnvironmentUsageData" - } - ], - "path": "packages/core/usage-data/core-usage-data-server/src/start_contract.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageDataSetup", - "type": "Interface", - "tags": [ - "note" - ], - "label": "CoreUsageDataSetup", - "description": [ - "\nInternal API for registering the Usage Tracker used for Core's usage data payload.\n" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreUsageDataSetup.registerUsageCounter", - "type": "Function", - "tags": [], - "label": "registerUsageCounter", - "description": [ - "\nAPI for a usage tracker plugin to inject the {@link CoreUsageCounter} to use\nwhen tracking events." - ], - "signature": [ - "(usageCounter: ", - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreUsageCounter", - "text": "CoreUsageCounter" - }, - ") => void" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreUsageDataSetup.registerUsageCounter.$1", - "type": "Object", - "tags": [], - "label": "usageCounter", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreUsageCounter", - "text": "CoreUsageCounter" - } - ], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageDataStart", - "type": "Interface", - "tags": [ - "note" - ], - "label": "CoreUsageDataStart", - "description": [ - "\nInternal API for getting Core's usage data payload.\n" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/start_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreUsageDataStart.getConfigsUsageData", - "type": "Function", - "tags": [], - "label": "getConfigsUsageData", - "description": [], - "signature": [ - "() => Promise<", - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.ConfigUsageData", - "text": "ConfigUsageData" - }, - ">" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/start_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats", - "type": "Interface", - "tags": [], - "label": "CoreUsageStats", - "description": [], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkCreate.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkCreate.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkCreate.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkCreate.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkCreate.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkCreate.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkCreate.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkCreate.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkCreate.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkCreate.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkCreate.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkCreate.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkCreate.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkCreate.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkGet.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkGet.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkGet.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkGet.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkGet.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkGet.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkGet.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkGet.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkGet.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkGet.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkGet.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkGet.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkGet.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkGet.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkResolve.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkResolve.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkResolve.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkResolve.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkResolve.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkResolve.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkResolve.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkResolve.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkResolve.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkResolve.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkResolve.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkResolve.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkResolve.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkResolve.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkUpdate.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkUpdate.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkUpdate.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkUpdate.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkUpdate.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkUpdate.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkUpdate.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkUpdate.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkUpdate.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkUpdate.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkUpdate.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkUpdate.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkUpdate.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkUpdate.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkDelete.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkDelete.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkDelete.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkDelete.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkDelete.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkDelete.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkDelete.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkDelete.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkDelete.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkDelete.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkDelete.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkDelete.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsBulkDelete.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsBulkDelete.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsCreate.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsCreate.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsCreate.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsCreate.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsCreate.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsCreate.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsCreate.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsCreate.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsCreate.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsCreate.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsCreate.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsCreate.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsCreate.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsCreate.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsDelete.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsDelete.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsDelete.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsDelete.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsDelete.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsDelete.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsDelete.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsDelete.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsDelete.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsDelete.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsDelete.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsDelete.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsDelete.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsDelete.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsFind.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsFind.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsFind.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsFind.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsFind.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsFind.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsFind.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsFind.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsFind.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsFind.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsFind.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsFind.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsFind.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsFind.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsGet.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsGet.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsGet.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsGet.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsGet.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsGet.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsGet.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsGet.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsGet.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsGet.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsGet.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsGet.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsGet.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsGet.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolve.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolve.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolve.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolve.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolve.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolve.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolve.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolve.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolve.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolve.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolve.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolve.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolve.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolve.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsUpdate.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsUpdate.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsUpdate.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsUpdate.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsUpdate.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsUpdate.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsUpdate.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsUpdate.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsUpdate.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsUpdate.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsUpdate.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsUpdate.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsUpdate.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsUpdate.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.createNewCopiesEnabled.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.createNewCopiesEnabled.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.createNewCopiesEnabled.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.createNewCopiesEnabled.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.overwriteEnabled.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.overwriteEnabled.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsImport.overwriteEnabled.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsImport.overwriteEnabled.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.createNewCopiesEnabled.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.createNewCopiesEnabled.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsResolveImportErrors.createNewCopiesEnabled.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsResolveImportErrors.createNewCopiesEnabled.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.allTypesSelected.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.allTypesSelected.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.savedObjectsExport.allTypesSelected.no", - "type": "number", - "tags": [], - "label": "'apiCalls.savedObjectsExport.allTypesSelected.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardExport.total", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardExport.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardExport.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardExport.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardExport.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardExport.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardExport.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardExport.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardExport.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardExport.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardExport.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardExport.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardExport.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardExport.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardImport.total", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardImport.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardImport.namespace.default.total", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardImport.namespace.default.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardImport.namespace.default.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardImport.namespace.default.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardImport.namespace.default.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardImport.namespace.default.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardImport.namespace.custom.total", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardImport.namespace.custom.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardImport.namespace.custom.kibanaRequest.yes", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardImport.namespace.custom.kibanaRequest.yes'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.apiCalls.legacyDashboardImport.namespace.custom.kibanaRequest.no", - "type": "number", - "tags": [], - "label": "'apiCalls.legacyDashboardImport.namespace.custom.kibanaRequest.no'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.savedObjectsRepository.resolvedOutcome.exactMatch", - "type": "number", - "tags": [], - "label": "'savedObjectsRepository.resolvedOutcome.exactMatch'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.savedObjectsRepository.resolvedOutcome.aliasMatch", - "type": "number", - "tags": [], - "label": "'savedObjectsRepository.resolvedOutcome.aliasMatch'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.savedObjectsRepository.resolvedOutcome.conflict", - "type": "number", - "tags": [], - "label": "'savedObjectsRepository.resolvedOutcome.conflict'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.savedObjectsRepository.resolvedOutcome.notFound", - "type": "number", - "tags": [], - "label": "'savedObjectsRepository.resolvedOutcome.notFound'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreUsageStats.savedObjectsRepository.resolvedOutcome.total", - "type": "number", - "tags": [], - "label": "'savedObjectsRepository.resolvedOutcome.total'", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_stats.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CustomBrandingSetup", - "type": "Interface", - "tags": [], - "label": "CustomBrandingSetup", - "description": [], - "path": "packages/core/custom-branding/core-custom-branding-server/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CustomBrandingSetup.register", - "type": "Function", - "tags": [], - "label": "register", - "description": [], - "signature": [ - "(fetchFn: ", - { - "pluginId": "@kbn/core-custom-branding-server", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingServerPluginApi", - "section": "def-common.CustomBrandingFetchFn", - "text": "CustomBrandingFetchFn" - }, - ") => void" - ], - "path": "packages/core/custom-branding/core-custom-branding-server/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CustomBrandingSetup.register.$1", - "type": "Function", - "tags": [], - "label": "fetchFn", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-custom-branding-server", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingServerPluginApi", - "section": "def-common.CustomBrandingFetchFn", - "text": "CustomBrandingFetchFn" - } - ], - "path": "packages/core/custom-branding/core-custom-branding-server/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.CustomBrandingSetup.getBrandingFor", - "type": "Function", - "tags": [], - "label": "getBrandingFor", - "description": [], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", options: { unauthenticated?: boolean | undefined; }) => Promise<", - { - "pluginId": "@kbn/core-custom-branding-common", - "scope": "common", - "docId": "kibKbnCoreCustomBrandingCommonPluginApi", - "section": "def-common.CustomBranding", - "text": "CustomBranding" - }, - ">" - ], - "path": "packages/core/custom-branding/core-custom-branding-server/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CustomBrandingSetup.getBrandingFor.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/custom-branding/core-custom-branding-server/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.CustomBrandingSetup.getBrandingFor.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "path": "packages/core/custom-branding/core-custom-branding-server/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CustomBrandingSetup.getBrandingFor.$2.unauthenticated", - "type": "CompoundType", - "tags": [], - "label": "unauthenticated", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/custom-branding/core-custom-branding-server/types.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CustomHttpResponseOptions", - "type": "Interface", - "tags": [], - "label": "CustomHttpResponseOptions", - "description": [ - "\nHTTP response parameters for a response with adjustable status code." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.CustomHttpResponseOptions", - "text": "CustomHttpResponseOptions" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CustomHttpResponseOptions.body", - "type": "Uncategorized", - "tags": [], - "label": "body", - "description": [ - "HTTP message to send to the client" - ], - "signature": [ - "T | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CustomHttpResponseOptions.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "HTTP Headers with additional information about response" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CustomHttpResponseOptions.bypassErrorFormat", - "type": "CompoundType", - "tags": [], - "label": "bypassErrorFormat", - "description": [ - "Bypass the default error formatting" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CustomHttpResponseOptions.statusCode", - "type": "number", - "tags": [], - "label": "statusCode", - "description": [], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DeprecationsClient", - "type": "Interface", - "tags": [], - "label": "DeprecationsClient", - "description": [ - "\nServer-side client that provides access to fetch all Kibana deprecations\n" - ], - "path": "packages/core/deprecations/core-deprecations-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.DeprecationsClient.getAllDeprecations", - "type": "Function", - "tags": [], - "label": "getAllDeprecations", - "description": [], - "signature": [ - "() => Promise<", - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DomainDeprecationDetails", - "text": "DomainDeprecationDetails" - }, - "[]>" - ], - "path": "packages/core/deprecations/core-deprecations-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DeprecationSettings", - "type": "Interface", - "tags": [], - "label": "DeprecationSettings", - "description": [ - "\nUiSettings deprecation field options." - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.DeprecationSettings.message", - "type": "string", - "tags": [], - "label": "message", - "description": [ - "Deprecation message" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DeprecationSettings.docLinksKey", - "type": "string", - "tags": [], - "label": "docLinksKey", - "description": [ - "Key to documentation links" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DeprecationsGetResponse", - "type": "Interface", - "tags": [], - "label": "DeprecationsGetResponse", - "description": [], - "path": "packages/core/deprecations/core-deprecations-common/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.DeprecationsGetResponse.deprecations", - "type": "Array", - "tags": [], - "label": "deprecations", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DomainDeprecationDetails", - "text": "DomainDeprecationDetails" - }, - "[]" - ], - "path": "packages/core/deprecations/core-deprecations-common/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DeprecationsRequestHandlerContext", - "type": "Interface", - "tags": [], - "label": "DeprecationsRequestHandlerContext", - "description": [ - "\nCore's `deprecations` request handler context." - ], - "path": "packages/core/deprecations/core-deprecations-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.DeprecationsRequestHandlerContext.client", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-server", - "scope": "common", - "docId": "kibKbnCoreDeprecationsServerPluginApi", - "section": "def-common.DeprecationsClient", - "text": "DeprecationsClient" - } - ], - "path": "packages/core/deprecations/core-deprecations-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DeprecationsServiceSetup", - "type": "Interface", - "tags": [], - "label": "DeprecationsServiceSetup", - "description": [ - "\nThe deprecations service provides a way for the Kibana platform to communicate deprecated\nfeatures and configs with its users. These deprecations are only communicated\nif the deployment is using these features. Allowing for a user tailored experience\nfor upgrading the stack version.\n\nThe Deprecation service is consumed by the upgrade assistant to assist with the upgrade\nexperience.\n\nIf a deprecated feature can be resolved without manual user intervention.\nUsing correctiveActions.api allows the Upgrade Assistant to use this api to correct the\ndeprecation upon a user trigger.\n" - ], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.DeprecationsServiceSetup.registerDeprecations", - "type": "Function", - "tags": [], - "label": "registerDeprecations", - "description": [], - "signature": [ - "(deprecationContext: ", - { - "pluginId": "@kbn/core-deprecations-server", - "scope": "common", - "docId": "kibKbnCoreDeprecationsServerPluginApi", - "section": "def-common.RegisterDeprecationsConfig", - "text": "RegisterDeprecationsConfig" - }, - ") => void" - ], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.DeprecationsServiceSetup.registerDeprecations.$1", - "type": "Object", - "tags": [], - "label": "deprecationContext", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-server", - "scope": "common", - "docId": "kibKbnCoreDeprecationsServerPluginApi", - "section": "def-common.RegisterDeprecationsConfig", - "text": "RegisterDeprecationsConfig" - } - ], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DiscoveredPlugin", - "type": "Interface", - "tags": [], - "label": "DiscoveredPlugin", - "description": [ - "\nSmall container object used to expose information about discovered plugins that may\nor may not have been started." - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.DiscoveredPlugin.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\nIdentifier of the plugin." - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DiscoveredPlugin.configPath", - "type": "CompoundType", - "tags": [], - "label": "configPath", - "description": [ - "\nRoot configuration path used by the plugin, defaults to \"id\" in snake_case format." - ], - "signature": [ - "string | string[]" - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DiscoveredPlugin.type", - "type": "Enum", - "tags": [], - "label": "type", - "description": [ - "\nType of the plugin, defaults to `standard`." - ], - "signature": [ - { - "pluginId": "@kbn/core-base-common", - "scope": "common", - "docId": "kibKbnCoreBaseCommonPluginApi", - "section": "def-common.PluginType", - "text": "PluginType" - } - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DiscoveredPlugin.requiredPlugins", - "type": "Object", - "tags": [], - "label": "requiredPlugins", - "description": [ - "\nAn optional list of the other plugins that **must be** installed and enabled\nfor this plugin to function properly." - ], - "signature": [ - "readonly string[]" - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DiscoveredPlugin.optionalPlugins", - "type": "Object", - "tags": [], - "label": "optionalPlugins", - "description": [ - "\nAn optional list of the other plugins that if installed and enabled **may be**\nleveraged by this plugin for some additional functionality but otherwise are\nnot required for this plugin to work properly." - ], - "signature": [ - "readonly string[]" - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DiscoveredPlugin.requiredBundles", - "type": "Object", - "tags": [], - "label": "requiredBundles", - "description": [ - "\nList of plugin ids that this plugin's UI code imports modules from that are\nnot in `requiredPlugins`.\n" - ], - "signature": [ - "readonly string[]" - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DiscoveredPlugin.enabledOnAnonymousPages", - "type": "CompoundType", - "tags": [], - "label": "enabledOnAnonymousPages", - "description": [ - "\nSpecifies whether this plugin - and its required dependencies - will be enabled for anonymous pages (login page, status page when\nconfigured, etc.) Default is false." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DocLinksServiceSetup", - "type": "Interface", - "tags": [], - "label": "DocLinksServiceSetup", - "description": [], - "path": "packages/core/doc-links/core-doc-links-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.DocLinksServiceSetup.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "The branch/version the docLinks are pointing to" - ], - "path": "packages/core/doc-links/core-doc-links-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DocLinksServiceSetup.elasticWebsiteUrl", - "type": "string", - "tags": [], - "label": "elasticWebsiteUrl", - "description": [ - "The base url for the elastic website" - ], - "path": "packages/core/doc-links/core-doc-links-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.DocLinksServiceSetup.links", - "type": "Object", - "tags": [], - "label": "links", - "description": [ - "A record of all registered doc links" - ], - "signature": [ - { - "pluginId": "@kbn/doc-links", - "scope": "common", - "docId": "kibKbnDocLinksPluginApi", - "section": "def-common.DocLinks", - "text": "DocLinks" - } - ], - "path": "packages/core/doc-links/core-doc-links-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent", - "type": "Interface", - "tags": [], - "label": "EcsEvent", - "description": [ - "\nThe event fields are used for context information about the log or metric event itself.\nA log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host and device temperature. See the `event.kind` definition in this section for additional details about metric and state events." - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.action", - "type": "string", - "tags": [], - "label": "action", - "description": [ - "\nThe action captured by the event.\nThis describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.agent_id_status", - "type": "string", - "tags": [], - "label": "agent_id_status", - "description": [ - "\nAgents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation.\nFor example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used.\nIf no validation is performed then the field should be omitted.\nThe allowed values are:\n`verified` - The `agent.id` field value matches expected value obtained from auth metadata.\n`mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata.\n`missing` - There was no `agent.id` field in the event to validate.\n`auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.category", - "type": "Array", - "tags": [], - "label": "category", - "description": [ - "\nThis is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy.\n`event.category` represents the \"big buckets\" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory.\nThis field is an array. This will allow proper categorization of some events that fall in multiple categories." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.code", - "type": "string", - "tags": [], - "label": "code", - "description": [ - "\nIdentification code for this event, if one exists.\nSome event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.created", - "type": "string", - "tags": [], - "label": "created", - "description": [ - "\nevent.created contains the date/time when the event was first read by an agent, or by your pipeline.\nThis field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event.\nIn most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source.\nIn case the two timestamps are identical, @timestamp should be used." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.dataset", - "type": "string", - "tags": [], - "label": "dataset", - "description": [ - "\nName of the dataset.\nIf an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from.\nIt's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.duration", - "type": "number", - "tags": [], - "label": "duration", - "description": [ - "\nDuration of the event in nanoseconds.\nIf event.start and event.end are known this value should be the difference between the end and start time." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.end", - "type": "string", - "tags": [], - "label": "end", - "description": [ - "\nevent.end contains the date when the event ended or when the activity was last observed." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.hash", - "type": "string", - "tags": [], - "label": "hash", - "description": [ - "\nHash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\nUnique ID to describe the event." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.ingested", - "type": "string", - "tags": [], - "label": "ingested", - "description": [ - "\nTimestamp when an event arrived in the central data store.\nThis is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event.\nIn normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` < `event.created` < `event.ingested`." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.kind", - "type": "string", - "tags": [], - "label": "kind", - "description": [ - "\nThis is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy.\n`event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events.\nThe value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.module", - "type": "string", - "tags": [], - "label": "module", - "description": [ - "\nName of the module this data is coming from.\nIf your monitoring agent supports the concept of modules or plugins to process events of a given source (e.g. Apache logs), `event.module` should contain the name of this module." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.original", - "type": "string", - "tags": [], - "label": "original", - "description": [ - "\nRaw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex.\nThis field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.outcome", - "type": "string", - "tags": [], - "label": "outcome", - "description": [ - "\nThis is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy.\n`event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event.\nNote that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective.\nAlso note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer.\nFurther note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.provider", - "type": "string", - "tags": [], - "label": "provider", - "description": [ - "\nSource of the event.\nEvent transports such as Syslog or the Windows Event Log typically mention the source of an event. It can be the name of the software that generated the event (e.g. Sysmon, httpd), or of a subsystem of the operating system (kernel, Microsoft-Windows-Security-Auditing)." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.reason", - "type": "string", - "tags": [], - "label": "reason", - "description": [ - "\nReason why this event happened, according to the source.\nThis describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`)." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.reference", - "type": "string", - "tags": [], - "label": "reference", - "description": [ - "\nReference URL linking to additional information about this event.\nThis URL links to a static definition of this event. Alert events, indicated by `event.kind:alert`, are a common use case for this field." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.risk_score", - "type": "number", - "tags": [], - "label": "risk_score", - "description": [ - "\nRisk score or priority of the event (e.g. security solutions). Use your system's original value here." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.risk_score_norm", - "type": "number", - "tags": [], - "label": "risk_score_norm", - "description": [ - "\nNormalized risk score or priority of the event, on a scale of 0 to 100.\nThis is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.sequence", - "type": "number", - "tags": [], - "label": "sequence", - "description": [ - "\nSequence number of the event.\nThe sequence number is a value published by some event sources, to make the exact ordering of events unambiguous, regardless of the timestamp precision." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.severity", - "type": "number", - "tags": [], - "label": "severity", - "description": [ - "\nThe numeric severity of the event according to your event source.\nWhat the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source.\nThe Syslog severity belongs in `log.syslog.severity.code`. `event.severity` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the `log.syslog.severity.code` to `event.severity`." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.start", - "type": "string", - "tags": [], - "label": "start", - "description": [ - "\nevent.start contains the date when the event started or when the activity was first observed." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.timezone", - "type": "string", - "tags": [], - "label": "timezone", - "description": [ - "\nThis field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise.\nAcceptable timezone formats are: a canonical ID (e.g. \"Europe/Amsterdam\"), abbreviated (e.g. \"EST\") or an HH:mm differential (e.g. \"-05:00\")." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.type", - "type": "Array", - "tags": [], - "label": "type", - "description": [ - "\nThis is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy.\n`event.type` represents a categorization \"sub-bucket\" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization.\nThis field is an array. This will allow proper categorization of some events that fall in multiple event types." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EcsEvent.url", - "type": "string", - "tags": [], - "label": "url", - "description": [ - "\nURL linking to an external system to continue investigation of this event.\nThis URL links to another system where in-depth investigation of the specific occurrence of this event can take place. Alert events, indicated by `event.kind:alert`, are a common use case for this field." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-ecs/generated/event.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig", - "type": "Interface", - "tags": [], - "label": "ElasticsearchClientConfig", - "description": [ - "\nConfiguration options to be used to create a {@link IClusterClient | cluster client}\n" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.customHeaders", - "type": "Object", - "tags": [], - "label": "customHeaders", - "description": [], - "signature": [ - "{ [x: string]: string; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.requestHeadersWhitelist", - "type": "Array", - "tags": [], - "label": "requestHeadersWhitelist", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.maxSockets", - "type": "number", - "tags": [], - "label": "maxSockets", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.maxIdleSockets", - "type": "number", - "tags": [], - "label": "maxIdleSockets", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.idleSocketTimeout", - "type": "Object", - "tags": [], - "label": "idleSocketTimeout", - "description": [], - "signature": [ - "moment.Duration" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.compression", - "type": "boolean", - "tags": [], - "label": "compression", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.sniffOnStart", - "type": "boolean", - "tags": [], - "label": "sniffOnStart", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.sniffOnConnectionFault", - "type": "boolean", - "tags": [], - "label": "sniffOnConnectionFault", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.sniffInterval", - "type": "CompoundType", - "tags": [], - "label": "sniffInterval", - "description": [], - "signature": [ - "false | moment.Duration" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.username", - "type": "string", - "tags": [], - "label": "username", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.password", - "type": "string", - "tags": [], - "label": "password", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.serviceAccountToken", - "type": "string", - "tags": [], - "label": "serviceAccountToken", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.hosts", - "type": "Array", - "tags": [], - "label": "hosts", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.keepAlive", - "type": "CompoundType", - "tags": [], - "label": "keepAlive", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.pingTimeout", - "type": "CompoundType", - "tags": [], - "label": "pingTimeout", - "description": [], - "signature": [ - "number | moment.Duration | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.requestTimeout", - "type": "CompoundType", - "tags": [], - "label": "requestTimeout", - "description": [], - "signature": [ - "number | moment.Duration | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.caFingerprint", - "type": "string", - "tags": [], - "label": "caFingerprint", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientConfig.ssl", - "type": "Object", - "tags": [], - "label": "ssl", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchClientSslConfig", - "text": "ElasticsearchClientSslConfig" - }, - " | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientSslConfig", - "type": "Interface", - "tags": [], - "label": "ElasticsearchClientSslConfig", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientSslConfig.verificationMode", - "type": "CompoundType", - "tags": [], - "label": "verificationMode", - "description": [], - "signature": [ - "\"none\" | \"full\" | \"certificate\" | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientSslConfig.certificate", - "type": "string", - "tags": [], - "label": "certificate", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientSslConfig.certificateAuthorities", - "type": "Array", - "tags": [], - "label": "certificateAuthorities", - "description": [], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientSslConfig.key", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientSslConfig.keyPassphrase", - "type": "string", - "tags": [], - "label": "keyPassphrase", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClientSslConfig.alwaysPresentCertificate", - "type": "CompoundType", - "tags": [], - "label": "alwaysPresentCertificate", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchConfigPreboot", - "type": "Interface", - "tags": [], - "label": "ElasticsearchConfigPreboot", - "description": [ - "\nA limited set of Elasticsearch configuration entries exposed to the `preboot` plugins at `setup`.\n" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchConfigPreboot.hosts", - "type": "Array", - "tags": [], - "label": "hosts", - "description": [ - "\nHosts that the client will connect to. If sniffing is enabled, this list will\nbe used as seeds to discover the rest of your cluster." - ], - "signature": [ - "string[]" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchConfigPreboot.credentialsSpecified", - "type": "boolean", - "tags": [], - "label": "credentialsSpecified", - "description": [ - "\nIndicates whether Elasticsearch configuration includes credentials (`username`, `password` or `serviceAccountToken`)." - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchRequestHandlerContext", - "type": "Interface", - "tags": [], - "label": "ElasticsearchRequestHandlerContext", - "description": [ - "\nCore's `elasticsearch` request handler context." - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchRequestHandlerContext.client", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.IScopedClusterClient", - "text": "IScopedClusterClient" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServicePreboot", - "type": "Interface", - "tags": [], - "label": "ElasticsearchServicePreboot", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServicePreboot.config", - "type": "Object", - "tags": [], - "label": "config", - "description": [ - "\nA limited set of Elasticsearch configuration entries.\n" - ], - "signature": [ - "{ readonly hosts: string[]; readonly credentialsSpecified: boolean; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServicePreboot.createClient", - "type": "Function", - "tags": [], - "label": "createClient", - "description": [ - "\nCreate application specific Elasticsearch cluster API client with customized config. See {@link IClusterClient}.\n" - ], - "signature": [ - "(type: string, clientConfig?: Partial<", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchClientConfig", - "text": "ElasticsearchClientConfig" - }, - "> | undefined) => ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ICustomClusterClient", - "text": "ICustomClusterClient" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServicePreboot.createClient.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "Unique identifier of the client" - ], - "signature": [ - "string" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServicePreboot.createClient.$2", - "type": "Object", - "tags": [], - "label": "clientConfig", - "description": [ - "A config consists of Elasticsearch JS client options and\nvalid sub-set of Elasticsearch service config.\nWe fill all the missing properties in the `clientConfig` using the default\nElasticsearch config so that we don't depend on default values set and\ncontrolled by underlying Elasticsearch JS client.\nWe don't run validation against the passed config and expect it to be valid." - ], - "signature": [ - "Partial<", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchClientConfig", - "text": "ElasticsearchClientConfig" - }, - "> | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceSetup", - "type": "Interface", - "tags": [], - "label": "ElasticsearchServiceSetup", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceSetup.setUnauthorizedErrorHandler", - "type": "Function", - "tags": [], - "label": "setUnauthorizedErrorHandler", - "description": [ - "\nRegister a handler that will be called when unauthorized (401) errors are returned from any API\ncall to elasticsearch performed on behalf of a user via a {@link IScopedClusterClient | scoped cluster client}.\n" - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandler", - "text": "UnauthorizedErrorHandler" - }, - ") => void" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceSetup.setUnauthorizedErrorHandler.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandler", - "text": "UnauthorizedErrorHandler" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceSetup.legacy", - "type": "Object", - "tags": [ - "deprecated" - ], - "label": "legacy", - "description": [], - "signature": [ - "{ readonly config$: ", - "Observable", - "<", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.IElasticsearchConfig", - "text": "IElasticsearchConfig" - }, - ">; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-elasticsearch-server-internal", - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "console", - "path": "src/plugins/console/server/plugin.ts" - }, - { - "plugin": "@kbn/core-elasticsearch-server-internal", - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.ts" - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceStart", - "type": "Interface", - "tags": [], - "label": "ElasticsearchServiceStart", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceStart.client", - "type": "Object", - "tags": [], - "label": "client", - "description": [ - "\nA pre-configured {@link IClusterClient | Elasticsearch client}\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.IClusterClient", - "text": "IClusterClient" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceStart.createClient", - "type": "Function", - "tags": [], - "label": "createClient", - "description": [ - "\nCreate application specific Elasticsearch cluster API client with customized config. See {@link IClusterClient}.\n" - ], - "signature": [ - "(type: string, clientConfig?: Partial<", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchClientConfig", - "text": "ElasticsearchClientConfig" - }, - "> | undefined) => ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ICustomClusterClient", - "text": "ICustomClusterClient" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceStart.createClient.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "Unique identifier of the client" - ], - "signature": [ - "string" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchServiceStart.createClient.$2", - "type": "Object", - "tags": [], - "label": "clientConfig", - "description": [ - "A config consists of Elasticsearch JS client options and\nvalid sub-set of Elasticsearch service config.\nWe fill all the missing properties in the `clientConfig` using the default\nElasticsearch config so that we don't depend on default values set and\ncontrolled by underlying Elasticsearch JS client.\nWe don't run validation against the passed config and expect it to be valid." - ], - "signature": [ - "Partial<", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchClientConfig", - "text": "ElasticsearchClientConfig" - }, - "> | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.EncryptedObjectDescriptor", - "type": "Interface", - "tags": [], - "label": "EncryptedObjectDescriptor", - "description": [ - "\nThe EncryptedObjectDescriptor interface contains settings for describing\nan object to be encrypted or decrpyted." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.EncryptedObjectDescriptor.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The Saved Object type" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EncryptedObjectDescriptor.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The Saved Object ID" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EncryptedObjectDescriptor.namespace", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "Namespace for use in index migration...\nIf the object is being decrypted during index migration, the object was previously\nencrypted with its namespace in the descriptor portion of the AAD; on the other hand,\nif the object is being decrypted during object migration, the object was never encrypted\nwith its namespace in the descriptor portion of the AAD." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.EnforceAuthorizationParams", - "type": "Interface", - "tags": [], - "label": "EnforceAuthorizationParams", - "description": [ - "\nThe EnforceAuthorizationParams interface contains settings for\nenforcing a single action via the ISavedObjectsSecurityExtension." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.EnforceAuthorizationParams", - "text": "EnforceAuthorizationParams" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.EnforceAuthorizationParams.typesAndSpaces", - "type": "Object", - "tags": [], - "label": "typesAndSpaces", - "description": [ - "\nA map of types to spaces that will be affected by the action" - ], - "signature": [ - "Map>" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EnforceAuthorizationParams.action", - "type": "Uncategorized", - "tags": [], - "label": "action", - "description": [ - "\nThe relevant action (create, update, etc.)" - ], - "signature": [ - "A" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EnforceAuthorizationParams.typeMap", - "type": "Object", - "tags": [], - "label": "typeMap", - "description": [ - "\nThe authorization map from CheckAuthorizationResult: a\nmap of type to record of action/AuthorizationTypeEntry\n(spaces/globallyAuthz'd)" - ], - "signature": [ - "Map>" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EnforceAuthorizationParams.auditCallback", - "type": "Function", - "tags": [], - "label": "auditCallback", - "description": [ - "\nA callback intended to handle adding audit events in\nboth error (unauthorized), or success (authorized)\ncases" - ], - "signature": [ - "((error?: Error | undefined) => void) | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.EnforceAuthorizationParams.auditCallback.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.EnvironmentMode", - "type": "Interface", - "tags": [], - "label": "EnvironmentMode", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.EnvironmentMode.name", - "type": "CompoundType", - "tags": [], - "label": "name", - "description": [], - "signature": [ - "\"production\" | \"development\"" - ], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EnvironmentMode.dev", - "type": "boolean", - "tags": [], - "label": "dev", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EnvironmentMode.prod", - "type": "boolean", - "tags": [], - "label": "prod", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ErrorHttpResponseOptions", - "type": "Interface", - "tags": [], - "label": "ErrorHttpResponseOptions", - "description": [ - "\nHTTP response parameters" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ErrorHttpResponseOptions.body", - "type": "CompoundType", - "tags": [], - "label": "body", - "description": [ - "HTTP message to send to the client" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseError", - "text": "ResponseError" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ErrorHttpResponseOptions.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "HTTP Headers with additional information about response" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.Event", - "type": "Interface", - "tags": [], - "label": "Event", - "description": [ - "\nDefinition of the full event structure" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - "" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Event.timestamp", - "type": "string", - "tags": [], - "label": "timestamp", - "description": [ - "\nThe time the event was generated in ISO format." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.Event.event_type", - "type": "string", - "tags": [], - "label": "event_type", - "description": [ - "\nThe event type." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.Event.properties", - "type": "Uncategorized", - "tags": [], - "label": "properties", - "description": [ - "\nThe specific properties of the event type." - ], - "signature": [ - "Properties" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.Event.context", - "type": "Object", - "tags": [], - "label": "context", - "description": [ - "\nThe {@link EventContext} enriched during the processing pipeline." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - } - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext", - "type": "Interface", - "tags": [], - "label": "EventContext", - "description": [ - "\nDefinition of the context that can be appended to the events through the {@link IAnalyticsClient.registerContextProvider}." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.EventContext.cluster_uuid", - "type": "string", - "tags": [], - "label": "cluster_uuid", - "description": [ - "\nThe UUID of the cluster" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.cluster_name", - "type": "string", - "tags": [], - "label": "cluster_name", - "description": [ - "\nThe name of the cluster." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.license_id", - "type": "string", - "tags": [], - "label": "license_id", - "description": [ - "\nThe license ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.userId", - "type": "string", - "tags": [], - "label": "userId", - "description": [ - "\nThe unique user ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.cloudId", - "type": "string", - "tags": [], - "label": "cloudId", - "description": [ - "\nThe Cloud ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.isElasticCloudUser", - "type": "CompoundType", - "tags": [], - "label": "isElasticCloudUser", - "description": [ - "\n`true` if the user is logged in via the Elastic Cloud authentication provider." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "\nThe product's version." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.pageName", - "type": "string", - "tags": [], - "label": "pageName", - "description": [ - "\nThe name of the current page." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.applicationId", - "type": "string", - "tags": [], - "label": "applicationId", - "description": [ - "\nThe current application ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.entityId", - "type": "string", - "tags": [], - "label": "entityId", - "description": [ - "\nThe current entity ID (dashboard ID, visualization ID, etc.)." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventContext.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[key: string]: unknown", - "description": [ - "\nAdditional keys are allowed." - ], - "signature": [ - "[key: string]: unknown" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventTypeOpts", - "type": "Interface", - "tags": [], - "label": "EventTypeOpts", - "description": [ - "\nDefinition of an Event Type." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.EventTypeOpts.eventType", - "type": "string", - "tags": [], - "label": "eventType", - "description": [ - "\nThe event type's unique name." - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventTypeOpts.schema", - "type": "Object", - "tags": [], - "label": "schema", - "description": [ - "\nSchema declaring and documenting the expected structure of this event type.\n" - ], - "signature": [ - "{ [Key in keyof Required]: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.SchemaValue", - "text": "SchemaValue" - }, - "; }" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ExecutionContextSetup", - "type": "Interface", - "tags": [], - "label": "ExecutionContextSetup", - "description": [], - "path": "packages/core/execution-context/core-execution-context-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ExecutionContextSetup.withContext", - "type": "Function", - "tags": [], - "label": "withContext", - "description": [ - "\nKeeps track of execution context while the passed function is executed.\nData are carried over all async operations spawned by the passed function.\nThe nested calls stack the registered context on top of each other." - ], - "signature": [ - "(context: ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined, fn: (...args: any[]) => R) => R" - ], - "path": "packages/core/execution-context/core-execution-context-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ExecutionContextSetup.withContext.$1", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined" - ], - "path": "packages/core/execution-context/core-execution-context-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.ExecutionContextSetup.withContext.$2", - "type": "Function", - "tags": [], - "label": "fn", - "description": [], - "signature": [ - "(...args: any[]) => R" - ], - "path": "packages/core/execution-context/core-execution-context-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ExecutionContextSetup.getAsLabels", - "type": "Function", - "tags": [], - "label": "getAsLabels", - "description": [], - "signature": [ - "() => ", - "Labels" - ], - "path": "packages/core/execution-context/core-execution-context-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.FakeRawRequest", - "type": "Interface", - "tags": [], - "label": "FakeRawRequest", - "description": [ - "\nRepresents a fake raw request.\nCan be used to instantiate a `KibanaRequest`." - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.FakeRawRequest.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "The headers associated with the request." - ], - "signature": [ - "{ accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; date?: string | string[] | undefined; etag?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; from?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; location?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; range?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; warning?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.FakeRawRequest.path", - "type": "string", - "tags": [], - "label": "path", - "description": [ - "The path of the request" - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.FakeRawRequest.method", - "type": "string", - "tags": [], - "label": "method", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.FakeRawRequest.url", - "type": "Object", - "tags": [], - "label": "url", - "description": [], - "signature": [ - "URL", - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.FakeRawRequest.app", - "type": "Object", - "tags": [], - "label": "app", - "description": [], - "signature": [ - "Record | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.FakeRawRequest.auth", - "type": "Object", - "tags": [], - "label": "auth", - "description": [], - "signature": [ - "{ isAuthenticated?: boolean | undefined; } | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.FakeRawRequest.route", - "type": "Object", - "tags": [], - "label": "route", - "description": [], - "signature": [ - "{ settings?: { tags?: string[] | undefined; app?: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRouteOptions", - "text": "KibanaRouteOptions" - }, - " | undefined; payload?: ", - "RouteOptionsPayload", - " | undefined; } | undefined; } | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.FakeRequest", - "type": "Interface", - "tags": [], - "label": "FakeRequest", - "description": [ - "\nFake request object created manually by Kibana plugins." - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/scopeable_request.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.FakeRequest.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "Headers used for authentication against Elasticsearch" - ], - "signature": [ - "{ accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; date?: string | string[] | undefined; etag?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; from?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; location?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; range?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; warning?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/scopeable_request.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.GetDeprecationsContext", - "type": "Interface", - "tags": [], - "label": "GetDeprecationsContext", - "description": [], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.GetDeprecationsContext.esClient", - "type": "Object", - "tags": [], - "label": "esClient", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.IScopedClusterClient", - "text": "IScopedClusterClient" - } - ], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.GetDeprecationsContext.savedObjectsClient", - "type": "Object", - "tags": [], - "label": "savedObjectsClient", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpAuth", - "type": "Interface", - "tags": [], - "label": "HttpAuth", - "description": [], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpAuth.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nGets authentication state for a request. Returned by `auth` interceptor.\n{@link GetAuthState}" - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ") => { status: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthStatus", - "text": "AuthStatus" - }, - "; state: T; }" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpAuth.get.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/auth_state.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpAuth.isAuthenticated", - "type": "Function", - "tags": [], - "label": "isAuthenticated", - "description": [ - "\nReturns authentication status for a request.\n{@link IsAuthenticated}" - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ") => boolean" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpAuth.isAuthenticated.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/auth_state.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResources", - "type": "Interface", - "tags": [], - "label": "HttpResources", - "description": [ - "\nHttpResources service is responsible for serving static & dynamic assets for Kibana application via HTTP.\nProvides API allowing plug-ins to respond with:\n- a pre-configured HTML page bootstrapping Kibana client app\n- custom HTML page\n- custom JS script file." - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResources.register", - "type": "Function", - "tags": [], - "label": "register", - "description": [ - "To register a route handler executing passed function to form response." - ], - "signature": [ - "(route: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - ", handler: ", - { - "pluginId": "@kbn/core-http-resources-server", - "scope": "common", - "docId": "kibKbnCoreHttpResourcesServerPluginApi", - "section": "def-common.HttpResourcesRequestHandler", - "text": "HttpResourcesRequestHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResources.register.$1", - "type": "Object", - "tags": [], - "label": "route", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - "" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResources.register.$2", - "type": "Function", - "tags": [], - "label": "handler", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-resources-server", - "scope": "common", - "docId": "kibKbnCoreHttpResourcesServerPluginApi", - "section": "def-common.HttpResourcesRequestHandler", - "text": "HttpResourcesRequestHandler" - }, - "" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesRenderOptions", - "type": "Interface", - "tags": [], - "label": "HttpResourcesRenderOptions", - "description": [ - "\nAllows to configure HTTP response parameters" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesRenderOptions.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "\nHTTP Headers with additional information about response." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit", - "type": "Interface", - "tags": [], - "label": "HttpResourcesServiceToolkit", - "description": [ - "\nExtended set of {@link KibanaResponseFactory} helpers used to respond with HTML or JS resource." - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderCoreApp", - "type": "Function", - "tags": [], - "label": "renderCoreApp", - "description": [ - "To respond with HTML page bootstrapping Kibana application." - ], - "signature": [ - "(options?: ", - { - "pluginId": "@kbn/core-http-resources-server", - "scope": "common", - "docId": "kibKbnCoreHttpResourcesServerPluginApi", - "section": "def-common.HttpResourcesRenderOptions", - "text": "HttpResourcesRenderOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderCoreApp.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-resources-server", - "scope": "common", - "docId": "kibKbnCoreHttpResourcesServerPluginApi", - "section": "def-common.HttpResourcesRenderOptions", - "text": "HttpResourcesRenderOptions" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderAnonymousCoreApp", - "type": "Function", - "tags": [], - "label": "renderAnonymousCoreApp", - "description": [ - "To respond with HTML page bootstrapping Kibana application without retrieving user-specific information." - ], - "signature": [ - "(options?: ", - { - "pluginId": "@kbn/core-http-resources-server", - "scope": "common", - "docId": "kibKbnCoreHttpResourcesServerPluginApi", - "section": "def-common.HttpResourcesRenderOptions", - "text": "HttpResourcesRenderOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderAnonymousCoreApp.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-resources-server", - "scope": "common", - "docId": "kibKbnCoreHttpResourcesServerPluginApi", - "section": "def-common.HttpResourcesRenderOptions", - "text": "HttpResourcesRenderOptions" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderHtml", - "type": "Function", - "tags": [], - "label": "renderHtml", - "description": [ - "To respond with a custom HTML page." - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - "" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderHtml.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - } - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderJs", - "type": "Function", - "tags": [], - "label": "renderJs", - "description": [ - "To respond with a custom JS script file." - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - "" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderJs.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - } - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderCss", - "type": "Function", - "tags": [], - "label": "renderCss", - "description": [ - "To respond with a custom CSS script file." - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - "" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesServiceToolkit.renderCss.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - } - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResponseOptions", - "type": "Interface", - "tags": [], - "label": "HttpResponseOptions", - "description": [ - "\nHTTP response parameters" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResponseOptions.body", - "type": "CompoundType", - "tags": [], - "label": "body", - "description": [ - "HTTP message to send to the client" - ], - "signature": [ - "string | Record | ", - "Stream", - " | Buffer | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResponseOptions.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "HTTP Headers with additional information about response" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResponseOptions.bypassErrorFormat", - "type": "CompoundType", - "tags": [], - "label": "bypassErrorFormat", - "description": [ - "Bypass the default error formatting" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServerInfo", - "type": "Interface", - "tags": [], - "label": "HttpServerInfo", - "description": [ - "\nInformation about what hostname, port, and protocol the server process is\nrunning on. Note that this may not match the URL that end-users access\nKibana at. For the public URL, see {@link BasePath.publicBaseUrl}." - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServerInfo.name", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "The name of the Kibana server" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServerInfo.hostname", - "type": "string", - "tags": [], - "label": "hostname", - "description": [ - "The hostname of the server" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServerInfo.port", - "type": "number", - "tags": [], - "label": "port", - "description": [ - "The port the server is listening on" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServerInfo.protocol", - "type": "CompoundType", - "tags": [], - "label": "protocol", - "description": [ - "The protocol used by the server" - ], - "signature": [ - "\"http\" | \"https\" | \"socket\"" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServicePreboot", - "type": "Interface", - "tags": [], - "label": "HttpServicePreboot", - "description": [ - "\nKibana HTTP Service provides an abstraction to work with the HTTP stack at the `preboot` stage. This functionality\nallows Kibana to serve user requests even before Kibana becomes fully operational. Only Core and `preboot` plugins\ncan define HTTP routes at this stage.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServicePreboot", - "text": "HttpServicePreboot" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServicePreboot.registerRoutes", - "type": "Function", - "tags": [], - "label": "registerRoutes", - "description": [ - "\nProvides ability to acquire `preboot` {@link IRouter} instance for a particular top-level path and register handler\nfunctions for any number of nested routes.\n" - ], - "signature": [ - "(path: string, callback: (router: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IRouter", - "text": "IRouter" - }, - ") => void) => void" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServicePreboot.registerRoutes.$1", - "type": "string", - "tags": [], - "label": "path", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServicePreboot.registerRoutes.$2", - "type": "Function", - "tags": [], - "label": "callback", - "description": [], - "signature": [ - "(router: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IRouter", - "text": "IRouter" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServicePreboot.basePath", - "type": "Object", - "tags": [], - "label": "basePath", - "description": [ - "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IBasePath", - "text": "IBasePath" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServicePreboot.getServerInfo", - "type": "Function", - "tags": [], - "label": "getServerInfo", - "description": [ - "\nProvides common {@link HttpServerInfo | information} about the running preboot http server." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServerInfo", - "text": "HttpServerInfo" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup", - "type": "Interface", - "tags": [], - "label": "HttpServiceSetup", - "description": [ - "\nKibana HTTP Service provides own abstraction for work with HTTP stack.\nPlugins don't have direct access to `hapi` server and its primitives anymore. Moreover,\nplugins shouldn't rely on the fact that HTTP Service uses one or another library under the hood.\nThis gives the platform flexibility to upgrade or changing our internal HTTP stack without breaking plugins.\nIf the HTTP Service lacks functionality you need, we are happy to discuss and support your needs.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServiceSetup", - "text": "HttpServiceSetup" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.createCookieSessionStorageFactory", - "type": "Function", - "tags": [], - "label": "createCookieSessionStorageFactory", - "description": [ - "\nCreates cookie based session storage factory {@link SessionStorageFactory}" - ], - "signature": [ - "(cookieOptions: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SessionStorageCookieOptions", - "text": "SessionStorageCookieOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SessionStorageFactory", - "text": "SessionStorageFactory" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.createCookieSessionStorageFactory.$1", - "type": "Object", - "tags": [], - "label": "cookieOptions", - "description": [ - "{@link SessionStorageCookieOptions } - options to configure created cookie session storage." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SessionStorageCookieOptions", - "text": "SessionStorageCookieOptions" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerOnPreRouting", - "type": "Function", - "tags": [], - "label": "registerOnPreRouting", - "description": [ - "\nTo define custom logic to perform for incoming requests before server performs a route lookup.\n" - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreRoutingHandler", - "text": "OnPreRoutingHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerOnPreRouting.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link OnPreRoutingHandler } - function to call." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreRoutingHandler", - "text": "OnPreRoutingHandler" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerOnPreAuth", - "type": "Function", - "tags": [], - "label": "registerOnPreAuth", - "description": [ - "\nTo define custom logic to perform for incoming requests before\nthe Auth interceptor performs a check that user has access to requested resources.\n" - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreAuthHandler", - "text": "OnPreAuthHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerOnPreAuth.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link OnPreRoutingHandler } - function to call." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreAuthHandler", - "text": "OnPreAuthHandler" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerAuth", - "type": "Function", - "tags": [], - "label": "registerAuth", - "description": [ - "\nTo define custom authentication and/or authorization mechanism for incoming requests.\n" - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthenticationHandler", - "text": "AuthenticationHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerAuth.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link AuthenticationHandler } - function to perform authentication." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthenticationHandler", - "text": "AuthenticationHandler" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerOnPostAuth", - "type": "Function", - "tags": [], - "label": "registerOnPostAuth", - "description": [ - "\nTo define custom logic after Auth interceptor did make sure a user has access to the requested resource.\n" - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPostAuthHandler", - "text": "OnPostAuthHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerOnPostAuth.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link OnPostAuthHandler } - function to call." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPostAuthHandler", - "text": "OnPostAuthHandler" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerOnPreResponse", - "type": "Function", - "tags": [], - "label": "registerOnPreResponse", - "description": [ - "\nTo define custom logic to perform for the server response.\n" - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseHandler", - "text": "OnPreResponseHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerOnPreResponse.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link OnPreResponseHandler } - function to call." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseHandler", - "text": "OnPreResponseHandler" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.basePath", - "type": "Object", - "tags": [], - "label": "basePath", - "description": [ - "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IBasePath", - "text": "IBasePath" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.csp", - "type": "Object", - "tags": [], - "label": "csp", - "description": [ - "\nThe CSP config used for Kibana." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ICspConfig", - "text": "ICspConfig" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.createRouter", - "type": "Function", - "tags": [], - "label": "createRouter", - "description": [ - "\nProvides ability to declare a handler function for a particular path and HTTP request method.\n" - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IRouter", - "text": "IRouter" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerRouteHandlerContext", - "type": "Function", - "tags": [], - "label": "registerRouteHandlerContext", - "description": [ - "\nRegister a context provider for a route handler." - ], - "signature": [ - ">(contextName: ContextName, provider: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IContextProvider", - "text": "IContextProvider" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IContextContainer", - "text": "IContextContainer" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerRouteHandlerContext.$1", - "type": "Uncategorized", - "tags": [], - "label": "contextName", - "description": [], - "signature": [ - "ContextName" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.registerRouteHandlerContext.$2", - "type": "Function", - "tags": [], - "label": "provider", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IContextProvider", - "text": "IContextProvider" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceSetup.getServerInfo", - "type": "Function", - "tags": [], - "label": "getServerInfo", - "description": [ - "\nProvides common {@link HttpServerInfo | information} about the running http server." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServerInfo", - "text": "HttpServerInfo" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceStart", - "type": "Interface", - "tags": [], - "label": "HttpServiceStart", - "description": [], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpServiceStart.basePath", - "type": "Object", - "tags": [], - "label": "basePath", - "description": [ - "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IBasePath", - "text": "IBasePath" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceStart.auth", - "type": "Object", - "tags": [], - "label": "auth", - "description": [ - "\nAuth status.\nSee {@link HttpAuth}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpAuth", - "text": "HttpAuth" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpServiceStart.getServerInfo", - "type": "Function", - "tags": [], - "label": "getServerInfo", - "description": [ - "\nProvides common {@link HttpServerInfo | information} about the running http server." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServerInfo", - "text": "HttpServerInfo" - } - ], - "path": "packages/core/http/core-http-server/src/http_contract.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.I18nServiceSetup", - "type": "Interface", - "tags": [], - "label": "I18nServiceSetup", - "description": [], - "path": "packages/core/i18n/core-i18n-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.I18nServiceSetup.getLocale", - "type": "Function", - "tags": [], - "label": "getLocale", - "description": [ - "\nReturn the locale currently in use." - ], - "signature": [ - "() => string" - ], - "path": "packages/core/i18n/core-i18n-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.I18nServiceSetup.getTranslationFiles", - "type": "Function", - "tags": [], - "label": "getTranslationFiles", - "description": [ - "\nReturn the absolute paths to translation files currently in use." - ], - "signature": [ - "() => string[]" - ], - "path": "packages/core/i18n/core-i18n-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient", - "type": "Interface", - "tags": [], - "label": "IAnalyticsClient", - "description": [ - "\nAnalytics client's public APIs" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.reportEvent", - "type": "Function", - "tags": [ - "track-adoption" - ], - "label": "reportEvent", - "description": [ - "\nReports a telemetry event." - ], - "signature": [ - "(eventType: string, eventData: EventTypeData) => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": true, - "references": [ - { - "plugin": "@kbn/ebt-tools", - "path": "packages/kbn-ebt-tools/src/performance_metric_events/helpers.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-root-server-internal", - "path": "packages/core/root/core-root-server-internal/src/server.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/server/analytics/analytics_service.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/analytics/types.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/analytics/analytics_service.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/server/services/telemetry/fleet_usage_sender.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/server/services/telemetry/fleet_usage_sender.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-mocks", - "path": "packages/core/analytics/core-analytics-browser-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-mocks", - "path": "packages/core/analytics/core-analytics-browser-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/services/analytics/analytics.stub.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-root-browser-internal", - "path": "packages/core/root/core-root-browser-internal/src/core_system.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/server/analytics/analytics_service.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/server/analytics/analytics_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.test.mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_clicks.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.test.mocks.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.reportEvent.$1", - "type": "string", - "tags": [], - "label": "eventType", - "description": [ - "The event type registered via the `registerEventType` API." - ], - "signature": [ - "string" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.reportEvent.$2", - "type": "Uncategorized", - "tags": [], - "label": "eventData", - "description": [ - "The properties matching the schema declared in the `registerEventType` API." - ], - "signature": [ - "EventTypeData" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.registerEventType", - "type": "Function", - "tags": [], - "label": "registerEventType", - "description": [ - "\nRegisters the event type that will be emitted via the reportEvent API." - ], - "signature": [ - "(eventTypeOps: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - ") => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.registerEventType.$1", - "type": "Object", - "tags": [], - "label": "eventTypeOps", - "description": [ - "The definition of the event type {@link EventTypeOpts }." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.registerShipper", - "type": "Function", - "tags": [], - "label": "registerShipper", - "description": [ - "\nSet up the shipper that will be used to report the telemetry events." - ], - "signature": [ - "(Shipper: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - ", shipperConfig: ShipperConfig, opts?: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined) => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.registerShipper.$1", - "type": "Object", - "tags": [], - "label": "Shipper", - "description": [ - "The {@link IShipper } class to instantiate the shipper." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.registerShipper.$2", - "type": "Uncategorized", - "tags": [], - "label": "shipperConfig", - "description": [ - "The config specific to the Shipper to instantiate." - ], - "signature": [ - "ShipperConfig" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.registerShipper.$3", - "type": "Object", - "tags": [], - "label": "opts", - "description": [ - "Additional options to register the shipper {@link RegisterShipperOpts }." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.optIn", - "type": "Function", - "tags": [], - "label": "optIn", - "description": [ - "\nUsed to control the user's consent to report the data.\nIn the advanced mode, it allows to \"cherry-pick\" which events and shippers are enabled/disabled." - ], - "signature": [ - "(optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.optIn.$1", - "type": "Object", - "tags": [], - "label": "optInConfig", - "description": [ - "{@link OptInConfig }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - } - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.registerContextProvider", - "type": "Function", - "tags": [ - "track-adoption" - ], - "label": "registerContextProvider", - "description": [ - "\nRegisters the context provider to enrich any reported events." - ], - "signature": [ - "(contextProviderOpts: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - ") => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": true, - "references": [ - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-execution-context-browser-internal", - "path": "packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.ts" - }, - { - "plugin": "@kbn/core-elasticsearch-server-internal", - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/register_analytics_context_provider.ts" - }, - { - "plugin": "@kbn/core-environment-server-internal", - "path": "packages/core/environment/core-environment-server-internal/src/environment_service.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.ts" - }, - { - "plugin": "licensing", - "path": "x-pack/plugins/licensing/common/register_analytics_context_provider.ts" - }, - { - "plugin": "cloud", - "path": "x-pack/plugins/cloud/common/register_cloud_deployment_id_analytics_context.ts" - }, - { - "plugin": "telemetry", - "path": "src/plugins/telemetry/server/plugin.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.ts" - }, - { - "plugin": "telemetry", - "path": "src/plugins/telemetry/public/plugin.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/analytics_client.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-mocks", - "path": "packages/core/analytics/core-analytics-browser-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/analytics_service.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/analytics_service.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "security", - "path": "x-pack/plugins/security/public/analytics/register_user_context.test.ts" - }, - { - "plugin": "@kbn/core-execution-context-browser-internal", - "path": "packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.test.ts" - }, - { - "plugin": "@kbn/core-execution-context-browser-internal", - "path": "packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/core-analytics-server-mocks", - "path": "packages/core/analytics/core-analytics-server-mocks/src/analytics_service.mock.ts" - }, - { - "plugin": "@kbn/core-elasticsearch-server-internal", - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/register_analytics_context_provider.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/core-status-server-internal", - "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" - }, - { - "plugin": "@kbn/analytics-client", - "path": "packages/analytics/client/src/analytics_client/mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.test.mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/analytics_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-browser-internal", - "path": "packages/core/analytics/core-analytics-browser-internal/src/track_viewport_size.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.test.mocks.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.test.ts" - }, - { - "plugin": "@kbn/core-analytics-server-internal", - "path": "packages/core/analytics/core-analytics-server-internal/src/analytics_service.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.registerContextProvider.$1", - "type": "Object", - "tags": [], - "label": "contextProviderOpts", - "description": [ - "{@link ContextProviderOpts }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.removeContextProvider", - "type": "Function", - "tags": [], - "label": "removeContextProvider", - "description": [ - "\nRemoves the context provider and stop enriching the events from its context." - ], - "signature": [ - "(contextProviderName: string) => void" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.removeContextProvider.$1", - "type": "string", - "tags": [], - "label": "contextProviderName", - "description": [ - "The name of the context provider to remove." - ], - "signature": [ - "string" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.telemetryCounter$", - "type": "Object", - "tags": [], - "label": "telemetryCounter$", - "description": [ - "\nObservable to emit the stats of the processed events." - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.flush", - "type": "Function", - "tags": [], - "label": "flush", - "description": [ - "\nForces all shippers to send all their enqueued events and fulfills the returned promise." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IAnalyticsClient.shutdown", - "type": "Function", - "tags": [], - "label": "shutdown", - "description": [ - "\nStops the client. Flushing any pending events in the process." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IBasePath", - "type": "Interface", - "tags": [], - "label": "IBasePath", - "description": [ - "\nAccess or manipulate the Kibana base path\n" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IBasePath.serverBasePath", - "type": "string", - "tags": [], - "label": "serverBasePath", - "description": [ - "\nreturns the server's basePath.\n\nSee {@link IBasePath.get} for getting the basePath value for a specific request" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IBasePath.publicBaseUrl", - "type": "string", - "tags": [], - "label": "publicBaseUrl", - "description": [ - "\nThe server's publicly exposed base URL, if configured. Includes protocol, host, port (optional) and the\n{@link IBasePath.serverBasePath}.\n" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IBasePath.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nreturns `basePath` value, specific for an incoming request." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ") => string" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IBasePath.get.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IBasePath.set", - "type": "Function", - "tags": [], - "label": "set", - "description": [ - "\nsets `basePath` value, specific for an incoming request." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", requestSpecificBasePath: string) => void" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IBasePath.set.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.IBasePath.set.$2", - "type": "string", - "tags": [], - "label": "requestSpecificBasePath", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IBasePath.prepend", - "type": "Function", - "tags": [], - "label": "prepend", - "description": [ - "\nPrepends `path` with the basePath." - ], - "signature": [ - "(path: string) => string" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IBasePath.prepend.$1", - "type": "string", - "tags": [], - "label": "path", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IBasePath.remove", - "type": "Function", - "tags": [], - "label": "remove", - "description": [ - "\nRemoves the prepended basePath from the `path`." - ], - "signature": [ - "(path: string) => string" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IBasePath.remove.$1", - "type": "string", - "tags": [], - "label": "path", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-server/src/base_path.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IClusterClient", - "type": "Interface", - "tags": [], - "label": "IClusterClient", - "description": [ - "\nRepresents an Elasticsearch cluster API client created by the platform.\nIt allows to call API on behalf of the internal Kibana user and\nthe actual user that is derived from the request headers (via `asScoped(...)`).\n" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/cluster_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IClusterClient.asInternalUser", - "type": "Object", - "tags": [], - "label": "asInternalUser", - "description": [ - "\nA {@link ElasticsearchClient | client} to be used to query the ES cluster on behalf of the Kibana internal user" - ], - "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetResponse", - ">; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetResponse", - ", unknown>>; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetResponse", - ">; }; delete: { (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", - "default", - "; search: { >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchResponse", - ">; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchResponse", - ", unknown>>; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchResponse", - ">; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", - "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", - "default", - "; helpers: ", - "default", - "; child: (opts: ", - "ClientOptions", - ") => ", - "default", - "; autoscaling: ", - "default", - "; bulk: { (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "BulkResponse", - ">; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "BulkResponse", - ", unknown>>; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "BulkResponse", - ">; }; cat: ", - "default", - "; ccr: ", - "default", - "; clearScroll: { (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClearScrollResponse", - ">; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClearScrollResponse", - ", unknown>>; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClearScrollResponse", - ">; }; closePointInTime: { (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClosePointInTimeResponse", - ", unknown>>; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", - "default", - "; deleteByQuery: { (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "DeleteByQueryResponse", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; }; deleteByQueryRethrottle: { (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TasksTaskListResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; }; deleteScript: { (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; enrich: ", - "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; explain: { (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ExplainResponse", - ">; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ExplainResponse", - ", unknown>>; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ExplainResponse", - ">; }; features: ", - "default", - "; fieldCaps: { (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "FieldCapsResponse", - ">; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "FieldCapsResponse", - ", unknown>>; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "FieldCapsResponse", - ">; }; fleet: ", - "default", - "; getScript: { (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptResponse", - ">; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptResponse", - ", unknown>>; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptResponse", - ">; }; getScriptContext: { (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptContextResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; }; getScriptLanguages: { (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptLanguagesResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; }; getSource: { (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; graph: ", - "default", - "; ilm: ", - "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "InfoResponse", - ">; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "InfoResponse", - ", unknown>>; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "InfoResponse", - ">; }; ingest: ", - "default", - "; knnSearch: { (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "KnnSearchResponse", - ">; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "KnnSearchResponse", - ", unknown>>; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "KnnSearchResponse", - ">; }; license: ", - "default", - "; logstash: ", - "default", - "; mget: { (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MgetResponse", - ">; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MgetResponse", - ", unknown>>; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MgetResponse", - ">; }; migration: ", - "default", - "; ml: ", - "default", - "; msearch: { >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchResponse", - ">; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchResponse", - ", unknown>>; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchResponse", - ">; }; msearchTemplate: { >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchTemplateResponse", - ", unknown>>; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; }; mtermvectors: { (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MtermvectorsResponse", - ", unknown>>; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "OpenPointInTimeResponse", - ", unknown>>; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; rankEval: { (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RankEvalResponse", - ">; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RankEvalResponse", - ", unknown>>; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RankEvalResponse", - ">; }; reindex: { (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexResponse", - ">; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexResponse", - ", unknown>>; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexResponse", - ">; }; reindexRethrottle: { (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexRethrottleResponse", - ", unknown>>; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; }; renderSearchTemplate: { (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RenderSearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; }; rollup: ", - "default", - "; scriptsPainlessExecute: { (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScriptsPainlessExecuteResponse", - ", unknown>>; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; }; scroll: { >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScrollResponse", - ">; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScrollResponse", - ", unknown>>; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScrollResponse", - ">; }; searchMvt: { (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; searchShards: { (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchShardsResponse", - ">; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchShardsResponse", - ", unknown>>; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchShardsResponse", - ">; }; searchTemplate: { (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; }; searchableSnapshots: ", - "default", - "; shutdown: ", - "default", - "; slm: ", - "default", - "; snapshot: ", - "default", - "; sql: ", - "default", - "; ssl: ", - "default", - "; tasks: ", - "default", - "; termsEnum: { (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermsEnumResponse", - ">; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermsEnumResponse", - ", unknown>>; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermsEnumResponse", - ">; }; termvectors: { (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermvectorsResponse", - ">; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermvectorsResponse", - ", unknown>>; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermvectorsResponse", - ">; }; textStructure: ", - "default", - "; transform: ", - "default", - "; updateByQuery: { (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; }; updateByQueryRethrottle: { (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryRethrottleResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; }; watcher: ", - "default", - "; xpack: ", - "default", - "; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/cluster_client.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IClusterClient.asScoped", - "type": "Function", - "tags": [], - "label": "asScoped", - "description": [ - "\nCreates a {@link IScopedClusterClient | scoped cluster client} bound to given {@link ScopeableRequest | request}" - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ScopeableRequest", - "text": "ScopeableRequest" - }, - ") => ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.IScopedClusterClient", - "text": "IScopedClusterClient" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/cluster_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IClusterClient.asScoped.$1", - "type": "CompoundType", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ScopeableRequest", - "text": "ScopeableRequest" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/cluster_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IContextContainer", - "type": "Interface", - "tags": [], - "label": "IContextContainer", - "description": [ - "\nAn object that handles registration of context providers and configuring handlers with context.\n" - ], - "path": "packages/core/http/core-http-server/src/router/context_container.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IContextContainer.registerContext", - "type": "Function", - "tags": [], - "label": "registerContext", - "description": [ - "\nRegister a new context provider.\n" - ], - "signature": [ - "(pluginOpaqueId: symbol, contextName: ContextName, provider: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IContextProvider", - "text": "IContextProvider" - }, - ") => this" - ], - "path": "packages/core/http/core-http-server/src/router/context_container.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IContextContainer.registerContext.$1", - "type": "Uncategorized", - "tags": [], - "label": "pluginOpaqueId", - "description": [ - "- The plugin opaque ID for the plugin that registers this context." - ], - "signature": [ - "symbol" - ], - "path": "packages/core/http/core-http-server/src/router/context_container.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.IContextContainer.registerContext.$2", - "type": "Uncategorized", - "tags": [], - "label": "contextName", - "description": [ - "- The key of the `TContext` object this provider supplies the value for." - ], - "signature": [ - "ContextName" - ], - "path": "packages/core/http/core-http-server/src/router/context_container.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.IContextContainer.registerContext.$3", - "type": "Function", - "tags": [], - "label": "provider", - "description": [ - "- A {@link IContextProvider } to be called each time a new context is created." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IContextProvider", - "text": "IContextProvider" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/context_container.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "The {@link IContextContainer } for method chaining." - ] - }, - { - "parentPluginId": "core", - "id": "def-server.IContextContainer.createHandler", - "type": "Function", - "tags": [], - "label": "createHandler", - "description": [ - "\nCreate a new handler function pre-wired to context for the plugin.\n" - ], - "signature": [ - "(pluginOpaqueId: symbol, handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => (request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/context_container.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IContextContainer.createHandler.$1", - "type": "Uncategorized", - "tags": [], - "label": "pluginOpaqueId", - "description": [ - "- The plugin opaque ID for the plugin that registers this handler." - ], - "signature": [ - "symbol" - ], - "path": "packages/core/http/core-http-server/src/router/context_container.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.IContextContainer.createHandler.$2", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "- Handler function to pass context object to." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/context_container.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "A function that takes `RequestHandler` parameters, calls `handler` with a new context, and returns a Promise of\nthe `handler` return value." - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ICspConfig", - "type": "Interface", - "tags": [], - "label": "ICspConfig", - "description": [ - "\nCSP configuration for use in Kibana." - ], - "path": "packages/core/http/core-http-server/src/csp.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ICspConfig.strict", - "type": "boolean", - "tags": [], - "label": "strict", - "description": [ - "\nSpecify whether browsers that do not support CSP should be\nable to use Kibana. Use `true` to block and `false` to allow." - ], - "path": "packages/core/http/core-http-server/src/csp.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ICspConfig.warnLegacyBrowsers", - "type": "boolean", - "tags": [], - "label": "warnLegacyBrowsers", - "description": [ - "\nSpecify whether users with legacy browsers should be warned\nabout their lack of Kibana security compliance." - ], - "path": "packages/core/http/core-http-server/src/csp.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ICspConfig.disableEmbedding", - "type": "boolean", - "tags": [], - "label": "disableEmbedding", - "description": [ - "\nWhether or not embedding (using iframes) should be allowed by the CSP. If embedding is disabled, a restrictive 'frame-ancestors' rule will be added to the default CSP rules." - ], - "path": "packages/core/http/core-http-server/src/csp.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ICspConfig.header", - "type": "string", - "tags": [], - "label": "header", - "description": [ - "\nThe CSP rules in a formatted directives string for use\nin a `Content-Security-Policy` header." - ], - "path": "packages/core/http/core-http-server/src/csp.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ICustomClusterClient", - "type": "Interface", - "tags": [], - "label": "ICustomClusterClient", - "description": [ - "\nSee {@link IClusterClient}\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ICustomClusterClient", - "text": "ICustomClusterClient" - }, - " extends ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.IClusterClient", - "text": "IClusterClient" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/cluster_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ICustomClusterClient.close", - "type": "Function", - "tags": [], - "label": "close", - "description": [ - "\nCloses the cluster client. After that client cannot be used and one should\ncreate a new client instance to be able to interact with Elasticsearch API." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/cluster_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IEventLoopDelaysMonitor", - "type": "Interface", - "tags": [], - "label": "IEventLoopDelaysMonitor", - "description": [ - "\nCreating a new instance from EventLoopDelaysMonitor will\nautomatically start tracking event loop delays.\nSee {@link IntervalHistogram}" - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.IEventLoopDelaysMonitor", - "text": "IEventLoopDelaysMonitor" - }, - "" - ], - "path": "packages/core/metrics/core-metrics-server/src/collectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IEventLoopDelaysMonitor.collect", - "type": "Function", - "tags": [], - "label": "collect", - "description": [ - "\nCollect gathers event loop delays metrics from nodejs perf_hooks.monitorEventLoopDelay\nthe histogram calculations start from the last time `reset` was called or this\nEventLoopDelaysMonitor instance was created.\n\nReturns metrics in milliseconds." - ], - "signature": [ - "() => T" - ], - "path": "packages/core/metrics/core-metrics-server/src/collectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IEventLoopDelaysMonitor.reset", - "type": "Function", - "tags": [], - "label": "reset", - "description": [ - "\nResets the collected histogram data." - ], - "signature": [ - "() => void" - ], - "path": "packages/core/metrics/core-metrics-server/src/collectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IEventLoopDelaysMonitor.stop", - "type": "Function", - "tags": [], - "label": "stop", - "description": [ - "\nDisables updating the interval timer for collecting new data points." - ], - "signature": [ - "() => void" - ], - "path": "packages/core/metrics/core-metrics-server/src/collectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IExecutionContextContainer", - "type": "Interface", - "tags": [], - "label": "IExecutionContextContainer", - "description": [], - "path": "packages/core/execution-context/core-execution-context-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IExecutionContextContainer.toString", - "type": "Function", - "tags": [], - "label": "toString", - "description": [], - "signature": [ - "() => string" - ], - "path": "packages/core/execution-context/core-execution-context-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IExecutionContextContainer.toJSON", - "type": "Function", - "tags": [], - "label": "toJSON", - "description": [], - "signature": [ - "() => Readonly<", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - ">" - ], - "path": "packages/core/execution-context/core-execution-context-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IExternalUrlConfig", - "type": "Interface", - "tags": [], - "label": "IExternalUrlConfig", - "description": [ - "\nExternal Url configuration for use in Kibana." - ], - "path": "packages/core/http/core-http-server/src/external_url.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IExternalUrlConfig.policy", - "type": "Array", - "tags": [], - "label": "policy", - "description": [ - "\nA set of policies describing which external urls are allowed." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-common", - "scope": "common", - "docId": "kibKbnCoreHttpCommonPluginApi", - "section": "def-common.IExternalUrlPolicy", - "text": "IExternalUrlPolicy" - }, - "[]" - ], - "path": "packages/core/http/core-http-server/src/external_url.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IExternalUrlPolicy", - "type": "Interface", - "tags": [], - "label": "IExternalUrlPolicy", - "description": [ - "\nA policy describing whether access to an external destination is allowed." - ], - "path": "packages/core/http/core-http-common/src/external_url_policy.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IExternalUrlPolicy.allow", - "type": "boolean", - "tags": [], - "label": "allow", - "description": [ - "\nIndicates if this policy allows or denies access to the described destination." - ], - "path": "packages/core/http/core-http-common/src/external_url_policy.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IExternalUrlPolicy.host", - "type": "string", - "tags": [], - "label": "host", - "description": [ - "\nOptional host describing the external destination.\nMay be combined with `protocol`.\n" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-common/src/external_url_policy.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IExternalUrlPolicy.protocol", - "type": "string", - "tags": [], - "label": "protocol", - "description": [ - "\nOptional protocol describing the external destination.\nMay be combined with `host`.\n" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-common/src/external_url_policy.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaResponse", - "type": "Interface", - "tags": [], - "label": "IKibanaResponse", - "description": [ - "\nA response data object, expected to returned as a result of {@link RequestHandler} execution" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IKibanaResponse.status", - "type": "number", - "tags": [], - "label": "status", - "description": [], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaResponse.payload", - "type": "Uncategorized", - "tags": [], - "label": "payload", - "description": [], - "signature": [ - "T | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaResponse.options", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - } - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket", - "type": "Interface", - "tags": [], - "label": "IKibanaSocket", - "description": [ - "\nA tiny abstraction for TCP socket." - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.getPeerCertificate", - "type": "Function", - "tags": [], - "label": "getPeerCertificate", - "description": [], - "signature": [ - "{ (detailed: true): ", - "DetailedPeerCertificate", - " | null; (detailed: false): ", - "PeerCertificate", - " | null; (detailed?: boolean | undefined): ", - "PeerCertificate", - " | ", - "DetailedPeerCertificate", - " | null; }" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.getPeerCertificate.$1", - "type": "boolean", - "tags": [], - "label": "detailed", - "description": [], - "signature": [ - "true" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.getPeerCertificate", - "type": "Function", - "tags": [], - "label": "getPeerCertificate", - "description": [], - "signature": [ - "{ (detailed: true): ", - "DetailedPeerCertificate", - " | null; (detailed: false): ", - "PeerCertificate", - " | null; (detailed?: boolean | undefined): ", - "PeerCertificate", - " | ", - "DetailedPeerCertificate", - " | null; }" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.getPeerCertificate.$1", - "type": "boolean", - "tags": [], - "label": "detailed", - "description": [], - "signature": [ - "false" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.getPeerCertificate", - "type": "Function", - "tags": [], - "label": "getPeerCertificate", - "description": [ - "\nReturns an object representing the peer's certificate.\nThe returned object has some properties corresponding to the field of the certificate.\nIf detailed argument is true the full chain with issuer property will be returned,\nif false only the top certificate without issuer property.\nIf the peer does not provide a certificate, it returns null." - ], - "signature": [ - "{ (detailed: true): ", - "DetailedPeerCertificate", - " | null; (detailed: false): ", - "PeerCertificate", - " | null; (detailed?: boolean | undefined): ", - "PeerCertificate", - " | ", - "DetailedPeerCertificate", - " | null; }" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.getPeerCertificate.$1", - "type": "CompoundType", - "tags": [], - "label": "detailed", - "description": [ - "- If true; the full chain with issuer property will be returned." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "An object representing the peer's certificate." - ] - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.getProtocol", - "type": "Function", - "tags": [], - "label": "getProtocol", - "description": [ - "\nReturns a string containing the negotiated SSL/TLS protocol version of the current connection. The value 'unknown' will be returned for\nconnected sockets that have not completed the handshaking process. The value null will be returned for server sockets or disconnected\nclient sockets. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_get_version.html for more information." - ], - "signature": [ - "() => string | null" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.renegotiate", - "type": "Function", - "tags": [], - "label": "renegotiate", - "description": [ - "\nRenegotiates a connection to obtain the peer's certificate. This cannot be used when the protocol version is TLSv1.3." - ], - "signature": [ - "(options: { rejectUnauthorized?: boolean | undefined; requestCert?: boolean | undefined; }) => Promise" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.renegotiate.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.renegotiate.$1.rejectUnauthorized", - "type": "CompoundType", - "tags": [], - "label": "rejectUnauthorized", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.renegotiate.$1.requestCert", - "type": "CompoundType", - "tags": [], - "label": "requestCert", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "returnComment": [ - "A Promise that will be resolved if renegotiation succeeded, or will be rejected if renegotiation failed." - ] - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.authorized", - "type": "CompoundType", - "tags": [], - "label": "authorized", - "description": [ - "\nIndicates whether or not the peer certificate was signed by one of the specified CAs. When TLS\nisn't used the value is `undefined`." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.authorizationError", - "type": "Object", - "tags": [], - "label": "authorizationError", - "description": [ - "\nThe reason why the peer's certificate has not been verified. This property becomes available\nonly when `authorized` is `false`." - ], - "signature": [ - "Error | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IKibanaSocket.remoteAddress", - "type": "string", - "tags": [], - "label": "remoteAddress", - "description": [ - "\nThe string representation of the remote IP address. For example,`'74.125.127.100'` or\n`'2001:4860:a005::68'`. Value may be `undefined` if the socket is destroyed (for example, if\nthe client disconnected)." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/socket.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram", - "type": "Interface", - "tags": [], - "label": "IntervalHistogram", - "description": [ - "\nan IntervalHistogram object that samples and reports the event loop delay over time.\nThe delays will be reported in milliseconds.\n" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram.fromTimestamp", - "type": "string", - "tags": [], - "label": "fromTimestamp", - "description": [], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram.lastUpdatedAt", - "type": "string", - "tags": [], - "label": "lastUpdatedAt", - "description": [], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram.min", - "type": "number", - "tags": [], - "label": "min", - "description": [], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram.max", - "type": "number", - "tags": [], - "label": "max", - "description": [], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram.mean", - "type": "number", - "tags": [], - "label": "mean", - "description": [], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram.exceeds", - "type": "number", - "tags": [], - "label": "exceeds", - "description": [], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram.stddev", - "type": "number", - "tags": [], - "label": "stddev", - "description": [], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IntervalHistogram.percentiles", - "type": "Object", - "tags": [], - "label": "percentiles", - "description": [], - "signature": [ - "{ 50: number; 75: number; 95: number; 99: number; }" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter", - "type": "Interface", - "tags": [], - "label": "IRouter", - "description": [ - "\nRegisters route handlers for specified resource path and method.\nSee {@link RouteConfig} and {@link RequestHandler} for more information about arguments to route registrations.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IRouter", - "text": "IRouter" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.routerPath", - "type": "string", - "tags": [], - "label": "routerPath", - "description": [ - "\nResulted path" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nRegister a route handler for `GET` request." - ], - "signature": [ - "(route: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - ", handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.get.$1", - "type": "Object", - "tags": [], - "label": "route", - "description": [ - "{@link RouteConfig } - a route configuration." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.get.$2", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link RequestHandler } - a function to call to respond to an incoming request" - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.get.$2.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.get.$2.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.get.$2.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.post", - "type": "Function", - "tags": [], - "label": "post", - "description": [ - "\nRegister a route handler for `POST` request." - ], - "signature": [ - "(route: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - ", handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.post.$1", - "type": "Object", - "tags": [], - "label": "route", - "description": [ - "{@link RouteConfig } - a route configuration." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.post.$2", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link RequestHandler } - a function to call to respond to an incoming request" - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.post.$2.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.post.$2.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.post.$2.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.put", - "type": "Function", - "tags": [], - "label": "put", - "description": [ - "\nRegister a route handler for `PUT` request." - ], - "signature": [ - "(route: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - ", handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.put.$1", - "type": "Object", - "tags": [], - "label": "route", - "description": [ - "{@link RouteConfig } - a route configuration." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.put.$2", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link RequestHandler } - a function to call to respond to an incoming request" - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.put.$2.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.put.$2.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.put.$2.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.patch", - "type": "Function", - "tags": [], - "label": "patch", - "description": [ - "\nRegister a route handler for `PATCH` request." - ], - "signature": [ - "(route: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - ", handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.patch.$1", - "type": "Object", - "tags": [], - "label": "route", - "description": [ - "{@link RouteConfig } - a route configuration." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.patch.$2", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link RequestHandler } - a function to call to respond to an incoming request" - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.patch.$2.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.patch.$2.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.patch.$2.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.delete", - "type": "Function", - "tags": [], - "label": "delete", - "description": [ - "\nRegister a route handler for `DELETE` request." - ], - "signature": [ - "(route: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - ", handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.delete.$1", - "type": "Object", - "tags": [], - "label": "route", - "description": [ - "{@link RouteConfig } - a route configuration." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.delete.$2", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link RequestHandler } - a function to call to respond to an incoming request" - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.delete.$2.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.delete.$2.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.delete.$2.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.handleLegacyErrors", - "type": "Function", - "tags": [], - "label": "handleLegacyErrors", - "description": [ - "\nWrap a router handler to catch and converts legacy boom errors to proper custom errors." - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.handleLegacyErrors.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [ - "{@link RequestHandler } - a route handler to wrap" - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ResponseFactory) => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRouter.handleLegacyErrors.$1.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.handleLegacyErrors.$1.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IRouter.handleLegacyErrors.$1.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension", - "type": "Interface", - "tags": [], - "label": "ISavedObjectsEncryptionExtension", - "description": [ - "\nThe ISavedObjectsEncryptionExtension interface defines the functions of a saved objects\nrepository encryption extension. It contains functions for determining if a type is\nencryptable, encrypting object attributes, and decrypting or stripping object attributes." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension.isEncryptableType", - "type": "Function", - "tags": [], - "label": "isEncryptableType", - "description": [ - "\nReturns true if a type has been registered as encryptable." - ], - "signature": [ - "(type: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension.isEncryptableType.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the string name of the object type" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "boolean, true if type is encryptable" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension.decryptOrStripResponseAttributes", - "type": "Function", - "tags": [], - "label": "decryptOrStripResponseAttributes", - "description": [ - "\nGiven a saved object, will return a decrypted saved object or will strip\nattributes from the returned object if decryption fails." - ], - "signature": [ - ">(response: R, originalAttributes?: T | undefined) => Promise" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension.decryptOrStripResponseAttributes.$1", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [ - "- any object R that extends SavedObject with attributes T" - ], - "signature": [ - "R" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension.decryptOrStripResponseAttributes.$2", - "type": "Uncategorized", - "tags": [], - "label": "originalAttributes", - "description": [ - "- optional, original attributes T from when the object was created (NOT encrypted).\nThese are used to avoid decryption execution cost if they are supplied." - ], - "signature": [ - "T | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "R with decrypted or stripped attributes" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension.encryptAttributes", - "type": "Function", - "tags": [], - "label": "encryptAttributes", - "description": [ - "\nGiven a saved object descriptor and some attributes, returns an encrypted version\nof supplied attributes." - ], - "signature": [ - ">(descriptor: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.EncryptedObjectDescriptor", - "text": "EncryptedObjectDescriptor" - }, - ", attributes: T) => Promise" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension.encryptAttributes.$1", - "type": "Object", - "tags": [], - "label": "descriptor", - "description": [ - "- an object containing a saved object id, type, and optional namespace." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.EncryptedObjectDescriptor", - "text": "EncryptedObjectDescriptor" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsEncryptionExtension.encryptAttributes.$2", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "- T, attributes of the specified object, some of which to be encrypted." - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/encryption.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "T, encrypted attributes" - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsExporter", - "type": "Interface", - "tags": [], - "label": "ISavedObjectsExporter", - "description": [ - "\nUtility class used to export savedObjects.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsExporter.exportByTypes", - "type": "Function", - "tags": [ - "throws" - ], - "label": "exportByTypes", - "description": [ - "\nGenerates an export stream for given types.\n\nSee the {@link SavedObjectsExportByTypeOptions | options} for more detailed information.\n" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportByTypeOptions", - "text": "SavedObjectsExportByTypeOptions" - }, - ") => Promise<", - "Readable", - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsExporter.exportByTypes.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportByTypeOptions", - "text": "SavedObjectsExportByTypeOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsExporter.exportByObjects", - "type": "Function", - "tags": [ - "throws" - ], - "label": "exportByObjects", - "description": [ - "\nGenerates an export stream for given object references.\n\nSee the {@link SavedObjectsExportByObjectOptions | options} for more detailed information.\n" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportByObjectOptions", - "text": "SavedObjectsExportByObjectOptions" - }, - ") => Promise<", - "Readable", - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsExporter.exportByObjects.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportByObjectOptions", - "text": "SavedObjectsExportByObjectOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsImporter", - "type": "Interface", - "tags": [], - "label": "ISavedObjectsImporter", - "description": [ - "\nUtility class used to import savedObjects.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsImporter.import", - "type": "Function", - "tags": [ - "throws" - ], - "label": "import", - "description": [ - "\nImport saved objects from given stream. See the {@link SavedObjectsImportOptions | options} for more\ndetailed information.\n" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsImportOptions", - "text": "SavedObjectsImportOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportResponse", - "text": "SavedObjectsImportResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsImporter.import.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsImportOptions", - "text": "SavedObjectsImportOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsImporter.resolveImportErrors", - "type": "Function", - "tags": [ - "throws" - ], - "label": "resolveImportErrors", - "description": [ - "\nResolve and return saved object import errors.\nSee the {@link SavedObjectsResolveImportErrorsOptions | options} for more detailed information.\n" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsResolveImportErrorsOptions", - "text": "SavedObjectsResolveImportErrorsOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportResponse", - "text": "SavedObjectsImportResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsImporter.resolveImportErrors.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsResolveImportErrorsOptions", - "text": "SavedObjectsResolveImportErrorsOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsPointInTimeFinder", - "type": "Interface", - "tags": [], - "label": "ISavedObjectsPointInTimeFinder", - "description": [ - "\nPoint-in-time finder\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsPointInTimeFinder", - "text": "ISavedObjectsPointInTimeFinder" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create_point_in_time_finder.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsPointInTimeFinder.find", - "type": "Function", - "tags": [], - "label": "find", - "description": [ - "\nAn async generator which wraps calls to `savedObjectsClient.find` and\niterates over multiple pages of results using `_pit` and `search_after`.\nThis will open a new Point-In-Time (PIT), and continue paging until a set\nof results is received that's smaller than the designated `perPage` size." - ], - "signature": [ - "() => AsyncGenerator<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - ", any, unknown>" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create_point_in_time_finder.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsPointInTimeFinder.close", - "type": "Function", - "tags": [], - "label": "close", - "description": [ - "\nCloses the Point-In-Time associated with this finder instance.\n\nOnce you have retrieved all of the results you need, it is recommended\nto call `close()` to clean up the PIT and prevent Elasticsearch from\nconsuming resources unnecessarily. This is only required if you are\ndone iterating and have not yet paged through all of the results: the\nPIT will automatically be closed for you once you reach the last page\nof results, or if the underlying call to `find` fails for any reason." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create_point_in_time_finder.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository", - "type": "Interface", - "tags": [], - "label": "ISavedObjectsRepository", - "description": [ - "\nThe savedObjects repository contract.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.create", - "type": "Function", - "tags": [ - "property", - "property", - "property", - "property", - "property" - ], - "label": "create", - "description": [ - "\nPersists an object\n" - ], - "signature": [ - "(type: string, attributes: T, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.create.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of object to create" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.create.$2", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "- the attributes for the object to be created" - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.create.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsCreateOptions } - options for the create operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the created saved object { id, type, version, attributes }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkCreate", - "type": "Function", - "tags": [ - "property", - "property" - ], - "label": "bulkCreate", - "description": [ - "\nCreates multiple documents at once\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResponse", - "text": "SavedObjectsBulkResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkCreate.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to create [{ type, attributes, ... }]" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkCreate.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsCreateOptions } - options for the bulk create operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- {saved_objects: [[{ id, type, version, references, attributes, error: { message } }]}" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.checkConflicts", - "type": "Function", - "tags": [], - "label": "checkConflicts", - "description": [ - "\nCheck what conflicts will result when creating a given array of saved objects. This includes \"unresolvable conflicts\", which are\nmulti-namespace objects that exist in a different namespace; such conflicts cannot be resolved/overwritten.\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsObject", - "text": "SavedObjectsCheckConflictsObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsResponse", - "text": "SavedObjectsCheckConflictsResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.checkConflicts.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to check for conflicts [{ id, type }]" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsObject", - "text": "SavedObjectsCheckConflictsObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.checkConflicts.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the check conflict operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- {errors: [{ id, type, error: { message } }]}" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.delete", - "type": "Function", - "tags": [ - "property" - ], - "label": "delete", - "description": [ - "\nDeletes an object\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - }, - " | undefined) => Promise<{}>" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.delete.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to delete" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.delete.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the id of the object to delete" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.delete.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsDeleteOptions } - options for the delete operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkDelete", - "type": "Function", - "tags": [], - "label": "bulkDelete", - "description": [ - "\nDeletes multiple documents at once" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteObject", - "text": "SavedObjectsBulkDeleteObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteResponse", - "text": "SavedObjectsBulkDeleteResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkDelete.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array of objects to delete (contains id and type)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteObject", - "text": "SavedObjectsBulkDeleteObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkDelete.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBulkDeleteOptions } - options for the bulk delete operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { statuses: [{ id, type, success, error: { message } }] }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.deleteByNamespace", - "type": "Function", - "tags": [], - "label": "deleteByNamespace", - "description": [ - "\nDeletes all objects from the provided namespace.\n" - ], - "signature": [ - "(namespace: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteByNamespaceOptions", - "text": "SavedObjectsDeleteByNamespaceOptions" - }, - " | undefined) => Promise" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.deleteByNamespace.$1", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "- the namespace in which to delete all objects" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.deleteByNamespace.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsDeleteByNamespaceOptions } - options for the delete by namespace operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteByNamespaceOptions", - "text": "SavedObjectsDeleteByNamespaceOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { took, timed_out, total, deleted, batches, version_conflicts, noops, retries, failures }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.find", - "type": "Function", - "tags": [ - "property", - "property", - "property", - "property", - "property", - "property", - "property", - "property", - "property", - "property", - "property", - "property", - "property", - "property" - ], - "label": "find", - "description": [ - "\nFind saved objects by query\n" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - }, - ", internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.find.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsFindOptions } - options for the find operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.find.$2", - "type": "Object", - "tags": [], - "label": "internalOptions", - "description": [ - "{@link SavedObjectsFindInternalOptions } - internal-only options for the find operation" - ], - "signature": [ - "SavedObjectsFindInternalOptions", - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { saved_objects: [{ id, type, version, attributes }], total, per_page, page }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkGet", - "type": "Function", - "tags": [ - "property" - ], - "label": "bulkGet", - "description": [ - "\nReturns an array of objects by id\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkGetObject", - "text": "SavedObjectsBulkGetObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResponse", - "text": "SavedObjectsBulkResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkGet.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array of objects containing id, type and optionally fields" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkGetObject", - "text": "SavedObjectsBulkGetObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkGet.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the bulk get operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { saved_objects: [{ id, type, version, attributes }] }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkResolve", - "type": "Function", - "tags": [ - "property" - ], - "label": "bulkResolve", - "description": [ - "\nResolves an array of objects by id, using any legacy URL aliases if they exist\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveObject", - "text": "SavedObjectsBulkResolveObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveResponse", - "text": "SavedObjectsBulkResolveResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkResolve.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array of objects containing id, type" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveObject", - "text": "SavedObjectsBulkResolveObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkResolve.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the bulk resolve operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { resolved_objects: [{ saved_object, outcome }] }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.get", - "type": "Function", - "tags": [ - "property" - ], - "label": "get", - "description": [ - "\nGets a single object\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.get.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to get" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.get.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the object to get" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.get.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the get operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { id, type, version, attributes }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.resolve", - "type": "Function", - "tags": [ - "property" - ], - "label": "resolve", - "description": [ - "\nResolves a single object, using any legacy URL alias if it exists\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsResolveResponse", - "text": "SavedObjectsResolveResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.resolve.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to resolve" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.resolve.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the id of the object to resolve" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.resolve.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the resolve operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { saved_object, outcome }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.update", - "type": "Function", - "tags": [ - "property", - "property", - "property" - ], - "label": "update", - "description": [ - "\nUpdates an object\n" - ], - "signature": [ - "(type: string, id: string, attributes: Partial, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.update.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to update" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.update.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the object to update" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.update.$3", - "type": "Object", - "tags": [], - "label": "attributes", - "description": [ - "- attributes to update" - ], - "signature": [ - "Partial" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.update.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsUpdateOptions } - options for the update operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- updated saved object" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.collectMultiNamespaceReferences", - "type": "Function", - "tags": [], - "label": "collectMultiNamespaceReferences", - "description": [ - "\nGets all references and transitive references of the given objects. Ignores any object and/or reference that is not a multi-namespace\ntype.\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesObject", - "text": "SavedObjectsCollectMultiNamespaceReferencesObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesOptions", - "text": "SavedObjectsCollectMultiNamespaceReferencesOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesResponse", - "text": "SavedObjectsCollectMultiNamespaceReferencesResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.collectMultiNamespaceReferences.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- The objects to get the references for (contains type and ID)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesObject", - "text": "SavedObjectsCollectMultiNamespaceReferencesObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.collectMultiNamespaceReferences.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsCollectMultiNamespaceReferencesOptions } - the options for the operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesOptions", - "text": "SavedObjectsCollectMultiNamespaceReferencesOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- {@link SavedObjectsCollectMultiNamespaceReferencesResponse } { objects: [{ type, id, spaces, inboundReferences, ... }] }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.updateObjectsSpaces", - "type": "Function", - "tags": [], - "label": "updateObjectsSpaces", - "description": [ - "\nUpdates one or more objects to add and/or remove them from specified spaces.\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesObject", - "text": "SavedObjectsUpdateObjectsSpacesObject" - }, - "[], spacesToAdd: string[], spacesToRemove: string[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesOptions", - "text": "SavedObjectsUpdateObjectsSpacesOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesResponse", - "text": "SavedObjectsUpdateObjectsSpacesResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.updateObjectsSpaces.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to update (contains type, ID, and optional parameters)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesObject", - "text": "SavedObjectsUpdateObjectsSpacesObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.updateObjectsSpaces.$2", - "type": "Array", - "tags": [], - "label": "spacesToAdd", - "description": [ - "- array of spaces in which the objects should be added" - ], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.updateObjectsSpaces.$3", - "type": "Array", - "tags": [], - "label": "spacesToRemove", - "description": [ - "- array of spaces from which the objects should be removed" - ], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.updateObjectsSpaces.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsUpdateObjectsSpacesOptions } - options for the operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesOptions", - "text": "SavedObjectsUpdateObjectsSpacesOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { objects: [{ id, type, spaces, error: { message } }] }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkUpdate", - "type": "Function", - "tags": [ - "property", - "property" - ], - "label": "bulkUpdate", - "description": [ - "\nUpdates multiple objects in bulk\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateOptions", - "text": "SavedObjectsBulkUpdateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateResponse", - "text": "SavedObjectsBulkUpdateResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkUpdate.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to update (contains type, id, attributes, options: { version, namespace } references)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.bulkUpdate.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBulkUpdateOptions } - options for the bulk update operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateOptions", - "text": "SavedObjectsBulkUpdateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- {saved_objects: [[{ id, type, version, references, attributes, error: { message } }]}" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.removeReferencesTo", - "type": "Function", - "tags": [], - "label": "removeReferencesTo", - "description": [ - "\nUpdates all objects containing a reference to the given {type, id} tuple to remove the said reference.\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToOptions", - "text": "SavedObjectsRemoveReferencesToOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToResponse", - "text": "SavedObjectsRemoveReferencesToResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.removeReferencesTo.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to remove references to" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.removeReferencesTo.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the object to remove references to" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.removeReferencesTo.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsRemoveReferencesToOptions } - options for the remove references operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToOptions", - "text": "SavedObjectsRemoveReferencesToOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { number - the number of objects that have been updated by this operation }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.incrementCounter", - "type": "Function", - "tags": [], - "label": "incrementCounter", - "description": [ - "\nIncrements all the specified counter fields (by one by default). Creates the document\nif one doesn't exist for the given id.\n" - ], - "signature": [ - "(type: string, id: string, counterFields: (string | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterField", - "text": "SavedObjectsIncrementCounterField" - }, - ")[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterOptions", - "text": "SavedObjectsIncrementCounterOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.incrementCounter.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- The type of saved object whose fields should be incremented" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.incrementCounter.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- The id of the document whose fields should be incremented" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.incrementCounter.$3", - "type": "Array", - "tags": [], - "label": "counterFields", - "description": [ - "- An array of field names to increment or an array of {@link SavedObjectsIncrementCounterField }" - ], - "signature": [ - "(string | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterField", - "text": "SavedObjectsIncrementCounterField" - }, - ")[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.incrementCounter.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsIncrementCounterOptions }" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterOptions", - "text": "SavedObjectsIncrementCounterOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- The saved object after the specified fields were incremented" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.openPointInTimeForType", - "type": "Function", - "tags": [ - "property", - "property" - ], - "label": "openPointInTimeForType", - "description": [ - "\nOpens a Point In Time (PIT) against the indices for the specified Saved Object types.\nThe returned `id` can then be passed to `SavedObjects.find` to search against that PIT.\n\nOnly use this API if you have an advanced use case that's not solved by the\n{@link SavedObjectsRepository.createPointInTimeFinder} method.\n" - ], - "signature": [ - "(type: string | string[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeOptions", - "text": "SavedObjectsOpenPointInTimeOptions" - }, - " | undefined, internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeResponse", - "text": "SavedObjectsOpenPointInTimeResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.openPointInTimeForType.$1", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [ - "- the type or types for the PIT" - ], - "signature": [ - "string | string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.openPointInTimeForType.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsOpenPointInTimeOptions } - options for the open PIT operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeOptions", - "text": "SavedObjectsOpenPointInTimeOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.openPointInTimeForType.$3", - "type": "Object", - "tags": [], - "label": "internalOptions", - "description": [ - "{@link SavedObjectsFindInternalOptions } - internal options for the open PIT operation" - ], - "signature": [ - "SavedObjectsFindInternalOptions", - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { id - the ID for the PIT }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.closePointInTime", - "type": "Function", - "tags": [], - "label": "closePointInTime", - "description": [ - "\nCloses a Point In Time (PIT) by ID. This simply proxies the request to ES\nvia the Elasticsearch client, and is included in the Saved Objects Client\nas a convenience for consumers who are using `openPointInTimeForType`.\n\nOnly use this API if you have an advanced use case that's not solved by the\n{@link SavedObjectsRepository.createPointInTimeFinder} method.\n" - ], - "signature": [ - "(id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined, internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClosePointInTimeResponse", - "text": "SavedObjectsClosePointInTimeResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.closePointInTime.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- ID of the saved object" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.closePointInTime.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsClosePointInTimeOptions } - options for the close PIT operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.closePointInTime.$3", - "type": "Object", - "tags": [], - "label": "internalOptions", - "description": [ - "{@link SavedObjectsFindInternalOptions } - internal options for the close PIT operation" - ], - "signature": [ - "SavedObjectsFindInternalOptions", - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- { succeeded, num_freed - number of contexts closed }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.createPointInTimeFinder", - "type": "Function", - "tags": [], - "label": "createPointInTimeFinder", - "description": [ - "\nReturns a {@link ISavedObjectsPointInTimeFinder} to help page through\nlarge sets of saved objects. We strongly recommend using this API for\nany `find` queries that might return more than 1000 saved objects,\nhowever this API is only intended for use in server-side \"batch\"\nprocessing of objects where you are collecting all objects in memory\nor streaming them back to the client.\n\nDo NOT use this API in a route handler to facilitate paging through\nsaved objects on the client-side unless you are streaming all of the\nresults back to the client at once. Because the returned generator is\nstateful, you cannot rely on subsequent http requests retrieving new\npages from the same Kibana server in multi-instance deployments.\n\nThis generator wraps calls to {@link SavedObjectsRepository.find} and\niterates over multiple pages of results using `_pit` and `search_after`.\nThis will open a new Point-In-Time (PIT), and continue paging until a\nset of results is received that's smaller than the designated `perPage`.\n\nOnce you have retrieved all of the results you need, it is recommended\nto call `close()` to clean up the PIT and prevent Elasticsearch from\nconsuming resources unnecessarily. This is only required if you are\ndone iterating and have not yet paged through all of the results: the\nPIT will automatically be closed for you once you reach the last page\nof results, or if the underlying call to `find` fails for any reason.\n" - ], - "signature": [ - "(findOptions: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderOptions", - "text": "SavedObjectsCreatePointInTimeFinderOptions" - }, - ", dependencies?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderDependencies", - "text": "SavedObjectsCreatePointInTimeFinderDependencies" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsPointInTimeFinder", - "text": "ISavedObjectsPointInTimeFinder" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.createPointInTimeFinder.$1", - "type": "Object", - "tags": [], - "label": "findOptions", - "description": [ - "- {@link SavedObjectsCreatePointInTimeFinderOptions } - the options for creating the point-in-time finder" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderOptions", - "text": "SavedObjectsCreatePointInTimeFinderOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsRepository.createPointInTimeFinder.$2", - "type": "Object", - "tags": [], - "label": "dependencies", - "description": [ - "- {@link SavedObjectsCreatePointInTimeFinderDependencies } - the dependencies for creating the point-in-time finder" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderDependencies", - "text": "SavedObjectsCreatePointInTimeFinderDependencies" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "- the point-in-time finder {@link ISavedObjectsPointInTimeFinder }" - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension", - "type": "Interface", - "tags": [], - "label": "ISavedObjectsSecurityExtension", - "description": [ - "\nThe ISavedObjectsSecurityExtension interface defines the functions of a saved objects repository security extension.\nIt contains functions for checking & enforcing authorization, adding audit events, and redacting namespaces." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension.performAuthorization", - "type": "Function", - "tags": [], - "label": "performAuthorization", - "description": [ - "\nPerforms authorization (check & enforce) of actions on specified types in specified spaces." - ], - "signature": [ - "(params: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.PerformAuthorizationParams", - "text": "PerformAuthorizationParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.CheckAuthorizationResult", - "text": "CheckAuthorizationResult" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension.performAuthorization.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "- actions, types & spaces map, audit callback, options (enforce bypassed if enforce map is undefined)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.PerformAuthorizationParams", - "text": "PerformAuthorizationParams" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "CheckAuthorizationResult - the resulting authorization level and authorization map" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension.enforceAuthorization", - "type": "Function", - "tags": [], - "label": "enforceAuthorization", - "description": [ - "\nEnforces authorization of a single action on specified types in specified spaces.\nThrows error if authorization map does not cover specified parameters." - ], - "signature": [ - "(params: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.EnforceAuthorizationParams", - "text": "EnforceAuthorizationParams" - }, - ") => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension.enforceAuthorization.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "- map of types/spaces, action to check, and authz map (from CheckAuthorizationResult)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.EnforceAuthorizationParams", - "text": "EnforceAuthorizationParams" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension.addAuditEvent", - "type": "Function", - "tags": [], - "label": "addAuditEvent", - "description": [ - "\nAdds an audit event for the specified action with relevant information" - ], - "signature": [ - "(params: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.AddAuditEventParams", - "text": "AddAuditEventParams" - }, - ") => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension.addAuditEvent.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "- the action, outcome, error, and relevant object/space information" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.AddAuditEventParams", - "text": "AddAuditEventParams" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension.redactNamespaces", - "type": "Function", - "tags": [], - "label": "redactNamespaces", - "description": [ - "\nFilters a saved object's spaces based on an authorization map (from CheckAuthorizationResult)" - ], - "signature": [ - "(params: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.RedactNamespacesParams", - "text": "RedactNamespacesParams" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSecurityExtension.redactNamespaces.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "- the saved object and an authorization map" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.RedactNamespacesParams", - "text": "RedactNamespacesParams" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "SavedObject - saved object with filtered spaces" - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer", - "type": "Interface", - "tags": [], - "label": "ISavedObjectsSerializer", - "description": [ - "\nA serializer that can be used to manually convert {@link SavedObjectsRawDoc | raw} or\n{@link SavedObjectSanitizedDoc | sanitized} documents to the other kind.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.isRawSavedObject", - "type": "Function", - "tags": [], - "label": "isRawSavedObject", - "description": [ - "\nDetermines whether the raw document can be converted to a saved object.\n" - ], - "signature": [ - "(doc: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDoc", - "text": "SavedObjectsRawDoc" - }, - ", options?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDocParseOptions", - "text": "SavedObjectsRawDocParseOptions" - }, - " | undefined) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.isRawSavedObject.$1", - "type": "Object", - "tags": [], - "label": "doc", - "description": [ - "- The raw ES document to be tested" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDoc", - "text": "SavedObjectsRawDoc" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.isRawSavedObject.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- Options for parsing the raw document." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDocParseOptions", - "text": "SavedObjectsRawDocParseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.rawToSavedObject", - "type": "Function", - "tags": [], - "label": "rawToSavedObject", - "description": [ - "\nConverts a document from the format that is stored in elasticsearch to the saved object client format.\n" - ], - "signature": [ - "(doc: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDoc", - "text": "SavedObjectsRawDoc" - }, - ", options?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDocParseOptions", - "text": "SavedObjectsRawDocParseOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectSanitizedDoc", - "text": "SavedObjectSanitizedDoc" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.rawToSavedObject.$1", - "type": "Object", - "tags": [], - "label": "doc", - "description": [ - "- The raw ES document to be converted to saved object format." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDoc", - "text": "SavedObjectsRawDoc" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.rawToSavedObject.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "- Options for parsing the raw document." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDocParseOptions", - "text": "SavedObjectsRawDocParseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.savedObjectToRaw", - "type": "Function", - "tags": [], - "label": "savedObjectToRaw", - "description": [ - "\nConverts a document from the saved object client format to the format that is stored in elasticsearch.\n" - ], - "signature": [ - "(savedObj: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectSanitizedDoc", - "text": "SavedObjectSanitizedDoc" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDoc", - "text": "SavedObjectsRawDoc" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.savedObjectToRaw.$1", - "type": "CompoundType", - "tags": [], - "label": "savedObj", - "description": [ - "- The saved object to be converted to raw ES format." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectSanitizedDoc", - "text": "SavedObjectSanitizedDoc" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.generateRawId", - "type": "Function", - "tags": [], - "label": "generateRawId", - "description": [ - "\nGiven a saved object type and id, generates the compound id that is stored in the raw document.\n" - ], - "signature": [ - "(namespace: string | undefined, type: string, id: string) => string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.generateRawId.$1", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "- The namespace of the saved object" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.generateRawId.$2", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- The saved object type" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.generateRawId.$3", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- The id of the saved object" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.generateRawLegacyUrlAliasId", - "type": "Function", - "tags": [], - "label": "generateRawLegacyUrlAliasId", - "description": [ - "\nGiven a saved object type and id, generates the compound id that is stored in the raw document for its legacy URL alias.\n" - ], - "signature": [ - "(namespace: string | undefined, type: string, id: string) => string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.generateRawLegacyUrlAliasId.$1", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "- The namespace of the saved object" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.generateRawLegacyUrlAliasId.$2", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- The saved object type" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSerializer.generateRawLegacyUrlAliasId.$3", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- The id of the saved object" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSpacesExtension", - "type": "Interface", - "tags": [], - "label": "ISavedObjectsSpacesExtension", - "description": [ - "\nThe ISavedObjectsSpacesExtension interface defines the functions of a saved objects repository spaces extension.\nIt contains functions for getting the current namespace & getting and array of searchable spaces." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/spaces.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSpacesExtension.getCurrentNamespace", - "type": "Function", - "tags": [], - "label": "getCurrentNamespace", - "description": [ - "\nRetrieves the active namespace ID. This is *not* the same as a namespace string. See also: `namespaceIdToString` and\n`namespaceStringToId`.\n\nThis takes the saved objects repository's namespace option as a parameter, and doubles as a validation function; if the namespace\noption has already been set some other way, this will throw an error." - ], - "signature": [ - "(namespace: string | undefined) => string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/spaces.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSpacesExtension.getCurrentNamespace.$1", - "type": "string", - "tags": [], - "label": "namespace", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/spaces.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSpacesExtension.getSearchableNamespaces", - "type": "Function", - "tags": [], - "label": "getSearchableNamespaces", - "description": [ - "\nGiven a list of namespace strings, returns a subset that the user is authorized to search in.\nIf a wildcard '*' is used, it is expanded to an explicit list of namespace strings." - ], - "signature": [ - "(namespaces: string[] | undefined) => Promise" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/spaces.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectsSpacesExtension.getSearchableNamespaces.$1", - "type": "Array", - "tags": [], - "label": "namespaces", - "description": [], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/spaces.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry", - "type": "Interface", - "tags": [], - "label": "ISavedObjectTypeRegistry", - "description": [ - "\nRegistry holding information about all the registered {@link SavedObjectsType | saved object types}." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.getType", - "type": "Function", - "tags": [], - "label": "getType", - "description": [ - "\nReturn the {@link SavedObjectsType | type} definition for given type name." - ], - "signature": [ - "(type: string) => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsType", - "text": "SavedObjectsType" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.getType.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.getVisibleTypes", - "type": "Function", - "tags": [], - "label": "getVisibleTypes", - "description": [ - "\nReturns all visible {@link SavedObjectsType | types}.\n\nA visible type is a type that doesn't explicitly define `hidden=true` during registration." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsType", - "text": "SavedObjectsType" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.getVisibleToHttpApisTypes", - "type": "Function", - "tags": [], - "label": "getVisibleToHttpApisTypes", - "description": [ - "\nReturns all visible {@link SavedObjectsType | types} exposed to the global SO HTTP APIs\n\nA visibleToHttpApis type is a type that doesn't explicitly define `hidden=true` nor `hiddenFromHttpApis=true` during registration." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsType", - "text": "SavedObjectsType" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.getAllTypes", - "type": "Function", - "tags": [], - "label": "getAllTypes", - "description": [ - "\nReturn all {@link SavedObjectsType | types} currently registered, including the hidden ones.\n\nTo only get the visible types (which is the most common use case), use `getVisibleTypes` instead." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsType", - "text": "SavedObjectsType" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.getImportableAndExportableTypes", - "type": "Function", - "tags": [], - "label": "getImportableAndExportableTypes", - "description": [ - "\nReturn all {@link SavedObjectsType | types} currently registered that are importable/exportable." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsType", - "text": "SavedObjectsType" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isNamespaceAgnostic", - "type": "Function", - "tags": [], - "label": "isNamespaceAgnostic", - "description": [ - "\nReturns whether the type is namespace-agnostic (global);\nresolves to `false` if the type is not registered" - ], - "signature": [ - "(type: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isNamespaceAgnostic.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isSingleNamespace", - "type": "Function", - "tags": [], - "label": "isSingleNamespace", - "description": [ - "\nReturns whether the type is single-namespace (isolated);\nresolves to `true` if the type is not registered" - ], - "signature": [ - "(type: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isSingleNamespace.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isMultiNamespace", - "type": "Function", - "tags": [], - "label": "isMultiNamespace", - "description": [ - "\nReturns whether the type is multi-namespace (shareable *or* isolated);\nresolves to `false` if the type is not registered" - ], - "signature": [ - "(type: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isMultiNamespace.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isShareable", - "type": "Function", - "tags": [], - "label": "isShareable", - "description": [ - "\nReturns whether the type is multi-namespace (shareable);\nresolves to `false` if the type is not registered" - ], - "signature": [ - "(type: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isShareable.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isHidden", - "type": "Function", - "tags": [], - "label": "isHidden", - "description": [ - "\nReturns the `hidden` property for given type, or `false` if\nthe type is not registered." - ], - "signature": [ - "(type: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isHidden.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isHiddenFromHttpApis", - "type": "Function", - "tags": [], - "label": "isHiddenFromHttpApis", - "description": [ - "\nReturns the `hiddenFromHttpApis` property for a given type, or `false` if\nthe type is not registered" - ], - "signature": [ - "(type: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isHiddenFromHttpApis.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.getIndex", - "type": "Function", - "tags": [], - "label": "getIndex", - "description": [ - "\nReturns the `indexPattern` property for given type, or `undefined` if\nthe type is not registered." - ], - "signature": [ - "(type: string) => string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.getIndex.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isImportableAndExportable", - "type": "Function", - "tags": [], - "label": "isImportableAndExportable", - "description": [ - "\nReturns the `management.importableAndExportable` property for given type, or\n`false` if the type is not registered or does not define a management section." - ], - "signature": [ - "(type: string) => boolean" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ISavedObjectTypeRegistry.isImportableAndExportable.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IScopedClusterClient", - "type": "Interface", - "tags": [], - "label": "IScopedClusterClient", - "description": [ - "\nServes the same purpose as the normal {@link IClusterClient | cluster client} but exposes\nan additional `asCurrentUser` method that doesn't use credentials of the Kibana internal\nuser (as `asInternalUser` does) to request Elasticsearch API, but rather passes HTTP headers\nextracted from the current user request to the API instead.\n" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/scoped_cluster_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IScopedClusterClient.asInternalUser", - "type": "Object", - "tags": [], - "label": "asInternalUser", - "description": [ - "\nA {@link ElasticsearchClient | client} to be used to query the elasticsearch cluster\non behalf of the internal Kibana user." - ], - "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetResponse", - ">; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetResponse", - ", unknown>>; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetResponse", - ">; }; delete: { (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", - "default", - "; search: { >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchResponse", - ">; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchResponse", - ", unknown>>; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchResponse", - ">; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", - "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", - "default", - "; helpers: ", - "default", - "; child: (opts: ", - "ClientOptions", - ") => ", - "default", - "; autoscaling: ", - "default", - "; bulk: { (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "BulkResponse", - ">; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "BulkResponse", - ", unknown>>; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "BulkResponse", - ">; }; cat: ", - "default", - "; ccr: ", - "default", - "; clearScroll: { (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClearScrollResponse", - ">; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClearScrollResponse", - ", unknown>>; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClearScrollResponse", - ">; }; closePointInTime: { (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClosePointInTimeResponse", - ", unknown>>; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", - "default", - "; deleteByQuery: { (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "DeleteByQueryResponse", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; }; deleteByQueryRethrottle: { (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TasksTaskListResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; }; deleteScript: { (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; enrich: ", - "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; explain: { (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ExplainResponse", - ">; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ExplainResponse", - ", unknown>>; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ExplainResponse", - ">; }; features: ", - "default", - "; fieldCaps: { (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "FieldCapsResponse", - ">; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "FieldCapsResponse", - ", unknown>>; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "FieldCapsResponse", - ">; }; fleet: ", - "default", - "; getScript: { (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptResponse", - ">; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptResponse", - ", unknown>>; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptResponse", - ">; }; getScriptContext: { (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptContextResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; }; getScriptLanguages: { (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptLanguagesResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; }; getSource: { (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; graph: ", - "default", - "; ilm: ", - "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "InfoResponse", - ">; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "InfoResponse", - ", unknown>>; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "InfoResponse", - ">; }; ingest: ", - "default", - "; knnSearch: { (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "KnnSearchResponse", - ">; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "KnnSearchResponse", - ", unknown>>; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "KnnSearchResponse", - ">; }; license: ", - "default", - "; logstash: ", - "default", - "; mget: { (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MgetResponse", - ">; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MgetResponse", - ", unknown>>; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MgetResponse", - ">; }; migration: ", - "default", - "; ml: ", - "default", - "; msearch: { >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchResponse", - ">; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchResponse", - ", unknown>>; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchResponse", - ">; }; msearchTemplate: { >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchTemplateResponse", - ", unknown>>; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; }; mtermvectors: { (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MtermvectorsResponse", - ", unknown>>; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "OpenPointInTimeResponse", - ", unknown>>; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; rankEval: { (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RankEvalResponse", - ">; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RankEvalResponse", - ", unknown>>; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RankEvalResponse", - ">; }; reindex: { (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexResponse", - ">; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexResponse", - ", unknown>>; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexResponse", - ">; }; reindexRethrottle: { (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexRethrottleResponse", - ", unknown>>; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; }; renderSearchTemplate: { (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RenderSearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; }; rollup: ", - "default", - "; scriptsPainlessExecute: { (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScriptsPainlessExecuteResponse", - ", unknown>>; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; }; scroll: { >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScrollResponse", - ">; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScrollResponse", - ", unknown>>; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScrollResponse", - ">; }; searchMvt: { (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; searchShards: { (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchShardsResponse", - ">; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchShardsResponse", - ", unknown>>; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchShardsResponse", - ">; }; searchTemplate: { (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; }; searchableSnapshots: ", - "default", - "; shutdown: ", - "default", - "; slm: ", - "default", - "; snapshot: ", - "default", - "; sql: ", - "default", - "; ssl: ", - "default", - "; tasks: ", - "default", - "; termsEnum: { (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermsEnumResponse", - ">; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermsEnumResponse", - ", unknown>>; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermsEnumResponse", - ">; }; termvectors: { (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermvectorsResponse", - ">; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermvectorsResponse", - ", unknown>>; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermvectorsResponse", - ">; }; textStructure: ", - "default", - "; transform: ", - "default", - "; updateByQuery: { (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; }; updateByQueryRethrottle: { (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryRethrottleResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; }; watcher: ", - "default", - "; xpack: ", - "default", - "; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/scoped_cluster_client.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IScopedClusterClient.asCurrentUser", - "type": "Object", - "tags": [], - "label": "asCurrentUser", - "description": [ - "\nA {@link ElasticsearchClient | client} to be used to query the elasticsearch cluster\non behalf of the user that initiated the request to the Kibana server." - ], - "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetResponse", - ">; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetResponse", - ", unknown>>; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetResponse", - ">; }; delete: { (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", - "default", - "; search: { >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchResponse", - ">; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchResponse", - ", unknown>>; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchResponse", - ">; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", - "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", - "default", - "; helpers: ", - "default", - "; child: (opts: ", - "ClientOptions", - ") => ", - "default", - "; autoscaling: ", - "default", - "; bulk: { (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "BulkResponse", - ">; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "BulkResponse", - ", unknown>>; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "BulkResponse", - ">; }; cat: ", - "default", - "; ccr: ", - "default", - "; clearScroll: { (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClearScrollResponse", - ">; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClearScrollResponse", - ", unknown>>; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClearScrollResponse", - ">; }; closePointInTime: { (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClosePointInTimeResponse", - ", unknown>>; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", - "default", - "; deleteByQuery: { (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "DeleteByQueryResponse", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; }; deleteByQueryRethrottle: { (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TasksTaskListResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; }; deleteScript: { (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; enrich: ", - "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; explain: { (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ExplainResponse", - ">; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ExplainResponse", - ", unknown>>; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ExplainResponse", - ">; }; features: ", - "default", - "; fieldCaps: { (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "FieldCapsResponse", - ">; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "FieldCapsResponse", - ", unknown>>; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "FieldCapsResponse", - ">; }; fleet: ", - "default", - "; getScript: { (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptResponse", - ">; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptResponse", - ", unknown>>; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptResponse", - ">; }; getScriptContext: { (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptContextResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; }; getScriptLanguages: { (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptLanguagesResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; }; getSource: { (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; graph: ", - "default", - "; ilm: ", - "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "InfoResponse", - ">; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "InfoResponse", - ", unknown>>; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "InfoResponse", - ">; }; ingest: ", - "default", - "; knnSearch: { (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "KnnSearchResponse", - ">; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "KnnSearchResponse", - ", unknown>>; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "KnnSearchResponse", - ">; }; license: ", - "default", - "; logstash: ", - "default", - "; mget: { (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MgetResponse", - ">; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MgetResponse", - ", unknown>>; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MgetResponse", - ">; }; migration: ", - "default", - "; ml: ", - "default", - "; msearch: { >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchResponse", - ">; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchResponse", - ", unknown>>; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchResponse", - ">; }; msearchTemplate: { >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchTemplateResponse", - ", unknown>>; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; }; mtermvectors: { (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MtermvectorsResponse", - ", unknown>>; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "OpenPointInTimeResponse", - ", unknown>>; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; rankEval: { (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RankEvalResponse", - ">; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RankEvalResponse", - ", unknown>>; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RankEvalResponse", - ">; }; reindex: { (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexResponse", - ">; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexResponse", - ", unknown>>; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexResponse", - ">; }; reindexRethrottle: { (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexRethrottleResponse", - ", unknown>>; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; }; renderSearchTemplate: { (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RenderSearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; }; rollup: ", - "default", - "; scriptsPainlessExecute: { (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScriptsPainlessExecuteResponse", - ", unknown>>; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; }; scroll: { >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScrollResponse", - ">; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScrollResponse", - ", unknown>>; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScrollResponse", - ">; }; searchMvt: { (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; searchShards: { (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchShardsResponse", - ">; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchShardsResponse", - ", unknown>>; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchShardsResponse", - ">; }; searchTemplate: { (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; }; searchableSnapshots: ", - "default", - "; shutdown: ", - "default", - "; slm: ", - "default", - "; snapshot: ", - "default", - "; sql: ", - "default", - "; ssl: ", - "default", - "; tasks: ", - "default", - "; termsEnum: { (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermsEnumResponse", - ">; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermsEnumResponse", - ", unknown>>; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermsEnumResponse", - ">; }; termvectors: { (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermvectorsResponse", - ">; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermvectorsResponse", - ", unknown>>; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermvectorsResponse", - ">; }; textStructure: ", - "default", - "; transform: ", - "default", - "; updateByQuery: { (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; }; updateByQueryRethrottle: { (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryRethrottleResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; }; watcher: ", - "default", - "; xpack: ", - "default", - "; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/scoped_cluster_client.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IShipper", - "type": "Interface", - "tags": [], - "label": "IShipper", - "description": [ - "\nBasic structure of a Shipper" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IShipper.reportEvents", - "type": "Function", - "tags": [], - "label": "reportEvents", - "description": [ - "\nAdapts and ships the event to the persisting/analytics solution." - ], - "signature": [ - "(events: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - ">[]) => void" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IShipper.reportEvents.$1", - "type": "Array", - "tags": [], - "label": "events", - "description": [ - "batched events {@link Event }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - ">[]" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IShipper.optIn", - "type": "Function", - "tags": [], - "label": "optIn", - "description": [ - "\nStops/restarts the shipping mechanism based on the value of isOptedIn" - ], - "signature": [ - "(isOptedIn: boolean) => void" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IShipper.optIn.$1", - "type": "boolean", - "tags": [], - "label": "isOptedIn", - "description": [ - "`true` for resume sending events. `false` to stop." - ], - "signature": [ - "boolean" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IShipper.extendContext", - "type": "Function", - "tags": [], - "label": "extendContext", - "description": [ - "\nPerform any necessary calls to the persisting/analytics solution to set the event's context." - ], - "signature": [ - "((newContext: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - }, - ") => void) | undefined" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IShipper.extendContext.$1", - "type": "Object", - "tags": [], - "label": "newContext", - "description": [ - "The full new context to set {@link EventContext }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - } - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IShipper.telemetryCounter$", - "type": "Object", - "tags": [], - "label": "telemetryCounter$", - "description": [ - "\nObservable to emit the stats of the processed events." - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - "> | undefined" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IShipper.flush", - "type": "Function", - "tags": [], - "label": "flush", - "description": [ - "\nSends all the enqueued events and fulfills the returned promise." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IShipper.shutdown", - "type": "Function", - "tags": [], - "label": "shutdown", - "description": [ - "\nShutdown the shipper." - ], - "signature": [ - "() => void" - ], - "path": "packages/analytics/client/src/shippers/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient", - "type": "Interface", - "tags": [], - "label": "IUiSettingsClient", - "description": [ - "\nServer-side client that provides access to the advanced settings stored in elasticsearch.\nThe settings provide control over the behavior of the Kibana application.\nFor example, a user can specify how to display numeric or date fields.\nUsers can adjust the settings via Management UI.\n" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.getRegistered", - "type": "Function", - "tags": [], - "label": "getRegistered", - "description": [ - "\nReturns registered uiSettings values {@link UiSettingsParams}" - ], - "signature": [ - "() => Readonly, \"schema\">>>" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nRetrieves uiSettings values set by the user with fallbacks to default values if not specified." - ], - "signature": [ - "(key: string) => Promise" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.get.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.getAll", - "type": "Function", - "tags": [], - "label": "getAll", - "description": [ - "\nRetrieves a set of all uiSettings values set by the user with fallbacks to default values if not specified." - ], - "signature": [ - "() => Promise>" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.getUserProvided", - "type": "Function", - "tags": [], - "label": "getUserProvided", - "description": [ - "\nRetrieves a set of all uiSettings values set by the user." - ], - "signature": [ - "() => Promise>>" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.setMany", - "type": "Function", - "tags": [], - "label": "setMany", - "description": [ - "\nWrites multiple uiSettings values and marks them as set by the user." - ], - "signature": [ - "(changes: Record) => Promise" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.setMany.$1", - "type": "Object", - "tags": [], - "label": "changes", - "description": [], - "signature": [ - "Record" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.set", - "type": "Function", - "tags": [], - "label": "set", - "description": [ - "\nWrites uiSettings value and marks it as set by the user." - ], - "signature": [ - "(key: string, value: any) => Promise" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.set.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.set.$2", - "type": "Any", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.remove", - "type": "Function", - "tags": [], - "label": "remove", - "description": [ - "\nRemoves uiSettings value by key." - ], - "signature": [ - "(key: string) => Promise" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.remove.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.removeMany", - "type": "Function", - "tags": [], - "label": "removeMany", - "description": [ - "\nRemoves multiple uiSettings values by keys." - ], - "signature": [ - "(keys: string[]) => Promise" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.removeMany.$1", - "type": "Array", - "tags": [], - "label": "keys", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.isOverridden", - "type": "Function", - "tags": [], - "label": "isOverridden", - "description": [ - "\nShows whether the uiSettings value set by the user." - ], - "signature": [ - "(key: string) => boolean" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.isOverridden.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.isSensitive", - "type": "Function", - "tags": [], - "label": "isSensitive", - "description": [ - "\nShows whether the uiSetting is a sensitive value. Used by telemetry to not send sensitive values." - ], - "signature": [ - "(key: string) => boolean" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IUiSettingsClient.isSensitive.$1", - "type": "string", - "tags": [], - "label": "key", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest", - "type": "Interface", - "tags": [], - "label": "KibanaRequest", - "description": [ - "\nKibana specific abstraction for an incoming request." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\nA identifier to identify this request.\n" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.uuid", - "type": "string", - "tags": [], - "label": "uuid", - "description": [ - "\nA UUID to identify this request.\n" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.url", - "type": "Object", - "tags": [], - "label": "url", - "description": [ - "a WHATWG URL standard object." - ], - "signature": [ - "URL" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.route", - "type": "Object", - "tags": [], - "label": "route", - "description": [ - "matched route details" - ], - "signature": [ - "{ readonly path: string; readonly method: ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.RecursiveReadonly", - "text": "RecursiveReadonly" - }, - "; readonly options: ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.RecursiveReadonly", - "text": "RecursiveReadonly" - }, - "<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequestRouteOptions", - "text": "KibanaRequestRouteOptions" - }, - ">; }" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "\nReadonly copy of incoming request headers." - ], - "signature": [ - "{ accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; date?: string | string[] | undefined; etag?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; from?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; location?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; range?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; warning?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.isSystemRequest", - "type": "boolean", - "tags": [], - "label": "isSystemRequest", - "description": [ - "\nWhether or not the request is a \"system request\" rather than an application-level request.\nCan be set on the client using the `HttpFetchOptions#asSystemRequest` option." - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.isFakeRequest", - "type": "boolean", - "tags": [], - "label": "isFakeRequest", - "description": [ - "\nAllows identifying requests that were created using a {@link FakeRawRequest}\nEven if the API facade is the same, fake requests have some stubbed functionalities." - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.socket", - "type": "Object", - "tags": [], - "label": "socket", - "description": [ - "\nThe socket associated with this request.\nSee {@link IKibanaSocket}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaSocket", - "text": "IKibanaSocket" - } - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.events", - "type": "Object", - "tags": [], - "label": "events", - "description": [ - "\nAllow to listen to events bound to this request.\nSee {@link KibanaRequestEvents}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequestEvents", - "text": "KibanaRequestEvents" - } - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.auth", - "type": "Object", - "tags": [], - "label": "auth", - "description": [ - "\nThe auth status of this request.\nSee {@link KibanaRequestAuth}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequestAuth", - "text": "KibanaRequestAuth" - } - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.rewrittenUrl", - "type": "Object", - "tags": [], - "label": "rewrittenUrl", - "description": [ - "\nURL rewritten in onPreRouting request interceptor." - ], - "signature": [ - "URL", - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.params", - "type": "Uncategorized", - "tags": [], - "label": "params", - "description": [ - "\nThe path parameter of this request." - ], - "signature": [ - "Params" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.query", - "type": "Uncategorized", - "tags": [], - "label": "query", - "description": [ - "\nThe query parameter of this request." - ], - "signature": [ - "Query" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequest.body", - "type": "Uncategorized", - "tags": [], - "label": "body", - "description": [ - "\nThe body payload of this request." - ], - "signature": [ - "Body" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequestEvents", - "type": "Interface", - "tags": [], - "label": "KibanaRequestEvents", - "description": [ - "\nRequest events." - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.KibanaRequestEvents.aborted$", - "type": "Object", - "tags": [], - "label": "aborted$", - "description": [ - "\nObservable that emits once if and when the request has been aborted." - ], - "signature": [ - "Observable", - "" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequestEvents.completed$", - "type": "Object", - "tags": [], - "label": "completed$", - "description": [ - "\nObservable that emits once if and when the request has been completely handled.\n" - ], - "signature": [ - "Observable", - "" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequestRoute", - "type": "Interface", - "tags": [], - "label": "KibanaRequestRoute", - "description": [ - "\nRequest specific route information exposed to a handler." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequestRoute", - "text": "KibanaRequestRoute" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.KibanaRequestRoute.path", - "type": "string", - "tags": [], - "label": "path", - "description": [], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequestRoute.method", - "type": "Uncategorized", - "tags": [], - "label": "method", - "description": [], - "signature": [ - "Method" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequestRoute.options", - "type": "Uncategorized", - "tags": [], - "label": "options", - "description": [], - "signature": [ - "Method extends \"options\" | \"get\" ? Required, \"body\">> : Required<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfigOptions", - "text": "RouteConfigOptions" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.Logger", - "type": "Interface", - "tags": [], - "label": "Logger", - "description": [ - "\nLogger exposes all the necessary methods to log any type of information and\nthis is the interface used by the logging consumers including plugins.\n" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.trace", - "type": "Function", - "tags": [], - "label": "trace", - "description": [ - "\nLog messages at the most detailed log level\n" - ], - "signature": [ - "(message: string, meta?: Meta | undefined) => void" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.trace.$1", - "type": "string", - "tags": [], - "label": "message", - "description": [ - "- The log message" - ], - "signature": [ - "string" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.trace.$2", - "type": "Uncategorized", - "tags": [], - "label": "meta", - "description": [ - "-" - ], - "signature": [ - "Meta | undefined" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.debug", - "type": "Function", - "tags": [], - "label": "debug", - "description": [ - "\nLog messages useful for debugging and interactive investigation" - ], - "signature": [ - "(message: string, meta?: Meta | undefined) => void" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.debug.$1", - "type": "string", - "tags": [], - "label": "message", - "description": [ - "- The log message" - ], - "signature": [ - "string" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.debug.$2", - "type": "Uncategorized", - "tags": [], - "label": "meta", - "description": [ - "-" - ], - "signature": [ - "Meta | undefined" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.info", - "type": "Function", - "tags": [], - "label": "info", - "description": [ - "\nLogs messages related to general application flow" - ], - "signature": [ - "(message: string, meta?: Meta | undefined) => void" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.info.$1", - "type": "string", - "tags": [], - "label": "message", - "description": [ - "- The log message" - ], - "signature": [ - "string" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.info.$2", - "type": "Uncategorized", - "tags": [], - "label": "meta", - "description": [ - "-" - ], - "signature": [ - "Meta | undefined" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.warn", - "type": "Function", - "tags": [], - "label": "warn", - "description": [ - "\nLogs abnormal or unexpected errors or messages" - ], - "signature": [ - "(errorOrMessage: string | Error, meta?: Meta | undefined) => void" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.warn.$1", - "type": "CompoundType", - "tags": [], - "label": "errorOrMessage", - "description": [ - "- An Error object or message string to log" - ], - "signature": [ - "string | Error" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.warn.$2", - "type": "Uncategorized", - "tags": [], - "label": "meta", - "description": [ - "-" - ], - "signature": [ - "Meta | undefined" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.error", - "type": "Function", - "tags": [], - "label": "error", - "description": [ - "\nLogs abnormal or unexpected errors or messages that caused a failure in the application flow\n" - ], - "signature": [ - "(errorOrMessage: string | Error, meta?: Meta | undefined) => void" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.error.$1", - "type": "CompoundType", - "tags": [], - "label": "errorOrMessage", - "description": [ - "- An Error object or message string to log" - ], - "signature": [ - "string | Error" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.error.$2", - "type": "Uncategorized", - "tags": [], - "label": "meta", - "description": [ - "-" - ], - "signature": [ - "Meta | undefined" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.fatal", - "type": "Function", - "tags": [], - "label": "fatal", - "description": [ - "\nLogs abnormal or unexpected errors or messages that caused an unrecoverable failure\n" - ], - "signature": [ - "(errorOrMessage: string | Error, meta?: Meta | undefined) => void" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.fatal.$1", - "type": "CompoundType", - "tags": [], - "label": "errorOrMessage", - "description": [ - "- An Error object or message string to log" - ], - "signature": [ - "string | Error" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.fatal.$2", - "type": "Uncategorized", - "tags": [], - "label": "meta", - "description": [ - "-" - ], - "signature": [ - "Meta | undefined" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.isLevelEnabled", - "type": "Function", - "tags": [], - "label": "isLevelEnabled", - "description": [ - "\nChecks if given level is currently enabled for this logger.\nCan be used to wrap expensive logging operations into conditional blocks\n" - ], - "signature": [ - "(level: ", - "LogLevelId", - ") => boolean" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.isLevelEnabled.$1", - "type": "CompoundType", - "tags": [], - "label": "level", - "description": [ - "The log level to check for." - ], - "signature": [ - "LogLevelId" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Logger.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nReturns a new {@link Logger} instance extending the current logger context.\n" - ], - "signature": [ - "(...childContextPaths: string[]) => ", - { - "pluginId": "@kbn/logging", - "scope": "common", - "docId": "kibKbnLoggingPluginApi", - "section": "def-common.Logger", - "text": "Logger" - } - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Logger.get.$1", - "type": "Array", - "tags": [], - "label": "childContextPaths", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/kbn-logging/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.LoggerConfigType", - "type": "Interface", - "tags": [], - "label": "LoggerConfigType", - "description": [ - "\nDescribes the configuration of a given logger.\n" - ], - "path": "packages/core/logging/core-logging-server/src/logger.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.LoggerConfigType.appenders", - "type": "Array", - "tags": [], - "label": "appenders", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/core/logging/core-logging-server/src/logger.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.LoggerConfigType.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/core/logging/core-logging-server/src/logger.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.LoggerConfigType.level", - "type": "CompoundType", - "tags": [], - "label": "level", - "description": [], - "signature": [ - "\"error\" | \"all\" | \"info\" | \"debug\" | \"off\" | \"warn\" | \"trace\" | \"fatal\"" - ], - "path": "packages/core/logging/core-logging-server/src/logger.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.LoggerContextConfigInput", - "type": "Interface", - "tags": [], - "label": "LoggerContextConfigInput", - "description": [ - "\nInput used to configure logging dynamically using {@link LoggingServiceSetup.configure}" - ], - "path": "packages/core/logging/core-logging-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.LoggerContextConfigInput.appenders", - "type": "CompoundType", - "tags": [], - "label": "appenders", - "description": [], - "signature": [ - "Record | Map | undefined" - ], - "path": "packages/core/logging/core-logging-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.LoggerContextConfigInput.loggers", - "type": "Array", - "tags": [], - "label": "loggers", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-logging-server", - "scope": "common", - "docId": "kibKbnCoreLoggingServerPluginApi", - "section": "def-common.LoggerConfigType", - "text": "LoggerConfigType" - }, - "[] | undefined" - ], - "path": "packages/core/logging/core-logging-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.LoggerFactory", - "type": "Interface", - "tags": [], - "label": "LoggerFactory", - "description": [ - "\nThe single purpose of `LoggerFactory` interface is to define a way to\nretrieve a context-based logger instance.\n" - ], - "path": "packages/kbn-logging/src/logger_factory.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.LoggerFactory.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nReturns a `Logger` instance for the specified context.\n" - ], - "signature": [ - "(...contextParts: string[]) => ", - { - "pluginId": "@kbn/logging", - "scope": "common", - "docId": "kibKbnLoggingPluginApi", - "section": "def-common.Logger", - "text": "Logger" - } - ], - "path": "packages/kbn-logging/src/logger_factory.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.LoggerFactory.get.$1", - "type": "Array", - "tags": [], - "label": "contextParts", - "description": [ - "- Parts of the context to return logger for. For example\nget('plugins', 'pid') will return a logger for the `plugins.pid` context." - ], - "signature": [ - "string[]" - ], - "path": "packages/kbn-logging/src/logger_factory.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.LoggingServiceSetup", - "type": "Interface", - "tags": [], - "label": "LoggingServiceSetup", - "description": [ - "\nProvides APIs to plugins for customizing the plugin's logger." - ], - "path": "packages/core/logging/core-logging-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.LoggingServiceSetup.configure", - "type": "Function", - "tags": [], - "label": "configure", - "description": [ - "\nCustomizes the logging config for the plugin's context.\n" - ], - "signature": [ - "(config$: ", - "Observable", - "<", - { - "pluginId": "@kbn/core-logging-server", - "scope": "common", - "docId": "kibKbnCoreLoggingServerPluginApi", - "section": "def-common.LoggerContextConfigInput", - "text": "LoggerContextConfigInput" - }, - ">) => void" - ], - "path": "packages/core/logging/core-logging-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.LoggingServiceSetup.configure.$1", - "type": "Object", - "tags": [], - "label": "config$", - "description": [], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-logging-server", - "scope": "common", - "docId": "kibKbnCoreLoggingServerPluginApi", - "section": "def-common.LoggerContextConfigInput", - "text": "LoggerContextConfigInput" - }, - ">" - ], - "path": "packages/core/logging/core-logging-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.MetricsServiceSetup", - "type": "Interface", - "tags": [], - "label": "MetricsServiceSetup", - "description": [ - "\nAPIs to retrieves metrics gathered and exposed by the core platform.\n" - ], - "path": "packages/core/metrics/core-metrics-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.MetricsServiceSetup.collectionInterval", - "type": "number", - "tags": [], - "label": "collectionInterval", - "description": [ - "Interval metrics are collected in milliseconds" - ], - "path": "packages/core/metrics/core-metrics-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.MetricsServiceSetup.getOpsMetrics$", - "type": "Function", - "tags": [], - "label": "getOpsMetrics$", - "description": [ - "\nRetrieve an observable emitting the {@link OpsMetrics} gathered.\nThe observable will emit an initial value during core's `start` phase, and a new value every fixed interval of time,\nbased on the `opts.interval` configuration property.\n" - ], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.OpsMetrics", - "text": "OpsMetrics" - }, - ">" - ], - "path": "packages/core/metrics/core-metrics-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodeInfo", - "type": "Interface", - "tags": [], - "label": "NodeInfo", - "description": [ - "\nContains information about how this Kibana process has been configured.\n" - ], - "path": "packages/core/node/core-node-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.NodeInfo.roles", - "type": "Object", - "tags": [], - "label": "roles", - "description": [ - "A list of roles this node has been configured with." - ], - "signature": [ - { - "pluginId": "@kbn/core-node-server", - "scope": "common", - "docId": "kibKbnCoreNodeServerPluginApi", - "section": "def-common.NodeRoles", - "text": "NodeRoles" - } - ], - "path": "packages/core/node/core-node-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodeRoles", - "type": "Interface", - "tags": [], - "label": "NodeRoles", - "description": [ - "\nThe Kibana process can be run in dedicated \"modes\" via `node.roles`.\nThis configuration is then exposed to plugins via `NodeRoles`,\nwhich is available on the `PluginInitializerContext`.\n\nThe node roles can be used by plugins to adjust their behavior based\non the way the Kibana process has been configured.\n" - ], - "path": "packages/core/node/core-node-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.NodeRoles.backgroundTasks", - "type": "boolean", - "tags": [], - "label": "backgroundTasks", - "description": [ - "\nThe backgroundTasks role includes operations which don't involve\nresponding to incoming http traffic from the UI." - ], - "path": "packages/core/node/core-node-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodeRoles.ui", - "type": "boolean", - "tags": [], - "label": "ui", - "description": [ - "\nThe ui role covers any operations that need to occur in order\nto handle http traffic from the browser." - ], - "path": "packages/core/node/core-node-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodesVersionCompatibility", - "type": "Interface", - "tags": [], - "label": "NodesVersionCompatibility", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.NodesVersionCompatibility.isCompatible", - "type": "boolean", - "tags": [], - "label": "isCompatible", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodesVersionCompatibility.message", - "type": "string", - "tags": [], - "label": "message", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodesVersionCompatibility.incompatibleNodes", - "type": "Array", - "tags": [], - "label": "incompatibleNodes", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server-internal", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerInternalPluginApi", - "section": "def-common.NodeInfo", - "text": "NodeInfo" - }, - "[]" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodesVersionCompatibility.warningNodes", - "type": "Array", - "tags": [], - "label": "warningNodes", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server-internal", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerInternalPluginApi", - "section": "def-common.NodeInfo", - "text": "NodeInfo" - }, - "[]" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodesVersionCompatibility.kibanaVersion", - "type": "string", - "tags": [], - "label": "kibanaVersion", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.NodesVersionCompatibility.nodesInfoRequestError", - "type": "Object", - "tags": [], - "label": "nodesInfoRequestError", - "description": [], - "signature": [ - "Error | undefined" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPostAuthToolkit", - "type": "Interface", - "tags": [], - "label": "OnPostAuthToolkit", - "description": [], - "path": "packages/core/http/core-http-server/src/lifecycle/on_post_auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPostAuthToolkit.next", - "type": "Function", - "tags": [], - "label": "next", - "description": [ - "To pass request to the next handler" - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPostAuthNextResult", - "text": "OnPostAuthNextResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_post_auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreAuthToolkit", - "type": "Interface", - "tags": [], - "label": "OnPreAuthToolkit", - "description": [], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreAuthToolkit.next", - "type": "Function", - "tags": [], - "label": "next", - "description": [ - "To pass request to the next handler" - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreAuthNextResult", - "text": "OnPreAuthNextResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_auth.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseExtensions", - "type": "Interface", - "tags": [], - "label": "OnPreResponseExtensions", - "description": [ - "\nAdditional data to extend a response." - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseExtensions.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "additional headers to attach to the response" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseInfo", - "type": "Interface", - "tags": [], - "label": "OnPreResponseInfo", - "description": [ - "\nResponse status code." - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseInfo.statusCode", - "type": "number", - "tags": [], - "label": "statusCode", - "description": [], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseRender", - "type": "Interface", - "tags": [], - "label": "OnPreResponseRender", - "description": [ - "\nAdditional data to extend a response when rendering a new body" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseRender.headers", - "type": "CompoundType", - "tags": [], - "label": "headers", - "description": [ - "additional headers to attach to the response" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseHeaders", - "text": "ResponseHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseRender.body", - "type": "string", - "tags": [], - "label": "body", - "description": [ - "the body to use in the response" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseToolkit", - "type": "Interface", - "tags": [], - "label": "OnPreResponseToolkit", - "description": [ - "\nA tool set defining an outcome of OnPreResponse interceptor for incoming request." - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseToolkit.render", - "type": "Function", - "tags": [], - "label": "render", - "description": [ - "To override the response with a different body" - ], - "signature": [ - "(responseRender: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseRender", - "text": "OnPreResponseRender" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseResult", - "text": "OnPreResponseResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseToolkit.render.$1", - "type": "Object", - "tags": [], - "label": "responseRender", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseRender", - "text": "OnPreResponseRender" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseToolkit.next", - "type": "Function", - "tags": [], - "label": "next", - "description": [ - "To pass request to the next handler" - ], - "signature": [ - "(responseExtensions?: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseExtensions", - "text": "OnPreResponseExtensions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseResult", - "text": "OnPreResponseResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseToolkit.next.$1", - "type": "Object", - "tags": [], - "label": "responseExtensions", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseExtensions", - "text": "OnPreResponseExtensions" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreRoutingToolkit", - "type": "Interface", - "tags": [], - "label": "OnPreRoutingToolkit", - "description": [], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_routing.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreRoutingToolkit.next", - "type": "Function", - "tags": [], - "label": "next", - "description": [ - "To pass request to the next handler" - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreRoutingResult", - "text": "OnPreRoutingResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_routing.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreRoutingToolkit.rewriteUrl", - "type": "Function", - "tags": [], - "label": "rewriteUrl", - "description": [ - "Rewrite requested resources url before is was authenticated and routed to a handler" - ], - "signature": [ - "(url: string) => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreRoutingResult", - "text": "OnPreRoutingResult" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_routing.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreRoutingToolkit.rewriteUrl.$1", - "type": "string", - "tags": [], - "label": "url", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_routing.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics", - "type": "Interface", - "tags": [], - "label": "OpsMetrics", - "description": [ - "\nRegroups metrics gathered by all the collectors.\nThis contains metrics about the os/runtime, the kibana process and the http server.\n" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics.collected_at", - "type": "Object", - "tags": [], - "label": "collected_at", - "description": [ - "Time metrics were recorded at." - ], - "signature": [ - "Date" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics.elasticsearch_client", - "type": "Object", - "tags": [], - "label": "elasticsearch_client", - "description": [ - "\nMetrics related to the elasticsearch client" - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.ElasticsearchClientsMetrics", - "text": "ElasticsearchClientsMetrics" - } - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics.process", - "type": "Object", - "tags": [], - "label": "process", - "description": [ - "\nProcess related metrics." - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.OpsProcessMetrics", - "text": "OpsProcessMetrics" - } - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics.processes", - "type": "Array", - "tags": [], - "label": "processes", - "description": [ - "Process related metrics. Reports an array of objects for each kibana pid." - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.OpsProcessMetrics", - "text": "OpsProcessMetrics" - }, - "[]" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics.os", - "type": "Object", - "tags": [], - "label": "os", - "description": [ - "OS related metrics" - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.OpsOsMetrics", - "text": "OpsOsMetrics" - } - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics.response_times", - "type": "Object", - "tags": [], - "label": "response_times", - "description": [ - "server response time stats" - ], - "signature": [ - "{ avg_in_millis: number; max_in_millis: number; }" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics.requests", - "type": "Object", - "tags": [], - "label": "requests", - "description": [ - "server requests stats" - ], - "signature": [ - "{ disconnects: number; total: number; statusCodes: Record; }" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsMetrics.concurrent_connections", - "type": "number", - "tags": [], - "label": "concurrent_connections", - "description": [ - "number of current concurrent connections to the server" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics", - "type": "Interface", - "tags": [], - "label": "OpsOsMetrics", - "description": [ - "\nOS related metrics" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.platform", - "type": "CompoundType", - "tags": [], - "label": "platform", - "description": [ - "The os platform" - ], - "signature": [ - "\"linux\" | \"aix\" | \"android\" | \"darwin\" | \"freebsd\" | \"haiku\" | \"openbsd\" | \"sunos\" | \"win32\" | \"cygwin\" | \"netbsd\"" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.platformRelease", - "type": "string", - "tags": [], - "label": "platformRelease", - "description": [ - "The os platform release, prefixed by the platform name" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.distro", - "type": "string", - "tags": [], - "label": "distro", - "description": [ - "The os distrib. Only present for linux platforms" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.distroRelease", - "type": "string", - "tags": [], - "label": "distroRelease", - "description": [ - "The os distrib release, prefixed by the os distrib. Only present for linux platforms" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.load", - "type": "Object", - "tags": [], - "label": "load", - "description": [ - "cpu load metrics" - ], - "signature": [ - "{ '1m': number; '5m': number; '15m': number; }" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.memory", - "type": "Object", - "tags": [], - "label": "memory", - "description": [ - "system memory usage metrics" - ], - "signature": [ - "{ total_in_bytes: number; free_in_bytes: number; used_in_bytes: number; }" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.uptime_in_millis", - "type": "number", - "tags": [], - "label": "uptime_in_millis", - "description": [ - "the OS uptime" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.cpuacct", - "type": "Object", - "tags": [], - "label": "cpuacct", - "description": [ - "cpu accounting metrics, undefined when not running in a cgroup" - ], - "signature": [ - "{ control_group: string; usage_nanos: number; } | undefined" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsOsMetrics.cpu", - "type": "Object", - "tags": [], - "label": "cpu", - "description": [ - "cpu cgroup metrics, undefined when not running in a cgroup" - ], - "signature": [ - "{ control_group: string; cfs_period_micros: number; cfs_quota_micros: number; stat: { number_of_elapsed_periods: number; number_of_times_throttled: number; time_throttled_nanos: number; }; } | undefined" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsProcessMetrics", - "type": "Interface", - "tags": [], - "label": "OpsProcessMetrics", - "description": [ - "\nProcess related metrics" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OpsProcessMetrics.pid", - "type": "number", - "tags": [], - "label": "pid", - "description": [ - "pid of the kibana process" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsProcessMetrics.memory", - "type": "Object", - "tags": [], - "label": "memory", - "description": [ - "process memory usage" - ], - "signature": [ - "{ heap: { total_in_bytes: number; used_in_bytes: number; size_limit: number; }; resident_set_size_in_bytes: number; }" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsProcessMetrics.event_loop_delay", - "type": "number", - "tags": [], - "label": "event_loop_delay", - "description": [ - "mean event loop delay since last collection" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsProcessMetrics.event_loop_delay_histogram", - "type": "Object", - "tags": [], - "label": "event_loop_delay_histogram", - "description": [ - "node event loop delay histogram since last collection" - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.IntervalHistogram", - "text": "IntervalHistogram" - } - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsProcessMetrics.uptime_in_millis", - "type": "number", - "tags": [], - "label": "uptime_in_millis", - "description": [ - "uptime of the kibana process" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsServerMetrics", - "type": "Interface", - "tags": [], - "label": "OpsServerMetrics", - "description": [ - "\nserver related metrics" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OpsServerMetrics.response_times", - "type": "Object", - "tags": [], - "label": "response_times", - "description": [ - "server response time stats" - ], - "signature": [ - "{ avg_in_millis: number; max_in_millis: number; }" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsServerMetrics.requests", - "type": "Object", - "tags": [], - "label": "requests", - "description": [ - "server requests stats" - ], - "signature": [ - "{ disconnects: number; total: number; statusCodes: Record; }" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OpsServerMetrics.concurrent_connections", - "type": "number", - "tags": [], - "label": "concurrent_connections", - "description": [ - "number of current concurrent connections to the server" - ], - "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OptInConfig", - "type": "Interface", - "tags": [], - "label": "OptInConfig", - "description": [ - "\n" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OptInConfig.global", - "type": "Object", - "tags": [], - "label": "global", - "description": [ - "\nControls the global enabled/disabled behaviour of the client and shippers." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfigPerType", - "text": "OptInConfigPerType" - } - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OptInConfig.event_types", - "type": "Object", - "tags": [], - "label": "event_types", - "description": [ - "\nControls if an event type should be disabled for a specific type of shipper." - ], - "signature": [ - "Record | undefined" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PackageInfo", - "type": "Interface", - "tags": [], - "label": "PackageInfo", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PackageInfo.version", - "type": "string", - "tags": [], - "label": "version", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PackageInfo.branch", - "type": "string", - "tags": [], - "label": "branch", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PackageInfo.buildNum", - "type": "number", - "tags": [], - "label": "buildNum", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PackageInfo.buildSha", - "type": "string", - "tags": [], - "label": "buildSha", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PackageInfo.dist", - "type": "boolean", - "tags": [], - "label": "dist", - "description": [], - "path": "packages/kbn-config/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PerformAuthorizationParams", - "type": "Interface", - "tags": [], - "label": "PerformAuthorizationParams", - "description": [ - "\nThe PerformAuthorizationParams interface contains settings for checking\n& enforcing authorization via the ISavedObjectsSecurityExtension." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.PerformAuthorizationParams", - "text": "PerformAuthorizationParams" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PerformAuthorizationParams.actions", - "type": "Object", - "tags": [], - "label": "actions", - "description": [ - "\nA set of actions to check." - ], - "signature": [ - "Set" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PerformAuthorizationParams.types", - "type": "Object", - "tags": [], - "label": "types", - "description": [ - "\nA set of types to check." - ], - "signature": [ - "Set" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PerformAuthorizationParams.spaces", - "type": "Object", - "tags": [], - "label": "spaces", - "description": [ - "\nA set of spaces to check (types to check comes from the typesAndSpaces map)." - ], - "signature": [ - "Set" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PerformAuthorizationParams.enforceMap", - "type": "Object", - "tags": [], - "label": "enforceMap", - "description": [ - "\nA map of types (key) to spaces (value) that will be affected by the action(s).\nIf undefined, enforce with be bypassed." - ], - "signature": [ - "Map> | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PerformAuthorizationParams.auditCallback", - "type": "Function", - "tags": [], - "label": "auditCallback", - "description": [ - "\nA callback intended to handle adding audit events in\nboth error (unauthorized), or success (authorized)\ncases" - ], - "signature": [ - "((error?: Error | undefined) => void) | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PerformAuthorizationParams.auditCallback.$1", - "type": "Object", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "Error | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.PerformAuthorizationParams.options", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "\nAuthorization options\nallowGlobalResource - whether or not to allow global resources, false if options are undefined" - ], - "signature": [ - "{ allowGlobalResource: boolean; } | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.Plugin", - "type": "Interface", - "tags": [], - "label": "Plugin", - "description": [ - "\nThe interface that should be returned by a `PluginInitializer` for a `standard` plugin.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.Plugin", - "text": "Plugin" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Plugin.setup", - "type": "Function", - "tags": [], - "label": "setup", - "description": [], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreSetup", - "text": "CoreSetup" - }, - ", plugins: TPluginsSetup) => TSetup" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Plugin.setup.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreSetup", - "text": "CoreSetup" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.Plugin.setup.$2", - "type": "Uncategorized", - "tags": [], - "label": "plugins", - "description": [], - "signature": [ - "TPluginsSetup" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Plugin.start", - "type": "Function", - "tags": [], - "label": "start", - "description": [], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - }, - ", plugins: TPluginsStart) => TStart" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.Plugin.start.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - } - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.Plugin.start.$2", - "type": "Uncategorized", - "tags": [], - "label": "plugins", - "description": [], - "signature": [ - "TPluginsStart" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.Plugin.stop", - "type": "Function", - "tags": [], - "label": "stop", - "description": [], - "signature": [ - "(() => void) | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginConfigDescriptor", - "type": "Interface", - "tags": [], - "label": "PluginConfigDescriptor", - "description": [ - "\nDescribes a plugin configuration properties.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.PluginConfigDescriptor", - "text": "PluginConfigDescriptor" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PluginConfigDescriptor.deprecations", - "type": "Function", - "tags": [], - "label": "deprecations", - "description": [ - "\nProvider for the {@link ConfigDeprecation} to apply to the plugin configuration." - ], - "signature": [ - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecationProvider", - "text": "ConfigDeprecationProvider" - }, - " | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginConfigDescriptor.exposeToBrowser", - "type": "Object", - "tags": [], - "label": "exposeToBrowser", - "description": [ - "\nList of configuration properties that will be available on the client-side plugin." - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.ExposedToBrowserDescriptor", - "text": "ExposedToBrowserDescriptor" - }, - " | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginConfigDescriptor.schema", - "type": "Object", - "tags": [], - "label": "schema", - "description": [ - "\nSchema to use to validate the plugin configuration.\n\n{@link PluginConfigSchema}" - ], - "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.Type", - "text": "Type" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginConfigDescriptor.exposeToUsage", - "type": "Object", - "tags": [], - "label": "exposeToUsage", - "description": [ - "\nExpose non-default configs to usage collection to be sent via telemetry.\nset a config to `true` to report the actual changed config value.\nset a config to `false` to report the changed config value as [redacted].\n\nAll changed configs except booleans and numbers will be reported\nas [redacted] unless otherwise specified.\n\n{@link MakeUsageFromSchema}" - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.MakeUsageFromSchema", - "text": "MakeUsageFromSchema" - }, - " | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginInitializerContext", - "type": "Interface", - "tags": [], - "label": "PluginInitializerContext", - "description": [ - "\nContext that's available to plugins during initialization stage.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.PluginInitializerContext", - "text": "PluginInitializerContext" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PluginInitializerContext.opaqueId", - "type": "Uncategorized", - "tags": [], - "label": "opaqueId", - "description": [], - "signature": [ - "symbol" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginInitializerContext.env", - "type": "Object", - "tags": [], - "label": "env", - "description": [], - "signature": [ - "{ mode: ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.EnvironmentMode", - "text": "EnvironmentMode" - }, - "; packageInfo: Readonly<", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.PackageInfo", - "text": "PackageInfo" - }, - ">; instanceUuid: string; configs: readonly string[]; }" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginInitializerContext.node", - "type": "Object", - "tags": [], - "label": "node", - "description": [ - "\nAccess the configuration for this particular Kibana node.\nCan be used to determine which `roles` the current process was started with.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-node-server", - "scope": "common", - "docId": "kibKbnCoreNodeServerPluginApi", - "section": "def-common.NodeInfo", - "text": "NodeInfo" - } - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginInitializerContext.logger", - "type": "Object", - "tags": [], - "label": "logger", - "description": [ - "\n{@link LoggerFactory | logger factory} instance already bound to the plugin's logging context\n" - ], - "signature": [ - { - "pluginId": "@kbn/logging", - "scope": "common", - "docId": "kibKbnLoggingPluginApi", - "section": "def-common.LoggerFactory", - "text": "LoggerFactory" - } - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginInitializerContext.config", - "type": "Object", - "tags": [], - "label": "config", - "description": [ - "\nAccessors for the plugin's configuration" - ], - "signature": [ - "{ legacy: { globalConfig$: ", - "Observable", - " moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; isLessThan: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; isEqualTo: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: ", - "ByteSizeValueUnit", - " | undefined) => string; }>; }>; }>>; get: () => Readonly<{ elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; isLessThan: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; isEqualTo: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: ", - "ByteSizeValueUnit", - " | undefined) => string; }>; }>; }>; }; create: () => ", - "Observable", - "; get: () => T; }" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest", - "type": "Interface", - "tags": [], - "label": "PluginManifest", - "description": [ - "\nDescribes the set of required and optional properties plugin can define in its\nmandatory JSON manifest file.\n" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "\nIdentifier of the plugin. Must be a string in camelCase. Part of a plugin public contract.\nOther plugins leverage it to access plugin API, navigate to the plugin, etc." - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "\nVersion of the plugin." - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.kibanaVersion", - "type": "string", - "tags": [], - "label": "kibanaVersion", - "description": [ - "\nThe version of Kibana the plugin is compatible with, defaults to \"version\"." - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.type", - "type": "Enum", - "tags": [], - "label": "type", - "description": [ - "\nType of the plugin, defaults to `standard`." - ], - "signature": [ - { - "pluginId": "@kbn/core-base-common", - "scope": "common", - "docId": "kibKbnCoreBaseCommonPluginApi", - "section": "def-common.PluginType", - "text": "PluginType" - } - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.configPath", - "type": "CompoundType", - "tags": [], - "label": "configPath", - "description": [ - "\nRoot {@link ConfigPath | configuration path} used by the plugin, defaults\nto \"id\" in snake_case format.\n" - ], - "signature": [ - "string | string[]" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.requiredPlugins", - "type": "Object", - "tags": [], - "label": "requiredPlugins", - "description": [ - "\nAn optional list of the other plugins that **must be** installed and enabled\nfor this plugin to function properly." - ], - "signature": [ - "readonly string[]" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.requiredBundles", - "type": "Object", - "tags": [], - "label": "requiredBundles", - "description": [ - "\nList of plugin ids that this plugin's UI code imports modules from that are\nnot in `requiredPlugins`.\n" - ], - "signature": [ - "readonly string[]" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.optionalPlugins", - "type": "Object", - "tags": [], - "label": "optionalPlugins", - "description": [ - "\nAn optional list of the other plugins that if installed and enabled **may be**\nleveraged by this plugin for some additional functionality but otherwise are\nnot required for this plugin to work properly." - ], - "signature": [ - "readonly string[]" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.ui", - "type": "boolean", - "tags": [], - "label": "ui", - "description": [ - "\nSpecifies whether plugin includes some client/browser specific functionality\nthat should be included into client bundle via `public/ui_plugin.js` file." - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.server", - "type": "boolean", - "tags": [], - "label": "server", - "description": [ - "\nSpecifies whether plugin includes some server-side specific functionality." - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.extraPublicDirs", - "type": "Array", - "tags": [ - "deprecated" - ], - "label": "extraPublicDirs", - "description": [ - "\nSpecifies directory names that can be imported by other ui-plugins built\nusing the same instance of the @kbn/optimizer. A temporary measure we plan\nto replace with better mechanisms for sharing static code between plugins" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts" - }, - { - "plugin": "@kbn/core-plugins-server-internal", - "path": "packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.serviceFolders", - "type": "Object", - "tags": [], - "label": "serviceFolders", - "description": [ - "\nOnly used for the automatically generated API documentation. Specifying service\nfolders will cause your plugin API reference to be broken up into sub sections." - ], - "signature": [ - "readonly string[] | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.owner", - "type": "Object", - "tags": [], - "label": "owner", - "description": [], - "signature": [ - "{ readonly name: string; readonly githubTeam?: string | undefined; }" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.description", - "type": "string", - "tags": [], - "label": "description", - "description": [ - "\nTODO: make required once all plugins specify this.\nA brief description of what this plugin does and any capabilities it provides." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginManifest.enabledOnAnonymousPages", - "type": "CompoundType", - "tags": [], - "label": "enabledOnAnonymousPages", - "description": [ - "\nSpecifies whether this plugin - and its required dependencies - will be enabled for anonymous pages (login page, status page when\nconfigured, etc.) Default is false." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PollEsNodesVersionOptions", - "type": "Interface", - "tags": [], - "label": "PollEsNodesVersionOptions", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PollEsNodesVersionOptions.internalClient", - "type": "Object", - "tags": [], - "label": "internalClient", - "description": [], - "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetResponse", - ">; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetResponse", - ", unknown>>; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetResponse", - ">; }; delete: { (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", - "default", - "; search: { >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchResponse", - ">; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchResponse", - ", unknown>>; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchResponse", - ">; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", - "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", - "default", - "; helpers: ", - "default", - "; child: (opts: ", - "ClientOptions", - ") => ", - "default", - "; autoscaling: ", - "default", - "; bulk: { (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "BulkResponse", - ">; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "BulkResponse", - ", unknown>>; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "BulkResponse", - ">; }; cat: ", - "default", - "; ccr: ", - "default", - "; clearScroll: { (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClearScrollResponse", - ">; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClearScrollResponse", - ", unknown>>; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClearScrollResponse", - ">; }; closePointInTime: { (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClosePointInTimeResponse", - ", unknown>>; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", - "default", - "; deleteByQuery: { (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "DeleteByQueryResponse", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; }; deleteByQueryRethrottle: { (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TasksTaskListResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; }; deleteScript: { (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; enrich: ", - "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; explain: { (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ExplainResponse", - ">; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ExplainResponse", - ", unknown>>; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ExplainResponse", - ">; }; features: ", - "default", - "; fieldCaps: { (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "FieldCapsResponse", - ">; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "FieldCapsResponse", - ", unknown>>; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "FieldCapsResponse", - ">; }; fleet: ", - "default", - "; getScript: { (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptResponse", - ">; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptResponse", - ", unknown>>; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptResponse", - ">; }; getScriptContext: { (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptContextResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; }; getScriptLanguages: { (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptLanguagesResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; }; getSource: { (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; graph: ", - "default", - "; ilm: ", - "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "InfoResponse", - ">; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "InfoResponse", - ", unknown>>; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "InfoResponse", - ">; }; ingest: ", - "default", - "; knnSearch: { (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "KnnSearchResponse", - ">; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "KnnSearchResponse", - ", unknown>>; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "KnnSearchResponse", - ">; }; license: ", - "default", - "; logstash: ", - "default", - "; mget: { (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MgetResponse", - ">; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MgetResponse", - ", unknown>>; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MgetResponse", - ">; }; migration: ", - "default", - "; ml: ", - "default", - "; msearch: { >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchResponse", - ">; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchResponse", - ", unknown>>; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchResponse", - ">; }; msearchTemplate: { >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchTemplateResponse", - ", unknown>>; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; }; mtermvectors: { (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MtermvectorsResponse", - ", unknown>>; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "OpenPointInTimeResponse", - ", unknown>>; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; rankEval: { (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RankEvalResponse", - ">; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RankEvalResponse", - ", unknown>>; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RankEvalResponse", - ">; }; reindex: { (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexResponse", - ">; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexResponse", - ", unknown>>; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexResponse", - ">; }; reindexRethrottle: { (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexRethrottleResponse", - ", unknown>>; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; }; renderSearchTemplate: { (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RenderSearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; }; rollup: ", - "default", - "; scriptsPainlessExecute: { (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScriptsPainlessExecuteResponse", - ", unknown>>; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; }; scroll: { >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScrollResponse", - ">; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScrollResponse", - ", unknown>>; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScrollResponse", - ">; }; searchMvt: { (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; searchShards: { (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchShardsResponse", - ">; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchShardsResponse", - ", unknown>>; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchShardsResponse", - ">; }; searchTemplate: { (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; }; searchableSnapshots: ", - "default", - "; shutdown: ", - "default", - "; slm: ", - "default", - "; snapshot: ", - "default", - "; sql: ", - "default", - "; ssl: ", - "default", - "; tasks: ", - "default", - "; termsEnum: { (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermsEnumResponse", - ">; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermsEnumResponse", - ", unknown>>; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermsEnumResponse", - ">; }; termvectors: { (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermvectorsResponse", - ">; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermvectorsResponse", - ", unknown>>; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermvectorsResponse", - ">; }; textStructure: ", - "default", - "; transform: ", - "default", - "; updateByQuery: { (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; }; updateByQueryRethrottle: { (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryRethrottleResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; }; watcher: ", - "default", - "; xpack: ", - "default", - "; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PollEsNodesVersionOptions.log", - "type": "Object", - "tags": [], - "label": "log", - "description": [], - "signature": [ - { - "pluginId": "@kbn/logging", - "scope": "common", - "docId": "kibKbnLoggingPluginApi", - "section": "def-common.Logger", - "text": "Logger" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PollEsNodesVersionOptions.kibanaVersion", - "type": "string", - "tags": [], - "label": "kibanaVersion", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PollEsNodesVersionOptions.ignoreVersionMismatch", - "type": "boolean", - "tags": [], - "label": "ignoreVersionMismatch", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PollEsNodesVersionOptions.esVersionCheckInterval", - "type": "number", - "tags": [], - "label": "esVersionCheckInterval", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/version_check/ensure_es_version.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PrebootCoreRequestHandlerContext", - "type": "Interface", - "tags": [], - "label": "PrebootCoreRequestHandlerContext", - "description": [], - "path": "packages/core/http/core-http-request-handler-context-server/src/preboot_request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PrebootCoreRequestHandlerContext.uiSettings", - "type": "Object", - "tags": [], - "label": "uiSettings", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-request-handler-context-server", - "scope": "common", - "docId": "kibKbnCoreHttpRequestHandlerContextServerPluginApi", - "section": "def-common.PrebootUiSettingsRequestHandlerContext", - "text": "PrebootUiSettingsRequestHandlerContext" - } - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/preboot_request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PrebootPlugin", - "type": "Interface", - "tags": [], - "label": "PrebootPlugin", - "description": [ - "\nThe interface that should be returned by a `PluginInitializer` for a `preboot` plugin.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.PrebootPlugin", - "text": "PrebootPlugin" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PrebootPlugin.setup", - "type": "Function", - "tags": [], - "label": "setup", - "description": [], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CorePreboot", - "text": "CorePreboot" - }, - ", plugins: TPluginsSetup) => TSetup" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PrebootPlugin.setup.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CorePreboot", - "text": "CorePreboot" - } - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.PrebootPlugin.setup.$2", - "type": "Uncategorized", - "tags": [], - "label": "plugins", - "description": [], - "signature": [ - "TPluginsSetup" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.PrebootPlugin.stop", - "type": "Function", - "tags": [], - "label": "stop", - "description": [], - "signature": [ - "(() => void) | undefined" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PrebootRequestHandlerContext", - "type": "Interface", - "tags": [], - "label": "PrebootRequestHandlerContext", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-request-handler-context-server", - "scope": "common", - "docId": "kibKbnCoreHttpRequestHandlerContextServerPluginApi", - "section": "def-common.PrebootRequestHandlerContext", - "text": "PrebootRequestHandlerContext" - }, - " extends ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandlerContextBase", - "text": "RequestHandlerContextBase" - } - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/preboot_request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PrebootRequestHandlerContext.core", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - "Promise<", - { - "pluginId": "@kbn/core-http-request-handler-context-server", - "scope": "common", - "docId": "kibKbnCoreHttpRequestHandlerContextServerPluginApi", - "section": "def-common.PrebootCoreRequestHandlerContext", - "text": "PrebootCoreRequestHandlerContext" - }, - ">" - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/preboot_request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RedactNamespacesParams", - "type": "Interface", - "tags": [], - "label": "RedactNamespacesParams", - "description": [ - "\nThe RedactNamespacesParams interface contains settings for filtering\nnamespace access via the ISavedObjectsSecurityExtension." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.RedactNamespacesParams", - "text": "RedactNamespacesParams" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RedactNamespacesParams.savedObject", - "type": "Object", - "tags": [], - "label": "savedObject", - "description": [ - "\nrelevant saved object" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RedactNamespacesParams.typeMap", - "type": "Object", - "tags": [], - "label": "typeMap", - "description": [ - "\nThe authorization map from CheckAuthorizationResult: a map of\ntype to record of action/AuthorizationTypeEntry\n(spaces/globallyAuthz'd)" - ], - "signature": [ - "Map>" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RegisterDeprecationsConfig", - "type": "Interface", - "tags": [], - "label": "RegisterDeprecationsConfig", - "description": [], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RegisterDeprecationsConfig.getDeprecations", - "type": "Function", - "tags": [], - "label": "getDeprecations", - "description": [], - "signature": [ - "(context: ", - { - "pluginId": "@kbn/core-deprecations-server", - "scope": "common", - "docId": "kibKbnCoreDeprecationsServerPluginApi", - "section": "def-common.GetDeprecationsContext", - "text": "GetDeprecationsContext" - }, - ") => ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - "<", - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DeprecationsDetails", - "text": "DeprecationsDetails" - }, - "[]>" - ], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RegisterDeprecationsConfig.getDeprecations.$1", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-server", - "scope": "common", - "docId": "kibKbnCoreDeprecationsServerPluginApi", - "section": "def-common.GetDeprecationsContext", - "text": "GetDeprecationsContext" - } - ], - "path": "packages/core/deprecations/core-deprecations-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RequestHandlerContext", - "type": "Interface", - "tags": [], - "label": "RequestHandlerContext", - "description": [ - "\nBase context passed to a route handler, containing the `core` context part.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-request-handler-context-server", - "scope": "common", - "docId": "kibKbnCoreHttpRequestHandlerContextServerPluginApi", - "section": "def-common.RequestHandlerContext", - "text": "RequestHandlerContext" - }, - " extends ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandlerContextBase", - "text": "RequestHandlerContextBase" - } - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RequestHandlerContext.core", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - "Promise<", - { - "pluginId": "@kbn/core-http-request-handler-context-server", - "scope": "common", - "docId": "kibKbnCoreHttpRequestHandlerContextServerPluginApi", - "section": "def-common.CoreRequestHandlerContext", - "text": "CoreRequestHandlerContext" - }, - ">" - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ResolveCapabilitiesOptions", - "type": "Interface", - "tags": [], - "label": "ResolveCapabilitiesOptions", - "description": [ - "\nDefines a set of additional options for the `resolveCapabilities` method of {@link CapabilitiesStart}.\n" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ResolveCapabilitiesOptions.useDefaultCapabilities", - "type": "boolean", - "tags": [], - "label": "useDefaultCapabilities", - "description": [ - "\nIndicates if capability switchers are supposed to return a default set of capabilities." - ], - "path": "packages/core/capabilities/core-capabilities-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfig", - "type": "Interface", - "tags": [], - "label": "RouteConfig", - "description": [ - "\nRoute specific configuration." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteConfig.path", - "type": "string", - "tags": [], - "label": "path", - "description": [ - "\nThe endpoint _within_ the router path to register the route.\n" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfig.validate", - "type": "CompoundType", - "tags": [], - "label": "validate", - "description": [ - "\nA schema created with `@kbn/config-schema` that every request will be validated against.\n" - ], - "signature": [ - "false | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidatorFullConfig", - "text": "RouteValidatorFullConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfig.options", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "\nAdditional route options {@link RouteConfigOptions}." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfigOptions", - "text": "RouteConfigOptions" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptions", - "type": "Interface", - "tags": [], - "label": "RouteConfigOptions", - "description": [ - "\nAdditional route options." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfigOptions", - "text": "RouteConfigOptions" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptions.authRequired", - "type": "CompoundType", - "tags": [], - "label": "authRequired", - "description": [ - "\nDefines authentication mode for a route:\n- true. A user has to have valid credentials to access a resource\n- false. A user can access a resource without any credentials.\n- 'optional'. A user can access a resource, and will be authenticated if provided credentials are valid.\n Can be useful when we grant access to a resource but want to identify a user if possible.\n\nDefaults to `true` if an auth mechanism is registered." - ], - "signature": [ - "boolean | \"optional\" | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptions.xsrfRequired", - "type": "Uncategorized", - "tags": [], - "label": "xsrfRequired", - "description": [ - "\nDefines xsrf protection requirements for a route:\n- true. Requires an incoming POST/PUT/DELETE request to contain `kbn-xsrf` header.\n- false. Disables xsrf protection.\n\nSet to true by default" - ], - "signature": [ - "(Method extends \"get\" ? never : boolean) | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptions.tags", - "type": "Object", - "tags": [], - "label": "tags", - "description": [ - "\nAdditional metadata tag strings to attach to the route." - ], - "signature": [ - "readonly string[] | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptions.body", - "type": "Uncategorized", - "tags": [], - "label": "body", - "description": [ - "\nAdditional body options {@link RouteConfigOptionsBody}." - ], - "signature": [ - "(Method extends \"options\" | \"get\" ? undefined : ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfigOptionsBody", - "text": "RouteConfigOptionsBody" - }, - ") | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptions.timeout", - "type": "Object", - "tags": [], - "label": "timeout", - "description": [ - "\nDefines per-route timeouts." - ], - "signature": [ - "{ payload?: (Method extends \"options\" | \"get\" ? undefined : number) | undefined; idleSocket?: number | undefined; } | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptionsBody", - "type": "Interface", - "tags": [], - "label": "RouteConfigOptionsBody", - "description": [ - "\nAdditional body options for a route" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptionsBody.accepts", - "type": "CompoundType", - "tags": [], - "label": "accepts", - "description": [ - "\nA string or an array of strings with the allowed mime types for the endpoint. Use this settings to limit the set of allowed mime types. Note that allowing additional mime types not listed\nabove will not enable them to be parsed, and if parse is true, the request will result in an error response.\n\nDefault value: allows parsing of the following mime types:\n* application/json\n* application/*+json\n* application/octet-stream\n* application/x-www-form-urlencoded\n* multipart/form-data\n* text/*" - ], - "signature": [ - "string | string[] | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteContentType", - "text": "RouteContentType" - }, - "[] | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptionsBody.maxBytes", - "type": "number", - "tags": [], - "label": "maxBytes", - "description": [ - "\nLimits the size of incoming payloads to the specified byte count. Allowing very large payloads may cause the server to run out of memory.\n\nDefault value: The one set in the kibana.yml config file under the parameter `server.maxPayload`." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptionsBody.output", - "type": "CompoundType", - "tags": [], - "label": "output", - "description": [ - "\nThe processed payload format. The value must be one of:\n* 'data' - the incoming payload is read fully into memory. If parse is true, the payload is parsed (JSON, form-decoded, multipart) based on the 'Content-Type' header. If parse is false, a raw\nBuffer is returned.\n* 'stream' - the incoming payload is made available via a Stream.Readable interface. If the payload is 'multipart/form-data' and parse is true, field values are presented as text while files\nare provided as streams. File streams from a 'multipart/form-data' upload will also have a hapi property containing the filename and headers properties. Note that payload streams for multipart\npayloads are a synthetic interface created on top of the entire multipart content loaded into memory. To avoid loading large multipart payloads into memory, set parse to false and handle the\nmultipart payload in the handler using a streaming parser (e.g. pez).\n\nDefault value: 'data', unless no validation.body is provided in the route definition. In that case the default is 'stream' to alleviate memory pressure." - ], - "signature": [ - "\"data\" | \"stream\" | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteConfigOptionsBody.parse", - "type": "CompoundType", - "tags": [], - "label": "parse", - "description": [ - "\nDetermines if the incoming payload is processed or presented raw. Available values:\n* true - if the request 'Content-Type' matches the allowed mime types set by allow (for the whole payload as well as parts), the payload is converted into an object when possible. If the\nformat is unknown, a Bad Request (400) error response is sent. Any known content encoding is decoded.\n* false - the raw payload is returned unmodified.\n* 'gunzip' - the raw payload is returned unmodified after any known content encoding is decoded.\n\nDefault value: true, unless no validation.body is provided in the route definition. In that case the default is false to alleviate memory pressure." - ], - "signature": [ - "boolean | \"gunzip\" | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidationResultFactory", - "type": "Interface", - "tags": [], - "label": "RouteValidationResultFactory", - "description": [ - "\nValidation result factory to be used in the custom validation function to return the valid data or validation errors\n\nSee {@link RouteValidationFunction}.\n" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteValidationResultFactory.ok", - "type": "Function", - "tags": [], - "label": "ok", - "description": [], - "signature": [ - "(value: T) => { value: T; }" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteValidationResultFactory.ok.$1", - "type": "Uncategorized", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "T" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidationResultFactory.badRequest", - "type": "Function", - "tags": [], - "label": "badRequest", - "description": [], - "signature": [ - "(error: string | Error, path?: string[] | undefined) => { error: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationError", - "text": "RouteValidationError" - }, - "; }" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteValidationResultFactory.badRequest.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "string | Error" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidationResultFactory.badRequest.$2", - "type": "Array", - "tags": [], - "label": "path", - "description": [], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidatorConfig", - "type": "Interface", - "tags": [], - "label": "RouteValidatorConfig", - "description": [ - "\nThe configuration object to the RouteValidator class.\nSet `params`, `query` and/or `body` to specify the validation logic to follow for that property.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidatorConfig", - "text": "RouteValidatorConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteValidatorConfig.params", - "type": "CompoundType", - "tags": [], - "label": "params", - "description": [ - "\nValidation logic for the URL params" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationSpec", - "text": "RouteValidationSpec" - }, - "

| undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidatorConfig.query", - "type": "CompoundType", - "tags": [], - "label": "query", - "description": [ - "\nValidation logic for the Query params" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationSpec", - "text": "RouteValidationSpec" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidatorConfig.body", - "type": "CompoundType", - "tags": [], - "label": "body", - "description": [ - "\nValidation logic for the body payload" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationSpec", - "text": "RouteValidationSpec" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidatorOptions", - "type": "Interface", - "tags": [], - "label": "RouteValidatorOptions", - "description": [ - "\nAdditional options for the RouteValidator class to modify its default behaviour.\n" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteValidatorOptions.unsafe", - "type": "Object", - "tags": [], - "label": "unsafe", - "description": [ - "\nSet the `unsafe` config to avoid running some additional internal *safe* validations on top of your custom validation" - ], - "signature": [ - "{ params?: boolean | undefined; query?: boolean | undefined; body?: boolean | undefined; } | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject", - "type": "Interface", - "tags": [], - "label": "SavedObject", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of this Saved Object, guaranteed to be unique for all objects of the same `type`" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - " The type of Saved Object. Each plugin can define it's own custom Saved Object types." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "An opaque version number which changes on each successful write operation. Can be used for implementing optimistic concurrency control." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.created_at", - "type": "string", - "tags": [], - "label": "created_at", - "description": [ - "Timestamp of the time this document had been created." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.updated_at", - "type": "string", - "tags": [], - "label": "updated_at", - "description": [ - "Timestamp of the last time this document had been updated." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.error", - "type": "Object", - "tags": [], - "label": "error", - "description": [ - "Error associated with this object, populated if an operation failed for this object." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectError", - "text": "SavedObjectError" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.attributes", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "The data for a Saved Object is stored as an object in the `attributes` property." - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "{@inheritdoc SavedObjectReference}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.migrationVersion", - "type": "Object", - "tags": [], - "label": "migrationVersion", - "description": [ - "{@inheritdoc SavedObjectsMigrationVersion}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsMigrationVersion", - "text": "SavedObjectsMigrationVersion" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.coreMigrationVersion", - "type": "string", - "tags": [], - "label": "coreMigrationVersion", - "description": [ - "A semver value that is used when upgrading objects between Kibana versions." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.namespaces", - "type": "Array", - "tags": [], - "label": "namespaces", - "description": [ - "\nSpace(s) that this saved object exists in. This attribute is not used for \"global\" saved object types which are registered with\n`namespaceType: 'agnostic'`." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObject.originId", - "type": "string", - "tags": [], - "label": "originId", - "description": [ - "\nThe ID of the saved object this originated from. This is set if this object's `id` was regenerated; that can happen during migration\nfrom a legacy single-namespace type, or during import. It is only set during migration or create operations. This is used during import\nto ensure that ID regeneration is deterministic, so saved objects will be overwritten if they are imported multiple times into a given\nspace." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectAttributes", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectAttributes", - "description": [ - "\nThe data for a Saved Object is stored as an object in the `attributes`\nproperty.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-common", - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts" - }, - { - "plugin": "@kbn/core-saved-objects-common", - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts" - }, - { - "plugin": "@kbn/core-saved-objects-common", - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts" - }, - { - "plugin": "@kbn/core-saved-objects-server", - "path": "packages/core/saved-objects/core-saved-objects-server/index.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/actions_client.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/actions_client.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/actions_client.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/actions_client.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/actions_client.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/actions_client.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/actions_client.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/types.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/types.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/types.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/types.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/types.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/types.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/common/rule.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/common/rule.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/common/rule.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/common/rule.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/common/rule.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/common/rule.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/common/rule.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/common/rule.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/rules_client/common/inject_references.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/rules_client/common/inject_references.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/types.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/types.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/types.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/types.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/types.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/types.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/types.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/types.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/server/routes/custom_elements/find.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/server/routes/custom_elements/find.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/server/routes/workpad/find.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/server/routes/workpad/find.ts" - }, - { - "plugin": "enterpriseSearch", - "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" - }, - { - "plugin": "enterpriseSearch", - "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" - }, - { - "plugin": "enterpriseSearch", - "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_migrations.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_migrations.ts" - }, - { - "plugin": "taskManager", - "path": "x-pack/plugins/task_manager/server/task_store.test.ts" - }, - { - "plugin": "taskManager", - "path": "x-pack/plugins/task_manager/server/task_store.test.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/dashboard_saved_object/migrations/migrate_extract_panel_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/dashboard_saved_object/migrations/migrate_extract_panel_references.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/usage/dashboard_telemetry.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/usage/dashboard_telemetry.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/usage/find_by_value_embeddables.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/usage/find_by_value_embeddables.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/server/saved_objects/search_migrations.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/server/saved_objects/search_migrations.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/saved_objects/migrations/7.11/index.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/saved_objects/migrations/7.11/index.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/saved_objects/migrations/7.15/index.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/saved_objects/migrations/7.15/index.ts" - }, - { - "plugin": "@kbn/core-saved-objects-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectAttributes.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[key: string]: SavedObjectAttribute", - "description": [], - "signature": [ - "[key: string]: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectAttribute", - "text": "SavedObjectAttribute" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectExportBaseOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectExportBaseOptions", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectExportBaseOptions.request", - "type": "Object", - "tags": [], - "label": "request", - "description": [ - "The http request initiating the export." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectExportBaseOptions.includeReferencesDeep", - "type": "CompoundType", - "tags": [], - "label": "includeReferencesDeep", - "description": [ - "flag to also include all related saved objects in the export stream." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectExportBaseOptions.includeNamespaces", - "type": "CompoundType", - "tags": [], - "label": "includeNamespaces", - "description": [ - "\nFlag to also include namespace information in the export stream. By default, namespace information is not included in exported objects.\nThis is only intended to be used internally during copy-to-space operations, and it is not exposed as an option for the external HTTP\nroute for exports." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectExportBaseOptions.excludeExportDetails", - "type": "CompoundType", - "tags": [], - "label": "excludeExportDetails", - "description": [ - "flag to not append {@link SavedObjectsExportResultDetails | export details} to the end of the export stream." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectExportBaseOptions.namespace", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "optional namespace to override the namespace used by the savedObjectsClient." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationContext", - "type": "Interface", - "tags": [], - "label": "SavedObjectMigrationContext", - "description": [ - "\nMigration context provided when invoking a {@link SavedObjectMigrationFn | migration handler}\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationContext.log", - "type": "Object", - "tags": [], - "label": "log", - "description": [ - "\nlogger instance to be used by the migration handler" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsMigrationLogger", - "text": "SavedObjectsMigrationLogger" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationContext.migrationVersion", - "type": "string", - "tags": [], - "label": "migrationVersion", - "description": [ - "\nThe migration version that this migration function is defined for" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationContext.convertToMultiNamespaceTypeVersion", - "type": "string", - "tags": [ - "deprecated" - ], - "label": "convertToMultiNamespaceTypeVersion", - "description": [ - "\nThe version in which this object type is being converted to a multi-namespace type" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "encryptedSavedObjects", - "path": "x-pack/plugins/encrypted_saved_objects/server/create_migration.ts" - }, - { - "plugin": "encryptedSavedObjects", - "path": "x-pack/plugins/encrypted_saved_objects/server/create_migration.ts" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationContext.isSingleNamespaceType", - "type": "boolean", - "tags": [], - "label": "isSingleNamespaceType", - "description": [ - "\nWhether this is a single-namespace type or not" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationMap", - "type": "Interface", - "tags": [], - "label": "SavedObjectMigrationMap", - "description": [ - "\nA map of {@link SavedObjectMigrationFn | migration functions} to be used for a given type.\nThe map's keys must be valid semver versions, and they cannot exceed the current Kibana version.\n\nFor a given document, only migrations with a higher version number than that of the document will be applied.\nMigrations are executed in order, starting from the lowest version and ending with the highest one.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationMap.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[version: string]: SavedObjectMigrationFn", - "description": [], - "signature": [ - "[version: string]: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationFn", - "text": "SavedObjectMigrationFn" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReference", - "type": "Interface", - "tags": [], - "label": "SavedObjectReference", - "description": [ - "\nA reference to another saved object.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReference.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReference.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReference.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext", - "type": "Interface", - "tags": [], - "label": "SavedObjectReferenceWithContext", - "description": [ - "\nA returned input object or one of its references, with additional context.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the referenced object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the referenced object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext.originId", - "type": "string", - "tags": [], - "label": "originId", - "description": [ - "The origin ID of the referenced object (if it has one)" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext.spaces", - "type": "Array", - "tags": [], - "label": "spaces", - "description": [ - "The space(s) that the referenced object exists in" - ], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext.inboundReferences", - "type": "Array", - "tags": [], - "label": "inboundReferences", - "description": [ - "\nReferences to this object; note that this does not contain _all inbound references everywhere for this object_, it only contains\ninbound references for the scope of this operation" - ], - "signature": [ - "{ type: string; id: string; name: string; }[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext.isMissing", - "type": "CompoundType", - "tags": [], - "label": "isMissing", - "description": [ - "Whether or not this object or reference is missing" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext.spacesWithMatchingAliases", - "type": "Array", - "tags": [], - "label": "spacesWithMatchingAliases", - "description": [ - "The space(s) that legacy URL aliases matching this type/id exist in" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectReferenceWithContext.spacesWithMatchingOrigins", - "type": "Array", - "tags": [], - "label": "spacesWithMatchingOrigins", - "description": [ - "The space(s) that objects matching this origin exist in (including this one)" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBaseOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBaseOptions", - "description": [ - "\nBase options used by most of the savedObject APIs." - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBaseOptions.namespace", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "Specify the namespace for this operation" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkCreateObject", - "description": [ - "\nObject parameters for the bulk create operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "Optional ID of the object to create (the ID is generated by default)" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of object to create" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.attributes", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "The attributes for the object to create" - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "The version string for the object to create" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "Array of references to other saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.migrationVersion", - "type": "Object", - "tags": [], - "label": "migrationVersion", - "description": [ - "{@inheritDoc SavedObjectsMigrationVersion}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsMigrationVersion", - "text": "SavedObjectsMigrationVersion" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.coreMigrationVersion", - "type": "string", - "tags": [], - "label": "coreMigrationVersion", - "description": [ - "\nA semver value that is used when upgrading objects between Kibana versions. If undefined, this will be automatically set to the current\nKibana version when the object is created. If this is set to a non-semver value, or it is set to a semver value greater than the\ncurrent Kibana version, it will result in an error.\n" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.originId", - "type": "string", - "tags": [], - "label": "originId", - "description": [ - "Optional ID of the original saved object, if this object's `id` was regenerated" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkCreateObject.initialNamespaces", - "type": "Array", - "tags": [], - "label": "initialNamespaces", - "description": [ - "\nOptional initial namespaces for the object to be created in. If this is defined, it will supersede the namespace ID that is in\n{@link SavedObjectsCreateOptions}.\n\n* For shareable object types (registered with `namespaceType: 'multiple'`): this option can be used to specify one or more spaces,\n including the \"All spaces\" identifier (`'*'`).\n* For isolated object types (registered with `namespaceType: 'single'` or `namespaceType: 'multiple-isolated'`): this option can only\n be used to specify a single space, and the \"All spaces\" identifier (`'*'`) is not allowed.\n* For global object types (registered with `namespaceType: 'agnostic'`): this option cannot be used." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkDeleteObject", - "description": [ - "\nObject parameters for the bulk delete operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the saved object to delete" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the saved object to delete" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkDeleteOptions", - "description": [ - "\nOptions for the bulk delete operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "The Elasticsearch Refresh setting for this operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.MutatingOperationRefreshSetting", - "text": "MutatingOperationRefreshSetting" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteOptions.force", - "type": "CompoundType", - "tags": [], - "label": "force", - "description": [ - "\nForce deletion of all objects that exists in multiple namespaces, applied to all objects." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkDeleteResponse", - "description": [ - "\nReturn type of the Saved Objects `bulkDelete()` method\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteResponse.statuses", - "type": "Array", - "tags": [], - "label": "statuses", - "description": [ - "Array of {@link SavedObjectsBulkDeleteStatus}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteStatus", - "text": "SavedObjectsBulkDeleteStatus" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteStatus", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkDeleteStatus", - "description": [ - "\nThe per-object result of a bulk delete operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteStatus.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteStatus.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteStatus.success", - "type": "boolean", - "tags": [], - "label": "success", - "description": [ - "The status of deleting the object: true for deleted, false for error" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkDeleteStatus.error", - "type": "Object", - "tags": [], - "label": "error", - "description": [ - "Reason the object could not be deleted (success is false)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectError", - "text": "SavedObjectError" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_delete.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkGetObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkGetObject", - "description": [ - "\nObject parameters for the bulk get operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_get.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkGetObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "ID of the object to get" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_get.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkGetObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "Type of the object to get" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_get.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkGetObject.fields", - "type": "Array", - "tags": [], - "label": "fields", - "description": [ - "SavedObject fields to include in the response" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_get.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkGetObject.namespaces", - "type": "Array", - "tags": [], - "label": "namespaces", - "description": [ - "\nOptional namespace(s) for the object to be retrieved in. If this is defined, it will supersede the namespace ID that is in the\ntop-level options.\n\n* For shareable object types (registered with `namespaceType: 'multiple'`): this option can be used to specify one or more spaces,\n including the \"All spaces\" identifier (`'*'`).\n* For isolated object types (registered with `namespaceType: 'single'` or `namespaceType: 'multiple-isolated'`): this option can only\n be used to specify a single space, and the \"All spaces\" identifier (`'*'`) is not allowed.\n* For global object types (registered with `namespaceType: 'agnostic'`): this option cannot be used." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_get.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkResolveObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkResolveObject", - "description": [ - "\nObject parameters for the bulk resolve operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_resolve.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkResolveObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "ID of the object to resiolve" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_resolve.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkResolveObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "Type of the object to resolve" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_resolve.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkResolveResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkResolveResponse", - "description": [ - "\nReturn type of the Saved Objects `bulkResolve()` method.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveResponse", - "text": "SavedObjectsBulkResolveResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_resolve.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkResolveResponse.resolved_objects", - "type": "Array", - "tags": [], - "label": "resolved_objects", - "description": [ - "array of {@link SavedObjectsResolveResponse}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsResolveResponse", - "text": "SavedObjectsResolveResponse" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_resolve.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkResponse", - "description": [ - "\nBase return for saved object bulk operations\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResponse", - "text": "SavedObjectsBulkResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkResponse.saved_objects", - "type": "Array", - "tags": [], - "label": "saved_objects", - "description": [ - "array of saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkUpdateObject", - "description": [ - "\nObject parameters for the bulk update operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - " extends Pick<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - ", \"version\" | \"references\">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of this Saved Object, guaranteed to be unique for all objects of the same `type`" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - " The type of this Saved Object. Each plugin can define it's own custom Saved Object types." - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateObject.attributes", - "type": "Object", - "tags": [], - "label": "attributes", - "description": [ - "The data for a Saved Object is stored as an object in the `attributes` property." - ], - "signature": [ - "{ [P in keyof T]?: T[P] | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateObject.namespace", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "\nOptional namespace string to use when searching for this object. If this is defined, it will supersede the namespace ID that is in\n{@link SavedObjectsBulkUpdateOptions}.\n\nNote: the default namespace's string representation is `'default'`, and its ID representation is `undefined`." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkUpdateOptions", - "description": [ - "\nOptions for the saved objects bulk update operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateOptions", - "text": "SavedObjectsBulkUpdateOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "The Elasticsearch Refresh setting for this operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.MutatingOperationRefreshSetting", - "text": "MutatingOperationRefreshSetting" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsBulkUpdateResponse", - "description": [ - "\nReturn type of the Saved Objects `bulkUpdate()` method.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateResponse", - "text": "SavedObjectsBulkUpdateResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsBulkUpdateResponse.saved_objects", - "type": "Array", - "tags": [], - "label": "saved_objects", - "description": [ - "array of {@link SavedObjectsUpdateResponse}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCheckConflictsObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsCheckConflictsObject", - "description": [ - "\nObject parameters for the check conficts operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/check_conflicts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCheckConflictsObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the object to check" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/check_conflicts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCheckConflictsObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the object to check" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/check_conflicts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCheckConflictsResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsCheckConflictsResponse", - "description": [ - "\nReturn type of the Saved Objects `checkConflicts()` method.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/check_conflicts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCheckConflictsResponse.errors", - "type": "Array", - "tags": [], - "label": "errors", - "description": [ - "Array of errors (contains the conflicting object ID, type, and error details)" - ], - "signature": [ - "{ id: string; type: string; error: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectError", - "text": "SavedObjectError" - }, - "; }[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/check_conflicts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract", - "type": "Interface", - "tags": [], - "label": "SavedObjectsClientContract", - "description": [ - "\nSaved Objects is Kibana's data persisentence mechanism allowing plugins to\nuse Elasticsearch for storing plugin state.\n\n## SavedObjectsClient errors\n\nSince the SavedObjectsClient has its hands in everything we\nare a little paranoid about the way we present errors back to\nto application code. Ideally, all errors will be either:\n\n 1. Caused by bad implementation (ie. undefined is not a function) and\n as such unpredictable\n 2. An error that has been classified and decorated appropriately\n by the decorators in {@link SavedObjectsErrorHelpers}\n\nType 1 errors are inevitable, but since all expected/handle-able errors\nshould be Type 2 the `isXYZError()` helpers exposed at\n`SavedObjectsErrorHelpers` should be used to understand and manage error\nresponses from the `SavedObjectsClient`.\n\nType 2 errors are decorated versions of the source error, so if\nthe elasticsearch client threw an error it will be decorated based\non its type. That means that rather than looking for `error.body.error.type` or\ndoing substring checks on `error.body.error.reason`, just use the helpers to\nunderstand the meaning of the error:\n\n ```js\n if (SavedObjectsErrorHelpers.isNotFoundError(error)) {\n // handle 404\n }\n\n if (SavedObjectsErrorHelpers.isNotAuthorizedError(error)) {\n // 401 handling should be automatic, but in case you wanted to know\n }\n\n // always rethrow the error unless you handle it\n throw error;\n ```\n\n### 404s from missing index\n\nFrom the perspective of application code and APIs the SavedObjectsClient is\na black box that persists objects. One of the internal details that users have\nno control over is that we use an elasticsearch index for persistence and that\nindex might be missing.\n\nAt the time of writing we are in the process of transitioning away from the\noperating assumption that the SavedObjects index is always available. Part of\nthis transition is handling errors resulting from an index missing. These used\nto trigger a 500 error in most cases, and in others cause 404s with different\nerror messages.\n\nFrom my (Spencer) perspective, a 404 from the SavedObjectsApi is a 404; The\nobject the request/call was targeting could not be found. This is why #14141\ntakes special care to ensure that 404 errors are generic and don't distinguish\nbetween index missing or document missing.\n\nSee {@link SavedObjectsClient}\nSee {@link SavedObjectsErrorHelpers}\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.create", - "type": "Function", - "tags": [], - "label": "create", - "description": [ - "\nPersists a SavedObject\n" - ], - "signature": [ - "(type: string, attributes: T, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.create.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of saved object to create" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.create.$2", - "type": "Uncategorized", - "tags": [], - "label": "attributes", - "description": [ - "- attributes for the saved object" - ], - "signature": [ - "T" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.create.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsCreateOptions } - options for the create operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the created saved object" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkCreate", - "type": "Function", - "tags": [], - "label": "bulkCreate", - "description": [ - "\nPersists multiple documents batched together as a single request\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResponse", - "text": "SavedObjectsBulkResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkCreate.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to create (contains type, attributes, and optional fields )" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkCreateObject", - "text": "SavedObjectsBulkCreateObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkCreate.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsCreateOptions } - options for the bulk create operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsBulkResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.checkConflicts", - "type": "Function", - "tags": [], - "label": "checkConflicts", - "description": [ - "\nCheck what conflicts will result when creating a given array of saved objects. This includes \"unresolvable conflicts\", which are\nmulti-namespace objects that exist in a different namespace; such conflicts cannot be resolved/overwritten.\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsObject", - "text": "SavedObjectsCheckConflictsObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsResponse", - "text": "SavedObjectsCheckConflictsResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.checkConflicts.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to check (contains ID and type)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCheckConflictsObject", - "text": "SavedObjectsCheckConflictsObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.checkConflicts.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the check conflicts operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsCheckConflictsResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.delete", - "type": "Function", - "tags": [], - "label": "delete", - "description": [ - "\nDeletes a SavedObject\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - }, - " | undefined) => Promise<{}>" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.delete.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of saved object to delete" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.delete.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the saved object to delete" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.delete.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsDeleteOptions } - options for the delete operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkDelete", - "type": "Function", - "tags": [], - "label": "bulkDelete", - "description": [ - "\nDeletes multiple SavedObjects batched together as a single request\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteObject", - "text": "SavedObjectsBulkDeleteObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteResponse", - "text": "SavedObjectsBulkDeleteResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkDelete.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to delete (contains ID and type)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteObject", - "text": "SavedObjectsBulkDeleteObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkDelete.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBulkDeleteOptions } - options for the bulk delete operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkDeleteOptions", - "text": "SavedObjectsBulkDeleteOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsBulkDeleteResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.find", - "type": "Function", - "tags": [], - "label": "find", - "description": [ - "\nFind all SavedObjects matching the search query\n" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - }, - ") => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.find.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsFindOptions } - options for the find operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "the {@link SavedObjectsFindResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkGet", - "type": "Function", - "tags": [], - "label": "bulkGet", - "description": [ - "\nReturns an array of objects by id\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkGetObject", - "text": "SavedObjectsBulkGetObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResponse", - "text": "SavedObjectsBulkResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkGet.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to get (contains id, type, and optional fields)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkGetObject", - "text": "SavedObjectsBulkGetObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkGet.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the bulk get operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsBulkResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nRetrieves a single object\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.get.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- The type of the object to retrieve" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.get.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- The ID of the object to retrieve" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.get.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the get operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkResolve", - "type": "Function", - "tags": [ - "note" - ], - "label": "bulkResolve", - "description": [ - "\nResolves an array of objects by id, using any legacy URL aliases if they exist\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveObject", - "text": "SavedObjectsBulkResolveObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveResponse", - "text": "SavedObjectsBulkResolveResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkResolve.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- an array of objects to resolve (contains id and type)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkResolveObject", - "text": "SavedObjectsBulkResolveObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkResolve.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the bulk resolve operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsBulkResolveResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.resolve", - "type": "Function", - "tags": [], - "label": "resolve", - "description": [ - "\nResolves a single object, using any legacy URL alias if it exists\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsResolveResponse", - "text": "SavedObjectsResolveResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.resolve.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- The type of SavedObject to retrieve" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.resolve.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- The ID of the SavedObject to retrieve" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.resolve.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBaseOptions } - options for the resolve operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsResolveResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.update", - "type": "Function", - "tags": [], - "label": "update", - "description": [ - "\nUpdates an SavedObject\n" - ], - "signature": [ - "(type: string, id: string, attributes: Partial, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.update.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- The type of SavedObject to update" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.update.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- The ID of the SavedObject to update" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.update.$3", - "type": "Object", - "tags": [], - "label": "attributes", - "description": [ - "- Attributes to update" - ], - "signature": [ - "Partial" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.update.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsUpdateOptions } - options for the update operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsUpdateResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkUpdate", - "type": "Function", - "tags": [], - "label": "bulkUpdate", - "description": [ - "\nBulk Updates multiple SavedObject at once\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateOptions", - "text": "SavedObjectsBulkUpdateOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateResponse", - "text": "SavedObjectsBulkUpdateResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkUpdate.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to update (contains ID, type, attributes, and optional namespace)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateObject", - "text": "SavedObjectsBulkUpdateObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.bulkUpdate.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsBulkUpdateOptions } - options for the bulkUpdate operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBulkUpdateOptions", - "text": "SavedObjectsBulkUpdateOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsBulkUpdateResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.removeReferencesTo", - "type": "Function", - "tags": [], - "label": "removeReferencesTo", - "description": [ - "\nUpdates all objects containing a reference to the given {type, id} tuple to remove the said reference.\n" - ], - "signature": [ - "(type: string, id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToOptions", - "text": "SavedObjectsRemoveReferencesToOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToResponse", - "text": "SavedObjectsRemoveReferencesToResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.removeReferencesTo.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "- the type of the object to remove references to" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.removeReferencesTo.$2", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the object to remove references to" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.removeReferencesTo.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsRemoveReferencesToOptions } - options for the remove references opertion" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToOptions", - "text": "SavedObjectsRemoveReferencesToOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsRemoveReferencesToResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.openPointInTimeForType", - "type": "Function", - "tags": [], - "label": "openPointInTimeForType", - "description": [ - "\nOpens a Point In Time (PIT) against the indices for the specified Saved Object types.\nThe returned `id` can then be passed to {@link SavedObjectsClient.find} to search\nagainst that PIT.\n\nOnly use this API if you have an advanced use case that's not solved by the\n{@link SavedObjectsClient.createPointInTimeFinder} method.\n" - ], - "signature": [ - "(type: string | string[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeOptions", - "text": "SavedObjectsOpenPointInTimeOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeResponse", - "text": "SavedObjectsOpenPointInTimeResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.openPointInTimeForType.$1", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [ - "- the type or array of types" - ], - "signature": [ - "string | string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.openPointInTimeForType.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsOpenPointInTimeOptions } - options for the open PIT for type operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeOptions", - "text": "SavedObjectsOpenPointInTimeOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsOpenPointInTimeResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.closePointInTime", - "type": "Function", - "tags": [], - "label": "closePointInTime", - "description": [ - "\nCloses a Point In Time (PIT) by ID. This simply proxies the request to ES via the\nElasticsearch client, and is included in the Saved Objects Client as a convenience\nfor consumers who are using {@link SavedObjectsClient.openPointInTimeForType}.\n\nOnly use this API if you have an advanced use case that's not solved by the\n{@link SavedObjectsClient.createPointInTimeFinder} method.\n" - ], - "signature": [ - "(id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClosePointInTimeResponse", - "text": "SavedObjectsClosePointInTimeResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.closePointInTime.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "- the ID of the PIT to close" - ], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.closePointInTime.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsClosePointInTimeOptions } - options for the close PIT operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsClosePointInTimeResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.createPointInTimeFinder", - "type": "Function", - "tags": [], - "label": "createPointInTimeFinder", - "description": [ - "\nReturns a {@link ISavedObjectsPointInTimeFinder} to help page through\nlarge sets of saved objects. We strongly recommend using this API for\nany `find` queries that might return more than 1000 saved objects,\nhowever this API is only intended for use in server-side \"batch\"\nprocessing of objects where you are collecting all objects in memory\nor streaming them back to the client.\n\nDo NOT use this API in a route handler to facilitate paging through\nsaved objects on the client-side unless you are streaming all of the\nresults back to the client at once. Because the returned generator is\nstateful, you cannot rely on subsequent http requests retrieving new\npages from the same Kibana server in multi-instance deployments.\n\nThe generator wraps calls to {@link SavedObjectsClient.find} and iterates\nover multiple pages of results using `_pit` and `search_after`. This will\nopen a new Point-In-Time (PIT), and continue paging until a set of\nresults is received that's smaller than the designated `perPage`.\n\nOnce you have retrieved all of the results you need, it is recommended\nto call `close()` to clean up the PIT and prevent Elasticsearch from\nconsuming resources unnecessarily. This is only required if you are\ndone iterating and have not yet paged through all of the results: the\nPIT will automatically be closed for you once you reach the last page\nof results, or if the underlying call to `find` fails for any reason.\n" - ], - "signature": [ - "(findOptions: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderOptions", - "text": "SavedObjectsCreatePointInTimeFinderOptions" - }, - ", dependencies?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderDependencies", - "text": "SavedObjectsCreatePointInTimeFinderDependencies" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsPointInTimeFinder", - "text": "ISavedObjectsPointInTimeFinder" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.createPointInTimeFinder.$1", - "type": "Object", - "tags": [], - "label": "findOptions", - "description": [ - "{@link SavedObjectsCreatePointInTimeFinderOptions } - options for the create PIT finder operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderOptions", - "text": "SavedObjectsCreatePointInTimeFinderOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.createPointInTimeFinder.$2", - "type": "Object", - "tags": [], - "label": "dependencies", - "description": [ - "{@link SavedObjectsCreatePointInTimeFinderDependencies } - dependencies for the create PIT fimder operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreatePointInTimeFinderDependencies", - "text": "SavedObjectsCreatePointInTimeFinderDependencies" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the created PIT finder" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.collectMultiNamespaceReferences", - "type": "Function", - "tags": [], - "label": "collectMultiNamespaceReferences", - "description": [ - "\nGets all references and transitive references of the listed objects. Ignores any object that is not a multi-namespace type.\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesObject", - "text": "SavedObjectsCollectMultiNamespaceReferencesObject" - }, - "[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesOptions", - "text": "SavedObjectsCollectMultiNamespaceReferencesOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesResponse", - "text": "SavedObjectsCollectMultiNamespaceReferencesResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.collectMultiNamespaceReferences.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to collect references for (contains ID and type)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesObject", - "text": "SavedObjectsCollectMultiNamespaceReferencesObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.collectMultiNamespaceReferences.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsCollectMultiNamespaceReferencesOptions } - options for the collect multi namespace references operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesOptions", - "text": "SavedObjectsCollectMultiNamespaceReferencesOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsCollectMultiNamespaceReferencesResponse }" - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.updateObjectsSpaces", - "type": "Function", - "tags": [], - "label": "updateObjectsSpaces", - "description": [ - "\nUpdates one or more objects to add and/or remove them from specified spaces.\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesObject", - "text": "SavedObjectsUpdateObjectsSpacesObject" - }, - "[], spacesToAdd: string[], spacesToRemove: string[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesOptions", - "text": "SavedObjectsUpdateObjectsSpacesOptions" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesResponse", - "text": "SavedObjectsUpdateObjectsSpacesResponse" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.updateObjectsSpaces.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "- array of objects to update (contains ID, type, and optional internal-only parameters)" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesObject", - "text": "SavedObjectsUpdateObjectsSpacesObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.updateObjectsSpaces.$2", - "type": "Array", - "tags": [], - "label": "spacesToAdd", - "description": [ - "- array of spaces each object should be included in" - ], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.updateObjectsSpaces.$3", - "type": "Array", - "tags": [], - "label": "spacesToRemove", - "description": [ - "- array of spaces each object should not be included in" - ], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientContract.updateObjectsSpaces.$4", - "type": "Object", - "tags": [], - "label": "options", - "description": [ - "{@link SavedObjectsUpdateObjectsSpacesOptions } - options for the update spaces operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesOptions", - "text": "SavedObjectsUpdateObjectsSpacesOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [ - "the {@link SavedObjectsUpdateObjectsSpacesResponse }" - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientProviderOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsClientProviderOptions", - "description": [ - "\nOptions to control the creation of the Saved Objects Client." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientProviderOptions.includedHiddenTypes", - "type": "Array", - "tags": [], - "label": "includedHiddenTypes", - "description": [ - "Array of hidden types to include" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientProviderOptions.excludedExtensions", - "type": "Array", - "tags": [], - "label": "excludedExtensions", - "description": [ - "array of extensions to exclude (ENCRYPTION_EXTENSION_ID | SECURITY_EXTENSION_ID | SPACES_EXTENSION_ID)" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClosePointInTimeResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsClosePointInTimeResponse", - "description": [ - "\nReturn type of the Saved Objects `closePointInTime()` method.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/close_point_in_time.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClosePointInTimeResponse.succeeded", - "type": "boolean", - "tags": [], - "label": "succeeded", - "description": [ - "If true, all search contexts associated with the PIT id are successfully closed" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/close_point_in_time.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClosePointInTimeResponse.num_freed", - "type": "number", - "tags": [], - "label": "num_freed", - "description": [ - "The number of search contexts that have been successfully closed" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/close_point_in_time.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCollectMultiNamespaceReferencesObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsCollectMultiNamespaceReferencesObject", - "description": [ - "\nAn object to collect references for. It must be a multi-namespace type (in other words, the object type must be registered with the\n`namespaceType: 'multiple'` or `namespaceType: 'multiple-isolated'` option).\n\nNote: if options.purpose is 'updateObjectsSpaces', it must be a shareable type (in other words, the object type must be registered with\nthe `namespaceType: 'multiple'`).\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCollectMultiNamespaceReferencesObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the object to collect references for" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCollectMultiNamespaceReferencesObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the object to collect references for" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCollectMultiNamespaceReferencesOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsCollectMultiNamespaceReferencesOptions", - "description": [ - "\nOptions for collecting references.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCollectMultiNamespaceReferencesOptions", - "text": "SavedObjectsCollectMultiNamespaceReferencesOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCollectMultiNamespaceReferencesOptions.purpose", - "type": "CompoundType", - "tags": [], - "label": "purpose", - "description": [ - "Optional purpose used to determine filtering and authorization checks; default is 'collectMultiNamespaceReferences'" - ], - "signature": [ - "\"collectMultiNamespaceReferences\" | \"updateObjectsSpaces\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCollectMultiNamespaceReferencesResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsCollectMultiNamespaceReferencesResponse", - "description": [ - "\nThe response when object references are collected.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCollectMultiNamespaceReferencesResponse.objects", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "array of {@link SavedObjectReferenceWithContext}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectReferenceWithContext", - "text": "SavedObjectReferenceWithContext" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/collect_multinamespace_references.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsCreateOptions", - "description": [ - "\nOptions for the saved objects create operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsCreateOptions", - "text": "SavedObjectsCreateOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "(not recommended) Specify an id for the document" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.overwrite", - "type": "CompoundType", - "tags": [], - "label": "overwrite", - "description": [ - "Overwrite existing documents (defaults to false)" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "\nAn opaque version number which changes on each successful write operation.\nCan be used in conjunction with `overwrite` for implementing optimistic concurrency control." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.migrationVersion", - "type": "Object", - "tags": [], - "label": "migrationVersion", - "description": [ - "{@inheritDoc SavedObjectsMigrationVersion}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsMigrationVersion", - "text": "SavedObjectsMigrationVersion" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.coreMigrationVersion", - "type": "string", - "tags": [], - "label": "coreMigrationVersion", - "description": [ - "\nA semver value that is used when upgrading objects between Kibana versions. If undefined, this will be automatically set to the current\nKibana version when the object is created. If this is set to a non-semver value, or it is set to a semver value greater than the\ncurrent Kibana version, it will result in an error.\n" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "Array of references to other saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "The Elasticsearch Refresh setting for this operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.MutatingOperationRefreshSetting", - "text": "MutatingOperationRefreshSetting" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.originId", - "type": "string", - "tags": [], - "label": "originId", - "description": [ - "Optional ID of the original saved object, if this object's `id` was regenerated" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreateOptions.initialNamespaces", - "type": "Array", - "tags": [], - "label": "initialNamespaces", - "description": [ - "\nOptional initial namespaces for the object to be created in. If this is defined, it will supersede the namespace ID that is in\n{@link SavedObjectsCreateOptions}.\n\n* For shareable object types (registered with `namespaceType: 'multiple'`): this option can be used to specify one or more spaces,\n including the \"All spaces\" identifier (`'*'`).\n* For isolated object types (registered with `namespaceType: 'single'` or `namespaceType: 'multiple-isolated'`): this option can only\n be used to specify a single space, and the \"All spaces\" identifier (`'*'`) is not allowed.\n* For global object types (registered with `namespaceType: 'agnostic'`): this option cannot be used." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreatePointInTimeFinderDependencies", - "type": "Interface", - "tags": [], - "label": "SavedObjectsCreatePointInTimeFinderDependencies", - "description": [ - "\nDependencies for the create point-in-time finder operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create_point_in_time_finder.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreatePointInTimeFinderDependencies.client", - "type": "Object", - "tags": [], - "label": "client", - "description": [ - "the point-in-time finder client" - ], - "signature": [ - "{ find: (options: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - }, - ", internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - ">; closePointInTime: (id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined, internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClosePointInTimeResponse", - "text": "SavedObjectsClosePointInTimeResponse" - }, - ">; openPointInTimeForType: (type: string | string[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeOptions", - "text": "SavedObjectsOpenPointInTimeOptions" - }, - " | undefined, internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeResponse", - "text": "SavedObjectsOpenPointInTimeResponse" - }, - ">; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create_point_in_time_finder.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsDeleteByNamespaceOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsDeleteByNamespaceOptions", - "description": [ - "\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteByNamespaceOptions", - "text": "SavedObjectsDeleteByNamespaceOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/delete_by_namespace.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsDeleteByNamespaceOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "The Elasticsearch supports only boolean flag for this operation" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/delete_by_namespace.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsDeleteOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsDeleteOptions", - "description": [ - "\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsDeleteOptions", - "text": "SavedObjectsDeleteOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/delete.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsDeleteOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "The Elasticsearch Refresh setting for this operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.MutatingOperationRefreshSetting", - "text": "MutatingOperationRefreshSetting" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/delete.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsDeleteOptions.force", - "type": "CompoundType", - "tags": [], - "label": "force", - "description": [ - "Force deletion of an object that exists in multiple namespaces" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/delete.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportByObjectOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsExportByObjectOptions", - "description": [ - "\nOptions for the {@link ISavedObjectsExporter.exportByObjects | export by objects API}\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportByObjectOptions", - "text": "SavedObjectsExportByObjectOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectExportBaseOptions", - "text": "SavedObjectExportBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportByObjectOptions.objects", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "optional array of objects to export." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectTypeIdTuple", - "text": "SavedObjectTypeIdTuple" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportByTypeOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsExportByTypeOptions", - "description": [ - "\nOptions for the {@link ISavedObjectsExporter.exportByTypes | export by type API}\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportByTypeOptions", - "text": "SavedObjectsExportByTypeOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectExportBaseOptions", - "text": "SavedObjectExportBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportByTypeOptions.types", - "type": "Array", - "tags": [], - "label": "types", - "description": [ - "array of saved object types." - ], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportByTypeOptions.hasReference", - "type": "Array", - "tags": [], - "label": "hasReference", - "description": [ - "optional array of references to search object for." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportByTypeOptions.search", - "type": "string", - "tags": [], - "label": "search", - "description": [ - "optional query string to filter exported objects." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportExcludedObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsExportExcludedObject", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportExcludedObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "id of the excluded object" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportExcludedObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "type of the excluded object" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportExcludedObject.reason", - "type": "string", - "tags": [], - "label": "reason", - "description": [ - "optional cause of the exclusion" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportResultDetails", - "type": "Interface", - "tags": [], - "label": "SavedObjectsExportResultDetails", - "description": [ - "\nStructure of the export result details entry" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportResultDetails.exportedCount", - "type": "number", - "tags": [], - "label": "exportedCount", - "description": [ - "number of successfully exported objects" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportResultDetails.missingRefCount", - "type": "number", - "tags": [], - "label": "missingRefCount", - "description": [ - "number of missing references" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportResultDetails.missingReferences", - "type": "Array", - "tags": [], - "label": "missingReferences", - "description": [ - "missing references details" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectTypeIdTuple", - "text": "SavedObjectTypeIdTuple" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportResultDetails.excludedObjectsCount", - "type": "number", - "tags": [], - "label": "excludedObjectsCount", - "description": [ - "number of objects that were excluded from the export" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportResultDetails.excludedObjects", - "type": "Array", - "tags": [], - "label": "excludedObjects", - "description": [ - "excluded objects details" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportExcludedObject", - "text": "SavedObjectsExportExcludedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportTransformContext", - "type": "Interface", - "tags": [], - "label": "SavedObjectsExportTransformContext", - "description": [ - "\nContext passed down to a {@link SavedObjectsExportTransform | export transform function}\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportTransformContext.request", - "type": "Object", - "tags": [], - "label": "request", - "description": [ - "\nThe request that initiated the export request. Can be used to create scoped\nservices or client inside the {@link SavedObjectsExportTransform | transformation}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExtensions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsExtensions", - "description": [ - "\nThe SavedObjectsExtensions interface contains the intefaces for three\nextensions to the saved objects repository. These extensions augment\nthe funtionality of the saved objects repository to provide encryption,\nsecurity, and spaces features." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/extensions.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExtensions.encryptionExtension", - "type": "Object", - "tags": [], - "label": "encryptionExtension", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsEncryptionExtension", - "text": "ISavedObjectsEncryptionExtension" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/extensions.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExtensions.securityExtension", - "type": "Object", - "tags": [], - "label": "securityExtension", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsSecurityExtension", - "text": "ISavedObjectsSecurityExtension" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/extensions.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExtensions.spacesExtension", - "type": "Object", - "tags": [], - "label": "spacesExtension", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsSpacesExtension", - "text": "ISavedObjectsSpacesExtension" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/extensions.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsFindOptions", - "description": [ - "\nOptions for finding saved objects\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.type", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [ - "the type or types of objects to find" - ], - "signature": [ - "string | string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.page", - "type": "number", - "tags": [], - "label": "page", - "description": [ - "the page of results to return" - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.perPage", - "type": "number", - "tags": [], - "label": "perPage", - "description": [ - "the number of objects per page" - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.sortField", - "type": "string", - "tags": [], - "label": "sortField", - "description": [ - "which field to sort by" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.sortOrder", - "type": "CompoundType", - "tags": [], - "label": "sortOrder", - "description": [ - "sort order, ascending or descending" - ], - "signature": [ - "SortOrder", - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.fields", - "type": "Array", - "tags": [], - "label": "fields", - "description": [ - "\nAn array of fields to include in the results" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.search", - "type": "string", - "tags": [], - "label": "search", - "description": [ - "Search documents using the Elasticsearch Simple Query String syntax. See Elasticsearch Simple Query String `query` argument for more information" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.searchFields", - "type": "Array", - "tags": [], - "label": "searchFields", - "description": [ - "The fields to perform the parsed query against. See Elasticsearch Simple Query String `fields` argument for more information" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.searchAfter", - "type": "Array", - "tags": [], - "label": "searchAfter", - "description": [ - "\nUse the sort values from the previous page to retrieve the next page of results." - ], - "signature": [ - "SortResults", - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.rootSearchFields", - "type": "Array", - "tags": [], - "label": "rootSearchFields", - "description": [ - "\nThe fields to perform the parsed query against. Unlike the `searchFields` argument, these are expected to be root fields and will not\nbe modified. If used in conjunction with `searchFields`, both are concatenated together." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.hasReference", - "type": "CompoundType", - "tags": [], - "label": "hasReference", - "description": [ - "\nSearch for documents having a reference to the specified objects.\nUse `hasReferenceOperator` to specify the operator to use when searching for multiple references." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.hasReferenceOperator", - "type": "CompoundType", - "tags": [], - "label": "hasReferenceOperator", - "description": [ - "\nThe operator to use when searching by multiple references using the `hasReference` option. Defaults to `OR`" - ], - "signature": [ - "\"AND\" | \"OR\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.hasNoReference", - "type": "CompoundType", - "tags": [], - "label": "hasNoReference", - "description": [ - "\nSearch for documents *not* having a reference to the specified objects.\nUse `hasNoReferenceOperator` to specify the operator to use when searching for multiple references." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.hasNoReferenceOperator", - "type": "CompoundType", - "tags": [], - "label": "hasNoReferenceOperator", - "description": [ - "\nThe operator to use when searching by multiple references using the `hasNoReference` option. Defaults to `OR`" - ], - "signature": [ - "\"AND\" | \"OR\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.defaultSearchOperator", - "type": "CompoundType", - "tags": [], - "label": "defaultSearchOperator", - "description": [ - "\nThe search operator to use with the provided filter. Defaults to `OR`" - ], - "signature": [ - "\"AND\" | \"OR\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.filter", - "type": "Any", - "tags": [], - "label": "filter", - "description": [ - "filter string for the search query" - ], - "signature": [ - "any" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.aggs", - "type": "Object", - "tags": [ - "alpha" - ], - "label": "aggs", - "description": [ - "\nA record of aggregations to perform.\nThe API currently only supports a limited set of metrics and bucket aggregation types.\nAdditional aggregation types can be contributed to Core.\n" - ], - "signature": [ - "Record | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.namespaces", - "type": "Array", - "tags": [], - "label": "namespaces", - "description": [ - "array of namespaces to search" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.typeToNamespacesMap", - "type": "Object", - "tags": [], - "label": "typeToNamespacesMap", - "description": [ - "\nThis map defines each type to search for, and the namespace(s) to search for the type in; this is only intended to be used by a saved\nobject client wrapper.\nIf this is defined, it supersedes the `type` and `namespaces` fields when building the Elasticsearch query.\nAny types that are not included in this map will be excluded entirely.\nIf a type is included but its value is undefined, the operation will search for that type in the Default namespace." - ], - "signature": [ - "Map | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.preference", - "type": "string", - "tags": [], - "label": "preference", - "description": [ - "An optional ES preference value to be used for the query" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptions.pit", - "type": "Object", - "tags": [], - "label": "pit", - "description": [ - "\nSearch against a specific Point In Time (PIT) that you've opened with {@link SavedObjectsClient.openPointInTimeForType}." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsPitParams", - "text": "SavedObjectsPitParams" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptionsReference", - "type": "Interface", - "tags": [], - "label": "SavedObjectsFindOptionsReference", - "description": [ - "\nAn object reference for use in find operation options\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptionsReference.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindOptionsReference.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsFindResponse", - "description": [ - "\nReturn type of the Saved Objects `find()` method.\n\n*Note*: this type is different between the Public and Server Saved Objects\nclients.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResponse.aggregations", - "type": "Uncategorized", - "tags": [], - "label": "aggregations", - "description": [ - "aggregations from the search query response" - ], - "signature": [ - "A | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResponse.saved_objects", - "type": "Array", - "tags": [], - "label": "saved_objects", - "description": [ - "array of found saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResult", - "text": "SavedObjectsFindResult" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResponse.total", - "type": "number", - "tags": [], - "label": "total", - "description": [ - "the total number of objects" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResponse.per_page", - "type": "number", - "tags": [], - "label": "per_page", - "description": [ - "the number of objects per page" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResponse.page", - "type": "number", - "tags": [], - "label": "page", - "description": [ - "the current page number" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResponse.pit_id", - "type": "string", - "tags": [], - "label": "pit_id", - "description": [ - "the point-in-time ID (undefined if not applicable)" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResult", - "type": "Interface", - "tags": [], - "label": "SavedObjectsFindResult", - "description": [ - "\nResults for a find operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResult", - "text": "SavedObjectsFindResult" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResult.score", - "type": "number", - "tags": [], - "label": "score", - "description": [ - "\nThe Elasticsearch `_score` of this result." - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFindResult.sort", - "type": "Array", - "tags": [], - "label": "sort", - "description": [ - "\nThe Elasticsearch `sort` value of this result.\n" - ], - "signature": [ - "SortResults", - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportActionRequiredWarning", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportActionRequiredWarning", - "description": [ - "\nA warning meant to notify that a specific user action is required to finalize the import\nof some type of object.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportActionRequiredWarning.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"action_required\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportActionRequiredWarning.message", - "type": "string", - "tags": [], - "label": "message", - "description": [ - "The translated message to display to the user." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportActionRequiredWarning.actionPath", - "type": "string", - "tags": [], - "label": "actionPath", - "description": [ - "The path (without the basePath) that the user should be redirect to address this warning." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportActionRequiredWarning.buttonLabel", - "type": "string", - "tags": [], - "label": "buttonLabel", - "description": [ - "An optional label to use for the link button. If unspecified, a default label will be used." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportAmbiguousConflictError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportAmbiguousConflictError", - "description": [ - "\nRepresents a failure to import due to a conflict, which can be resolved in different ways with an overwrite." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportAmbiguousConflictError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"ambiguous_conflict\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportAmbiguousConflictError.destinations", - "type": "Array", - "tags": [], - "label": "destinations", - "description": [], - "signature": [ - "{ id: string; title?: string | undefined; updatedAt?: string | undefined; }[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportConflictError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportConflictError", - "description": [ - "\nRepresents a failure to import due to a conflict." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportConflictError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"conflict\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportConflictError.destinationId", - "type": "string", - "tags": [], - "label": "destinationId", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportFailure", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportFailure", - "description": [ - "\nRepresents a failure to import." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportFailure.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportFailure.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportFailure.meta", - "type": "Object", - "tags": [], - "label": "meta", - "description": [], - "signature": [ - "{ title?: string | undefined; icon?: string | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportFailure.overwrite", - "type": "CompoundType", - "tags": [], - "label": "overwrite", - "description": [ - "\nIf `overwrite` is specified, an attempt was made to overwrite an existing object." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportFailure.error", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportConflictError", - "text": "SavedObjectsImportConflictError" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportAmbiguousConflictError", - "text": "SavedObjectsImportAmbiguousConflictError" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportUnsupportedTypeError", - "text": "SavedObjectsImportUnsupportedTypeError" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportMissingReferencesError", - "text": "SavedObjectsImportMissingReferencesError" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportUnknownError", - "text": "SavedObjectsImportUnknownError" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportHookResult", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportHookResult", - "description": [ - "\nResult from a {@link SavedObjectsImportHook | import hook}\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportHookResult.warnings", - "type": "Array", - "tags": [], - "label": "warnings", - "description": [ - "\nAn optional list of warnings to display in the UI when the import succeeds." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportWarning", - "text": "SavedObjectsImportWarning" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportMissingReferencesError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportMissingReferencesError", - "description": [ - "\nRepresents a failure to import due to missing references." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportMissingReferencesError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"missing_references\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportMissingReferencesError.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [], - "signature": [ - "{ type: string; id: string; }[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportOptions", - "description": [ - "\nOptions to control the import operation." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportOptions.readStream", - "type": "Object", - "tags": [], - "label": "readStream", - "description": [ - "The stream of {@link SavedObject | saved objects} to import" - ], - "signature": [ - "Readable" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportOptions.overwrite", - "type": "boolean", - "tags": [], - "label": "overwrite", - "description": [ - "If true, will override existing object if present. Note: this has no effect when used with the `createNewCopies` option." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportOptions.namespace", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "if specified, will import in given namespace, else will import as global object" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportOptions.createNewCopies", - "type": "boolean", - "tags": [], - "label": "createNewCopies", - "description": [ - "If true, will create new copies of import objects, each with a random `id` and undefined `originId`." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "Refresh setting, defaults to `wait_for`" - ], - "signature": [ - "boolean | \"wait_for\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportResponse", - "description": [ - "\nThe response describing the result of an import." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportResponse.success", - "type": "boolean", - "tags": [], - "label": "success", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportResponse.successCount", - "type": "number", - "tags": [], - "label": "successCount", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportResponse.successResults", - "type": "Array", - "tags": [], - "label": "successResults", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportSuccess", - "text": "SavedObjectsImportSuccess" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportResponse.warnings", - "type": "Array", - "tags": [], - "label": "warnings", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportWarning", - "text": "SavedObjectsImportWarning" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportResponse.errors", - "type": "Array", - "tags": [], - "label": "errors", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportFailure", - "text": "SavedObjectsImportFailure" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportRetry", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportRetry", - "description": [ - "\nDescribes a retry operation for importing a saved object." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportRetry.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportRetry.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportRetry.overwrite", - "type": "boolean", - "tags": [], - "label": "overwrite", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportRetry.destinationId", - "type": "string", - "tags": [], - "label": "destinationId", - "description": [ - "\nThe object ID that will be created or overwritten. If not specified, the `id` field will be used." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportRetry.replaceReferences", - "type": "Array", - "tags": [], - "label": "replaceReferences", - "description": [], - "signature": [ - "{ type: string; from: string; to: string; }[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportRetry.createNewCopy", - "type": "CompoundType", - "tags": [], - "label": "createNewCopy", - "description": [ - "\nIf `createNewCopy` is specified, the new object has a new (undefined) origin ID. This is only needed for the case where\n`createNewCopies` mode is disabled and ambiguous source conflicts are detected." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportRetry.ignoreMissingReferences", - "type": "CompoundType", - "tags": [], - "label": "ignoreMissingReferences", - "description": [ - "\nIf `ignoreMissingReferences` is specified, reference validation will be skipped for this object." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSimpleWarning", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportSimpleWarning", - "description": [ - "\nA simple informative warning that will be displayed to the user.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSimpleWarning.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"simple\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSimpleWarning.message", - "type": "string", - "tags": [], - "label": "message", - "description": [ - "The translated message to display to the user" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSuccess", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportSuccess", - "description": [ - "\nRepresents a successful import." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSuccess.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSuccess.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSuccess.destinationId", - "type": "string", - "tags": [], - "label": "destinationId", - "description": [ - "\nIf `destinationId` is specified, the new object has a new ID that is different from the import ID." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSuccess.createNewCopy", - "type": "CompoundType", - "tags": [ - "deprecated" - ], - "label": "createNewCopy", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "spaces", - "path": "x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_internal.tsx" - }, - { - "plugin": "savedObjectsManagement", - "path": "src/plugins/saved_objects_management/public/lib/resolve_import_errors.ts" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSuccess.meta", - "type": "Object", - "tags": [], - "label": "meta", - "description": [], - "signature": [ - "{ title?: string | undefined; icon?: string | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportSuccess.overwrite", - "type": "CompoundType", - "tags": [], - "label": "overwrite", - "description": [ - "\nIf `overwrite` is specified, this object overwrote an existing one (or will do so, in the case of a pending resolution)." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportUnknownError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportUnknownError", - "description": [ - "\nRepresents a failure to import due to an unknown reason." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportUnknownError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"unknown\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportUnknownError.message", - "type": "string", - "tags": [], - "label": "message", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportUnknownError.statusCode", - "type": "number", - "tags": [], - "label": "statusCode", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportUnsupportedTypeError", - "type": "Interface", - "tags": [], - "label": "SavedObjectsImportUnsupportedTypeError", - "description": [ - "\nRepresents a failure to import due to having an unsupported saved object type." - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportUnsupportedTypeError.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"unsupported_type\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsIncrementCounterField", - "type": "Interface", - "tags": [], - "label": "SavedObjectsIncrementCounterField", - "description": [ - "\nThe field and increment details for the increment counter operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/increment_counter.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsIncrementCounterField.fieldName", - "type": "string", - "tags": [], - "label": "fieldName", - "description": [ - "The field name to increment the counter by." - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/increment_counter.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsIncrementCounterField.incrementBy", - "type": "number", - "tags": [], - "label": "incrementBy", - "description": [ - "The number to increment the field by (defaults to 1)." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/increment_counter.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsIncrementCounterOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsIncrementCounterOptions", - "description": [ - "\nOptions for the increment counter operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsIncrementCounterOptions", - "text": "SavedObjectsIncrementCounterOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/increment_counter.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsIncrementCounterOptions.initialize", - "type": "CompoundType", - "tags": [], - "label": "initialize", - "description": [ - "\n(default=false) If true, sets all the counter fields to 0 if they don't\nalready exist. Existing fields will be left as-is and won't be incremented." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/increment_counter.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsIncrementCounterOptions.migrationVersion", - "type": "Object", - "tags": [], - "label": "migrationVersion", - "description": [ - "{@link SavedObjectsMigrationVersion}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsMigrationVersion", - "text": "SavedObjectsMigrationVersion" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/increment_counter.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsIncrementCounterOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "\n(default='wait_for') The Elasticsearch refresh setting for this\noperation. See {@link MutatingOperationRefreshSetting}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.MutatingOperationRefreshSetting", - "text": "MutatingOperationRefreshSetting" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/increment_counter.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsIncrementCounterOptions.upsertAttributes", - "type": "Uncategorized", - "tags": [], - "label": "upsertAttributes", - "description": [ - "\nAttributes to use when upserting the document if it doesn't exist." - ], - "signature": [ - "Attributes | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/increment_counter.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMappingProperties", - "type": "Interface", - "tags": [], - "label": "SavedObjectsMappingProperties", - "description": [ - "\nDescribe the fields of a {@link SavedObjectsTypeMappingDefinition | saved object type}.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMappingProperties.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[field: string]: SavedObjectsFieldMapping", - "description": [], - "signature": [ - "[field: string]: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsFieldMapping", - "text": "SavedObjectsFieldMapping" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger", - "type": "Interface", - "tags": [], - "label": "SavedObjectsMigrationLogger", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.debug", - "type": "Function", - "tags": [], - "label": "debug", - "description": [], - "signature": [ - "(msg: string) => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.debug.$1", - "type": "string", - "tags": [], - "label": "msg", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.info", - "type": "Function", - "tags": [], - "label": "info", - "description": [], - "signature": [ - "(msg: string) => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.info.$1", - "type": "string", - "tags": [], - "label": "msg", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.warn", - "type": "Function", - "tags": [], - "label": "warn", - "description": [], - "signature": [ - "(msg: string) => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.warn.$1", - "type": "string", - "tags": [], - "label": "msg", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.error", - "type": "Function", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "(msg: string, meta: Meta) => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.error.$1", - "type": "string", - "tags": [], - "label": "msg", - "description": [], - "signature": [ - "string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationLogger.error.$2", - "type": "Uncategorized", - "tags": [], - "label": "meta", - "description": [], - "signature": [ - "Meta" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationVersion", - "type": "Interface", - "tags": [], - "label": "SavedObjectsMigrationVersion", - "description": [ - "\nInformation about the migrations that have been applied to this SavedObject.\nWhen Kibana starts up, KibanaMigrator detects outdated documents and\nmigrates them based on this value. For each migration that has been applied,\nthe plugin's name is used as a key and the latest migration version as the\nvalue.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsMigrationVersion.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[pluginName: string]: string", - "description": [ - "The plugin name and version string" - ], - "signature": [ - "[pluginName: string]: string" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsOpenPointInTimeOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsOpenPointInTimeOptions", - "description": [ - "\nOptions for the open point-in-time for type operation\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/open_point_in_time_for_type.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsOpenPointInTimeOptions.keepAlive", - "type": "string", - "tags": [], - "label": "keepAlive", - "description": [ - "\nOptionally specify how long ES should keep the PIT alive until the next request. Defaults to `5m`." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/open_point_in_time_for_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsOpenPointInTimeOptions.preference", - "type": "string", - "tags": [], - "label": "preference", - "description": [ - "\nAn optional ES preference value to be used for the query." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/open_point_in_time_for_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsOpenPointInTimeOptions.namespaces", - "type": "Array", - "tags": [], - "label": "namespaces", - "description": [ - "\nAn optional list of namespaces to be used when opening the PIT.\n\nWhen the spaces plugin is enabled:\n - this will default to the user's current space (as determined by the URL)\n - if specified, the user's current space will be ignored\n - `['*']` will search across all available spaces" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/open_point_in_time_for_type.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsOpenPointInTimeResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsOpenPointInTimeResponse", - "description": [ - "\nReturn type of the Saved Objects `openPointInTimeForType()` method.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/open_point_in_time_for_type.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsOpenPointInTimeResponse.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "PIT ID returned from ES" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/open_point_in_time_for_type.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsPitParams", - "type": "Interface", - "tags": [], - "label": "SavedObjectsPitParams", - "description": [ - "\nPoint-in-time parameters\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsPitParams.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of point-in-time" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsPitParams.keepAlive", - "type": "string", - "tags": [], - "label": "keepAlive", - "description": [ - "Optionally specify how long ES should keep the PIT alive until the next request. Defaults to `5m`." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDoc", - "type": "Interface", - "tags": [], - "label": "SavedObjectsRawDoc", - "description": [ - "\nA raw document as represented directly in the saved object index.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDoc._id", - "type": "string", - "tags": [], - "label": "_id", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDoc._source", - "type": "Object", - "tags": [], - "label": "_source", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRawDocSource", - "text": "SavedObjectsRawDocSource" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDoc._seq_no", - "type": "number", - "tags": [], - "label": "_seq_no", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDoc._primary_term", - "type": "number", - "tags": [], - "label": "_primary_term", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocParseOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsRawDocParseOptions", - "description": [ - "\nOptions that can be specified when using the saved objects serializer to parse a raw document.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocParseOptions.namespaceTreatment", - "type": "CompoundType", - "tags": [], - "label": "namespaceTreatment", - "description": [ - "\nOptional setting to allow for lax handling of the raw document ID and namespace field. This is needed when a previously\nsingle-namespace object type is converted to a multi-namespace object type, and it is only intended to be used during upgrade\nmigrations.\n\nIf not specified, the default treatment is `strict`." - ], - "signature": [ - "\"strict\" | \"lax\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource", - "type": "Interface", - "tags": [], - "label": "SavedObjectsRawDocSource", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.namespace", - "type": "string", - "tags": [], - "label": "namespace", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.namespaces", - "type": "Array", - "tags": [], - "label": "namespaces", - "description": [], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.migrationVersion", - "type": "Object", - "tags": [], - "label": "migrationVersion", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsMigrationVersion", - "text": "SavedObjectsMigrationVersion" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.updated_at", - "type": "string", - "tags": [], - "label": "updated_at", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.created_at", - "type": "string", - "tags": [], - "label": "created_at", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.originId", - "type": "string", - "tags": [], - "label": "originId", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRawDocSource.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[typeMapping: string]: any", - "description": [], - "signature": [ - "[typeMapping: string]: any" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRemoveReferencesToOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsRemoveReferencesToOptions", - "description": [ - "\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToOptions", - "text": "SavedObjectsRemoveReferencesToOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/remove_references_to.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRemoveReferencesToOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "The Elasticsearch Refresh setting for this operation. Defaults to `true`" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/remove_references_to.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRemoveReferencesToResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsRemoveReferencesToResponse", - "description": [ - "\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsRemoveReferencesToResponse", - "text": "SavedObjectsRemoveReferencesToResponse" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/remove_references_to.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRemoveReferencesToResponse.updated", - "type": "number", - "tags": [], - "label": "updated", - "description": [ - "The number of objects that have been updated by this operation" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/remove_references_to.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepositoryFactory", - "type": "Interface", - "tags": [], - "label": "SavedObjectsRepositoryFactory", - "description": [ - "\nFactory provided when invoking a {@link SavedObjectsClientFactoryProvider | client factory provider}\nSee {@link SavedObjectsServiceSetup.setClientFactoryProvider}\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepositoryFactory.createScopedRepository", - "type": "Function", - "tags": [], - "label": "createScopedRepository", - "description": [ - "\nCreates a {@link ISavedObjectsRepository | Saved Objects repository} that\nuses the credentials from the passed in request to authenticate with\nElasticsearch.\n" - ], - "signature": [ - "(req: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", includedHiddenTypes?: string[] | undefined, extensions?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsRepository", - "text": "ISavedObjectsRepository" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepositoryFactory.createScopedRepository.$1", - "type": "Object", - "tags": [], - "label": "req", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepositoryFactory.createScopedRepository.$2", - "type": "Array", - "tags": [], - "label": "includedHiddenTypes", - "description": [ - "- A list of additional hidden types the repository should have access to." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepositoryFactory.createScopedRepository.$3", - "type": "Object", - "tags": [], - "label": "extensions", - "description": [ - "- Extensions that the repository should use (for encryption, security, and spaces)." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepositoryFactory.createInternalRepository", - "type": "Function", - "tags": [], - "label": "createInternalRepository", - "description": [ - "\nCreates a {@link ISavedObjectsRepository | Saved Objects repository} that\nuses the internal Kibana user for authenticating with Elasticsearch.\n" - ], - "signature": [ - "(includedHiddenTypes?: string[] | undefined, extensions?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsRepository", - "text": "ISavedObjectsRepository" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepositoryFactory.createInternalRepository.$1", - "type": "Array", - "tags": [], - "label": "includedHiddenTypes", - "description": [ - "- A list of additional hidden types the repository should have access to." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRepositoryFactory.createInternalRepository.$2", - "type": "Object", - "tags": [], - "label": "extensions", - "description": [ - "- Extensions that the repository should use (for encryption, security, and spaces)." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext", - "type": "Interface", - "tags": [], - "label": "SavedObjectsRequestHandlerContext", - "description": [ - "\nCore's `savedObjects` request handler context." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext.client", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext.typeRegistry", - "type": "Object", - "tags": [], - "label": "typeRegistry", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext.getClient", - "type": "Function", - "tags": [], - "label": "getClient", - "description": [], - "signature": [ - "(options?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsClientProviderOptions", - "text": "SavedObjectsClientProviderOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext.getClient.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsClientProviderOptions", - "text": "SavedObjectsClientProviderOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext.getExporter", - "type": "Function", - "tags": [], - "label": "getExporter", - "description": [], - "signature": [ - "(client: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsExporter", - "text": "ISavedObjectsExporter" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext.getExporter.$1", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext.getImporter", - "type": "Function", - "tags": [], - "label": "getImporter", - "description": [], - "signature": [ - "(client: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsImporter", - "text": "ISavedObjectsImporter" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsRequestHandlerContext.getImporter.$1", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveImportErrorsOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsResolveImportErrorsOptions", - "description": [ - "\nOptions to control the \"resolve import\" operation." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveImportErrorsOptions.readStream", - "type": "Object", - "tags": [], - "label": "readStream", - "description": [ - "The stream of {@link SavedObject | saved objects} to resolve errors from" - ], - "signature": [ - "Readable" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveImportErrorsOptions.retries", - "type": "Array", - "tags": [], - "label": "retries", - "description": [ - "saved object import references to retry" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportRetry", - "text": "SavedObjectsImportRetry" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveImportErrorsOptions.namespace", - "type": "string", - "tags": [], - "label": "namespace", - "description": [ - "if specified, will import in given namespace" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveImportErrorsOptions.createNewCopies", - "type": "boolean", - "tags": [], - "label": "createNewCopies", - "description": [ - "If true, will create new copies of import objects, each with a random `id` and undefined `originId`." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsResolveResponse", - "description": [ - "\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsResolveResponse", - "text": "SavedObjectsResolveResponse" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveResponse.saved_object", - "type": "Object", - "tags": [], - "label": "saved_object", - "description": [ - "\nThe saved object that was found." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveResponse.outcome", - "type": "CompoundType", - "tags": [], - "label": "outcome", - "description": [ - "\nThe outcome for a successful `resolve` call is one of the following values:\n\n * `'exactMatch'` -- One document exactly matched the given ID.\n * `'aliasMatch'` -- One document with a legacy URL alias matched the given ID; in this case the `saved_object.id` field is different\n than the given ID.\n * `'conflict'` -- Two documents matched the given ID, one was an exact match and another with a legacy URL alias; in this case the\n `saved_object` object is the exact match, and the `saved_object.id` field is the same as the given ID." - ], - "signature": [ - "\"conflict\" | \"exactMatch\" | \"aliasMatch\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveResponse.alias_target_id", - "type": "string", - "tags": [], - "label": "alias_target_id", - "description": [ - "\nThe ID of the object that the legacy URL alias points to.\n\n**Note:** this field is *only* included when an alias was found (in other words, when the outcome is `'aliasMatch'` or `'conflict'`)." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsResolveResponse.alias_purpose", - "type": "CompoundType", - "tags": [], - "label": "alias_purpose", - "description": [ - "\nThe reason this alias was created.\n\nCurrently this is used to determine whether or not a toast should be shown when a user is redirected from a legacy URL; if the alias\nwas created because of saved object conversion, then we will display a toast telling the user that the object has a new URL.\n\n**Note:** this field is *only* included when an alias was found (in other words, when the outcome is `'aliasMatch'` or `'conflict'`)." - ], - "signature": [ - "\"savedObjectConversion\" | \"savedObjectImport\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup", - "type": "Interface", - "tags": [], - "label": "SavedObjectsServiceSetup", - "description": [ - "\nSaved Objects is Kibana's data persistence mechanism allowing plugins to\nuse Elasticsearch for storing and querying state. The SavedObjectsServiceSetup API exposes methods\nor registering Saved Object types, and creating and registering Saved Object client factories.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.setClientFactoryProvider", - "type": "Function", - "tags": [], - "label": "setClientFactoryProvider", - "description": [ - "\nSet the default {@link SavedObjectsClientFactoryProvider | factory provider} for creating Saved Objects clients.\nOnly one provider can be set, subsequent calls to this method will fail." - ], - "signature": [ - "(clientFactoryProvider: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsClientFactoryProvider", - "text": "SavedObjectsClientFactoryProvider" - }, - ") => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.setClientFactoryProvider.$1", - "type": "Function", - "tags": [], - "label": "clientFactoryProvider", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsClientFactoryProvider", - "text": "SavedObjectsClientFactoryProvider" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.setEncryptionExtension", - "type": "Function", - "tags": [], - "label": "setEncryptionExtension", - "description": [ - "\nSets the {@link SavedObjectsEncryptionExtensionFactory encryption extension factory}." - ], - "signature": [ - "(factory: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsEncryptionExtensionFactory", - "text": "SavedObjectsEncryptionExtensionFactory" - }, - ") => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.setEncryptionExtension.$1", - "type": "Function", - "tags": [], - "label": "factory", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsEncryptionExtensionFactory", - "text": "SavedObjectsEncryptionExtensionFactory" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.setSecurityExtension", - "type": "Function", - "tags": [], - "label": "setSecurityExtension", - "description": [ - "\nSets the {@link SavedObjectsSecurityExtensionFactory security extension factory}." - ], - "signature": [ - "(factory: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsSecurityExtensionFactory", - "text": "SavedObjectsSecurityExtensionFactory" - }, - ") => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.setSecurityExtension.$1", - "type": "Function", - "tags": [], - "label": "factory", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsSecurityExtensionFactory", - "text": "SavedObjectsSecurityExtensionFactory" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.setSpacesExtension", - "type": "Function", - "tags": [], - "label": "setSpacesExtension", - "description": [ - "\nSets the {@link SavedObjectsSpacesExtensionFactory spaces extension factory}." - ], - "signature": [ - "(factory: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsSpacesExtensionFactory", - "text": "SavedObjectsSpacesExtensionFactory" - }, - ") => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.setSpacesExtension.$1", - "type": "Function", - "tags": [], - "label": "factory", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsSpacesExtensionFactory", - "text": "SavedObjectsSpacesExtensionFactory" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.registerType", - "type": "Function", - "tags": [], - "label": "registerType", - "description": [ - "\nRegister a {@link SavedObjectsType | savedObjects type} definition.\n\nSee the {@link SavedObjectsTypeMappingDefinition | mappings format} and\n{@link SavedObjectMigrationMap | migration format} for more details about these.\n" - ], - "signature": [ - "(type: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsType", - "text": "SavedObjectsType" - }, - ") => void" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.registerType.$1", - "type": "Object", - "tags": [], - "label": "type", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsType", - "text": "SavedObjectsType" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceSetup.getKibanaIndex", - "type": "Function", - "tags": [], - "label": "getKibanaIndex", - "description": [ - "\nReturns the default index used for saved objects." - ], - "signature": [ - "() => string" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart", - "type": "Interface", - "tags": [], - "label": "SavedObjectsServiceStart", - "description": [ - "\nSaved Objects is Kibana's data persistence mechanism allowing plugins to\nuse Elasticsearch for storing and querying state. The\nSavedObjectsServiceStart API provides a scoped Saved Objects client for\ninteracting with Saved Objects.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.getScopedClient", - "type": "Function", - "tags": [], - "label": "getScopedClient", - "description": [ - "\nCreates a {@link SavedObjectsClientContract | Saved Objects client} that\nuses the credentials from the passed in request to authenticate with\nElasticsearch.\n\nA client that is already scoped to the incoming request is also exposed\nfrom the route handler context see {@link RequestHandlerContext}." - ], - "signature": [ - "(req: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", options?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsClientProviderOptions", - "text": "SavedObjectsClientProviderOptions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.getScopedClient.$1", - "type": "Object", - "tags": [], - "label": "req", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.getScopedClient.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsClientProviderOptions", - "text": "SavedObjectsClientProviderOptions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createScopedRepository", - "type": "Function", - "tags": [], - "label": "createScopedRepository", - "description": [ - "\nCreates a {@link ISavedObjectsRepository | Saved Objects repository} that\nuses the credentials from the passed in request to authenticate with\nElasticsearch.\n" - ], - "signature": [ - "(req: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", includedHiddenTypes?: string[] | undefined, extensions?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsRepository", - "text": "ISavedObjectsRepository" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createScopedRepository.$1", - "type": "Object", - "tags": [], - "label": "req", - "description": [ - "- The request to create the scoped repository from." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createScopedRepository.$2", - "type": "Array", - "tags": [], - "label": "includedHiddenTypes", - "description": [ - "- A list of additional hidden types the repository should have access to." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createScopedRepository.$3", - "type": "Object", - "tags": [], - "label": "extensions", - "description": [ - "- Extensions that the repository should use (for encryption, security, and spaces)." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createInternalRepository", - "type": "Function", - "tags": [], - "label": "createInternalRepository", - "description": [ - "\nCreates a {@link ISavedObjectsRepository | Saved Objects repository} that\nuses the internal Kibana user for authenticating with Elasticsearch.\n" - ], - "signature": [ - "(includedHiddenTypes?: string[] | undefined, extensions?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.ISavedObjectsRepository", - "text": "ISavedObjectsRepository" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createInternalRepository.$1", - "type": "Array", - "tags": [], - "label": "includedHiddenTypes", - "description": [ - "- A list of additional hidden types the repository should have access to." - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createInternalRepository.$2", - "type": "Object", - "tags": [], - "label": "extensions", - "description": [ - "- Extensions that the repository should use (for encryption, security, and spaces)." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createSerializer", - "type": "Function", - "tags": [], - "label": "createSerializer", - "description": [ - "\nCreates a {@link ISavedObjectsSerializer | serializer} that is aware of all registered types." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsSerializer", - "text": "ISavedObjectsSerializer" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createExporter", - "type": "Function", - "tags": [], - "label": "createExporter", - "description": [ - "\nCreates an {@link ISavedObjectsExporter | exporter} bound to given client." - ], - "signature": [ - "(client: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsExporter", - "text": "ISavedObjectsExporter" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createExporter.$1", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createImporter", - "type": "Function", - "tags": [], - "label": "createImporter", - "description": [ - "\nCreates an {@link ISavedObjectsImporter | importer} bound to given client." - ], - "signature": [ - "(client: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - }, - ", options?: ", - "SavedObjectsImporterOptions", - " | undefined) => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsImporter", - "text": "ISavedObjectsImporter" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createImporter.$1", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.createImporter.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - "SavedObjectsImporterOptions", - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsServiceStart.getTypeRegistry", - "type": "Function", - "tags": [], - "label": "getTypeRegistry", - "description": [ - "\nReturns the {@link ISavedObjectTypeRegistry | registry} containing all registered\n{@link SavedObjectsType | saved object types}" - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsStart", - "type": "Interface", - "tags": [ - "deprecated" - ], - "label": "SavedObjectsStart", - "description": [], - "path": "packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-browser", - "path": "packages/core/saved-objects/core-saved-objects-browser/index.ts" - }, - { - "plugin": "@kbn/core-lifecycle-browser", - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts" - }, - { - "plugin": "@kbn/core-lifecycle-browser", - "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-internal", - "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/services.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/services.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/new_vis_modal.tsx" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/public/wizard/new_vis_modal.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/types.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/public/app_plugin/types.ts" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "savedObjectsFinder", - "path": "src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx" - }, - { - "plugin": "observability", - "path": "x-pack/plugins/observability/public/application/types.ts" - }, - { - "plugin": "observability", - "path": "x-pack/plugins/observability/public/application/types.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/platform.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/services/platform.ts" - }, - { - "plugin": "transform", - "path": "x-pack/plugins/transform/public/app/app_dependencies.tsx" - }, - { - "plugin": "transform", - "path": "x-pack/plugins/transform/public/app/app_dependencies.tsx" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - }, - { - "plugin": "@kbn/core-saved-objects-browser-mocks", - "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" - } - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsStart.client", - "type": "Object", - "tags": [], - "label": "client", - "description": [ - "{@link SavedObjectsClientContract}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-browser", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiBrowserPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectStatusMeta", - "type": "Interface", - "tags": [], - "label": "SavedObjectStatusMeta", - "description": [ - "\nMeta information about the SavedObjectService's status. Available to plugins via {@link CoreSetup.status}.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_status.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectStatusMeta.migratedIndices", - "type": "Object", - "tags": [], - "label": "migratedIndices", - "description": [], - "signature": [ - "{ [status: string]: number; skipped: number; migrated: number; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_status.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType", - "type": "Interface", - "tags": [], - "label": "SavedObjectsType", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsType", - "text": "SavedObjectsType" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.name", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "\nThe name of the type, which is also used as the internal id." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.hidden", - "type": "boolean", - "tags": [], - "label": "hidden", - "description": [ - "\nIs the type hidden by default. If true, repositories will not have access to this type unless explicitly\ndeclared as an `extraType` when creating the repository.\nIt is recommended to hide the type for better backward compatibility.\nThe hidden types will not be automatically exposed via the HTTP API.\nTherefore, that should prevent unexpected behavior in the client code, as all the interactions will be done via the plugin API.\n\nSee {@link SavedObjectsServiceStart.createInternalRepository | createInternalRepository}." - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.hiddenFromHttpApis", - "type": "CompoundType", - "tags": [], - "label": "hiddenFromHttpApis", - "description": [ - "\nIs the type hidden from the http APIs. If `hiddenFromHttpApis:true`, repositories will have access to the type but the type is not exposed via the HTTP APIs.\nIt is recommended to hide types registered with 'hidden=false' from the httpApis for backward compatibility in the HTTP layer.\n" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.namespaceType", - "type": "CompoundType", - "tags": [], - "label": "namespaceType", - "description": [ - "\nThe {@link SavedObjectsNamespaceType | namespace type} for the type." - ], - "signature": [ - "\"single\" | \"multiple\" | \"multiple-isolated\" | \"agnostic\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.indexPattern", - "type": "string", - "tags": [], - "label": "indexPattern", - "description": [ - "\nIf defined, the type instances will be stored in the given index instead of the default one." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.convertToAliasScript", - "type": "string", - "tags": [], - "label": "convertToAliasScript", - "description": [ - "\nIf defined, will be used to convert the type to an alias." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.excludeOnUpgrade", - "type": "Function", - "tags": [], - "label": "excludeOnUpgrade", - "description": [ - "\nIf defined, allows a type to exclude unneeded documents from the migration process and effectively be deleted.\nSee {@link SavedObjectTypeExcludeFromUpgradeFilterHook} for more details." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectTypeExcludeFromUpgradeFilterHook", - "text": "SavedObjectTypeExcludeFromUpgradeFilterHook" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.mappings", - "type": "Object", - "tags": [], - "label": "mappings", - "description": [ - "\nThe {@link SavedObjectsTypeMappingDefinition | mapping definition} for the type." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsTypeMappingDefinition", - "text": "SavedObjectsTypeMappingDefinition" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.migrations", - "type": "CompoundType", - "tags": [], - "label": "migrations", - "description": [ - "\nAn optional map of {@link SavedObjectMigrationFn | migrations} or a function returning a map of {@link SavedObjectMigrationFn | migrations} to be used to migrate the type." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationMap", - "text": "SavedObjectMigrationMap" - }, - " | (() => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationMap", - "text": "SavedObjectMigrationMap" - }, - ") | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.schemas", - "type": "CompoundType", - "tags": [], - "label": "schemas", - "description": [ - "\nAn optional schema that can be used to validate the attributes of the type.\n\nWhen provided, calls to {@link SavedObjectsClient.create | create} will be validated against this schema.\n\nSee {@link SavedObjectsValidationMap} for more details." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsValidationMap", - "text": "SavedObjectsValidationMap" - }, - " | (() => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsValidationMap", - "text": "SavedObjectsValidationMap" - }, - ") | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.convertToMultiNamespaceTypeVersion", - "type": "string", - "tags": [ - "deprecated" - ], - "label": "convertToMultiNamespaceTypeVersion", - "description": [ - "\nIf defined, objects of this type will be converted to a 'multiple' or 'multiple-isolated' namespace type when migrating to this\nversion.\n\nRequirements:\n\n 1. This string value must be a valid semver version\n 2. This type must have previously specified {@link SavedObjectsNamespaceType | `namespaceType: 'single'`}\n 3. This type must also specify {@link SavedObjectsNamespaceType | `namespaceType: 'multiple'`} *or*\n {@link SavedObjectsNamespaceType | `namespaceType: 'multiple-isolated'`}\n\nExample of a single-namespace type in 7.12:\n\n```ts\n{\n name: 'foo',\n hidden: false,\n namespaceType: 'single',\n mappings: {...}\n}\n```\n\nExample after converting to a multi-namespace (isolated) type in 8.0:\n\n```ts\n{\n name: 'foo',\n hidden: false,\n namespaceType: 'multiple-isolated',\n mappings: {...},\n convertToMultiNamespaceTypeVersion: '8.0.0'\n}\n```\n\nExample after converting to a multi-namespace (shareable) type in 8.1:\n\n```ts\n{\n name: 'foo',\n hidden: false,\n namespaceType: 'multiple',\n mappings: {...},\n convertToMultiNamespaceTypeVersion: '8.0.0'\n}\n```\n\nNote: migration function(s) can be optionally specified for any of these versions and will not interfere with the conversion process." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/saved_objects/index.ts" - }, - { - "plugin": "actions", - "path": "x-pack/plugins/actions/server/saved_objects/index.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/server/saved_objects/data_views.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/server/saved_objects/query.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/saved_objects/index.ts" - }, - { - "plugin": "savedObjectsTagging", - "path": "x-pack/plugins/saved_objects_tagging/server/saved_objects/tag.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/server/saved_objects/workpad.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/server/saved_objects/custom_element.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/server/saved_objects.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/saved_object_types/cases.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/saved_object_types/configure.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/saved_object_types/comments.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/saved_object_types/user_actions.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/saved_object_types/connector_mappings.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/server/saved_objects/graph_workspace.ts" - }, - { - "plugin": "lists", - "path": "x-pack/plugins/lists/server/saved_objects/exception_list.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/server/saved_objects/setup_saved_objects.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/timelines.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/notes.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/pinned_events.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_saved_object_mappings.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/server/dashboard_saved_object/dashboard_saved_object.ts" - }, - { - "plugin": "savedSearch", - "path": "src/plugins/saved_search/server/saved_objects/search.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/server/saved_objects/visualization.ts" - }, - { - "plugin": "@kbn/core-test-helpers-so-type-serializer", - "path": "packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts" - }, - { - "plugin": "@kbn/core-test-helpers-so-type-serializer", - "path": "packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.test.ts" - }, - { - "plugin": "@kbn/core-test-helpers-so-type-serializer", - "path": "packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts" - }, - { - "plugin": "@kbn/core-test-helpers-so-type-serializer", - "path": "packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - }, - { - "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsType.management", - "type": "Object", - "tags": [], - "label": "management", - "description": [ - "\nAn optional {@link SavedObjectsTypeManagementDefinition | saved objects management section} definition for the type." - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsTypeManagementDefinition", - "text": "SavedObjectsTypeManagementDefinition" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition", - "type": "Interface", - "tags": [], - "label": "SavedObjectsTypeManagementDefinition", - "description": [ - "\nConfiguration options for the {@link SavedObjectsType | type}'s management section.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsTypeManagementDefinition", - "text": "SavedObjectsTypeManagementDefinition" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.importableAndExportable", - "type": "CompoundType", - "tags": [], - "label": "importableAndExportable", - "description": [ - "\nIs the type importable or exportable. Defaults to `false`." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.displayName", - "type": "string", - "tags": [], - "label": "displayName", - "description": [ - "\nWhen specified, will be used instead of the type's name in SO management section's labels." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.visibleInManagement", - "type": "CompoundType", - "tags": [], - "label": "visibleInManagement", - "description": [ - "\nWhen set to false, the type will not be listed or searchable in the SO management section.\nMain usage of setting this property to false for a type is when objects from the type should\nbe included in the export via references or export hooks, but should not directly appear in the SOM.\nDefaults to `true`.\n" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.defaultSearchField", - "type": "string", - "tags": [], - "label": "defaultSearchField", - "description": [ - "\nThe default search field to use for this type. Defaults to `id`." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.icon", - "type": "string", - "tags": [], - "label": "icon", - "description": [ - "\nThe eui icon name to display in the management table.\nIf not defined, the default icon will be used." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.getTitle", - "type": "Function", - "tags": [], - "label": "getTitle", - "description": [ - "\nFunction returning the title to display in the management table.\nIf not defined, will use the object's type and id to generate a label." - ], - "signature": [ - "((savedObject: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ") => string) | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.getTitle.$1", - "type": "Object", - "tags": [], - "label": "savedObject", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.getEditUrl", - "type": "Function", - "tags": [], - "label": "getEditUrl", - "description": [ - "\nFunction returning the url to use to redirect to the editing page of this object.\nIf not defined, editing will not be allowed." - ], - "signature": [ - "((savedObject: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ") => string) | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.getEditUrl.$1", - "type": "Object", - "tags": [], - "label": "savedObject", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.getInAppUrl", - "type": "Function", - "tags": [], - "label": "getInAppUrl", - "description": [ - "\nFunction returning the url to use to redirect to this object from the management section.\nIf not defined, redirecting to the object will not be allowed.\n" - ], - "signature": [ - "((savedObject: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ") => { path: string; uiCapabilitiesPath: string; }) | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.getInAppUrl.$1", - "type": "Object", - "tags": [], - "label": "savedObject", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [ - "an object containing a `path` and `uiCapabilitiesPath` properties. the `path` is the path to\nthe object page, relative to the base path. `uiCapabilitiesPath` is the path to check in the\n{@link Capabilities | uiCapabilities} to check if the user has permission to access the object." - ] - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.onExport", - "type": "Function", - "tags": [], - "label": "onExport", - "description": [ - "\nAn optional export transform function that can be used transform the objects of the registered type during\nthe export process.\n\nIt can be used to either mutate the exported objects, or add additional objects (of any type) to the export list.\n\nSee {@link SavedObjectsExportTransform | the transform type documentation} for more info and examples.\n\nWhen implementing both `isExportable` and `onExport`, it is mandatory that\n`isExportable` returns the same value for an object before and after going\nthough the export transform.\nE.g `isExportable(objectBeforeTransform) === isExportable(objectAfterTransform)`\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportTransform", - "text": "SavedObjectsExportTransform" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.onImport", - "type": "Function", - "tags": [], - "label": "onImport", - "description": [ - "\nAn optional {@link SavedObjectsImportHook | import hook} to use when importing given type.\n\nImport hooks are executed during the savedObjects import process and allow to interact\nwith the imported objects. See the {@link SavedObjectsImportHook | hook documentation}\nfor more info.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsImportHook", - "text": "SavedObjectsImportHook" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeManagementDefinition.isExportable", - "type": "Function", - "tags": [], - "label": "isExportable", - "description": [ - "\nOptional hook to specify whether an object should be exportable.\n\nIf specified, `isExportable` will be called during export for each\nof this type's objects in the export, and the ones not matching the\npredicate will be excluded from the export.\n\nWhen implementing both `isExportable` and `onExport`, it is mandatory that\n`isExportable` returns the same value for an object before and after going\nthough the export transform.\nE.g `isExportable(objectBeforeTransform) === isExportable(objectAfterTransform)`\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportablePredicate", - "text": "SavedObjectsExportablePredicate" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_management.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeMappingDefinition", - "type": "Interface", - "tags": [], - "label": "SavedObjectsTypeMappingDefinition", - "description": [ - "\nDescribe a saved object type mapping.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeMappingDefinition.dynamic", - "type": "CompoundType", - "tags": [], - "label": "dynamic", - "description": [ - "The dynamic property of the mapping, either `false` or `'strict'`. If\nunspecified `dynamic: 'strict'` will be inherited from the top-level\nindex mappings." - ], - "signature": [ - "false | \"strict\" | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsTypeMappingDefinition.properties", - "type": "Object", - "tags": [], - "label": "properties", - "description": [ - "The underlying properties of the type mapping" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsMappingProperties", - "text": "SavedObjectsMappingProperties" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsUpdateObjectsSpacesObject", - "description": [ - "\nAn object that should have its spaces updated.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The type of the object to update" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The ID of the object to update" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsUpdateObjectsSpacesOptions", - "description": [ - "\nOptions for the update operation.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesOptions", - "text": "SavedObjectsUpdateObjectsSpacesOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "The Elasticsearch Refresh setting for this operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.MutatingOperationRefreshSetting", - "text": "MutatingOperationRefreshSetting" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsUpdateObjectsSpacesResponse", - "description": [ - "\nThe response when objects' spaces are updated.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesResponse.objects", - "type": "Array", - "tags": [], - "label": "objects", - "description": [ - "array of {@link SavedObjectsUpdateObjectsSpacesResponseObject}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateObjectsSpacesResponseObject", - "text": "SavedObjectsUpdateObjectsSpacesResponseObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesResponseObject", - "type": "Interface", - "tags": [], - "label": "SavedObjectsUpdateObjectsSpacesResponseObject", - "description": [ - "\nDetails about a specific object's update result.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesResponseObject.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the referenced object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesResponseObject.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The ID of the referenced object" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesResponseObject.spaces", - "type": "Array", - "tags": [], - "label": "spaces", - "description": [ - "The space(s) that the referenced object exists in" - ], - "signature": [ - "string[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateObjectsSpacesResponseObject.error", - "type": "Object", - "tags": [], - "label": "error", - "description": [ - "Included if there was an error updating this object's spaces" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectError", - "text": "SavedObjectError" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update_objects_spaces.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateOptions", - "type": "Interface", - "tags": [], - "label": "SavedObjectsUpdateOptions", - "description": [ - "\nOptions for the saved objects update operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateOptions", - "text": "SavedObjectsUpdateOptions" - }, - " extends ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateOptions.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "\nAn opaque version number which changes on each successful write operation.\nCan be used for implementing optimistic concurrency control." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateOptions.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "{@inheritdoc SavedObjectReference}" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateOptions.refresh", - "type": "CompoundType", - "tags": [], - "label": "refresh", - "description": [ - "The Elasticsearch Refresh setting for this operation" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.MutatingOperationRefreshSetting", - "text": "MutatingOperationRefreshSetting" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateOptions.upsert", - "type": "Uncategorized", - "tags": [], - "label": "upsert", - "description": [ - "If specified, will be used to perform an upsert if the object doesn't exist" - ], - "signature": [ - "Attributes | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateOptions.retryOnConflict", - "type": "number", - "tags": [], - "label": "retryOnConflict", - "description": [ - "\nThe Elasticsearch `retry_on_conflict` setting for this operation.\nDefaults to `0` when `version` is provided, `3` otherwise." - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateResponse", - "type": "Interface", - "tags": [], - "label": "SavedObjectsUpdateResponse", - "description": [ - "\nReturn type of the Saved Objects `update()` method.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" - }, - " extends Omit<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - ", \"attributes\" | \"references\">" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateResponse.attributes", - "type": "Object", - "tags": [], - "label": "attributes", - "description": [ - "partial attributes of the saved object" - ], - "signature": [ - "{ [P in keyof T]?: T[P] | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsUpdateResponse.references", - "type": "Array", - "tags": [], - "label": "references", - "description": [ - "optionally included references to other saved objects" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsValidationMap", - "type": "Interface", - "tags": [], - "label": "SavedObjectsValidationMap", - "description": [ - "\nA map of {@link SavedObjectsValidationSpec | validation specs} to be used for a given type.\nThe map's keys must be valid semver versions.\n\nAny time you change the schema of a {@link SavedObjectsType}, you should add a new entry\nto this map for the Kibana version the change was introduced in.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/validation.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsValidationMap.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[version: string]: SavedObjectsValidationSpec", - "description": [], - "signature": [ - "[version: string]: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsValidationSpec", - "text": "SavedObjectsValidationSpec" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/validation.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectTypeIdTuple", - "type": "Interface", - "tags": [], - "label": "SavedObjectTypeIdTuple", - "description": [ - "\nAn identifier for a saved object within a space.\n" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectTypeIdTuple.id", - "type": "string", - "tags": [], - "label": "id", - "description": [ - "The id of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectTypeIdTuple.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "The type of the saved object" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ServiceStatus", - "type": "Interface", - "tags": [], - "label": "ServiceStatus", - "description": [ - "\nThe current status of a service at a point in time.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-status-common", - "scope": "common", - "docId": "kibKbnCoreStatusCommonPluginApi", - "section": "def-common.ServiceStatus", - "text": "ServiceStatus" - }, - "" - ], - "path": "packages/core/status/core-status-common/src/service_status.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ServiceStatus.level", - "type": "CompoundType", - "tags": [], - "label": "level", - "description": [ - "\nThe current availability level of the service." - ], - "signature": [ - "Readonly<{ toString: () => \"available\"; valueOf: () => 0; toJSON: () => \"available\"; }> | Readonly<{ toString: () => \"degraded\"; valueOf: () => 1; toJSON: () => \"degraded\"; }> | Readonly<{ toString: () => \"unavailable\"; valueOf: () => 2; toJSON: () => \"unavailable\"; }> | Readonly<{ toString: () => \"critical\"; valueOf: () => 3; toJSON: () => \"critical\"; }>" - ], - "path": "packages/core/status/core-status-common/src/service_status.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ServiceStatus.summary", - "type": "string", - "tags": [], - "label": "summary", - "description": [ - "\nA high-level summary of the service status." - ], - "path": "packages/core/status/core-status-common/src/service_status.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ServiceStatus.detail", - "type": "string", - "tags": [], - "label": "detail", - "description": [ - "\nA more detailed description of the service status." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/status/core-status-common/src/service_status.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ServiceStatus.documentationUrl", - "type": "string", - "tags": [], - "label": "documentationUrl", - "description": [ - "\nA URL to open in a new tab about how to resolve or troubleshoot the problem." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/status/core-status-common/src/service_status.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ServiceStatus.meta", - "type": "Uncategorized", - "tags": [], - "label": "meta", - "description": [ - "\nAny JSON-serializable data to be included in the HTTP API response. Useful for providing more fine-grained,\nmachine-readable information about the service status. May include status information for underlying features." - ], - "signature": [ - "Meta | undefined" - ], - "path": "packages/core/status/core-status-common/src/service_status.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SessionCookieValidationResult", - "type": "Interface", - "tags": [], - "label": "SessionCookieValidationResult", - "description": [ - "\nReturn type from a function to validate cookie contents." - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SessionCookieValidationResult.isValid", - "type": "boolean", - "tags": [], - "label": "isValid", - "description": [ - "\nWhether the cookie is valid or not." - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SessionCookieValidationResult.path", - "type": "string", - "tags": [], - "label": "path", - "description": [ - "\nThe \"Path\" attribute of the cookie; if the cookie is invalid, this is used to clear it." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorage", - "type": "Interface", - "tags": [], - "label": "SessionStorage", - "description": [ - "\nProvides an interface to store and retrieve data across requests." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SessionStorage", - "text": "SessionStorage" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SessionStorage.get", - "type": "Function", - "tags": [], - "label": "get", - "description": [ - "\nRetrieves session value from the session storage." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorage.set", - "type": "Function", - "tags": [], - "label": "set", - "description": [ - "\nPuts current session value into the session storage." - ], - "signature": [ - "(sessionValue: T) => void" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SessionStorage.set.$1", - "type": "Uncategorized", - "tags": [], - "label": "sessionValue", - "description": [ - "- value to put" - ], - "signature": [ - "T" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorage.clear", - "type": "Function", - "tags": [], - "label": "clear", - "description": [ - "\nClears current session." - ], - "signature": [ - "() => void" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorageCookieOptions", - "type": "Interface", - "tags": [], - "label": "SessionStorageCookieOptions", - "description": [ - "\nConfiguration used to create HTTP session storage based on top of cookie mechanism." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SessionStorageCookieOptions", - "text": "SessionStorageCookieOptions" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SessionStorageCookieOptions.name", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "\nName of the session cookie." - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorageCookieOptions.encryptionKey", - "type": "string", - "tags": [], - "label": "encryptionKey", - "description": [ - "\nA key used to encrypt a cookie's value. Should be at least 32 characters long." - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorageCookieOptions.validate", - "type": "Function", - "tags": [], - "label": "validate", - "description": [ - "\nFunction called to validate a cookie's decrypted value." - ], - "signature": [ - "(sessionValue: T | T[]) => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SessionCookieValidationResult", - "text": "SessionCookieValidationResult" - } - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SessionStorageCookieOptions.validate.$1", - "type": "CompoundType", - "tags": [], - "label": "sessionValue", - "description": [], - "signature": [ - "T | T[]" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorageCookieOptions.isSecure", - "type": "boolean", - "tags": [], - "label": "isSecure", - "description": [ - "\nFlag indicating whether the cookie should be sent only via a secure connection." - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorageCookieOptions.sameSite", - "type": "CompoundType", - "tags": [], - "label": "sameSite", - "description": [ - "\nDefines SameSite attribute of the Set-Cookie Header.\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite" - ], - "signature": [ - "\"None\" | \"Strict\" | \"Lax\" | undefined" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SessionStorageFactory", - "type": "Interface", - "tags": [], - "label": "SessionStorageFactory", - "description": [ - "\nSessionStorage factory to bind one to an incoming request" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SessionStorageFactory", - "text": "SessionStorageFactory" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SessionStorageFactory.asScoped", - "type": "Function", - "tags": [], - "label": "asScoped", - "description": [], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SessionStorage", - "text": "SessionStorage" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SessionStorageFactory.asScoped.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/session_storage.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ShipperClassConstructor", - "type": "Interface", - "tags": [], - "label": "ShipperClassConstructor", - "description": [ - "\nConstructor of a {@link IShipper}" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - "" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ShipperClassConstructor.shipperName", - "type": "string", - "tags": [], - "label": "shipperName", - "description": [ - "\nThe shipper's unique name" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ShipperClassConstructor.new", - "type": "Function", - "tags": [], - "label": "new", - "description": [ - "\nThe constructor" - ], - "signature": [ - "any" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ShipperClassConstructor.new.$1", - "type": "Uncategorized", - "tags": [], - "label": "config", - "description": [ - "The shipper's custom config" - ], - "signature": [ - "Config" - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "core", - "id": "def-server.ShipperClassConstructor.new.$2", - "type": "Object", - "tags": [], - "label": "initContext", - "description": [ - "Common context {@link AnalyticsClientInitContext }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.AnalyticsClientInitContext", - "text": "AnalyticsClientInitContext" - } - ], - "path": "packages/analytics/client/src/analytics_client/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.StatusServiceSetup", - "type": "Interface", - "tags": [], - "label": "StatusServiceSetup", - "description": [ - "\nAPI for accessing status of Core and this plugin's dependencies as well as for customizing this plugin's status.\n" - ], - "path": "packages/core/status/core-status-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.StatusServiceSetup.core$", - "type": "Object", - "tags": [], - "label": "core$", - "description": [ - "\nCurrent status for all Core services." - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-status-common", - "scope": "common", - "docId": "kibKbnCoreStatusCommonPluginApi", - "section": "def-common.CoreStatus", - "text": "CoreStatus" - }, - ">" - ], - "path": "packages/core/status/core-status-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.StatusServiceSetup.overall$", - "type": "Object", - "tags": [], - "label": "overall$", - "description": [ - "\nOverall system status for all of Kibana.\n" - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-status-common", - "scope": "common", - "docId": "kibKbnCoreStatusCommonPluginApi", - "section": "def-common.ServiceStatus", - "text": "ServiceStatus" - }, - ">" - ], - "path": "packages/core/status/core-status-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.StatusServiceSetup.set", - "type": "Function", - "tags": [], - "label": "set", - "description": [ - "\nAllows a plugin to specify a custom status dependent on its own criteria.\nCompletely overrides the default inherited status.\n" - ], - "signature": [ - "(status$: ", - "Observable", - "<", - { - "pluginId": "@kbn/core-status-common", - "scope": "common", - "docId": "kibKbnCoreStatusCommonPluginApi", - "section": "def-common.ServiceStatus", - "text": "ServiceStatus" - }, - ">) => void" - ], - "path": "packages/core/status/core-status-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.StatusServiceSetup.set.$1", - "type": "Object", - "tags": [], - "label": "status$", - "description": [], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-status-common", - "scope": "common", - "docId": "kibKbnCoreStatusCommonPluginApi", - "section": "def-common.ServiceStatus", - "text": "ServiceStatus" - }, - ">" - ], - "path": "packages/core/status/core-status-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.StatusServiceSetup.dependencies$", - "type": "Object", - "tags": [], - "label": "dependencies$", - "description": [ - "\nCurrent status for all plugins this plugin depends on.\nEach key of the `Record` is a plugin id." - ], - "signature": [ - "Observable", - ">>" - ], - "path": "packages/core/status/core-status-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.StatusServiceSetup.derivedStatus$", - "type": "Object", - "tags": [], - "label": "derivedStatus$", - "description": [ - "\nThe status of this plugin as derived from its dependencies.\n" - ], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/core-status-common", - "scope": "common", - "docId": "kibKbnCoreStatusCommonPluginApi", - "section": "def-common.ServiceStatus", - "text": "ServiceStatus" - }, - ">" - ], - "path": "packages/core/status/core-status-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.StatusServiceSetup.isStatusPageAnonymous", - "type": "Function", - "tags": [], - "label": "isStatusPageAnonymous", - "description": [ - "\nWhether or not the status HTTP APIs are available to unauthenticated users when an authentication provider is\npresent." - ], - "signature": [ - "() => boolean" - ], - "path": "packages/core/status/core-status-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.TelemetryCounter", - "type": "Interface", - "tags": [], - "label": "TelemetryCounter", - "description": [ - "\nShape of the events emitted by the telemetryCounter$ observable" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.TelemetryCounter.type", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [ - "\n{@link TelemetryCounterType}" - ], - "signature": [ - "\"succeeded\" | \"failed\" | \"enqueued\" | \"sent_to_shipper\" | \"dropped\"" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.TelemetryCounter.source", - "type": "string", - "tags": [], - "label": "source", - "description": [ - "\nWho emitted the event? It can be \"client\" or the name of the shipper." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.TelemetryCounter.event_type", - "type": "string", - "tags": [], - "label": "event_type", - "description": [ - "\nThe event type the success/failure/drop event refers to." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.TelemetryCounter.code", - "type": "string", - "tags": [], - "label": "code", - "description": [ - "\nCode to provide additional information about the success or failure. Examples are 200/400/504/ValidationError/UnknownError" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.TelemetryCounter.count", - "type": "number", - "tags": [], - "label": "count", - "description": [ - "\nThe number of events that this counter refers to." - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams", - "type": "Interface", - "tags": [], - "label": "UiSettingsParams", - "description": [ - "\nUiSettings parameters defined by the plugins." - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsParams", - "text": "UiSettingsParams" - }, - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.name", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "title in the UI" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.value", - "type": "Uncategorized", - "tags": [], - "label": "value", - "description": [ - "default value to fall back to if a user doesn't provide any" - ], - "signature": [ - "T | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.description", - "type": "string", - "tags": [], - "label": "description", - "description": [ - "description provided to a user in UI" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.category", - "type": "Array", - "tags": [], - "label": "category", - "description": [ - "used to group the configured setting in the UI" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.options", - "type": "CompoundType", - "tags": [], - "label": "options", - "description": [ - "array of permitted values for this setting" - ], - "signature": [ - "string[] | number[] | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.optionLabels", - "type": "Object", - "tags": [], - "label": "optionLabels", - "description": [ - "text labels for 'select' type UI element" - ], - "signature": [ - "Record | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.requiresPageReload", - "type": "CompoundType", - "tags": [], - "label": "requiresPageReload", - "description": [ - "a flag indicating whether new value applying requires page reloading" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.readonly", - "type": "CompoundType", - "tags": [], - "label": "readonly", - "description": [ - "a flag indicating that value cannot be changed" - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.sensitive", - "type": "CompoundType", - "tags": [], - "label": "sensitive", - "description": [ - "\na flag indicating that value might contain user sensitive data.\nused by telemetry to mask the value of the setting when sent." - ], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.type", - "type": "CompoundType", - "tags": [], - "label": "type", - "description": [ - "defines a type of UI element {@link UiSettingsType}" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsType", - "text": "UiSettingsType" - }, - " | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.deprecation", - "type": "Object", - "tags": [], - "label": "deprecation", - "description": [ - "optional deprecation information. Used to generate a deprecation warning." - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.DeprecationSettings", - "text": "DeprecationSettings" - }, - " | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.order", - "type": "number", - "tags": [], - "label": "order", - "description": [ - "\nindex of the settings within its category (ascending order, smallest will be displayed first).\nUsed for ordering in the UI.\n" - ], - "signature": [ - "number | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.schema", - "type": "Object", - "tags": [], - "label": "schema", - "description": [], - "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.Type", - "text": "Type" - }, - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.metric", - "type": "Object", - "tags": [ - "deprecated" - ], - "label": "metric", - "description": [ - "\nMetric to track once this property changes" - ], - "signature": [ - "{ type: string; name: string; } | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": true, - "trackAdoption": false, - "references": [ - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/server/ui_settings.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/server/ui_settings.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/server/ui_settings.ts" - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsParams.scope", - "type": "CompoundType", - "tags": [], - "label": "scope", - "description": [ - "\nScope of the setting. `Global` denotes a setting globally available across namespaces. `Namespace` denotes a setting\nscoped to a namespace. The default value is 'namespace'" - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsScope", - "text": "UiSettingsScope" - }, - " | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsRequestHandlerContext", - "type": "Interface", - "tags": [], - "label": "UiSettingsRequestHandlerContext", - "description": [ - "\nCore's `uiSettings` request handler context." - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UiSettingsRequestHandlerContext.client", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-server", - "scope": "common", - "docId": "kibKbnCoreUiSettingsServerPluginApi", - "section": "def-common.IUiSettingsClient", - "text": "IUiSettingsClient" - } - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsRequestHandlerContext.globalClient", - "type": "Object", - "tags": [], - "label": "globalClient", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-server", - "scope": "common", - "docId": "kibKbnCoreUiSettingsServerPluginApi", - "section": "def-common.IUiSettingsClient", - "text": "IUiSettingsClient" - } - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceSetup", - "type": "Interface", - "tags": [], - "label": "UiSettingsServiceSetup", - "description": [], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceSetup.register", - "type": "Function", - "tags": [], - "label": "register", - "description": [ - "\nSets settings with default values for the uiSettings" - ], - "signature": [ - "(settings: Record>) => void" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceSetup.register.$1", - "type": "Object", - "tags": [], - "label": "settings", - "description": [], - "signature": [ - "Record>" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceSetup.registerGlobal", - "type": "Function", - "tags": [], - "label": "registerGlobal", - "description": [ - "\nSets settings with default values for the global uiSettings" - ], - "signature": [ - "(settings: Record>) => void" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceSetup.registerGlobal.$1", - "type": "Object", - "tags": [], - "label": "settings", - "description": [], - "signature": [ - "Record>" - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceStart", - "type": "Interface", - "tags": [], - "label": "UiSettingsServiceStart", - "description": [], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceStart.asScopedToClient", - "type": "Function", - "tags": [], - "label": "asScopedToClient", - "description": [ - "\nCreates a {@link IUiSettingsClient} with provided *scoped* saved objects client.\n\nThis should only be used in the specific case where the client needs to be accessed\nfrom outside of the scope of a {@link RequestHandler}.\n" - ], - "signature": [ - "(savedObjectsClient: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - }, - ") => ", - { - "pluginId": "@kbn/core-ui-settings-server", - "scope": "common", - "docId": "kibKbnCoreUiSettingsServerPluginApi", - "section": "def-common.IUiSettingsClient", - "text": "IUiSettingsClient" - } - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceStart.asScopedToClient.$1", - "type": "Object", - "tags": [], - "label": "savedObjectsClient", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceStart.globalAsScopedToClient", - "type": "Function", - "tags": [], - "label": "globalAsScopedToClient", - "description": [ - "\nCreates a global {@link IUiSettingsClient} with provided *scoped* saved objects client.\n\nThis should only be used in the specific case where the client needs to be accessed\nfrom outside of the scope of a {@link RequestHandler}.\n" - ], - "signature": [ - "(savedObjectsClient: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - }, - ") => ", - { - "pluginId": "@kbn/core-ui-settings-server", - "scope": "common", - "docId": "kibKbnCoreUiSettingsServerPluginApi", - "section": "def-common.IUiSettingsClient", - "text": "IUiSettingsClient" - } - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UiSettingsServiceStart.globalAsScopedToClient.$1", - "type": "Object", - "tags": [], - "label": "savedObjectsClient", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/ui-settings/core-ui-settings-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerNotHandledResult", - "type": "Interface", - "tags": [], - "label": "UnauthorizedErrorHandlerNotHandledResult", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerNotHandledResult.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"notHandled\"" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerOptions", - "type": "Interface", - "tags": [], - "label": "UnauthorizedErrorHandlerOptions", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerOptions.error", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "ResponseError", - " & { statusCode: 401; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerOptions.request", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerResultRetryParams", - "type": "Interface", - "tags": [], - "label": "UnauthorizedErrorHandlerResultRetryParams", - "description": [], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerResultRetryParams.authHeaders", - "type": "Object", - "tags": [], - "label": "authHeaders", - "description": [], - "signature": [ - "{ [x: string]: string | string[]; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerRetryResult", - "type": "Interface", - "tags": [], - "label": "UnauthorizedErrorHandlerRetryResult", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerRetryResult", - "text": "UnauthorizedErrorHandlerRetryResult" - }, - " extends ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerResultRetryParams", - "text": "UnauthorizedErrorHandlerResultRetryParams" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerRetryResult.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"retry\"" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerToolkit", - "type": "Interface", - "tags": [], - "label": "UnauthorizedErrorHandlerToolkit", - "description": [ - "\nToolkit passed to a {@link UnauthorizedErrorHandler} used to generate responses from the handler" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerToolkit.notHandled", - "type": "Function", - "tags": [], - "label": "notHandled", - "description": [ - "\nThe handler cannot handle the error, or was not able to authenticate." - ], - "signature": [ - "() => ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerNotHandledResult", - "text": "UnauthorizedErrorHandlerNotHandledResult" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerToolkit.retry", - "type": "Function", - "tags": [], - "label": "retry", - "description": [ - "\nThe handler was able to authenticate. Will retry the failed request with new auth headers" - ], - "signature": [ - "(params: ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerResultRetryParams", - "text": "UnauthorizedErrorHandlerResultRetryParams" - }, - ") => ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerRetryResult", - "text": "UnauthorizedErrorHandlerRetryResult" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerToolkit.retry.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerResultRetryParams", - "text": "UnauthorizedErrorHandlerResultRetryParams" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UserProvidedValues", - "type": "Interface", - "tags": [], - "label": "UserProvidedValues", - "description": [ - "\nDescribes the values explicitly set by user." - ], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-common", - "scope": "common", - "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UserProvidedValues", - "text": "UserProvidedValues" - }, - "" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UserProvidedValues.userValue", - "type": "Uncategorized", - "tags": [], - "label": "userValue", - "description": [], - "signature": [ - "T | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UserProvidedValues.isOverridden", - "type": "CompoundType", - "tags": [], - "label": "isOverridden", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - } - ], - "enums": [ - { - "parentPluginId": "core", - "id": "def-server.AuthResultType", - "type": "Enum", - "tags": [], - "label": "AuthResultType", - "description": [], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthStatus", - "type": "Enum", - "tags": [], - "label": "AuthStatus", - "description": [ - "\nStatus indicating an outcome of the authentication." - ], - "path": "packages/core/http/core-http-server/src/auth_state.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginType", - "type": "Enum", - "tags": [], - "label": "PluginType", - "description": [], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], - "misc": [ - { - "parentPluginId": "core", - "id": "def-server.AddConfigDeprecation", - "type": "Type", - "tags": [], - "label": "AddConfigDeprecation", - "description": [ - "\nConfig deprecation hook used when invoking a {@link ConfigDeprecation}\n" - ], - "signature": [ - "(details: ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.DeprecatedConfigDetails", - "text": "DeprecatedConfigDetails" - }, - ") => void" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AddConfigDeprecation.$1", - "type": "Object", - "tags": [], - "label": "details", - "description": [], - "signature": [ - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.DeprecatedConfigDetails", - "text": "DeprecatedConfigDetails" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AnalyticsServicePreboot", - "type": "Type", - "tags": [], - "label": "AnalyticsServicePreboot", - "description": [ - "\nExposes the public APIs of the AnalyticsClient during the preboot phase\n{@link AnalyticsClient}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; registerEventType: (eventTypeOps: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - ") => void; registerShipper: (Shipper: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - ", shipperConfig: ShipperConfig, opts?: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined) => void; registerContextProvider: (contextProviderOpts: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - ") => void; removeContextProvider: (contextProviderName: string) => void; }" - ], - "path": "packages/core/analytics/core-analytics-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AnalyticsServiceSetup", - "type": "Type", - "tags": [], - "label": "AnalyticsServiceSetup", - "description": [ - "\nExposes the public APIs of the AnalyticsClient during the setup phase.\n{@link AnalyticsClient}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; registerEventType: (eventTypeOps: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventTypeOpts", - "text": "EventTypeOpts" - }, - ") => void; registerShipper: (Shipper: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ShipperClassConstructor", - "text": "ShipperClassConstructor" - }, - ", shipperConfig: ShipperConfig, opts?: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.RegisterShipperOpts", - "text": "RegisterShipperOpts" - }, - " | undefined) => void; registerContextProvider: (contextProviderOpts: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.ContextProviderOpts", - "text": "ContextProviderOpts" - }, - ") => void; removeContextProvider: (contextProviderName: string) => void; }" - ], - "path": "packages/core/analytics/core-analytics-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AnalyticsServiceStart", - "type": "Type", - "tags": [], - "label": "AnalyticsServiceStart", - "description": [ - "\nExposes the public APIs of the AnalyticsClient during the start phase\n{@link AnalyticsClient}" - ], - "signature": [ - "{ optIn: (optInConfig: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.OptInConfig", - "text": "OptInConfig" - }, - ") => void; reportEvent: (eventType: string, eventData: EventTypeData) => void; readonly telemetryCounter$: ", - "Observable", - "<", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.TelemetryCounter", - "text": "TelemetryCounter" - }, - ">; }" - ], - "path": "packages/core/analytics/core-analytics-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.APP_WRAPPER_CLASS", - "type": "string", - "tags": [], - "label": "APP_WRAPPER_CLASS", - "description": [ - "\nThe class name for top level *and* nested application wrappers to ensure proper layout" - ], - "signature": [ - "\"kbnAppWrapper\"" - ], - "path": "packages/core/application/core-application-common/src/app_wrapper_class.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AppenderConfigType", - "type": "Type", - "tags": [], - "label": "AppenderConfigType", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-logging-server", - "scope": "common", - "docId": "kibKbnCoreLoggingServerPluginApi", - "section": "def-common.ConsoleAppenderConfig", - "text": "ConsoleAppenderConfig" - }, - " | ", - { - "pluginId": "@kbn/core-logging-server", - "scope": "common", - "docId": "kibKbnCoreLoggingServerPluginApi", - "section": "def-common.FileAppenderConfig", - "text": "FileAppenderConfig" - }, - " | ", - { - "pluginId": "@kbn/core-logging-server", - "scope": "common", - "docId": "kibKbnCoreLoggingServerPluginApi", - "section": "def-common.RewriteAppenderConfig", - "text": "RewriteAppenderConfig" - }, - " | ", - { - "pluginId": "@kbn/core-logging-server", - "scope": "common", - "docId": "kibKbnCoreLoggingServerPluginApi", - "section": "def-common.RollingFileAppenderConfig", - "text": "RollingFileAppenderConfig" - } - ], - "path": "packages/core/logging/core-logging-server/src/appenders/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthenticationHandler", - "type": "Type", - "tags": [], - "label": "AuthenticationHandler", - "description": [ - "\nSee {@link AuthToolkit}." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.LifecycleResponseFactory", - "text": "LifecycleResponseFactory" - }, - ", toolkit: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthToolkit", - "text": "AuthToolkit" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResult", - "text": "AuthResult" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResult", - "text": "AuthResult" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.AuthenticationHandler.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthenticationHandler.$2", - "type": "CompoundType", - "tags": [], - "label": "response", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRedirectionResponseFactory", - "text": "KibanaRedirectionResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaErrorResponseFactory", - "text": "KibanaErrorResponseFactory" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthenticationHandler.$3", - "type": "Object", - "tags": [], - "label": "toolkit", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthToolkit", - "text": "AuthToolkit" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthHeaders", - "type": "Type", - "tags": [], - "label": "AuthHeaders", - "description": [], - "signature": [ - "{ [x: string]: string | string[]; }" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthorizationTypeMap", - "type": "Type", - "tags": [], - "label": "AuthorizationTypeMap", - "description": [ - "\nThe AuthorizationTypeMap type is a map of saved object type\nto a record of action/AuthorizationTypeEntry," - ], - "signature": [ - "Map>" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.AuthResult", - "type": "Type", - "tags": [], - "label": "AuthResult", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultAuthenticated", - "text": "AuthResultAuthenticated" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultNotHandled", - "text": "AuthResultNotHandled" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthResultRedirected", - "text": "AuthResultRedirected" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/auth.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesProvider", - "type": "Type", - "tags": [], - "label": "CapabilitiesProvider", - "description": [ - "\nSee {@link CapabilitiesSetup}" - ], - "signature": [ - "() => Partial<", - { - "pluginId": "@kbn/core-capabilities-common", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesCommonPluginApi", - "section": "def-common.Capabilities", - "text": "Capabilities" - }, - ">" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSwitcher", - "type": "Type", - "tags": [], - "label": "CapabilitiesSwitcher", - "description": [ - "\nSee {@link CapabilitiesSetup}" - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", uiCapabilities: ", - { - "pluginId": "@kbn/core-capabilities-common", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesCommonPluginApi", - "section": "def-common.Capabilities", - "text": "Capabilities" - }, - ", useDefaultCapabilities: boolean) => ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - ">" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSwitcher.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/capabilities/core-capabilities-server/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSwitcher.$2", - "type": "Object", - "tags": [], - "label": "uiCapabilities", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-capabilities-common", - "scope": "common", - "docId": "kibKbnCoreCapabilitiesCommonPluginApi", - "section": "def-common.Capabilities", - "text": "Capabilities" - } - ], - "path": "packages/core/capabilities/core-capabilities-server/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.CapabilitiesSwitcher.$3", - "type": "boolean", - "tags": [], - "label": "useDefaultCapabilities", - "description": [], - "path": "packages/core/capabilities/core-capabilities-server/src/capabilities.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecation", - "type": "Type", - "tags": [], - "label": "ConfigDeprecation", - "description": [ - "\nConfiguration deprecation returned from {@link ConfigDeprecationProvider} that handles a single deprecation from the configuration.\n" - ], - "signature": [ - "(config: Readonly<{ [x: string]: any; }>, fromPath: string, addDeprecation: ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.AddConfigDeprecation", - "text": "AddConfigDeprecation" - }, - ", context: ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecationContext", - "text": "ConfigDeprecationContext" - }, - ") => void | ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecationCommand", - "text": "ConfigDeprecationCommand" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecation.$1", - "type": "Object", - "tags": [], - "label": "config", - "description": [ - "must not be mutated, return {@link ConfigDeprecationCommand } to change config shape." - ], - "signature": [ - "{ readonly [x: string]: any; }" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecation.$2", - "type": "string", - "tags": [], - "label": "fromPath", - "description": [], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecation.$3", - "type": "Function", - "tags": [], - "label": "addDeprecation", - "description": [], - "signature": [ - "(details: ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.DeprecatedConfigDetails", - "text": "DeprecatedConfigDetails" - }, - ") => void" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecation.$3.$1", - "type": "Object", - "tags": [], - "label": "details", - "description": [], - "signature": [ - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.DeprecatedConfigDetails", - "text": "DeprecatedConfigDetails" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecation.$4", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecationContext", - "text": "ConfigDeprecationContext" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationProvider", - "type": "Type", - "tags": [], - "label": "ConfigDeprecationProvider", - "description": [ - "\nA provider that should returns a list of {@link ConfigDeprecation}.\n\nSee {@link ConfigDeprecationFactory} for more usage examples.\n" - ], - "signature": [ - "(factory: ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecationFactory", - "text": "ConfigDeprecationFactory" - }, - ") => ", - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecation", - "text": "ConfigDeprecation" - }, - "[]" - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.ConfigDeprecationProvider.$1", - "type": "Object", - "tags": [], - "label": "factory", - "description": [], - "signature": [ - { - "pluginId": "@kbn/config", - "scope": "common", - "docId": "kibKbnConfigPluginApi", - "section": "def-common.ConfigDeprecationFactory", - "text": "ConfigDeprecationFactory" - } - ], - "path": "packages/kbn-config/src/deprecation/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigPath", - "type": "Type", - "tags": [], - "label": "ConfigPath", - "description": [], - "signature": [ - "string | string[]" - ], - "path": "packages/kbn-config/src/config.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ConfigUsageData", - "type": "Type", - "tags": [], - "label": "ConfigUsageData", - "description": [ - "\nType describing Core's usage data payload" - ], - "signature": [ - "{ [x: string]: any; }" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/start_contract.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CoreIncrementUsageCounter", - "type": "Type", - "tags": [], - "label": "CoreIncrementUsageCounter", - "description": [], - "signature": [ - "(params: ", - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreIncrementCounterParams", - "text": "CoreIncrementCounterParams" - }, - ") => void" - ], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.CoreIncrementUsageCounter.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-usage-data-server", - "scope": "common", - "docId": "kibKbnCoreUsageDataServerPluginApi", - "section": "def-common.CoreIncrementCounterParams", - "text": "CoreIncrementCounterParams" - } - ], - "path": "packages/core/usage-data/core-usage-data-server/src/setup_contract.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.CustomRequestHandlerContext", - "type": "Type", - "tags": [], - "label": "CustomRequestHandlerContext", - "description": [ - "\nMixin allowing plugins to define their own request handler contexts.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-request-handler-context-server", - "scope": "common", - "docId": "kibKbnCoreHttpRequestHandlerContextServerPluginApi", - "section": "def-common.RequestHandlerContext", - "text": "RequestHandlerContext" - }, - " & { [Key in keyof T]: T[Key] extends Promise ? T[Key] : Promise; }" - ], - "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DeprecationsDetails", - "type": "Type", - "tags": [], - "label": "DeprecationsDetails", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.ConfigDeprecationDetails", - "text": "ConfigDeprecationDetails" - }, - " | ", - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.FeatureDeprecationDetails", - "text": "FeatureDeprecationDetails" - } - ], - "path": "packages/core/deprecations/core-deprecations-common/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DestructiveRouteMethod", - "type": "Type", - "tags": [], - "label": "DestructiveRouteMethod", - "description": [ - "\nSet of HTTP methods changing the state of the server." - ], - "signature": [ - "\"post\" | \"put\" | \"delete\" | \"patch\"" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DocLinksServiceStart", - "type": "Type", - "tags": [], - "label": "DocLinksServiceStart", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-doc-links-server", - "scope": "common", - "docId": "kibKbnCoreDocLinksServerPluginApi", - "section": "def-common.DocLinksServiceSetup", - "text": "DocLinksServiceSetup" - } - ], - "path": "packages/core/doc-links/core-doc-links-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.DomainDeprecationDetails", - "type": "Type", - "tags": [], - "label": "DomainDeprecationDetails", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-deprecations-common", - "scope": "common", - "docId": "kibKbnCoreDeprecationsCommonPluginApi", - "section": "def-common.DeprecationsDetails", - "text": "DeprecationsDetails" - }, - " & { domainId: string; }" - ], - "path": "packages/core/deprecations/core-deprecations-common/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.Ecs", - "type": "Type", - "tags": [], - "label": "Ecs", - "description": [], - "signature": [ - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsBase", - "text": "EcsBase" - }, - " & ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsTracing", - "text": "EcsTracing" - }, - " & { agent?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsAgent", - "text": "EcsAgent" - }, - " | undefined; client?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsClient", - "text": "EcsClient" - }, - " | undefined; cloud?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsCloud", - "text": "EcsCloud" - }, - " | undefined; container?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsContainer", - "text": "EcsContainer" - }, - " | undefined; data_stream?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsDataStream", - "text": "EcsDataStream" - }, - " | undefined; destination?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsDestination", - "text": "EcsDestination" - }, - " | undefined; device?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsDevice", - "text": "EcsDevice" - }, - " | undefined; dll?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsDll", - "text": "EcsDll" - }, - " | undefined; dns?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsDns", - "text": "EcsDns" - }, - " | undefined; ecs: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsEcs", - "text": "EcsEcs" - }, - "; email?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsEmail", - "text": "EcsEmail" - }, - " | undefined; error?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsError", - "text": "EcsError" - }, - " | undefined; event?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsEvent", - "text": "EcsEvent" - }, - " | undefined; faas?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsFaas", - "text": "EcsFaas" - }, - " | undefined; file?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsFile", - "text": "EcsFile" - }, - " | undefined; group?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsGroup", - "text": "EcsGroup" - }, - " | undefined; host?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsHost", - "text": "EcsHost" - }, - " | undefined; http?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsHttp", - "text": "EcsHttp" - }, - " | undefined; log?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsLog", - "text": "EcsLog" - }, - " | undefined; network?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsNetwork", - "text": "EcsNetwork" - }, - " | undefined; observer?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsObserver", - "text": "EcsObserver" - }, - " | undefined; orchestrator?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsOrchestrator", - "text": "EcsOrchestrator" - }, - " | undefined; organization?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsOrganization", - "text": "EcsOrganization" - }, - " | undefined; package?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsPackage", - "text": "EcsPackage" - }, - " | undefined; process?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsProcess", - "text": "EcsProcess" - }, - " | undefined; registry?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsRegistry", - "text": "EcsRegistry" - }, - " | undefined; related?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsRelated", - "text": "EcsRelated" - }, - " | undefined; rule?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsRule", - "text": "EcsRule" - }, - " | undefined; server?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsServer", - "text": "EcsServer" - }, - " | undefined; service?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsService", - "text": "EcsService" - }, - " | undefined; source?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsSource", - "text": "EcsSource" - }, - " | undefined; threat?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsThreat", - "text": "EcsThreat" - }, - " | undefined; tls?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsTls", - "text": "EcsTls" - }, - " | undefined; url?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsUrl", - "text": "EcsUrl" - }, - " | undefined; user?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsUser", - "text": "EcsUser" - }, - " | undefined; user_agent?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsUserAgent", - "text": "EcsUserAgent" - }, - " | undefined; vulnerability?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsVulnerability", - "text": "EcsVulnerability" - }, - " | undefined; }" - ], - "path": "packages/kbn-ecs/generated/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ElasticsearchClient", - "type": "Type", - "tags": [], - "label": "ElasticsearchClient", - "description": [ - "\nClient used to query the elasticsearch cluster.\n" - ], - "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetResponse", - ">; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetResponse", - ", unknown>>; (this: That, params: ", - "GetRequest", - " | ", - "GetRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetResponse", - ">; }; delete: { (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteRequest", - " | ", - "DeleteRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", - "default", - "; search: { >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchResponse", - ">; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchResponse", - ", unknown>>; >(this: That, params?: ", - "SearchRequest", - " | ", - "SearchRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchResponse", - ">; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", - "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", - "default", - "; helpers: ", - "default", - "; child: (opts: ", - "ClientOptions", - ") => ", - "default", - "; autoscaling: ", - "default", - "; bulk: { (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "BulkResponse", - ">; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "BulkResponse", - ", unknown>>; (this: That, params: ", - "BulkRequest", - " | ", - "BulkRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "BulkResponse", - ">; }; cat: ", - "default", - "; ccr: ", - "default", - "; clearScroll: { (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClearScrollResponse", - ">; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClearScrollResponse", - ", unknown>>; (this: That, params?: ", - "ClearScrollRequest", - " | ", - "ClearScrollRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClearScrollResponse", - ">; }; closePointInTime: { (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClosePointInTimeResponse", - ", unknown>>; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", - "default", - "; deleteByQuery: { (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "DeleteByQueryResponse", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRequest", - " | ", - "DeleteByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "DeleteByQueryResponse", - ">; }; deleteByQueryRethrottle: { (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TasksTaskListResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteByQueryRethrottleRequest", - " | ", - "DeleteByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TasksTaskListResponseBase", - ">; }; deleteScript: { (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "DeleteScriptRequest", - " | ", - "DeleteScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; enrich: ", - "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsSourceRequest", - " | ", - "ExistsSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; explain: { (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ExplainResponse", - ">; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ExplainResponse", - ", unknown>>; (this: That, params: ", - "ExplainRequest", - " | ", - "ExplainRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ExplainResponse", - ">; }; features: ", - "default", - "; fieldCaps: { (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "FieldCapsResponse", - ">; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "FieldCapsResponse", - ", unknown>>; (this: That, params: ", - "FieldCapsRequest", - " | ", - "FieldCapsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "FieldCapsResponse", - ">; }; fleet: ", - "default", - "; getScript: { (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptResponse", - ">; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptResponse", - ", unknown>>; (this: That, params: ", - "GetScriptRequest", - " | ", - "GetScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptResponse", - ">; }; getScriptContext: { (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptContextResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptContextRequest", - " | ", - "GetScriptContextRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptContextResponse", - ">; }; getScriptLanguages: { (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "GetScriptLanguagesResponse", - ", unknown>>; (this: That, params?: ", - "GetScriptLanguagesRequest", - " | ", - "GetScriptLanguagesRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "GetScriptLanguagesResponse", - ">; }; getSource: { (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "GetSourceRequest", - " | ", - "GetSourceRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; graph: ", - "default", - "; ilm: ", - "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "InfoResponse", - ">; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "InfoResponse", - ", unknown>>; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "InfoResponse", - ">; }; ingest: ", - "default", - "; knnSearch: { (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "KnnSearchResponse", - ">; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "KnnSearchResponse", - ", unknown>>; (this: That, params: ", - "KnnSearchRequest", - " | ", - "KnnSearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "KnnSearchResponse", - ">; }; license: ", - "default", - "; logstash: ", - "default", - "; mget: { (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MgetResponse", - ">; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MgetResponse", - ", unknown>>; (this: That, params?: ", - "MgetRequest", - " | ", - "MgetRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MgetResponse", - ">; }; migration: ", - "default", - "; ml: ", - "default", - "; msearch: { >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchResponse", - ">; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchResponse", - ", unknown>>; >(this: That, params: ", - "MsearchRequest", - " | ", - "MsearchRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchResponse", - ">; }; msearchTemplate: { >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MsearchTemplateResponse", - ", unknown>>; >(this: That, params: ", - "MsearchTemplateRequest", - " | ", - "MsearchTemplateRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MsearchTemplateResponse", - ">; }; mtermvectors: { (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "MtermvectorsResponse", - ", unknown>>; (this: That, params?: ", - "MtermvectorsRequest", - " | ", - "MtermvectorsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "OpenPointInTimeResponse", - ", unknown>>; (this: That, params: ", - "OpenPointInTimeRequest", - " | ", - "OpenPointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "AcknowledgedResponseBase", - ", unknown>>; (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "AcknowledgedResponseBase", - ">; }; rankEval: { (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RankEvalResponse", - ">; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RankEvalResponse", - ", unknown>>; (this: That, params: ", - "RankEvalRequest", - " | ", - "RankEvalRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RankEvalResponse", - ">; }; reindex: { (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexResponse", - ">; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexResponse", - ", unknown>>; (this: That, params: ", - "ReindexRequest", - " | ", - "ReindexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexResponse", - ">; }; reindexRethrottle: { (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ReindexRethrottleResponse", - ", unknown>>; (this: That, params: ", - "ReindexRethrottleRequest", - " | ", - "ReindexRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ReindexRethrottleResponse", - ">; }; renderSearchTemplate: { (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "RenderSearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "RenderSearchTemplateRequest", - " | ", - "RenderSearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "RenderSearchTemplateResponse", - ">; }; rollup: ", - "default", - "; scriptsPainlessExecute: { (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScriptsPainlessExecuteResponse", - ", unknown>>; (this: That, params?: ", - "ScriptsPainlessExecuteRequest", - " | ", - "ScriptsPainlessExecuteRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScriptsPainlessExecuteResponse", - ">; }; scroll: { >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "ScrollResponse", - ">; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ScrollResponse", - ", unknown>>; >(this: That, params: ", - "ScrollRequest", - " | ", - "ScrollRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ScrollResponse", - ">; }; searchMvt: { (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "SearchMvtRequest", - " | ", - "SearchMvtRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; searchShards: { (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchShardsResponse", - ">; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchShardsResponse", - ", unknown>>; (this: That, params?: ", - "SearchShardsRequest", - " | ", - "SearchShardsRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchShardsResponse", - ">; }; searchTemplate: { (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "SearchTemplateResponse", - ", unknown>>; (this: That, params?: ", - "SearchTemplateRequest", - " | ", - "SearchTemplateRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "SearchTemplateResponse", - ">; }; searchableSnapshots: ", - "default", - "; shutdown: ", - "default", - "; slm: ", - "default", - "; snapshot: ", - "default", - "; sql: ", - "default", - "; ssl: ", - "default", - "; tasks: ", - "default", - "; termsEnum: { (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermsEnumResponse", - ">; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermsEnumResponse", - ", unknown>>; (this: That, params: ", - "TermsEnumRequest", - " | ", - "TermsEnumRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermsEnumResponse", - ">; }; termvectors: { (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "TermvectorsResponse", - ">; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "TermvectorsResponse", - ", unknown>>; (this: That, params: ", - "TermvectorsRequest", - " | ", - "TermvectorsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "TermvectorsResponse", - ">; }; textStructure: ", - "default", - "; transform: ", - "default", - "; updateByQuery: { (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRequest", - " | ", - "UpdateByQueryRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryResponse", - ">; }; updateByQueryRethrottle: { (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "UpdateByQueryRethrottleResponse", - ", unknown>>; (this: That, params: ", - "UpdateByQueryRethrottleRequest", - " | ", - "UpdateByQueryRethrottleRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "UpdateByQueryRethrottleResponse", - ">; }; watcher: ", - "default", - "; xpack: ", - "default", - "; }" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ENCRYPTION_EXTENSION_ID", - "type": "string", - "tags": [], - "label": "ENCRYPTION_EXTENSION_ID", - "description": [], - "signature": [ - "\"encryptedSavedObjects\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/extensions.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.EventType", - "type": "Type", - "tags": [], - "label": "EventType", - "description": [ - "\nEvent Type used for indexed structures. Only used to improve the readability of the types" - ], - "signature": [ - "string" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ExecutionContextStart", - "type": "Type", - "tags": [], - "label": "ExecutionContextStart", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-execution-context-server", - "scope": "common", - "docId": "kibKbnCoreExecutionContextServerPluginApi", - "section": "def-common.ExecutionContextSetup", - "text": "ExecutionContextSetup" - } - ], - "path": "packages/core/execution-context/core-execution-context-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ExposedToBrowserDescriptor", - "type": "Type", - "tags": [], - "label": "ExposedToBrowserDescriptor", - "description": [ - "\nType defining the list of configuration properties that will be exposed on the client-side\nObject properties can either be fully exposed\n" - ], - "signature": [ - "{ [Key in keyof T]?: (T[Key] extends Maybe ? boolean : T[Key] extends Maybe ? boolean | ", - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.ExposedToBrowserDescriptor", - "text": "ExposedToBrowserDescriptor" - }, - " : boolean) | undefined; }" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.GetAuthHeaders", - "type": "Type", - "tags": [ - "return" - ], - "label": "GetAuthHeaders", - "description": [ - "\nGet headers to authenticate a user against Elasticsearch." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthHeaders", - "text": "AuthHeaders" - }, - " | undefined" - ], - "path": "packages/core/http/core-http-server/src/auth_headers.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [ - "authentication headers {@link AuthHeaders } for - an incoming request." - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.GetAuthHeaders.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [ - "{@link KibanaRequest } - an incoming request." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/auth_headers.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.GetAuthState", - "type": "Type", - "tags": [], - "label": "GetAuthState", - "description": [ - "\nGets authentication state for a request. Returned by `auth` interceptor." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ") => { status: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.AuthStatus", - "text": "AuthStatus" - }, - "; state: T; }" - ], - "path": "packages/core/http/core-http-server/src/auth_state.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.GetAuthState.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [ - "{@link KibanaRequest } - an incoming request." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/auth_state.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HandlerContextType", - "type": "Type", - "tags": [], - "label": "HandlerContextType", - "description": [ - "\nExtracts the type of the first argument of a {@link HandlerFunction} to represent the type of the context.\n" - ], - "signature": [ - "T extends ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HandlerFunction", - "text": "HandlerFunction" - }, - " ? U : never" - ], - "path": "packages/core/http/core-http-server/src/router/context_provider.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HandlerFunction", - "type": "Type", - "tags": [], - "label": "HandlerFunction", - "description": [ - "\nA function that accepts a context object and an optional number of additional arguments. Used for the generic types\nin {@link IContextContainer}\n" - ], - "signature": [ - "(context: T, ...args: any[]) => any" - ], - "path": "packages/core/http/core-http-server/src/router/context_provider.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HandlerFunction.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "T" - ], - "path": "packages/core/http/core-http-server/src/router/context_provider.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HandlerFunction.$2", - "type": "Array", - "tags": [], - "label": "args", - "description": [], - "signature": [ - "any[]" - ], - "path": "packages/core/http/core-http-server/src/router/context_provider.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HandlerParameters", - "type": "Type", - "tags": [], - "label": "HandlerParameters", - "description": [ - "\nExtracts the types of the additional arguments of a {@link HandlerFunction}, excluding the\n{@link HandlerContextType}.\n" - ], - "signature": [ - "T extends (context: any, ...args: infer U) => any ? U : never" - ], - "path": "packages/core/http/core-http-server/src/router/context_provider.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.Headers", - "type": "Type", - "tags": [], - "label": "Headers", - "description": [ - "\nHttp request headers to read." - ], - "signature": [ - "{ accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; date?: string | string[] | undefined; etag?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; from?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; location?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; range?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; warning?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" - ], - "path": "packages/core/http/core-http-server/src/router/headers.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesRequestHandler", - "type": "Type", - "tags": [], - "label": "HttpResourcesRequestHandler", - "description": [ - "\nExtended version of {@link RequestHandler} having access to {@link HttpResourcesServiceToolkit}\nto respond with HTML or JS resources." - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaSuccessResponseFactory", - "text": "KibanaSuccessResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRedirectionResponseFactory", - "text": "KibanaRedirectionResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaErrorResponseFactory", - "text": "KibanaErrorResponseFactory" - }, - " & { custom | Error | ", - "Stream", - " | Buffer | { message: string | Error; attributes?: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseErrorAttributes", - "text": "ResponseErrorAttributes" - }, - " | undefined; } | undefined>(options: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.CustomHttpResponseOptions", - "text": "CustomHttpResponseOptions" - }, - "): ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - "; } & ", - { - "pluginId": "@kbn/core-http-resources-server", - "scope": "common", - "docId": "kibKbnCoreHttpResourcesServerPluginApi", - "section": "def-common.HttpResourcesServiceToolkit", - "text": "HttpResourcesServiceToolkit" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesRequestHandler.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [ - "{@link RequestHandlerContext } - the core context exposed for this request." - ], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesRequestHandler.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [ - "{@link KibanaRequest } - object containing information about requested resource,\nsuch as path, method, headers, parameters, query, body, etc." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesRequestHandler.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [ - "{@link KibanaResponseFactory } {@libk HttpResourcesServiceToolkit} - a set of helper functions used to respond to a request." - ], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResourcesResponseOptions", - "type": "Type", - "tags": [], - "label": "HttpResourcesResponseOptions", - "description": [ - "\nHTTP Resources response parameters" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - } - ], - "path": "packages/core/http/core-http-resources-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.HttpResponsePayload", - "type": "Type", - "tags": [], - "label": "HttpResponsePayload", - "description": [ - "\nData send to the client as a response payload." - ], - "signature": [ - "string | Record | ", - "Stream", - " | Buffer | undefined" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IContextProvider", - "type": "Type", - "tags": [], - "label": "IContextProvider", - "description": [ - "\nA function that returns a context value for a specific key of given context type.\n" - ], - "signature": [ - "(context: Omit, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - ") => ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/context_provider.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [ - "The context value associated with this key. May also return a Promise which will be resolved before\nattaching to the context object." - ], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IContextProvider.$1", - "type": "Object", - "tags": [], - "label": "context", - "description": [ - "- A partial context object containing only the keys for values provided by plugin dependencies" - ], - "signature": [ - "{ [P in Exclude]: Context[P]; }" - ], - "path": "packages/core/http/core-http-server/src/router/context_provider.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.IContextProvider.$2", - "type": "Object", - "tags": [], - "label": "rest", - "description": [ - "- Additional parameters provided by the service owner of this context" - ], - "signature": [ - "[request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - "]" - ], - "path": "packages/core/http/core-http-server/src/router/context_provider.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.IsAuthenticated", - "type": "Type", - "tags": [], - "label": "IsAuthenticated", - "description": [ - "\nReturns authentication status for a request." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ") => boolean" - ], - "path": "packages/core/http/core-http-server/src/auth_state.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IsAuthenticated.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [ - "{@link KibanaRequest } - an incoming request." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/auth_state.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaExecutionContext", - "type": "Type", - "tags": [], - "label": "KibanaExecutionContext", - "description": [], - "signature": [ - "{ readonly type?: string | undefined; readonly name?: string | undefined; readonly page?: string | undefined; readonly id?: string | undefined; readonly description?: string | undefined; readonly url?: string | undefined; readonly meta?: { [key: string]: string | number | boolean | undefined; } | undefined; child?: ", - { - "pluginId": "@kbn/core-execution-context-common", - "scope": "common", - "docId": "kibKbnCoreExecutionContextCommonPluginApi", - "section": "def-common.KibanaExecutionContext", - "text": "KibanaExecutionContext" - }, - " | undefined; }" - ], - "path": "packages/core/execution-context/core-execution-context-common/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaRequestRouteOptions", - "type": "Type", - "tags": [], - "label": "KibanaRequestRouteOptions", - "description": [ - "\nRoute options: If 'GET' or 'OPTIONS' method, body options won't be returned." - ], - "signature": [ - "Method extends \"options\" | \"get\" ? Required, \"body\">> : Required<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfigOptions", - "text": "RouteConfigOptions" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/request.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.KibanaResponseFactory", - "type": "Type", - "tags": [], - "label": "KibanaResponseFactory", - "description": [ - "\nSet of helpers used to create `KibanaResponse` to form HTTP response on an incoming request.\nShould be returned as a result of {@link RequestHandler} execution.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaSuccessResponseFactory", - "text": "KibanaSuccessResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRedirectionResponseFactory", - "text": "KibanaRedirectionResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaErrorResponseFactory", - "text": "KibanaErrorResponseFactory" - }, - " & { custom | Error | ", - "Stream", - " | Buffer | { message: string | Error; attributes?: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseErrorAttributes", - "text": "ResponseErrorAttributes" - }, - " | undefined; } | undefined>(options: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.CustomHttpResponseOptions", - "text": "CustomHttpResponseOptions" - }, - "): ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - "; }" - ], - "path": "packages/core/http/core-http-server/src/router/response_factory.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.KnownHeaders", - "type": "Type", - "tags": [], - "label": "KnownHeaders", - "description": [ - "\nSet of well-known HTTP headers." - ], - "signature": [ - "\"accept\" | \"accept-language\" | \"accept-patch\" | \"accept-ranges\" | \"access-control-allow-credentials\" | \"access-control-allow-headers\" | \"access-control-allow-methods\" | \"access-control-allow-origin\" | \"access-control-expose-headers\" | \"access-control-max-age\" | \"access-control-request-headers\" | \"access-control-request-method\" | \"age\" | \"allow\" | \"alt-svc\" | \"authorization\" | \"cache-control\" | \"connection\" | \"content-disposition\" | \"content-encoding\" | \"content-language\" | \"content-length\" | \"content-location\" | \"content-range\" | \"content-type\" | \"cookie\" | \"date\" | \"etag\" | \"expect\" | \"expires\" | \"forwarded\" | \"from\" | \"host\" | \"if-match\" | \"if-modified-since\" | \"if-none-match\" | \"if-unmodified-since\" | \"last-modified\" | \"location\" | \"origin\" | \"pragma\" | \"proxy-authenticate\" | \"proxy-authorization\" | \"public-key-pins\" | \"range\" | \"referer\" | \"retry-after\" | \"sec-websocket-accept\" | \"sec-websocket-extensions\" | \"sec-websocket-key\" | \"sec-websocket-protocol\" | \"sec-websocket-version\" | \"set-cookie\" | \"strict-transport-security\" | \"tk\" | \"trailer\" | \"transfer-encoding\" | \"upgrade\" | \"user-agent\" | \"vary\" | \"via\" | \"warning\" | \"www-authenticate\"" - ], - "path": "packages/core/http/core-http-server/src/router/headers.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.LifecycleResponseFactory", - "type": "Type", - "tags": [], - "label": "LifecycleResponseFactory", - "description": [ - "\nCreates an object containing redirection or error response with error details, HTTP headers, and other data transmitted to the client." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRedirectionResponseFactory", - "text": "KibanaRedirectionResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaErrorResponseFactory", - "text": "KibanaErrorResponseFactory" - } - ], - "path": "packages/core/http/core-http-server/src/router/response_factory.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.LogMeta", - "type": "Type", - "tags": [], - "label": "LogMeta", - "description": [ - "\nRepresents the ECS schema with the following reserved keys excluded:\n- `ecs`\n- `@timestamp`\n- `message`\n- `log.level`\n- `log.logger`\n" - ], - "signature": [ - "Omit<", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsBase", - "text": "EcsBase" - }, - ", \"message\" | \"@timestamp\"> & ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsTracing", - "text": "EcsTracing" - }, - " & { agent?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsAgent", - "text": "EcsAgent" - }, - " | undefined; as?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsAs", - "text": "EcsAs" - }, - " | undefined; client?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsClient", - "text": "EcsClient" - }, - " | undefined; cloud?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsCloud", - "text": "EcsCloud" - }, - " | undefined; container?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsContainer", - "text": "EcsContainer" - }, - " | undefined; destination?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsDestination", - "text": "EcsDestination" - }, - " | undefined; dns?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsDns", - "text": "EcsDns" - }, - " | undefined; error?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsError", - "text": "EcsError" - }, - " | undefined; event?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsEvent", - "text": "EcsEvent" - }, - " | undefined; file?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsFile", - "text": "EcsFile" - }, - " | undefined; group?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsGroup", - "text": "EcsGroup" - }, - " | undefined; host?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsHost", - "text": "EcsHost" - }, - " | undefined; http?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsHttp", - "text": "EcsHttp" - }, - " | undefined; log?: Omit<", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsLog", - "text": "EcsLog" - }, - ", \"logger\" | \"level\"> | undefined; network?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsNetwork", - "text": "EcsNetwork" - }, - " | undefined; observer?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsObserver", - "text": "EcsObserver" - }, - " | undefined; organization?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsOrganization", - "text": "EcsOrganization" - }, - " | undefined; package?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsPackage", - "text": "EcsPackage" - }, - " | undefined; process?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsProcess", - "text": "EcsProcess" - }, - " | undefined; registry?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsRegistry", - "text": "EcsRegistry" - }, - " | undefined; related?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsRelated", - "text": "EcsRelated" - }, - " | undefined; rule?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsRule", - "text": "EcsRule" - }, - " | undefined; server?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsServer", - "text": "EcsServer" - }, - " | undefined; service?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsService", - "text": "EcsService" - }, - " | undefined; source?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsSource", - "text": "EcsSource" - }, - " | undefined; threat?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsThreat", - "text": "EcsThreat" - }, - " | undefined; tls?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsTls", - "text": "EcsTls" - }, - " | undefined; url?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsUrl", - "text": "EcsUrl" - }, - " | undefined; user?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsUser", - "text": "EcsUser" - }, - " | undefined; user_agent?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsUserAgent", - "text": "EcsUserAgent" - }, - " | undefined; vulnerability?: ", - { - "pluginId": "@kbn/ecs", - "scope": "common", - "docId": "kibKbnEcsPluginApi", - "section": "def-common.EcsVulnerability", - "text": "EcsVulnerability" - }, - " | undefined; }" - ], - "path": "packages/kbn-logging/src/log_meta.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.MakeUsageFromSchema", - "type": "Type", - "tags": [], - "label": "MakeUsageFromSchema", - "description": [ - "\nList of configuration values that will be exposed to usage collection.\nIf parent node or actual config path is set to `true` then the actual value\nof these configs will be reoprted.\nIf parent node or actual config path is set to `false` then the config\nwill be reported as [redacted].\n" - ], - "signature": [ - "{ [Key in keyof T]?: (T[Key] extends Maybe ? false : T[Key] extends Maybe ? boolean : T[Key] extends Maybe ? boolean | ", - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.MakeUsageFromSchema", - "text": "MakeUsageFromSchema" - }, - " : boolean) | undefined; }" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.MetricsServiceStart", - "type": "Type", - "tags": [], - "label": "MetricsServiceStart", - "description": [ - "\n{@inheritdoc MetricsServiceSetup}\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-metrics-server", - "scope": "common", - "docId": "kibKbnCoreMetricsServerPluginApi", - "section": "def-common.MetricsServiceSetup", - "text": "MetricsServiceSetup" - } - ], - "path": "packages/core/metrics/core-metrics-server/src/contracts.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.MutatingOperationRefreshSetting", - "type": "Type", - "tags": [], - "label": "MutatingOperationRefreshSetting", - "description": [ - "\nElasticsearch Refresh setting for mutating operation" - ], - "signature": [ - "boolean | \"wait_for\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPostAuthHandler", - "type": "Type", - "tags": [], - "label": "OnPostAuthHandler", - "description": [ - "\nSee {@link OnPostAuthToolkit}." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.LifecycleResponseFactory", - "text": "LifecycleResponseFactory" - }, - ", toolkit: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPostAuthToolkit", - "text": "OnPostAuthToolkit" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPostAuthNextResult", - "text": "OnPostAuthNextResult" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPostAuthNextResult", - "text": "OnPostAuthNextResult" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_post_auth.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPostAuthHandler.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_post_auth.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPostAuthHandler.$2", - "type": "CompoundType", - "tags": [], - "label": "response", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRedirectionResponseFactory", - "text": "KibanaRedirectionResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaErrorResponseFactory", - "text": "KibanaErrorResponseFactory" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_post_auth.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPostAuthHandler.$3", - "type": "Object", - "tags": [], - "label": "toolkit", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPostAuthToolkit", - "text": "OnPostAuthToolkit" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_post_auth.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreAuthHandler", - "type": "Type", - "tags": [], - "label": "OnPreAuthHandler", - "description": [ - "\nSee {@link OnPreAuthToolkit}." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.LifecycleResponseFactory", - "text": "LifecycleResponseFactory" - }, - ", toolkit: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreAuthToolkit", - "text": "OnPreAuthToolkit" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreAuthNextResult", - "text": "OnPreAuthNextResult" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreAuthNextResult", - "text": "OnPreAuthNextResult" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_auth.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreAuthHandler.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_auth.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreAuthHandler.$2", - "type": "CompoundType", - "tags": [], - "label": "response", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRedirectionResponseFactory", - "text": "KibanaRedirectionResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaErrorResponseFactory", - "text": "KibanaErrorResponseFactory" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_auth.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreAuthHandler.$3", - "type": "Object", - "tags": [], - "label": "toolkit", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreAuthToolkit", - "text": "OnPreAuthToolkit" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_auth.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseHandler", - "type": "Type", - "tags": [], - "label": "OnPreResponseHandler", - "description": [ - "\nSee {@link OnPreResponseToolkit}." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", preResponse: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseInfo", - "text": "OnPreResponseInfo" - }, - ", toolkit: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseToolkit", - "text": "OnPreResponseToolkit" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseResult", - "text": "OnPreResponseResult" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseResult", - "text": "OnPreResponseResult" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseHandler.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseHandler.$2", - "type": "Object", - "tags": [], - "label": "preResponse", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseInfo", - "text": "OnPreResponseInfo" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreResponseHandler.$3", - "type": "Object", - "tags": [], - "label": "toolkit", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreResponseToolkit", - "text": "OnPreResponseToolkit" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_response.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreRoutingHandler", - "type": "Type", - "tags": [], - "label": "OnPreRoutingHandler", - "description": [ - "\nSee {@link OnPreRoutingToolkit}." - ], - "signature": [ - "(request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.LifecycleResponseFactory", - "text": "LifecycleResponseFactory" - }, - ", toolkit: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreRoutingToolkit", - "text": "OnPreRoutingToolkit" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreRoutingResult", - "text": "OnPreRoutingResult" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreRoutingResult", - "text": "OnPreRoutingResult" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_routing.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.OnPreRoutingHandler.$1", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_routing.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreRoutingHandler.$2", - "type": "CompoundType", - "tags": [], - "label": "response", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRedirectionResponseFactory", - "text": "KibanaRedirectionResponseFactory" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaErrorResponseFactory", - "text": "KibanaErrorResponseFactory" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_routing.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.OnPreRoutingHandler.$3", - "type": "Object", - "tags": [], - "label": "toolkit", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.OnPreRoutingToolkit", - "text": "OnPreRoutingToolkit" - } - ], - "path": "packages/core/http/core-http-server/src/lifecycle/on_pre_routing.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginConfigSchema", - "type": "Type", - "tags": [], - "label": "PluginConfigSchema", - "description": [ - "\nDedicated type for plugin configuration schema.\n" - ], - "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.Type", - "text": "Type" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginInitializer", - "type": "Type", - "tags": [], - "label": "PluginInitializer", - "description": [ - "\nThe `plugin` export at the root of a plugin's `server` directory should conform\nto this interface.\n" - ], - "signature": [ - "(core: ", - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.PluginInitializerContext", - "text": "PluginInitializerContext" - }, - ") => ", - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.Plugin", - "text": "Plugin" - }, - " | ", - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.PrebootPlugin", - "text": "PrebootPlugin" - }, - " | ", - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.AsyncPlugin", - "text": "AsyncPlugin" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PluginInitializer.$1", - "type": "Object", - "tags": [], - "label": "core", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-plugins-server", - "scope": "common", - "docId": "kibKbnCorePluginsServerPluginApi", - "section": "def-common.PluginInitializerContext", - "text": "PluginInitializerContext" - }, - "" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginName", - "type": "Type", - "tags": [], - "label": "PluginName", - "description": [ - "\nDedicated type for plugin name/id that is supposed to make Map/Set/Arrays\nthat use it as a key or value more obvious.\n" - ], - "signature": [ - "string" - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PluginOpaqueId", - "type": "Type", - "tags": [], - "label": "PluginOpaqueId", - "description": [], - "signature": [ - "symbol" - ], - "path": "packages/core/base/core-base-common/src/plugins.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PublicHttpServiceSetup", - "type": "Type", - "tags": [], - "label": "PublicHttpServiceSetup", - "description": [ - "\nPublic version of RequestHandlerContext, default-scoped to {@link RequestHandlerContext}\nSee [@link RequestHandlerContext}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpServiceSetup", - "text": "HttpServiceSetup" - }, - "" - ], - "path": "src/core/server/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PublicRequestHandler", - "type": "Type", - "tags": [], - "label": "PublicRequestHandler", - "description": [ - "\nPublic version of RequestHandler, default-scoped to {@link RequestHandlerContext}\nSee [@link RequestHandler}" - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ResponseFactory) => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "src/core/server/index.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.PublicRequestHandler.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PublicRequestHandler.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.PublicRequestHandler.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.PublicRouter", - "type": "Type", - "tags": [], - "label": "PublicRouter", - "description": [ - "\nPublic version of IRouter, default-scoped to {@link RequestHandlerContext}\nSee [@link IRouter}" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IRouter", - "text": "IRouter" - }, - "" - ], - "path": "src/core/server/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RawRequest", - "type": "Type", - "tags": [], - "label": "RawRequest", - "description": [], - "signature": [ - "Request", - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.FakeRawRequest", - "text": "FakeRawRequest" - } - ], - "path": "packages/core/http/core-http-server/src/router/raw_request.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RedirectResponseOptions", - "type": "Type", - "tags": [], - "label": "RedirectResponseOptions", - "description": [ - "\nHTTP response parameters for redirection response" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpResponseOptions", - "text": "HttpResponseOptions" - }, - " & { headers: { location: string; }; }" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RequestHandler", - "type": "Type", - "tags": [], - "label": "RequestHandler", - "description": [ - "\nA function executed when route path matched requested resource path.\nRequest handler is expected to return a result of one of {@link KibanaResponseFactory} functions.\nIf anything else is returned, or an error is thrown, the HTTP service will automatically log the error\nand respond `500 - Internal Server Error`." - ], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ResponseFactory) => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RequestHandler.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [ - "{@link RequestHandlerContext } - the core context exposed for this request." - ], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RequestHandler.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [ - "{@link KibanaRequest } - object containing information about requested resource,\nsuch as path, method, headers, parameters, query, body, etc." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RequestHandler.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [ - "{@link KibanaResponseFactory } - a set of helper functions used to respond to a request." - ], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RequestHandlerWrapper", - "type": "Type", - "tags": [], - "label": "RequestHandlerWrapper", - "description": [ - "\nType-safe wrapper for {@link RequestHandler} function." - ], - "signature": [ - "(handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RequestHandlerWrapper.$1", - "type": "Function", - "tags": [], - "label": "handler", - "description": [], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ResponseFactory) => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RequestHandlerWrapper.$1.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RequestHandlerWrapper.$1.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RequestHandlerWrapper.$1.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ResponseError", - "type": "Type", - "tags": [], - "label": "ResponseError", - "description": [ - "\nError message and optional data send to the client in case of error." - ], - "signature": [ - "string | Error | { message: string | Error; attributes?: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseErrorAttributes", - "text": "ResponseErrorAttributes" - }, - " | undefined; }" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ResponseErrorAttributes", - "type": "Type", - "tags": [], - "label": "ResponseErrorAttributes", - "description": [ - "\nAdditional data to provide error details." - ], - "signature": [ - "{ [x: string]: any; }" - ], - "path": "packages/core/http/core-http-server/src/router/response.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ResponseHeaders", - "type": "Type", - "tags": [], - "label": "ResponseHeaders", - "description": [ - "\nHttp response headers to set." - ], - "signature": [ - "Record<\"accept\" | \"accept-language\" | \"accept-patch\" | \"accept-ranges\" | \"access-control-allow-credentials\" | \"access-control-allow-headers\" | \"access-control-allow-methods\" | \"access-control-allow-origin\" | \"access-control-expose-headers\" | \"access-control-max-age\" | \"access-control-request-headers\" | \"access-control-request-method\" | \"age\" | \"allow\" | \"alt-svc\" | \"authorization\" | \"cache-control\" | \"connection\" | \"content-disposition\" | \"content-encoding\" | \"content-language\" | \"content-length\" | \"content-location\" | \"content-range\" | \"content-type\" | \"cookie\" | \"date\" | \"etag\" | \"expect\" | \"expires\" | \"forwarded\" | \"from\" | \"host\" | \"if-match\" | \"if-modified-since\" | \"if-none-match\" | \"if-unmodified-since\" | \"last-modified\" | \"location\" | \"origin\" | \"pragma\" | \"proxy-authenticate\" | \"proxy-authorization\" | \"public-key-pins\" | \"range\" | \"referer\" | \"retry-after\" | \"sec-websocket-accept\" | \"sec-websocket-extensions\" | \"sec-websocket-key\" | \"sec-websocket-protocol\" | \"sec-websocket-version\" | \"set-cookie\" | \"strict-transport-security\" | \"tk\" | \"trailer\" | \"transfer-encoding\" | \"upgrade\" | \"user-agent\" | \"vary\" | \"via\" | \"warning\" | \"www-authenticate\", string | string[]> | Record" - ], - "path": "packages/core/http/core-http-server/src/router/headers.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteContentType", - "type": "Type", - "tags": [], - "label": "RouteContentType", - "description": [ - "\nThe set of supported parseable Content-Types" - ], - "signature": [ - "\"application/json\" | \"multipart/form-data\" | \"application/*+json\" | \"application/octet-stream\" | \"application/x-www-form-urlencoded\" | \"text/*\"" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteMethod", - "type": "Type", - "tags": [], - "label": "RouteMethod", - "description": [ - "\nThe set of common HTTP methods supported by Kibana routing." - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.SafeRouteMethod", - "text": "SafeRouteMethod" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.DestructiveRouteMethod", - "text": "DestructiveRouteMethod" - } - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteRegistrar", - "type": "Type", - "tags": [], - "label": "RouteRegistrar", - "description": [ - "\nRoute handler common definition\n" - ], - "signature": [ - "(route: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - ", handler: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RequestHandler", - "text": "RequestHandler" - }, - ") => void" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteRegistrar.$1", - "type": "Object", - "tags": [], - "label": "route", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteConfig", - "text": "RouteConfig" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteRegistrar.$2", - "type": "Function", - "tags": [], - "label": "handler", - "description": [], - "signature": [ - "(context: Context, request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - ", response: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaResponseFactory", - "text": "KibanaResponseFactory" - }, - ") => ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - " | Promise<", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.IKibanaResponse", - "text": "IKibanaResponse" - }, - ">" - ], - "path": "packages/core/http/core-http-server/src/router/router.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteRegistrar.$2.$1", - "type": "Uncategorized", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Context" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteRegistrar.$2.$2", - "type": "Object", - "tags": [], - "label": "request", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteRegistrar.$2.$3", - "type": "Uncategorized", - "tags": [], - "label": "response", - "description": [], - "signature": [ - "ResponseFactory" - ], - "path": "packages/core/http/core-http-server/src/router/request_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidationFunction", - "type": "Type", - "tags": [], - "label": "RouteValidationFunction", - "description": [ - "\nThe custom validation function if @kbn/config-schema is not a valid solution for your specific plugin requirements.\n" - ], - "signature": [ - "(data: any, validationResult: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationResultFactory", - "text": "RouteValidationResultFactory" - }, - ") => { value: T; error?: undefined; } | { value?: undefined; error: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationError", - "text": "RouteValidationError" - }, - "; }" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.RouteValidationFunction.$1", - "type": "Any", - "tags": [], - "label": "data", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidationFunction.$2", - "type": "Object", - "tags": [], - "label": "validationResult", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationResultFactory", - "text": "RouteValidationResultFactory" - } - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidationSpec", - "type": "Type", - "tags": [], - "label": "RouteValidationSpec", - "description": [ - "\nAllowed property validation options: either @kbn/config-schema validations or custom validation functions\n\nSee {@link RouteValidationFunction} for custom validation.\n" - ], - "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ObjectType", - "text": "ObjectType" - }, - " | ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.Type", - "text": "Type" - }, - " | ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidationFunction", - "text": "RouteValidationFunction" - }, - "" - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.RouteValidatorFullConfig", - "type": "Type", - "tags": [], - "label": "RouteValidatorFullConfig", - "description": [ - "\nRoute validations config and options merged into one object" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidatorConfig", - "text": "RouteValidatorConfig" - }, - " & ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.RouteValidatorOptions", - "text": "RouteValidatorOptions" - } - ], - "path": "packages/core/http/core-http-server/src/router/route_validator.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SafeRouteMethod", - "type": "Type", - "tags": [], - "label": "SafeRouteMethod", - "description": [ - "\nSet of HTTP methods not changing the state of the server." - ], - "signature": [ - "\"options\" | \"get\"" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectAttribute", - "type": "Type", - "tags": [], - "label": "SavedObjectAttribute", - "description": [ - "\nType definition for a Saved Object attribute value\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectAttributeSingle", - "text": "SavedObjectAttributeSingle" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectAttributeSingle", - "text": "SavedObjectAttributeSingle" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectAttributeSingle", - "type": "Type", - "tags": [], - "label": "SavedObjectAttributeSingle", - "description": [ - "\nDon't use this type, it's simply a helper type for {@link SavedObjectAttribute}\n" - ], - "signature": [ - "string | number | boolean | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectAttributes", - "text": "SavedObjectAttributes" - }, - " | null | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/server_types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationFn", - "type": "Type", - "tags": [], - "label": "SavedObjectMigrationFn", - "description": [ - "\nA migration function for a {@link SavedObjectsType | saved object type}\nused to migrate it to a given version\n" - ], - "signature": [ - "(doc: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectUnsanitizedDoc", - "text": "SavedObjectUnsanitizedDoc" - }, - ", context: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationContext", - "text": "SavedObjectMigrationContext" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectUnsanitizedDoc", - "text": "SavedObjectUnsanitizedDoc" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationFn.$1", - "type": "CompoundType", - "tags": [], - "label": "doc", - "description": [], - "signature": [ - "SavedObjectDoc & { references?: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectMigrationFn.$2", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectMigrationContext", - "text": "SavedObjectMigrationContext" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/migration.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectSanitizedDoc", - "type": "Type", - "tags": [], - "label": "SavedObjectSanitizedDoc", - "description": [ - "\nDescribes Saved Object documents that have passed through the migration\nframework and are guaranteed to have a `references` root property.\n" - ], - "signature": [ - "SavedObjectDoc & { references: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[]; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientFactory", - "type": "Type", - "tags": [], - "label": "SavedObjectsClientFactory", - "description": [ - "\nDescribes the factory used to create instances of the Saved Objects Client." - ], - "signature": [ - "({ request, includedHiddenTypes, extensions, }: { request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; includedHiddenTypes?: string[] | undefined; extensions?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined; }) => ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientFactory.$1", - "type": "Object", - "tags": [], - "label": "__0", - "description": [], - "signature": [ - "{ request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; includedHiddenTypes?: string[] | undefined; extensions?: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExtensions", - "text": "SavedObjectsExtensions" - }, - " | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientFactoryProvider", - "type": "Type", - "tags": [], - "label": "SavedObjectsClientFactoryProvider", - "description": [ - "\nProvider to invoke to retrieve a {@link SavedObjectsClientFactory}." - ], - "signature": [ - "(repositoryFactory: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRepositoryFactory", - "text": "SavedObjectsRepositoryFactory" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsClientFactory", - "text": "SavedObjectsClientFactory" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClientFactoryProvider.$1", - "type": "Object", - "tags": [], - "label": "repositoryFactory", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsRepositoryFactory", - "text": "SavedObjectsRepositoryFactory" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsClosePointInTimeOptions", - "type": "Type", - "tags": [], - "label": "SavedObjectsClosePointInTimeOptions", - "description": [ - "\nOptions for the close point-in-time operation\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/close_point_in_time.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsCreatePointInTimeFinderOptions", - "type": "Type", - "tags": [], - "label": "SavedObjectsCreatePointInTimeFinderOptions", - "description": [ - "\nOptions for the create point-in-time finder operation\n" - ], - "signature": [ - "{ type: string | string[]; filter?: any; search?: string | undefined; fields?: string[] | undefined; aggs?: Record | undefined; perPage?: number | undefined; sortField?: string | undefined; sortOrder?: ", - "SortOrder", - " | undefined; searchFields?: string[] | undefined; rootSearchFields?: string[] | undefined; hasReference?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - "[] | undefined; hasReferenceOperator?: \"AND\" | \"OR\" | undefined; hasNoReference?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptionsReference", - "text": "SavedObjectsFindOptionsReference" - }, - "[] | undefined; hasNoReferenceOperator?: \"AND\" | \"OR\" | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; namespaces?: string[] | undefined; typeToNamespacesMap?: Map | undefined; preference?: string | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create_point_in_time_finder.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsEncryptionExtensionFactory", - "type": "Type", - "tags": [], - "label": "SavedObjectsEncryptionExtensionFactory", - "description": [ - "\nDescribes the factory used to create instances of the Saved Objects Encryption Extension." - ], - "signature": [ - "(params: { typeRegistry: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - }, - "; request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; }) => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsEncryptionExtension", - "text": "ISavedObjectsEncryptionExtension" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsEncryptionExtensionFactory.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [], - "signature": [ - "{ typeRegistry: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - }, - "; request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportTransform", - "type": "Type", - "tags": [], - "label": "SavedObjectsExportTransform", - "description": [ - "\nTransformation function used to mutate the exported objects of the associated type.\n\nA type's export transform function will be executed once per user-initiated export,\nfor all objects of that type.\n" - ], - "signature": [ - "(context: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportTransformContext", - "text": "SavedObjectsExportTransformContext" - }, - ", objects: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]) => ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[] | Promise<", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]>" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportTransform.$1", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsExportTransformContext", - "text": "SavedObjectsExportTransformContext" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExportTransform.$2", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/export.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExtensionFactory", - "type": "Type", - "tags": [], - "label": "SavedObjectsExtensionFactory", - "description": [ - "\nDescribes the base Saved Objects Extension factory." - ], - "signature": [ - "(params: { typeRegistry: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - }, - "; request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; }) => T" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsExtensionFactory.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [], - "signature": [ - "{ typeRegistry: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - }, - "; request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsFieldMapping", - "type": "Type", - "tags": [], - "label": "SavedObjectsFieldMapping", - "description": [ - "\nDescribe a {@link SavedObjectsTypeMappingDefinition | saved object type mapping} field.\n\nPlease refer to {@link https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html | elasticsearch documentation}\nFor the mapping documentation\n" - ], - "signature": [ - "MappingProperty", - " & { dynamic?: false | \"strict\" | undefined; properties?: Record | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/mapping_definition.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportHook", - "type": "Type", - "tags": [], - "label": "SavedObjectsImportHook", - "description": [ - "\nA hook associated with a specific saved object type, that will be invoked during\nthe import process. The hook will have access to the objects of the registered type.\n\nCurrently, the only supported feature for import hooks is to return warnings to be displayed\nin the UI when the import succeeds.\n" - ], - "signature": [ - "(objects: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]) => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsImportHookResult", - "text": "SavedObjectsImportHookResult" - }, - " | Promise<", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectsImportHookResult", - "text": "SavedObjectsImportHookResult" - }, - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportHook.$1", - "type": "Array", - "tags": [], - "label": "objects", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObject", - "text": "SavedObject" - }, - "[]" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/import.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsImportWarning", - "type": "Type", - "tags": [], - "label": "SavedObjectsImportWarning", - "description": [ - "\nComposite type of all the possible types of import warnings.\n\nSee {@link SavedObjectsImportSimpleWarning} and {@link SavedObjectsImportActionRequiredWarning}\nfor more details.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportSimpleWarning", - "text": "SavedObjectsImportSimpleWarning" - }, - " | ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectsImportActionRequiredWarning", - "text": "SavedObjectsImportActionRequiredWarning" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects_imports.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsNamespaceType", - "type": "Type", - "tags": [], - "label": "SavedObjectsNamespaceType", - "description": [ - "\nThe namespace type dictates how a saved object can be interacted in relation to namespaces. Each type is mutually exclusive:\n * single (default): This type of saved object is namespace-isolated, e.g., it exists in only one namespace.\n * multiple: This type of saved object is shareable, e.g., it can exist in one or more namespaces.\n * multiple-isolated: This type of saved object is namespace-isolated, e.g., it exists in only one namespace, but object IDs must be\n unique across all namespaces. This is intended to be an intermediate step when objects with a \"single\" namespace type are being\n converted to a \"multiple\" namespace type. In other words, objects with a \"multiple-isolated\" namespace type will be *share-capable*,\n but will not actually be shareable until the namespace type is changed to \"multiple\".\n * agnostic: This type of saved object is global.\n" - ], - "signature": [ - "\"single\" | \"multiple\" | \"multiple-isolated\" | \"agnostic\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsPointInTimeFinderClient", - "type": "Type", - "tags": [], - "label": "SavedObjectsPointInTimeFinderClient", - "description": [ - "\nPoint-in-time finder client.\nPartially implements {@link ISavedObjectsRepository}\n" - ], - "signature": [ - "{ find: (options: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" - }, - ", internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" - }, - ">; closePointInTime: (id: string, options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsBaseOptions", - "text": "SavedObjectsBaseOptions" - }, - " | undefined, internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsClosePointInTimeResponse", - "text": "SavedObjectsClosePointInTimeResponse" - }, - ">; openPointInTimeForType: (type: string | string[], options?: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeOptions", - "text": "SavedObjectsOpenPointInTimeOptions" - }, - " | undefined, internalOptions?: ", - "SavedObjectsFindInternalOptions", - " | undefined) => Promise<", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsOpenPointInTimeResponse", - "text": "SavedObjectsOpenPointInTimeResponse" - }, - ">; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create_point_in_time_finder.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsSecurityExtensionFactory", - "type": "Type", - "tags": [], - "label": "SavedObjectsSecurityExtensionFactory", - "description": [ - "\nDescribes the factory used to create instances of the Saved Objects Security Extension." - ], - "signature": [ - "(params: { typeRegistry: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - }, - "; request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; }) => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsSecurityExtension", - "text": "ISavedObjectsSecurityExtension" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsSecurityExtensionFactory.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [], - "signature": [ - "{ typeRegistry: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - }, - "; request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsSpacesExtensionFactory", - "type": "Type", - "tags": [], - "label": "SavedObjectsSpacesExtensionFactory", - "description": [ - "\nDescribes the factory used to create instances of the Saved Objects Spaces Extension." - ], - "signature": [ - "(params: { typeRegistry: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - }, - "; request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; }) => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectsSpacesExtension", - "text": "ISavedObjectsSpacesExtension" - }, - " | undefined" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsSpacesExtensionFactory.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [], - "signature": [ - "{ typeRegistry: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.ISavedObjectTypeRegistry", - "text": "ISavedObjectTypeRegistry" - }, - "; request: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - "; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/client_factory.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectsValidationSpec", - "type": "Type", - "tags": [], - "label": "SavedObjectsValidationSpec", - "description": [ - "\nAllows for validating properties using @kbn/config-schema validations.\n" - ], - "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ObjectType", - "text": "ObjectType" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/validation.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectTypeExcludeFromUpgradeFilterHook", - "type": "Type", - "tags": [ - "alpha" - ], - "label": "SavedObjectTypeExcludeFromUpgradeFilterHook", - "description": [ - "\nIf defined, allows a type to run a search query and return a query filter that may match any documents which may\nbe excluded from the next migration upgrade process. Useful for cleaning up large numbers of old documents which\nare no longer needed and may slow the migration process.\n\nIf this hook fails, the migration will proceed without these documents having been filtered out, so this\nshould not be used as a guarantee that these documents have been deleted.\n" - ], - "signature": [ - "(toolkit: { readonlyEsClient: Pick<", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchClient", - "text": "ElasticsearchClient" - }, - ", \"search\">; }) => ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - "<", - "QueryDslQueryContainer", - ">" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.SavedObjectTypeExcludeFromUpgradeFilterHook.$1", - "type": "Object", - "tags": [], - "label": "toolkit", - "description": [], - "signature": [ - "{ readonlyEsClient: Pick<", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.ElasticsearchClient", - "text": "ElasticsearchClient" - }, - ", \"search\">; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SavedObjectUnsanitizedDoc", - "type": "Type", - "tags": [], - "label": "SavedObjectUnsanitizedDoc", - "description": [ - "\nDescribes Saved Object documents from Kibana < 7.0.0 which don't have a\n`references` root property defined. This type should only be used in\nmigrations.\n" - ], - "signature": [ - "SavedObjectDoc & { references?: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/serialization.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ScopeableRequest", - "type": "Type", - "tags": [], - "label": "ScopeableRequest", - "description": [ - "\n A user credentials container.\nIt accommodates the necessary auth credentials to impersonate the current user.\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.KibanaRequest", - "text": "KibanaRequest" - }, - " | ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.FakeRequest", - "text": "FakeRequest" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/scopeable_request.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SECURITY_EXTENSION_ID", - "type": "string", - "tags": [], - "label": "SECURITY_EXTENSION_ID", - "description": [], - "signature": [ - "\"security\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/extensions.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ServiceStatusLevel", - "type": "Type", - "tags": [], - "label": "ServiceStatusLevel", - "description": [ - "\nA convenience type that represents the union of each value in {@link ServiceStatusLevels}." - ], - "signature": [ - "Readonly<{ toString: () => \"available\"; valueOf: () => 0; toJSON: () => \"available\"; }> | Readonly<{ toString: () => \"degraded\"; valueOf: () => 1; toJSON: () => \"degraded\"; }> | Readonly<{ toString: () => \"unavailable\"; valueOf: () => 2; toJSON: () => \"unavailable\"; }> | Readonly<{ toString: () => \"critical\"; valueOf: () => 3; toJSON: () => \"critical\"; }>" - ], - "path": "packages/core/status/core-status-common/src/service_status.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SharedGlobalConfig", - "type": "Type", - "tags": [], - "label": "SharedGlobalConfig", - "description": [], - "signature": [ - "{ readonly elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; format: moment.Format; }>; }>; readonly path: Readonly<{ readonly data: string; }>; readonly savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; isLessThan: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; isEqualTo: (other: ", - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ByteSizeValue", - "text": "ByteSizeValue" - }, - ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: ", - "ByteSizeValueUnit", - " | undefined) => string; }>; }>; }" - ], - "path": "packages/core/plugins/core-plugins-server/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.SPACES_EXTENSION_ID", - "type": "string", - "tags": [], - "label": "SPACES_EXTENSION_ID", - "description": [], - "signature": [ - "\"spaces\"" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/extensions.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.StartServicesAccessor", - "type": "Type", - "tags": [], - "label": "StartServicesAccessor", - "description": [ - "\nAllows plugins to get access to APIs available in start inside async handlers.\nPromise will not resolve until Core and plugin dependencies have completed `start`.\nThis should only be used inside handlers registered during `setup` that will only be executed\nafter `start` lifecycle.\n" - ], - "signature": [ - "() => Promise<[", - { - "pluginId": "@kbn/core-lifecycle-server", - "scope": "common", - "docId": "kibKbnCoreLifecycleServerPluginApi", - "section": "def-common.CoreStart", - "text": "CoreStart" - }, - ", TPluginsStart, TStart]>" - ], - "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.TelemetryCounterType", - "type": "Type", - "tags": [], - "label": "TelemetryCounterType", - "description": [ - "\nIndicates if the event contains data about succeeded, failed or dropped events:\n- enqueued: The event was accepted and will be sent to the shippers when they become available (and opt-in === true).\n- sent_to_shipper: The event was sent to at least one shipper.\n- succeeded: The event was successfully sent by the shipper.\n- failed: There was an error when processing/shipping the event. Refer to the Telemetry Counter's code for the reason.\n- dropped: The event was dropped from the queue. Refer to the Telemetry Counter's code for the reason." - ], - "signature": [ - "\"succeeded\" | \"failed\" | \"enqueued\" | \"sent_to_shipper\" | \"dropped\"" - ], - "path": "packages/analytics/client/src/events/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UiSettingsType", - "type": "Type", - "tags": [], - "label": "UiSettingsType", - "description": [ - "\nUI element type to represent the settings." - ], - "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"image\" | \"json\" | \"markdown\" | \"select\" | \"array\"" - ], - "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandler", - "type": "Type", - "tags": [], - "label": "UnauthorizedErrorHandler", - "description": [ - "\nA handler used to handle unauthorized error returned by elasticsearch\n" - ], - "signature": [ - "(options: ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerOptions", - "text": "UnauthorizedErrorHandlerOptions" - }, - ", toolkit: ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerToolkit", - "text": "UnauthorizedErrorHandlerToolkit" - }, - ") => ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.MaybePromise", - "text": "MaybePromise" - }, - "<", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerResult", - "text": "UnauthorizedErrorHandlerResult" - }, - ">" - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandler.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerOptions", - "text": "UnauthorizedErrorHandlerOptions" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandler.$2", - "type": "Object", - "tags": [], - "label": "toolkit", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerToolkit", - "text": "UnauthorizedErrorHandlerToolkit" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.UnauthorizedErrorHandlerResult", - "type": "Type", - "tags": [], - "label": "UnauthorizedErrorHandlerResult", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerRetryResult", - "text": "UnauthorizedErrorHandlerRetryResult" - }, - " | ", - { - "pluginId": "@kbn/core-elasticsearch-server", - "scope": "common", - "docId": "kibKbnCoreElasticsearchServerPluginApi", - "section": "def-common.UnauthorizedErrorHandlerNotHandledResult", - "text": "UnauthorizedErrorHandlerNotHandledResult" - } - ], - "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/unauthorized_error_handler.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], - "objects": [ - { - "parentPluginId": "core", - "id": "def-server.DEFAULT_APP_CATEGORIES", - "type": "Object", - "tags": [], - "label": "DEFAULT_APP_CATEGORIES", - "description": [], - "signature": [ - "{ [x: string]: ", - { - "pluginId": "@kbn/core-application-common", - "scope": "common", - "docId": "kibKbnCoreApplicationCommonPluginApi", - "section": "def-common.AppCategory", - "text": "AppCategory" - }, - "; }" - ], - "path": "packages/core/application/core-application-common/src/default_app_categories.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.kibanaResponseFactory", - "type": "Object", - "tags": [], - "label": "kibanaResponseFactory", - "description": [], - "path": "packages/core/http/core-http-router-server-internal/src/response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.kibanaResponseFactory.Unnamed", - "type": "Any", - "tags": [], - "label": "Unnamed", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-router-server-internal/src/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.kibanaResponseFactory.Unnamed", - "type": "Any", - "tags": [], - "label": "Unnamed", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-router-server-internal/src/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.kibanaResponseFactory.Unnamed", - "type": "Any", - "tags": [], - "label": "Unnamed", - "description": [], - "signature": [ - "any" - ], - "path": "packages/core/http/core-http-router-server-internal/src/response.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "core", - "id": "def-server.kibanaResponseFactory.custom", - "type": "Function", - "tags": [], - "label": "custom", - "description": [], - "signature": [ - " | Error | ", - "Stream", - " | Buffer | { message: string | Error; attributes?: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.ResponseErrorAttributes", - "text": "ResponseErrorAttributes" - }, - " | undefined; } | undefined>(options: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.CustomHttpResponseOptions", - "text": "CustomHttpResponseOptions" - }, - ") => ", - "KibanaResponse", - "" - ], - "path": "packages/core/http/core-http-router-server-internal/src/response.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.kibanaResponseFactory.custom.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.CustomHttpResponseOptions", - "text": "CustomHttpResponseOptions" - }, - "" - ], - "path": "packages/core/http/core-http-router-server-internal/src/response.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.ServiceStatusLevels", - "type": "Object", - "tags": [], - "label": "ServiceStatusLevels", - "description": [ - "\nThe current \"level\" of availability of a service.\n" - ], - "signature": [ - "{ readonly available: Readonly<{ toString: () => \"available\"; valueOf: () => 0; toJSON: () => \"available\"; }>; readonly degraded: Readonly<{ toString: () => \"degraded\"; valueOf: () => 1; toJSON: () => \"degraded\"; }>; readonly unavailable: Readonly<{ toString: () => \"unavailable\"; valueOf: () => 2; toJSON: () => \"unavailable\"; }>; readonly critical: Readonly<{ toString: () => \"critical\"; valueOf: () => 3; toJSON: () => \"critical\"; }>; }" - ], - "path": "packages/core/status/core-status-common/src/service_status.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "core", - "id": "def-server.validBodyOutput", - "type": "Object", - "tags": [], - "label": "validBodyOutput", - "description": [ - "\nThe set of valid body.output" - ], - "signature": [ - "readonly [\"data\", \"stream\"]" - ], - "path": "packages/core/http/core-http-server/src/router/route.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ] - }, - "common": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - } -} \ No newline at end of file diff --git a/api_docs/core.mdx b/api_docs/core.mdx deleted file mode 100644 index 348cfb20916a1a..00000000000000 --- a/api_docs/core.mdx +++ /dev/null @@ -1,62 +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: kibCorePluginApi -slug: /kibana-dev-docs/api/core -title: "core" -image: https://source.unsplash.com/400x175/?github -description: API docs for the core plugin -date: 2023-02-06 -tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] ---- -import coreObj from './core.devdocs.json'; - - - -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. - -**Code health stats** - -| Public API count | Any count | Items lacking comments | Missing exports | -|-------------------|-----------|------------------------|-----------------| -| 2845 | 17 | 1029 | 0 | - -## Client - -### Objects - - -### Classes - - -### Interfaces - - -### Enums - - -### Consts, variables and types - - -## Server - -### Objects - - -### Functions - - -### Classes - - -### Interfaces - - -### Enums - - -### Consts, variables and types - - diff --git a/api_docs/custom_integrations.devdocs.json b/api_docs/custom_integrations.devdocs.json index e7512ead801df6..21e9c00a00a89b 100644 --- a/api_docs/custom_integrations.devdocs.json +++ b/api_docs/custom_integrations.devdocs.json @@ -438,7 +438,7 @@ "label": "categories", "description": [], "signature": [ - "(\"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"infrastructure\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" + "(\"monitoring\" | \"security\" | \"infrastructure\" | \"cloud\" | \"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -452,7 +452,7 @@ "label": "shipper", "description": [], "signature": [ - "\"beats\" | \"enterprise_search\" | \"language_clients\" | \"other\" | \"sample_data\" | \"tests\" | \"tutorial\" | \"placeholders\"" + "\"other\" | \"beats\" | \"enterprise_search\" | \"language_clients\" | \"sample_data\" | \"tests\" | \"tutorial\" | \"placeholders\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -488,7 +488,7 @@ "\nA category applicable to an Integration." ], "signature": [ - "\"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"infrastructure\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" + "\"monitoring\" | \"security\" | \"infrastructure\" | \"cloud\" | \"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -728,7 +728,7 @@ "label": "categories", "description": [], "signature": [ - "(\"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"infrastructure\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" + "(\"monitoring\" | \"security\" | \"infrastructure\" | \"cloud\" | \"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -742,7 +742,7 @@ "label": "shipper", "description": [], "signature": [ - "\"beats\" | \"enterprise_search\" | \"language_clients\" | \"other\" | \"sample_data\" | \"tests\" | \"tutorial\" | \"placeholders\"" + "\"other\" | \"beats\" | \"enterprise_search\" | \"language_clients\" | \"sample_data\" | \"tests\" | \"tutorial\" | \"placeholders\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -797,7 +797,7 @@ "label": "type", "description": [], "signature": [ - "\"eui\" | \"svg\"" + "\"svg\" | \"eui\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -838,7 +838,7 @@ "label": "id", "description": [], "signature": [ - "\"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"infrastructure\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" + "\"monitoring\" | \"security\" | \"infrastructure\" | \"cloud\" | \"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -860,7 +860,7 @@ "\nThe list of all available categories." ], "signature": [ - "(\"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"infrastructure\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" + "(\"monitoring\" | \"security\" | \"infrastructure\" | \"cloud\" | \"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -877,7 +877,7 @@ "\nA category applicable to an Integration." ], "signature": [ - "\"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"infrastructure\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" + "\"monitoring\" | \"security\" | \"infrastructure\" | \"cloud\" | \"custom\" | \"enterprise_search\" | \"sample_data\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"microsoft_365\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -948,7 +948,7 @@ "\nThe list of all known shippers." ], "signature": [ - "(\"beats\" | \"enterprise_search\" | \"language_clients\" | \"other\" | \"sample_data\" | \"tests\" | \"tutorial\" | \"placeholders\")[]" + "(\"other\" | \"beats\" | \"enterprise_search\" | \"language_clients\" | \"sample_data\" | \"tests\" | \"tutorial\" | \"placeholders\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -965,7 +965,7 @@ "\nA shipper-- an internal or external system capable of storing data in ES/Kibana-- applicable to an Integration." ], "signature": [ - "\"beats\" | \"enterprise_search\" | \"language_clients\" | \"other\" | \"sample_data\" | \"tests\" | \"tutorial\" | \"placeholders\"" + "\"other\" | \"beats\" | \"enterprise_search\" | \"language_clients\" | \"sample_data\" | \"tests\" | \"tutorial\" | \"placeholders\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index a9c18267655e37..081a63980a0ff8 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; Add custom data integrations so they can be displayed in the Fleet integrations app -Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regarding this plugin. +Contact [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/dashboard.devdocs.json b/api_docs/dashboard.devdocs.json index 66e3597db0e0f9..4b739b28e6b404 100644 --- a/api_docs/dashboard.devdocs.json +++ b/api_docs/dashboard.devdocs.json @@ -84,6 +84,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.onDestroyControlGroup", + "type": "Function", + "tags": [], + "label": "onDestroyControlGroup", + "description": [], + "signature": [ + "(() => void) | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "dashboard", "id": "def-public.DashboardContainer.Unnamed", @@ -862,7 +876,7 @@ "section": "def-common.PanelState", "text": "PanelState" }, - "<{ id: string; }>>, generateNewId?: boolean | undefined) => Promise" + "<{ id: string; }>>, generateNewId?: boolean | undefined) => Promise" ], "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", "deprecated": false, @@ -1080,7 +1094,7 @@ "section": "def-public.DashboardContainer", "text": "DashboardContainer" }, - ", type: string, explicitInput: Partial, embeddableId?: string | undefined) => Promise, embeddableId?: string | undefined) => Promise; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; }>; }>; }>>" + "; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; }>>" ], "path": "src/plugins/data/public/plugin.ts", "deprecated": false, @@ -9139,7 +9139,7 @@ "label": "AggConfigOptions", "description": [], "signature": [ - "{ schema?: string | undefined; type: ", + "{ type: ", { "pluginId": "data", "scope": "common", @@ -9147,7 +9147,7 @@ "section": "def-common.IAggType", "text": "IAggType" }, - "; params?: {} | ", + "; id?: string | undefined; params?: {} | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -9155,7 +9155,7 @@ "section": "def-common.SerializableRecord", "text": "SerializableRecord" }, - " | undefined; id?: string | undefined; enabled?: boolean | undefined; }" + " | undefined; schema?: string | undefined; enabled?: boolean | undefined; }" ], "path": "src/plugins/data/common/search/aggs/agg_config.ts", "deprecated": false, @@ -10092,7 +10092,19 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; history: ", + "; fetch: (options?: ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSourceSearchOptions", + "text": "SearchSourceSearchOptions" + }, + ") => Promise<", + "SearchResponse", + ">>; history: ", "SearchRequest", "[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: >>>; fetch: (options?: ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSourceSearchOptions", - "text": "SearchSourceSearchOptions" - }, - ") => Promise<", - "SearchResponse", - ">>; onRequestStart: (handler: (searchSource: ", + ">>>>; onRequestStart: (handler: (searchSource: ", { "pluginId": "data", "scope": "common", @@ -10682,7 +10682,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -11010,7 +11010,7 @@ "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, { @@ -13123,7 +13123,7 @@ "section": "def-common.FieldFormatsRegistry", "text": "FieldFormatsRegistry" }, - ", \"init\" | \"register\"> & { deserialize: ", + ", \"register\" | \"init\"> & { deserialize: ", { "pluginId": "fieldFormats", "scope": "common", @@ -13316,7 +13316,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; }>; }>; }>>" + "; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; }>>" ], "path": "src/plugins/data/server/plugin.ts", "deprecated": false, @@ -13621,6 +13621,10 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts" @@ -13969,10 +13973,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx" @@ -13993,18 +13993,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/preconfigured_job_redirect.ts" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/bucket_span_estimator/estimate_bucket_span.ts" @@ -14013,10 +14001,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts" @@ -15056,6 +15040,10 @@ "plugin": "dataViewManagement", "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" }, + { + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" + }, { "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.test.ts" @@ -15342,16 +15330,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" }, ") => ", { @@ -15380,16 +15368,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" } ], "path": "src/plugins/data_views/common/data_views/data_view.ts", @@ -18168,7 +18156,59 @@ "label": "elasticsearchClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -18220,9 +18260,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -18432,33 +18460,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -18540,27 +18544,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -18738,9 +18724,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -18918,9 +18928,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -18946,27 +18954,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -19544,7 +19532,7 @@ "label": "timeSeriesMetric", "description": [], "signature": [ - "\"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined" + "\"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined" ], "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", "deprecated": false, @@ -21244,6 +21232,10 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts" @@ -21592,10 +21584,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx" @@ -21616,18 +21604,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/preconfigured_job_redirect.ts" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/bucket_span_estimator/estimate_bucket_span.ts" @@ -21636,10 +21612,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts" @@ -22679,6 +22651,10 @@ "plugin": "dataViewManagement", "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" }, + { + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" + }, { "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.test.ts" @@ -22965,16 +22941,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" }, ") => ", { @@ -23003,16 +22979,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" } ], "path": "src/plugins/data_views/common/data_views/data_view.ts", @@ -23794,7 +23770,7 @@ "section": "def-common.RuntimeFieldSpec", "text": "RuntimeFieldSpec" }, - " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" + " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" ], "path": "src/plugins/data_views/common/fields/data_view_field.ts", "deprecated": false, @@ -24161,7 +24137,7 @@ "\nreturns type of TSDB metric or undefined" ], "signature": [ - "\"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined" + "\"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined" ], "path": "src/plugins/data_views/common/fields/data_view_field.ts", "deprecated": false, @@ -27757,23 +27733,23 @@ "\nData views service interface" ], "signature": [ - "{ get: (id: string, displayErrors?: boolean, refreshFields?: boolean) => Promise<", + "{ create: (spec: ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" }, - ">; delete: (indexPatternId: string) => Promise<{}>; create: (spec: ", + ", skipFetchFields?: boolean, displayErrors?: boolean) => Promise<", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" + "section": "def-common.DataView", + "text": "DataView" }, - ", skipFetchFields?: boolean, displayErrors?: boolean) => Promise<", + ">; get: (id: string, displayErrors?: boolean, refreshFields?: boolean) => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -27781,7 +27757,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ">; find: (search: string, size?: number) => Promise<", + ">; delete: (indexPatternId: string) => Promise<{}>; find: (search: string, size?: number) => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -28159,7 +28135,7 @@ "section": "def-common.RuntimeFieldSpec", "text": "RuntimeFieldSpec" }, - " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" + " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -28535,7 +28511,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -28863,7 +28839,7 @@ "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, { diff --git a/api_docs/data.mdx b/api_docs/data.mdx index d829300596d89c..e0aa55772af628 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 7c8eafe649cbd4..f028522d5d0fd7 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/data_search.devdocs.json b/api_docs/data_search.devdocs.json index 09441298d5f344..b18c013a92adea 100644 --- a/api_docs/data_search.devdocs.json +++ b/api_docs/data_search.devdocs.json @@ -194,7 +194,7 @@ "\nCurrent session management\n{@link ISessionService}" ], "signature": [ - "{ start: () => string; save: () => Promise; destroy: () => void; readonly state$: ", + "{ start: () => string; save: () => Promise; clear: () => void; destroy: () => void; readonly state$: ", "Observable", "<", { @@ -212,7 +212,7 @@ "Observable", "; hasAccess: () => boolean; trackSearch: (searchDescriptor: TrackSearchDescriptor) => TrackSearchHandler; getSessionId: () => string | undefined; getSession$: () => ", "Observable", - "; isStored: () => boolean; isRestore: () => boolean; restore: (sessionId: string) => void; continue: (sessionId: string) => void; clear: () => void; cancel: () => Promise; renameCurrentSession: (newName: string) => Promise; isCurrentSession: (sessionId?: string | undefined) => boolean; getSearchOptions: (sessionId?: string | undefined) => Required; isStored: () => boolean; isRestore: () => boolean; restore: (sessionId: string) => void; continue: (sessionId: string) => void; cancel: () => Promise; renameCurrentSession: (newName: string) => Promise; isCurrentSession: (sessionId?: string | undefined) => boolean; getSearchOptions: (sessionId?: string | undefined) => Required Promise<", + "{ create: ({ name, appId, locatorId, initialState, restoreState, sessionId, }: { name: string; appId: string; locatorId: string; initialState: Record; restoreState: Record; sessionId: string; }) => Promise<", "SearchSessionSavedObject", - ">; delete: (sessionId: string) => Promise; create: ({ name, appId, locatorId, initialState, restoreState, sessionId, }: { name: string; appId: string; locatorId: string; initialState: Record; restoreState: Record; sessionId: string; }) => Promise<", - "SearchSessionSavedObject", - ">; find: (options: Omit<", + ">; update: (sessionId: string, attributes: unknown) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" + "section": "def-common.SavedObjectsUpdateResponse", + "text": "SavedObjectsUpdateResponse" }, - ", \"type\">) => Promise<", + "<", { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSessionsFindResponse", - "text": "SearchSessionsFindResponse" + "section": "def-common.SearchSessionSavedObjectAttributes", + "text": "SearchSessionSavedObjectAttributes" }, - ">; update: (sessionId: string, attributes: unknown) => Promise<", + ">>; get: (sessionId: string) => Promise<", + "SearchSessionSavedObject", + ">; delete: (sessionId: string) => Promise; find: (options: Omit<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" + "section": "def-common.SavedObjectsFindOptions", + "text": "SavedObjectsFindOptions" }, - "<", + ", \"type\">) => Promise<", { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSessionSavedObjectAttributes", - "text": "SearchSessionSavedObjectAttributes" + "section": "def-common.SearchSessionsFindResponse", + "text": "SearchSessionsFindResponse" }, - ">>; rename: (sessionId: string, newName: string) => Promise<", + ">; extend: (sessionId: string, expires: string) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" + "section": "def-common.SavedObjectsFindResponse", + "text": "SavedObjectsFindResponse" }, - ">>; extend: (sessionId: string, expires: string) => Promise<", + ", unknown>>; rename: (sessionId: string, newName: string) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" + "section": "def-common.SavedObjectsUpdateResponse", + "text": "SavedObjectsUpdateResponse" }, - "<", + ">; }" + ", \"name\">>>; }" ], "path": "src/plugins/data/public/search/types.ts", "deprecated": false, @@ -662,7 +662,7 @@ "\nCurrent session management\n{@link ISessionService}" ], "signature": [ - "{ start: () => string; save: () => Promise; destroy: () => void; readonly state$: ", + "{ start: () => string; save: () => Promise; clear: () => void; destroy: () => void; readonly state$: ", "Observable", "<", { @@ -680,7 +680,7 @@ "Observable", "; hasAccess: () => boolean; trackSearch: (searchDescriptor: TrackSearchDescriptor) => TrackSearchHandler; getSessionId: () => string | undefined; getSession$: () => ", "Observable", - "; isStored: () => boolean; isRestore: () => boolean; restore: (sessionId: string) => void; continue: (sessionId: string) => void; clear: () => void; cancel: () => Promise; renameCurrentSession: (newName: string) => Promise; isCurrentSession: (sessionId?: string | undefined) => boolean; getSearchOptions: (sessionId?: string | undefined) => Required; isStored: () => boolean; isRestore: () => boolean; restore: (sessionId: string) => void; continue: (sessionId: string) => void; cancel: () => Promise; renameCurrentSession: (newName: string) => Promise; isCurrentSession: (sessionId?: string | undefined) => boolean; getSearchOptions: (sessionId?: string | undefined) => Required Promise<", - "SearchSessionSavedObject", - ">; delete: (sessionId: string) => Promise; create: ({ name, appId, locatorId, initialState, restoreState, sessionId, }: { name: string; appId: string; locatorId: string; initialState: Record; restoreState: Record; sessionId: string; }) => Promise<", + "{ create: ({ name, appId, locatorId, initialState, restoreState, sessionId, }: { name: string; appId: string; locatorId: string; initialState: Record; restoreState: Record; sessionId: string; }) => Promise<", "SearchSessionSavedObject", - ">; find: (options: Omit<", + ">; update: (sessionId: string, attributes: unknown) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" + "section": "def-common.SavedObjectsUpdateResponse", + "text": "SavedObjectsUpdateResponse" }, - ", \"type\">) => Promise<", + "<", { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSessionsFindResponse", - "text": "SearchSessionsFindResponse" + "section": "def-common.SearchSessionSavedObjectAttributes", + "text": "SearchSessionSavedObjectAttributes" }, - ">; update: (sessionId: string, attributes: unknown) => Promise<", + ">>; get: (sessionId: string) => Promise<", + "SearchSessionSavedObject", + ">; delete: (sessionId: string) => Promise; find: (options: Omit<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" + "section": "def-common.SavedObjectsFindOptions", + "text": "SavedObjectsFindOptions" }, - "<", + ", \"type\">) => Promise<", { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSessionSavedObjectAttributes", - "text": "SearchSessionSavedObjectAttributes" + "section": "def-common.SearchSessionsFindResponse", + "text": "SearchSessionsFindResponse" }, - ">>; rename: (sessionId: string, newName: string) => Promise<", + ">; extend: (sessionId: string, expires: string) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" + "section": "def-common.SavedObjectsFindResponse", + "text": "SavedObjectsFindResponse" }, - ">>; extend: (sessionId: string, expires: string) => Promise<", + ", unknown>>; rename: (sessionId: string, newName: string) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" + "section": "def-common.SavedObjectsUpdateResponse", + "text": "SavedObjectsUpdateResponse" }, - "<", + ">; }" + ", \"name\">>>; }" ], "path": "src/plugins/data/public/search/types.ts", "deprecated": false, @@ -1300,51 +1300,51 @@ "label": "ISessionsClient", "description": [], "signature": [ - "{ get: (sessionId: string) => Promise<", - "SearchSessionSavedObject", - ">; delete: (sessionId: string) => Promise; create: ({ name, appId, locatorId, initialState, restoreState, sessionId, }: { name: string; appId: string; locatorId: string; initialState: Record; restoreState: Record; sessionId: string; }) => Promise<", + "{ create: ({ name, appId, locatorId, initialState, restoreState, sessionId, }: { name: string; appId: string; locatorId: string; initialState: Record; restoreState: Record; sessionId: string; }) => Promise<", "SearchSessionSavedObject", - ">; find: (options: Omit<", + ">; update: (sessionId: string, attributes: unknown) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindOptions", - "text": "SavedObjectsFindOptions" + "section": "def-common.SavedObjectsUpdateResponse", + "text": "SavedObjectsUpdateResponse" }, - ", \"type\">) => Promise<", + "<", { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSessionsFindResponse", - "text": "SearchSessionsFindResponse" + "section": "def-common.SearchSessionSavedObjectAttributes", + "text": "SearchSessionSavedObjectAttributes" }, - ">; update: (sessionId: string, attributes: unknown) => Promise<", + ">>; get: (sessionId: string) => Promise<", + "SearchSessionSavedObject", + ">; delete: (sessionId: string) => Promise; find: (options: Omit<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" + "section": "def-common.SavedObjectsFindOptions", + "text": "SavedObjectsFindOptions" }, - "<", + ", \"type\">) => Promise<", { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSessionSavedObjectAttributes", - "text": "SearchSessionSavedObjectAttributes" + "section": "def-common.SearchSessionsFindResponse", + "text": "SearchSessionsFindResponse" }, - ">>; rename: (sessionId: string, newName: string) => Promise<", + ">; extend: (sessionId: string, expires: string) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsUpdateResponse", - "text": "SavedObjectsUpdateResponse" + "section": "def-common.SavedObjectsFindResponse", + "text": "SavedObjectsFindResponse" }, - ">>; extend: (sessionId: string, expires: string) => Promise<", + ", unknown>>; rename: (sessionId: string, newName: string) => Promise<", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-common.SavedObjectsFindResponse", - "text": "SavedObjectsFindResponse" + "section": "def-common.SavedObjectsUpdateResponse", + "text": "SavedObjectsUpdateResponse" }, - "<", + ">; }" + ", \"name\">>>; }" ], "path": "src/plugins/data/public/search/session/sessions_client.ts", "deprecated": false, @@ -1383,7 +1383,7 @@ "label": "ISessionService", "description": [], "signature": [ - "{ start: () => string; save: () => Promise; destroy: () => void; readonly state$: ", + "{ start: () => string; save: () => Promise; clear: () => void; destroy: () => void; readonly state$: ", "Observable", "<", { @@ -1401,7 +1401,7 @@ "Observable", "; hasAccess: () => boolean; trackSearch: (searchDescriptor: TrackSearchDescriptor) => TrackSearchHandler; getSessionId: () => string | undefined; getSession$: () => ", "Observable", - "; isStored: () => boolean; isRestore: () => boolean; restore: (sessionId: string) => void; continue: (sessionId: string) => void; clear: () => void; cancel: () => Promise; renameCurrentSession: (newName: string) => Promise; isCurrentSession: (sessionId?: string | undefined) => boolean; getSearchOptions: (sessionId?: string | undefined) => Required; isStored: () => boolean; isRestore: () => boolean; restore: (sessionId: string) => void; continue: (sessionId: string) => void; cancel: () => Promise; renameCurrentSession: (newName: string) => Promise; isCurrentSession: (sessionId?: string | undefined) => boolean; getSearchOptions: (sessionId?: string | undefined) => Required; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; }>; }>; }>" + "Readonly<{} & { search: Readonly<{} & { aggs: Readonly<{} & { shardDelay: Readonly<{} & { enabled: boolean; }>; }>; asyncSearch: Readonly<{ pollInterval?: number | undefined; } & { waitForCompletion: moment.Duration; keepAlive: moment.Duration; batchedReduceSize: number; }>; sessions: Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }>; }>" ], "path": "src/plugins/data/server/search/session/session_service.ts", "deprecated": false, @@ -2846,7 +2846,7 @@ "section": "def-common.SearchSessionStatusResponse", "text": "SearchSessionStatusResponse" }, - ">; getConfig: () => Readonly<{} & { enabled: boolean; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; }>; }" + ">; getConfig: () => Readonly<{} & { enabled: boolean; management: Readonly<{} & { refreshInterval: moment.Duration; maxSessions: number; refreshTimeout: moment.Duration; expiresSoonWarning: moment.Duration; }>; notTouchedTimeout: moment.Duration; maxUpdateRetries: number; defaultExpiration: moment.Duration; }>; }" ], "path": "src/plugins/data/server/search/session/session_service.ts", "deprecated": false, @@ -3134,11 +3134,9 @@ "label": "options", "description": [], "signature": [ - "{ filter?: any; search?: string | undefined; fields?: string[] | undefined; aggs?: Record | undefined; searchAfter?: ", - "SortResults", - " | undefined; pit?: ", + "> | undefined; search?: string | undefined; namespaces?: string[] | undefined; sortField?: string | undefined; fields?: string[] | undefined; preference?: string | undefined; pit?: ", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", @@ -3146,9 +3144,11 @@ "section": "def-common.SavedObjectsPitParams", "text": "SavedObjectsPitParams" }, - " | undefined; page?: number | undefined; perPage?: number | undefined; sortField?: string | undefined; sortOrder?: ", + " | undefined; perPage?: number | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; searchFields?: string[] | undefined; rootSearchFields?: string[] | undefined; sortOrder?: ", "SortOrder", - " | undefined; searchFields?: string[] | undefined; rootSearchFields?: string[] | undefined; hasReference?: ", + " | undefined; searchAfter?: ", + "SortResults", + " | undefined; hasReference?: ", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", @@ -3180,7 +3180,7 @@ "section": "def-common.SavedObjectsFindOptionsReference", "text": "SavedObjectsFindOptionsReference" }, - "[] | undefined; hasNoReferenceOperator?: \"AND\" | \"OR\" | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; namespaces?: string[] | undefined; typeToNamespacesMap?: Map | undefined; preference?: string | undefined; }" + "[] | undefined; hasNoReferenceOperator?: \"AND\" | \"OR\" | undefined; typeToNamespacesMap?: Map | undefined; }" ], "path": "src/plugins/data/server/search/session/types.ts", "deprecated": false, @@ -7225,7 +7225,19 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; history: ", + "; fetch: (options?: ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSourceSearchOptions", + "text": "SearchSourceSearchOptions" + }, + ") => Promise<", + "SearchResponse", + ">>; history: ", "SearchRequest", "[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: >>>; fetch: (options?: ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSourceSearchOptions", - "text": "SearchSourceSearchOptions" - }, - ") => Promise<", - "SearchResponse", - ">>; onRequestStart: (handler: (searchSource: ", + ">>>>; onRequestStart: (handler: (searchSource: ", { "pluginId": "data", "scope": "common", @@ -8922,6 +8922,7 @@ "label": "filterFieldTypes", "description": [], "signature": [ + "\"*\" | ", { "pluginId": "@kbn/field-types", "scope": "common", @@ -8929,7 +8930,7 @@ "section": "def-common.KBN_FIELD_TYPES", "text": "KBN_FIELD_TYPES" }, - " | \"*\" | ", + " | ", { "pluginId": "@kbn/field-types", "scope": "common", @@ -15698,7 +15699,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", aggName: \"date_histogram\" | \"date_range\", getConfig: (key: string) => T, { shouldDetectTimeZone }: { shouldDetectTimeZone?: boolean | undefined; } | undefined) => string" + ", aggName: \"date_range\" | \"date_histogram\", getConfig: (key: string) => T, { shouldDetectTimeZone }: { shouldDetectTimeZone?: boolean | undefined; } | undefined) => string" ], "path": "src/plugins/data/common/search/aggs/utils/infer_time_zone.ts", "deprecated": false, @@ -15782,7 +15783,7 @@ "label": "aggName", "description": [], "signature": [ - "\"date_histogram\" | \"date_range\"" + "\"date_range\" | \"date_histogram\"" ], "path": "src/plugins/data/common/search/aggs/utils/infer_time_zone.ts", "deprecated": false, @@ -26200,7 +26201,7 @@ "label": "aggregate", "description": [], "signature": [ - "\"min\" | \"max\" | \"concat\" | \"sum\" | \"average\"" + "\"min\" | \"max\" | \"sum\" | \"concat\" | \"average\"" ], "path": "src/plugins/data/common/search/aggs/metrics/top_hit.ts", "deprecated": false, @@ -31599,7 +31600,7 @@ "label": "AggConfigOptions", "description": [], "signature": [ - "{ schema?: string | undefined; type: ", + "{ type: ", { "pluginId": "data", "scope": "common", @@ -31607,7 +31608,7 @@ "section": "def-common.IAggType", "text": "IAggType" }, - "; params?: {} | ", + "; id?: string | undefined; params?: {} | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -31615,7 +31616,7 @@ "section": "def-common.SerializableRecord", "text": "SerializableRecord" }, - " | undefined; id?: string | undefined; enabled?: boolean | undefined; }" + " | undefined; schema?: string | undefined; enabled?: boolean | undefined; }" ], "path": "src/plugins/data/common/search/aggs/agg_config.ts", "deprecated": false, @@ -32524,7 +32525,7 @@ "label": "CreateAggConfigParams", "description": [], "signature": [ - "{ schema?: string | undefined; type: string | ", + "{ type: string | ", { "pluginId": "data", "scope": "common", @@ -32532,7 +32533,7 @@ "section": "def-common.IAggType", "text": "IAggType" }, - "; params?: {} | ", + "; id?: string | undefined; params?: {} | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -32540,7 +32541,7 @@ "section": "def-common.SerializableRecord", "text": "SerializableRecord" }, - " | undefined; id?: string | undefined; enabled?: boolean | undefined; }" + " | undefined; schema?: string | undefined; enabled?: boolean | undefined; }" ], "path": "src/plugins/data/common/search/aggs/agg_configs.ts", "deprecated": false, @@ -34273,6 +34274,7 @@ "label": "FieldTypes", "description": [], "signature": [ + "\"*\" | ", { "pluginId": "@kbn/field-types", "scope": "common", @@ -34280,7 +34282,7 @@ "section": "def-common.KBN_FIELD_TYPES", "text": "KBN_FIELD_TYPES" }, - " | \"*\" | ", + " | ", { "pluginId": "@kbn/field-types", "scope": "common", @@ -34968,7 +34970,19 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; history: ", + "; fetch: (options?: ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSourceSearchOptions", + "text": "SearchSourceSearchOptions" + }, + ") => Promise<", + "SearchResponse", + ">>; history: ", "SearchRequest", "[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: >>>; fetch: (options?: ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSourceSearchOptions", - "text": "SearchSourceSearchOptions" - }, - ") => Promise<", - "SearchResponse", - ">>; onRequestStart: (handler: (searchSource: ", + ">>>>; onRequestStart: (handler: (searchSource: ", { "pluginId": "data", "scope": "common", @@ -35500,7 +35502,7 @@ "label": "SearchTypes", "description": [], "signature": [ - "string | number | boolean | object | string[] | number[] | boolean[] | object[] | undefined" + "string | number | boolean | object | string[] | boolean[] | number[] | object[] | undefined" ], "path": "src/plugins/data/common/search/expressions/eql_raw_response.ts", "deprecated": false, @@ -36124,7 +36126,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/date_range.ts", "deprecated": false, @@ -36165,7 +36167,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/date_range.ts", "deprecated": false, @@ -37897,7 +37899,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/geo_point.ts", "deprecated": false, @@ -38293,7 +38295,7 @@ "label": "inputTypes", "description": [], "signature": [ - "(\"null\" | \"kibana_context\")[]" + "(\"kibana_context\" | \"null\")[]" ], "path": "src/plugins/data/common/search/expressions/kibana.ts", "deprecated": false, @@ -41107,7 +41109,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false, @@ -41148,7 +41150,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false, @@ -41189,7 +41191,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false, @@ -41230,7 +41232,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false, diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 91cc7e4c2924f1..e400eea15e1d15 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 36047624b82e29..9b933af1305ffa 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; This plugin provides the ability to create data views via a modal flyout inside Kibana apps -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index e8a675ca539423..8ac4ff750b4d4b 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; Reusable data view field editor across Kibana -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index b9b27a6a79c1e4..305a9ff2e14f0a 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; Data view management app -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json index 7ec56e83fd9d3c..51e915f57ca051 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -83,6 +83,10 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts" @@ -439,10 +443,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx" @@ -463,18 +463,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/preconfigured_job_redirect.ts" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/bucket_span_estimator/estimate_bucket_span.ts" @@ -483,10 +471,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts" @@ -1546,6 +1530,10 @@ "plugin": "dataViewManagement", "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" }, + { + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts" @@ -1792,16 +1780,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" }, ") => ", { @@ -1830,16 +1818,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" } ], "path": "src/plugins/data_views/common/data_views/data_view.ts", @@ -2621,7 +2609,7 @@ "section": "def-common.RuntimeFieldSpec", "text": "RuntimeFieldSpec" }, - " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" + " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" ], "path": "src/plugins/data_views/common/fields/data_view_field.ts", "deprecated": false, @@ -2988,7 +2976,7 @@ "\nreturns type of TSDB metric or undefined" ], "signature": [ - "\"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined" + "\"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined" ], "path": "src/plugins/data_views/common/fields/data_view_field.ts", "deprecated": false, @@ -6592,7 +6580,7 @@ "section": "def-common.FieldFormatsRegistry", "text": "FieldFormatsRegistry" }, - ", \"init\" | \"register\"> & { deserialize: ", + ", \"register\" | \"init\"> & { deserialize: ", { "pluginId": "fieldFormats", "scope": "common", @@ -7036,16 +7024,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" }, ") => void" ], @@ -7067,16 +7055,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" } ], "path": "src/plugins/data_views/common/fields/field_list.ts", @@ -8050,7 +8038,7 @@ "section": "def-common.RuntimeFieldSpec", "text": "RuntimeFieldSpec" }, - " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" + " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -8135,7 +8123,7 @@ "\nRuntime field types" ], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"geo_point\" | \"long\" | \"double\" | \"composite\"" + "\"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"composite\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -8291,6 +8279,10 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts" @@ -8647,10 +8639,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx" @@ -8671,18 +8659,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/preconfigured_job_redirect.ts" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/bucket_span_estimator/estimate_bucket_span.ts" @@ -8691,10 +8667,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts" @@ -9754,6 +9726,10 @@ "plugin": "dataViewManagement", "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" }, + { + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts" @@ -10000,16 +9976,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" }, ") => ", { @@ -10038,16 +10014,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" } ], "path": "src/plugins/data_views/common/data_views/data_view.ts", @@ -13382,7 +13358,7 @@ "label": "timeSeriesMetric", "description": [], "signature": [ - "\"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined" + "\"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined" ], "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", "deprecated": false, @@ -13937,7 +13913,7 @@ "section": "def-common.RuntimeFieldSpec", "text": "RuntimeFieldSpec" }, - " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" + " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -14261,7 +14237,59 @@ "label": "elasticsearchClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -14313,9 +14341,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -14525,33 +14541,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -14633,27 +14625,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -14831,9 +14805,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -15011,9 +15009,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -15039,27 +15035,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -15594,6 +15570,10 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts" @@ -15950,10 +15930,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx" @@ -15974,18 +15950,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/preconfigured_job_redirect.ts" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/bucket_span_estimator/estimate_bucket_span.ts" @@ -15994,10 +15958,6 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts" @@ -17057,6 +17017,10 @@ "plugin": "dataViewManagement", "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" }, + { + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts" @@ -17303,16 +17267,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" }, ") => ", { @@ -17341,16 +17305,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" } ], "path": "src/plugins/data_views/common/data_views/data_view.ts", @@ -18132,7 +18096,7 @@ "section": "def-common.RuntimeFieldSpec", "text": "RuntimeFieldSpec" }, - " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" + " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" ], "path": "src/plugins/data_views/common/fields/data_view_field.ts", "deprecated": false, @@ -18499,7 +18463,7 @@ "\nreturns type of TSDB metric or undefined" ], "signature": [ - "\"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined" + "\"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined" ], "path": "src/plugins/data_views/common/fields/data_view_field.ts", "deprecated": false, @@ -21471,7 +21435,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onError\" | \"hidden\" | \"color\" | \"className\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"placeholder\" | \"security\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"toastLifeTimeMs\" | \"iconType\" | \"onClose\" | \"data-test-subj\" | \"css\"> & { title?: string | ", + ", \"prefix\" | \"defaultValue\" | \"children\" | \"is\" | \"slot\" | \"style\" | \"className\" | \"aria-label\" | \"data-test-subj\" | \"css\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", @@ -23597,16 +23561,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" }, ") => void" ], @@ -23628,16 +23592,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" } ], "path": "src/plugins/data_views/common/fields/field_list.ts", @@ -24023,7 +23987,7 @@ "label": "type", "description": [], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"geo_point\" | \"long\" | \"double\"" + "\"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -24645,16 +24609,16 @@ "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.FieldSpec", + "text": "FieldSpec" }, " | ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.DataViewField", + "text": "DataViewField" }, ") => ", { @@ -24913,7 +24877,7 @@ "label": "DataViewSavedObjectAttrs", "description": [], "signature": [ - "{ name?: string | undefined; type?: string | undefined; title: string; typeMeta?: string | undefined; }" + "{ type?: string | undefined; name?: string | undefined; title: string; typeMeta?: string | undefined; }" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -24930,23 +24894,23 @@ "\nData views service interface" ], "signature": [ - "{ get: (id: string, displayErrors?: boolean, refreshFields?: boolean) => Promise<", + "{ create: (spec: ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" }, - ">; delete: (indexPatternId: string) => Promise<{}>; create: (spec: ", + ", skipFetchFields?: boolean, displayErrors?: boolean) => Promise<", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" + "section": "def-common.DataView", + "text": "DataView" }, - ", skipFetchFields?: boolean, displayErrors?: boolean) => Promise<", + ">; get: (id: string, displayErrors?: boolean, refreshFields?: boolean) => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24954,7 +24918,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ">; find: (search: string, size?: number) => Promise<", + ">; delete: (indexPatternId: string) => Promise<{}>; find: (search: string, size?: number) => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -25348,7 +25312,7 @@ "section": "def-common.RuntimeFieldSpec", "text": "RuntimeFieldSpec" }, - " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"gauge\" | \"histogram\" | \"summary\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" + " | undefined; fixedInterval?: string[] | undefined; timeZone?: string[] | undefined; timeSeriesDimension?: boolean | undefined; timeSeriesMetric?: \"histogram\" | \"summary\" | \"gauge\" | \"counter\" | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; }" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -25549,7 +25513,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onError\" | \"hidden\" | \"color\" | \"className\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"placeholder\" | \"security\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"toastLifeTimeMs\" | \"iconType\" | \"onClose\" | \"data-test-subj\" | \"css\"> & { title?: string | ", + ", \"prefix\" | \"defaultValue\" | \"children\" | \"is\" | \"slot\" | \"style\" | \"className\" | \"aria-label\" | \"data-test-subj\" | \"css\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", @@ -25597,7 +25561,7 @@ "\nRuntime field definition" ], "signature": [ - "{ type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"geo_point\" | \"long\" | \"double\" | \"composite\"; script?: { source: string; } | undefined; }" + "{ type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"composite\"; script?: { source: string; } | undefined; }" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -25669,7 +25633,7 @@ "\nRuntime field primitive types - excluding composite" ], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"geo_point\" | \"long\" | \"double\"" + "\"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -25686,7 +25650,7 @@ "\nRuntime field types" ], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"geo_point\" | \"long\" | \"double\" | \"composite\"" + "\"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"composite\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -25909,7 +25873,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -26181,7 +26145,7 @@ "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, { diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 5e69285dd7632a..c27da3bf5df626 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/data_visualizer.devdocs.json b/api_docs/data_visualizer.devdocs.json index 4511b967555366..f690a344389435 100644 --- a/api_docs/data_visualizer.devdocs.json +++ b/api_docs/data_visualizer.devdocs.json @@ -96,7 +96,13 @@ "label": "currentSavedSearch", "description": [], "signature": [ - "SavedSearchSavedObject", + { + "pluginId": "savedSearch", + "scope": "public", + "docId": "kibSavedSearchPluginApi", + "section": "def-public.SavedSearch", + "text": "SavedSearch" + }, " | null" ], "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx", diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index a9e9e8ede22b36..04dff69ad53cda 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index. -Contact [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 28 | 3 | 24 | 1 | +| 28 | 3 | 24 | 0 | ## Client diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 046acf2408e77f..f7a57e38924253 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -16,37 +16,29 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Referencing plugin(s) | Remove By | | ---------------|-----------|-----------| -| | visTypeGauge | - | -| | visTypePie | - | -| | visTypePie | - | | | alerting, discover, securitySolution | - | | | stackAlerts, alerting, securitySolution, inputControlVis | - | | | alerting, discover, securitySolution | - | | | stackAlerts, alerting, securitySolution, inputControlVis | - | | | actions, alerting | - | -| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-server, actions, alerting, canvas, enterpriseSearch, securitySolution, taskManager, dashboard, savedSearch, @kbn/core-saved-objects-server-internal | - | -| | @kbn/core-saved-objects-migration-server-internal, actions, dataViews, data, alerting, savedObjectsTagging, canvas, lens, cases, graph, lists, maps, securitySolution, dashboard, savedSearch, visualizations, @kbn/core-test-helpers-so-type-serializer | - | | | @kbn/core-saved-objects-migration-server-internal, actions, dataViews, data, alerting, savedObjectsTagging, canvas, lens, cases, graph, lists, maps, securitySolution, dashboard, savedSearch, visualizations, @kbn/core-test-helpers-so-type-serializer | - | -| | @kbn/core-saved-objects-common, core, actions, alerting, canvas, enterpriseSearch, securitySolution, taskManager, dashboard, savedSearch, @kbn/core-saved-objects-server-internal, savedObjects, embeddable, visualizations, fleet, infra, graph, ml | - | +| | @kbn/core-saved-objects-common, @kbn/core, actions, alerting, canvas, enterpriseSearch, securitySolution, taskManager, dashboard, savedSearch, @kbn/core-saved-objects-server-internal, savedObjects, embeddable, visualizations, fleet, infra, graph, ml | - | | | discover, monitoring | - | -| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, core, home, dataViews, discover, savedObjectsTagging, savedObjectsFinder, fleet, canvas, osquery, securitySolution, synthetics, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-server, @kbn/core-saved-objects-import-export-server-internal, apm, savedObjectsTaggingOss, cases, lists, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal, data, dashboard | - | -| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, core, home, dataViews, discover, savedObjectsTagging, savedObjectsFinder, fleet, canvas, osquery, securitySolution, synthetics, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-server, @kbn/core-saved-objects-import-export-server-internal, apm, savedObjectsTaggingOss, cases, lists, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal, data | - | +| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, @kbn/core, home, dataViews, discover, savedObjectsTagging, savedObjectsFinder, fleet, canvas, osquery, securitySolution, synthetics, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-server, @kbn/core-saved-objects-import-export-server-internal, apm, savedObjectsTaggingOss, cases, lists, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal, dashboard | - | +| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, @kbn/core, home, dataViews, discover, savedObjectsTagging, savedObjectsFinder, fleet, canvas, osquery, securitySolution, synthetics, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-server, @kbn/core-saved-objects-import-export-server-internal, apm, savedObjectsTaggingOss, cases, lists, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal, data | - | | | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, dataViews, unifiedSearch, triggersActionsUi, savedObjectsManagement, controls, unifiedFieldList, lens, discover, aiops, ml, infra, visTypeTimeseries, apm, observability, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega, data | - | | | discover | - | | | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, dataViews, unifiedSearch, triggersActionsUi, savedObjectsManagement, controls, unifiedFieldList, lens, discover, aiops, ml, infra, visTypeTimeseries, apm, observability, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega, data | - | | | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, data, unifiedSearch, triggersActionsUi, savedObjectsManagement, controls, unifiedFieldList, lens, discover, aiops, ml, infra, visTypeTimeseries, apm, observability, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega | - | | | data, discover, imageEmbeddable, embeddable | - | -| | advancedSettings, discover | - | -| | @kbn/core-plugins-browser-internal, @kbn/core-root-browser-internal, dataViews, home, data, savedObjects, embeddable, unifiedSearch, presentationUtil, visualizations, dashboard, lens, discover, cases, fileUpload, maps, ml, infra, fleet, canvas, dashboardEnhanced, graph, monitoring, synthetics, transform, watcher, dataVisualizer, cloudSecurityPosture, securitySolution | - | -| | advancedSettings, discover | - | | | @kbn/core-plugins-browser-internal, @kbn/core-root-browser-internal, dataViews, home, data, savedObjects, embeddable, unifiedSearch, presentationUtil, visualizations, dashboard, lens, discover, cases, fileUpload, maps, ml, infra, fleet, canvas, dashboardEnhanced, graph, monitoring, synthetics, transform, watcher, dataVisualizer, cloudSecurityPosture, securitySolution | - | | | advancedSettings, discover | - | | | infra, graph, stackAlerts, inputControlVis, securitySolution, savedObjects | - | | | securitySolution | - | | | encryptedSavedObjects, actions, data, ml, logstash, securitySolution, cloudChat | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser, @kbn/core-saved-objects-browser-internal, dataViews, home, savedObjects, savedSearch, visualizations, dashboard, lens, ml, canvas, graph, securitySolution, synthetics, watcher, visTypeTimeseries, @kbn/core-saved-objects-browser-mocks | - | -| | @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, presentationUtil, savedSearch, visualizations, dashboard, lens, savedObjectsFinder, cases, maps, ml, infra, cloudSecurityPosture, dashboardEnhanced, graph, securitySolution, synthetics, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, dataViews, savedObjects, embeddable, presentationUtil, visualizations, dashboard, lens, savedObjectsFinder, aiops, ml, cases, maps, dataVisualizer, infra, fleet, cloudSecurityPosture, dashboardEnhanced, graph, synthetics, securitySolution, @kbn/core-saved-objects-browser-mocks | - | +| | @kbn/core-saved-objects-browser, @kbn/core-saved-objects-browser-internal, @kbn/core, dataViews, home, savedObjects, savedSearch, visualizations, dashboard, lens, ml, canvas, graph, securitySolution, synthetics, watcher, visTypeTimeseries, @kbn/core-saved-objects-browser-mocks | - | +| | @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, presentationUtil, savedSearch, visualizations, dashboard, lens, savedObjectsFinder, cases, maps, ml, infra, cloudSecurityPosture, dashboardEnhanced, graph, securitySolution, synthetics, @kbn/core-saved-objects-browser-internal | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core, dataViews, savedObjects, embeddable, presentationUtil, visualizations, dashboard, lens, savedObjectsFinder, aiops, ml, cases, maps, dataVisualizer, infra, fleet, cloudSecurityPosture, dashboardEnhanced, graph, synthetics, securitySolution, @kbn/core-saved-objects-browser-mocks | - | | | lists, securitySolution, @kbn/securitysolution-io-ts-list-types | - | | | lists, securitySolution, @kbn/securitysolution-io-ts-list-types | - | | | lists, securitySolution, @kbn/securitysolution-io-ts-list-types | - | @@ -59,42 +51,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | securitySolution | - | | | securitySolution | - | | | securitySolution | - | -| | @kbn/core-saved-objects-browser, @kbn/core-saved-objects-browser-internal, core, dataViews, home, savedObjects, savedSearch, visualizations, dashboard, lens, ml, canvas, graph, securitySolution, synthetics, watcher, visTypeTimeseries, @kbn/core-saved-objects-browser-mocks | - | -| | @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, presentationUtil, savedSearch, visualizations, dashboard, lens, savedObjectsFinder, cases, maps, ml, infra, cloudSecurityPosture, dashboardEnhanced, graph, securitySolution, synthetics, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-internal, core, dataViews, savedObjects, embeddable, presentationUtil, visualizations, dashboard, lens, savedObjectsFinder, aiops, ml, cases, maps, dataVisualizer, infra, fleet, cloudSecurityPosture, dashboardEnhanced, graph, synthetics, securitySolution, @kbn/core-saved-objects-browser-mocks | - | | | dashboard, dataVisualizer, stackAlerts, expressionPartitionVis | - | -| | @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, visualizations, dashboard, dataVisualizer, ml, infra, cloudSecurityPosture, dashboardEnhanced, monitoring, synthetics, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, visualizations, dashboard, dataVisualizer, ml, infra, cloudSecurityPosture, dashboardEnhanced, monitoring, synthetics, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-common, advancedSettings, triggersActionsUi, visualizations | - | -| | @kbn/core-saved-objects-common, savedObjects, embeddable, visualizations, dashboard, fleet, infra, canvas, graph, ml | - | -| | @kbn/core-saved-objects-common | - | -| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-api-server, savedObjects, savedObjectsManagement, visualizations, savedObjectsTagging, lens, fleet, graph, dashboard, savedObjectsTaggingOss, kibanaUtils, expressions, dataViews, data, embeddable, controls, uiActionsEnhanced, maps, canvas, cases, dashboardEnhanced, globalSearchProviders, infra | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, dataViews, savedObjects, visualizations, infra | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, infra | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, visualizations, cloudSecurityPosture | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, dataViews | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, spaces, savedSearch, visualizations, dashboard, lens, cases, maps, fleet, canvas, graph | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, osquery | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-api-browser | - | -| | @kbn/core-saved-objects-api-browser | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-api-server, core, savedObjects, savedObjectsManagement, visualizations, savedObjectsTagging, lens, fleet, graph, dashboard, savedObjectsTaggingOss, kibanaUtils, expressions, dataViews, data, embeddable, controls, uiActionsEnhanced, maps, canvas, cases, dashboardEnhanced, globalSearchProviders, infra | - | -| | @kbn/core-saved-objects-browser, @kbn/core-lifecycle-browser, @kbn/core-saved-objects-browser-internal, savedObjects, savedSearch, visualizations, dashboard, lens, savedObjectsFinder, observability, canvas, transform, @kbn/core-saved-objects-browser-mocks | - | -| | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, savedSearch, visualizations, dashboard, lens, maps, infra, graph, synthetics | - | -| | @kbn/core-saved-objects-browser-mocks, home, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, visualizations, dashboard, maps, infra, graph | - | -| | @kbn/core-saved-objects-browser-mocks, synthetics, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-mocks, dashboard, savedObjects, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-mocks, dataViews, savedSearch, visualizations, dashboard, lens, maps, graph, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-mocks, fleet, synthetics, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, dataViews, savedSearch, maps, infra, savedObjects | - | -| | @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser, @kbn/core-lifecycle-browser, @kbn/core-saved-objects-browser-internal, savedObjects, savedSearch, visualizations, dashboard, lens, savedObjectsFinder, observability, canvas, transform, @kbn/core-saved-objects-browser-mocks | - | +| | @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, visualizations, dashboard, ml, infra, cloudSecurityPosture, dashboardEnhanced, monitoring, synthetics, @kbn/core-saved-objects-browser-internal | - | +| | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-api-server, @kbn/core, savedObjects, savedObjectsManagement, visualizations, savedObjectsTagging, lens, fleet, graph, dashboard, savedObjectsTaggingOss, kibanaUtils, expressions, dataViews, data, embeddable, controls, uiActionsEnhanced, maps, canvas, cases, dashboardEnhanced, globalSearchProviders, infra | - | | | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, savedSearch, visualizations, dashboard, lens, maps, infra, graph, synthetics | - | | | @kbn/core-saved-objects-browser-mocks, home, @kbn/core-saved-objects-browser-internal | - | | | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, dataViews, savedObjects, visualizations, dashboard, maps, infra, graph | - | @@ -106,24 +65,24 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-browser-internal | - | | | @kbn/core-saved-objects-browser-internal | - | | | @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-internal, core, dataViews, savedObjects, visualizations, infra | - | -| | @kbn/core-saved-objects-browser-internal, core | - | -| | @kbn/core-saved-objects-browser-internal, core, infra | - | -| | @kbn/core-saved-objects-browser-internal, core, visualizations, cloudSecurityPosture | - | -| | @kbn/core-saved-objects-browser-internal, core, dataViews | - | -| | @kbn/core-saved-objects-browser-internal, core, spaces, savedSearch, visualizations, dashboard, lens, cases, maps, fleet, canvas, graph | - | -| | @kbn/core-saved-objects-browser-internal, core | - | -| | @kbn/core-saved-objects-browser-internal, core, osquery | - | -| | @kbn/core-saved-objects-browser-internal, core | - | -| | @kbn/core-saved-objects-browser-internal, core | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core, dataViews, savedObjects, visualizations, infra | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core, infra | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core, visualizations, cloudSecurityPosture | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core, dataViews | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core, spaces, savedSearch, visualizations, dashboard, lens, cases, maps, fleet, canvas, graph | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core, osquery | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core | - | | | @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-lifecycle-browser, @kbn/core-saved-objects-browser-internal, core, savedObjects, savedSearch, visualizations, dashboard, lens, savedObjectsFinder, observability, canvas, transform, @kbn/core-saved-objects-browser-mocks | - | -| | core | - | -| | core | - | -| | @kbn/core-lifecycle-browser-mocks, core, ml, dashboard, dataViews, savedSearch, @kbn/core-plugins-browser-internal | - | -| | core, lens, savedObjects, visualizations | - | -| | core | - | -| | core, advancedSettings, triggersActionsUi, visualizations | - | +| | @kbn/core-lifecycle-browser, @kbn/core-saved-objects-browser-internal, @kbn/core, savedObjects, savedSearch, visualizations, dashboard, lens, savedObjectsFinder, observability, canvas, transform, @kbn/core-saved-objects-browser-mocks | - | +| | @kbn/core | - | +| | @kbn/core | - | +| | @kbn/core-lifecycle-browser-mocks, @kbn/core, ml, dashboard, dataViews, savedSearch, @kbn/core-plugins-browser-internal | - | +| | @kbn/core, lens, savedObjects, visualizations | - | +| | @kbn/core | - | +| | @kbn/core, advancedSettings, triggersActionsUi, visualizations | - | | | home, canvas, osquery | - | | | home, data, esUiShared, spaces, savedObjectsManagement, fleet, observability, ml, apm, indexLifecycleManagement, synthetics, upgradeAssistant, ux, kibanaOverview | - | | | dataViews, maps | - | @@ -147,8 +106,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | canvas | - | | | canvas | - | | | @kbn/core-root-browser-internal, @kbn/core-saved-objects-browser-mocks | - | -| | spaces, savedObjectsManagement | - | -| | spaces, savedObjectsManagement | - | | | spaces, savedObjectsManagement | - | | | visTypeTimeseries, graph, dataViewManagement | - | | | unifiedSearch | - | @@ -156,30 +113,27 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | maps | - | | | dataViewManagement | - | | | dataViewManagement | - | +| | visTypeGauge | - | +| | visTypePie | - | +| | visTypePie | - | | | enterpriseSearch | - | -| | encryptedSavedObjects | - | | | encryptedSavedObjects | - | -| | @kbn/core-elasticsearch-server-internal, @kbn/core-plugins-server-internal, console | - | | | @kbn/core-elasticsearch-server-internal, @kbn/core-plugins-server-internal, console | - | -| | @kbn/core-plugins-server-internal | - | | | @kbn/core-plugins-server-internal | - | -| | @kbn/repo-source-classifier, @kbn/eslint-plugin-imports, @kbn/find-used-node-modules | - | | | spaces, security, alerting | 8.8.0 | | | spaces, security, actions, alerting, ml, remoteClusters, graph, indexLifecycleManagement, mapsEms, painlessLab, rollup, searchprofiler, securitySolution, snapshotRestore, transform, upgradeAssistant | 8.8.0 | | | embeddable, presentationUtil, dashboard, discover, graph | 8.8.0 | | | apm, security, securitySolution | 8.8.0 | | | apm, security, securitySolution | 8.8.0 | -| | @kbn/core-application-browser-internal, @kbn/core-application-browser-mocks, management, fleet, security, kibanaOverview, core | 8.8.0 | -| | @kbn/core-plugins-server-internal, core | 8.8.0 | +| | @kbn/core-application-browser-internal, @kbn/core-application-browser-mocks, management, fleet, security, kibanaOverview, @kbn/core | 8.8.0 | +| | @kbn/core-plugins-server-internal, @kbn/core | 8.8.0 | | | security, fleet | 8.8.0 | | | security, fleet | 8.8.0 | | | security, fleet | 8.8.0 | -| | @kbn/core-application-browser-internal, @kbn/core-application-browser-mocks, management, fleet, security, kibanaOverview | 8.8.0 | | | apm | 8.8.0 | | | security, licenseManagement, ml, apm, crossClusterReplication, logstash, painlessLab, searchprofiler, watcher | 8.8.0 | | | security | 8.8.0 | | | mapsEms | 8.8.0 | -| | @kbn/core-plugins-server, @kbn/core-plugins-server-internal | 8.8.0 | | | security | 8.8.0 This is relied on by the reporting feature, and should be removed once reporting @@ -217,8 +171,6 @@ Safe to remove. | | expressions | | | kibanaReact | | | kibanaReact | -| | savedObjects | -| | savedObjects | | | licensing | | | licensing | | | licensing | @@ -226,7 +178,9 @@ Safe to remove. | | reporting | | | reporting | | | reporting | +| | savedObjects | +| | savedObjects | | | taskManager | -| | @kbn/storybook | | | @kbn/core-saved-objects-api-browser | -| | @kbn/core-saved-objects-api-browser | \ No newline at end of file +| | @kbn/core-saved-objects-api-browser | +| | @kbn/storybook | \ No newline at end of file diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index c0525f60f20349..5c5b2d44bf2ec9 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,16 +7,47 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- +## @kbn/core + +| Deprecated API | Reference location(s) | Remove By | +| ---------------|-----------|-----------| +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObject) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObject) | - | +| | [mocks.ts](https://github.com/elastic/kibana/tree/main/src/core/public/mocks.ts#:~:text=appBasePath) | 8.8.0 | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/server/index.ts#:~:text=AsyncPlugin) | 8.8.0 | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsClientContract) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SimpleSavedObject) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsCreateOptions) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsDeleteOptions) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBatchResponse) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsFindOptions) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsUpdateOptions) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=ResolvedSimpleSavedObject) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkUpdateObject) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsFindResponse) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkCreateOptions) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkUpdateOptions) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkResolveResponse) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkCreateObject) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsStart), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/server/index.ts#:~:text=SavedObjectsStart) | - | +| | [mocks.ts](https://github.com/elastic/kibana/tree/main/src/core/public/mocks.ts#:~:text=savedObjectsServiceMock) | - | +| | [mocks.ts](https://github.com/elastic/kibana/tree/main/src/core/public/mocks.ts#:~:text=simpleSavedObjectMock) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectAttributeSingle), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObjectAttributeSingle) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectAttribute), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObjectAttribute) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectAttributes), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObjectAttributes), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/server/index.ts#:~:text=SavedObjectAttributes) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectReference), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObjectReference) | - | + + + ## @kbn/core-application-browser-internal | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [app_container.tsx](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-internal/src/ui/app_container.tsx#:~:text=appBasePath) | 8.8.0 | | | [app_container.tsx](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-internal/src/ui/app_container.tsx#:~:text=appBasePath) | 8.8.0 | @@ -25,7 +56,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [application_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-mocks/src/application_service.mock.ts#:~:text=appBasePath) | 8.8.0 | | | [application_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-mocks/src/application_service.mock.ts#:~:text=appBasePath) | 8.8.0 | @@ -34,7 +64,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [elasticsearch_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.ts#:~:text=legacy), [elasticsearch_service.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.ts#:~:text=legacy) | - | | | [elasticsearch_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.ts#:~:text=legacy), [elasticsearch_service.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.ts#:~:text=legacy) | - | @@ -43,8 +72,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart), [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart) | - | -| | [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart), [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart) | - | | | [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart), [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart) | - | @@ -61,27 +88,15 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [plugin_context.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts#:~:text=savedObjects), [plugin_context.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts#:~:text=savedObjects), [plugins_service.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts#:~:text=savedObjects) | - | | | [plugin_context.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts#:~:text=savedObjects), [plugin_context.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts#:~:text=savedObjects), [plugins_service.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts#:~:text=savedObjects) | - | | | [plugins_service.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts#:~:text=savedObjectsServiceMock), [plugins_service.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts#:~:text=savedObjectsServiceMock) | - | -## @kbn/core-plugins-server - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server/src/types.ts#:~:text=AsyncPlugin), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server/src/index.ts#:~:text=AsyncPlugin), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server/index.ts#:~:text=AsyncPlugin) | 8.8.0 | - - - ## @kbn/core-plugins-server-internal | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [plugin_context.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts#:~:text=legacy), [plugin_context.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts#:~:text=legacy) | - | -| | [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin), [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin) | 8.8.0 | -| | [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs) | - | | | [plugin_context.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts#:~:text=legacy), [plugin_context.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts#:~:text=legacy) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin), [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin) | 8.8.0 | | | [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs), [plugin_manifest_parser.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/discovery/plugin_manifest_parser.ts#:~:text=extraPublicDirs) | - | @@ -92,7 +107,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [core_system.ts](https://github.com/elastic/kibana/tree/main/packages/core/root/core-root-browser-internal/src/core_system.ts#:~:text=savedObjects) | - | | | [core_system.ts](https://github.com/elastic/kibana/tree/main/packages/core/root/core-root-browser-internal/src/core_system.ts#:~:text=savedObjects) | - | | | [core_system.ts](https://github.com/elastic/kibana/tree/main/packages/core/root/core-root-browser-internal/src/core_system.ts#:~:text=SavedObjectsService), [core_system.ts](https://github.com/elastic/kibana/tree/main/packages/core/root/core-root-browser-internal/src/core_system.ts#:~:text=SavedObjectsService), [core_system.ts](https://github.com/elastic/kibana/tree/main/packages/core/root/core-root-browser-internal/src/core_system.ts#:~:text=SavedObjectsService) | - | @@ -102,23 +116,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject)+ 14 more | - | +| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject)+ 2 more | - | | | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SavedObject)+ 26 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsClientContract) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [base.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/base.ts#:~:text=SimpleSavedObject), [base.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/base.ts#:~:text=SimpleSavedObject), [resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts#:~:text=SimpleSavedObject), [resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/resolve.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SimpleSavedObject) | - | -| | [bulk_create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts#:~:text=SavedObjectsCreateOptions), [bulk_create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_create.ts#:~:text=SavedObjectsCreateOptions), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsCreateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsCreateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsCreateOptions), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsCreateOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsDeleteOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsDeleteOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsDeleteOptions), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsDeleteOptions) | - | -| | [find.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts#:~:text=SavedObjectsBatchResponse), [find.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts#:~:text=SavedObjectsBatchResponse), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsBatchResponse) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsFindOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsFindOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsFindOptions), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsFindOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsUpdateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsUpdateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsUpdateOptions), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsUpdateOptions) | - | -| | [bulk_resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_resolve.ts#:~:text=ResolvedSimpleSavedObject), [bulk_resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_resolve.ts#:~:text=ResolvedSimpleSavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=ResolvedSimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=ResolvedSimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=ResolvedSimpleSavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsBulkUpdateObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBulkUpdateObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBulkUpdateObject), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsBulkUpdateObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsFindResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsFindResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsFindResponse), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsFindResponse) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsBulkCreateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBulkCreateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBulkCreateOptions), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsBulkCreateOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsBulkUpdateOptions), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsBulkUpdateOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsBulkResolveResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBulkResolveResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBulkResolveResponse), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsBulkResolveResponse) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/index.ts#:~:text=SavedObjectsBulkCreateObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBulkCreateObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts#:~:text=SavedObjectsBulkCreateObject), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/index.ts#:~:text=SavedObjectsBulkCreateObject) | - | -| | [create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts#:~:text=SavedObjectReference), [create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts#:~:text=SavedObjectReference), [bulk_update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts#:~:text=SavedObjectReference), [bulk_update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts#:~:text=SavedObjectReference) | - | | | [create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts#:~:text=SavedObjectReference), [create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/create.ts#:~:text=SavedObjectReference), [bulk_update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts#:~:text=SavedObjectReference), [bulk_update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/bulk_update.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts#:~:text=SavedObjectReference) | - | @@ -127,9 +126,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [base.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts#:~:text=SavedObject), [base.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts#:~:text=SavedObject), [resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts#:~:text=SavedObject), [resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts#:~:text=SavedObject), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObject), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts#:~:text=SavedObject), [saved_objects_repository.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts#:~:text=SavedObject), [saved_objects_repository.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts#:~:text=SavedObject)+ 20 more | - | +| | [base.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts#:~:text=SavedObject), [base.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts#:~:text=SavedObject), [resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts#:~:text=SavedObject), [resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts#:~:text=SavedObject), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObject), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts#:~:text=SavedObject), [saved_objects_repository.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts#:~:text=SavedObject), [saved_objects_repository.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts#:~:text=SavedObject)+ 5 more | - | | | [base.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts#:~:text=SavedObject), [base.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/base.ts#:~:text=SavedObject), [resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts#:~:text=SavedObject), [resolve.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/resolve.ts#:~:text=SavedObject), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObject), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts#:~:text=SavedObject), [saved_objects_repository.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts#:~:text=SavedObject), [saved_objects_repository.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_repository.ts#:~:text=SavedObject)+ 35 more | - | -| | [bulk_create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts#:~:text=SavedObjectReference), [bulk_create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObjectReference), [create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts#:~:text=SavedObjectReference), [create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts#:~:text=SavedObjectReference) | - | | | [bulk_create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts#:~:text=SavedObjectReference), [bulk_create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_create.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObjectReference), [update.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts#:~:text=SavedObjectReference), [create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts#:~:text=SavedObjectReference), [create.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-api-server/src/apis/create.ts#:~:text=SavedObjectReference) | - | @@ -138,9 +136,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/index.ts#:~:text=SavedObjectsStart) | - | -| | [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract), [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/index.ts#:~:text=SavedObjectsStart) | - | | | [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract), [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract) | - | @@ -149,35 +144,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject)+ 46 more | - | +| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject)+ 18 more | - | | | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObject)+ 74 more | - | -| | [saved_objects_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts#:~:text=SavedObjectsStart), [saved_objects_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts#:~:text=SavedObjectsStart), [saved_objects_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts#:~:text=SavedObjectsStart) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObjectsClientContract), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObjectsClientContract), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsClientContract), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsClientContract), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=SavedObjectsClientContract), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=SavedObjectsClientContract) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=create), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=create), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=bulkCreate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkCreate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkCreate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkCreate) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=delete), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=delete), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=delete), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=delete), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=delete) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=bulkDelete), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkDelete), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkDelete) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=find), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=find), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=find), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=find) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=get)+ 9 more | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=bulkGet) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=resolve)+ 4 more | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=bulkResolve) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=update), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=update), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=bulkUpdate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkUpdate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkUpdate) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=save), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=save), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=save) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=delete) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsCreateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsCreateOptions) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsDeleteOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsDeleteOptions) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBatchResponse) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsFindOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsFindOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsFindOptions) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsUpdateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsUpdateOptions) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=ResolvedSimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=ResolvedSimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=ResolvedSimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBulkUpdateObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBulkUpdateObject) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsFindResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsFindResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsFindResponse), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsFindResponse) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBulkCreateOptions), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBulkCreateOptions) | - | -| | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBulkCreateObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsBulkCreateObject) | - | -| | [saved_objects_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts#:~:text=SavedObjectsStart), [saved_objects_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts#:~:text=SavedObjectsStart), [saved_objects_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts#:~:text=SavedObjectsStart) | - | | | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObjectsClientContract), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SavedObjectsClientContract), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsClientContract), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SavedObjectsClientContract), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=SavedObjectsClientContract), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=SavedObjectsClientContract) | - | | | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=create), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=create), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=create) | - | | | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=bulkCreate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkCreate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkCreate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkCreate) | - | @@ -212,23 +180,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject) | - | +| | [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject) | - | | | [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObject) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=SavedObjectsStart), [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=SavedObjectsStart) | - | -| | [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObjectsClientContract), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObjectsClientContract) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=create) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=bulkCreate) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=delete) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=bulkDelete) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=find) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=get) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=bulkGet) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=resolve) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=bulkResolve) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=update) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=bulkUpdate) | - | -| | [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SimpleSavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SimpleSavedObject), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SimpleSavedObject) | - | -| | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=SavedObjectsStart), [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=SavedObjectsStart) | - | | | [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObjectsClientContract), [simple_saved_object.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/simple_saved_object.mock.ts#:~:text=SavedObjectsClientContract) | - | | | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=create) | - | | | [saved_objects_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts#:~:text=bulkCreate) | - | @@ -251,13 +204,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObject) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObject) | - | | | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObjectAttribute) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObjectAttributes) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObjectAttributeSingle) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/index.ts#:~:text=SavedObjectReference) | - | -| | [server_types.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/src/server_types.ts#:~:text=SavedObjectAttributes), [server_types.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/src/server_types.ts#:~:text=SavedObjectAttributes), [saved_objects.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts#:~:text=SavedObjectAttributes) | - | | | [server_types.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/src/server_types.ts#:~:text=SavedObjectAttributes), [server_types.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/src/server_types.ts#:~:text=SavedObjectAttributes), [saved_objects.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts#:~:text=SavedObjectAttributes) | - | @@ -266,7 +214,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [errors.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts#:~:text=SavedObject), [errors.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts#:~:text=SavedObject), [regenerate_ids.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/lib/regenerate_ids.ts#:~:text=SavedObject), [regenerate_ids.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/lib/regenerate_ids.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject)+ 18 more | - | +| | [errors.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts#:~:text=SavedObject), [errors.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts#:~:text=SavedObject), [regenerate_ids.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/lib/regenerate_ids.ts#:~:text=SavedObject), [regenerate_ids.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/lib/regenerate_ids.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject)+ 4 more | - | | | [errors.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts#:~:text=SavedObject), [errors.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/errors.ts#:~:text=SavedObject), [regenerate_ids.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/lib/regenerate_ids.ts#:~:text=SavedObject), [regenerate_ids.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/import/lib/regenerate_ids.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject), [apply_export_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts#:~:text=SavedObject)+ 32 more | - | @@ -275,8 +223,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion)+ 12 more | - | -| | [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion)+ 12 more | - | +| | [internal_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts#:~:text=convertToMultiNamespaceTypeVersion), [internal_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts#:~:text=convertToMultiNamespaceTypeVersion), [internal_transforms.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts#:~:text=convertToMultiNamespaceTypeVersion), [validate_migrations.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/validate_migrations.ts#:~:text=convertToMultiNamespaceTypeVersion), [utils.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts#:~:text=convertToMultiNamespaceTypeVersion)+ 12 more | - | @@ -284,9 +231,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject) | - | +| | [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject) | - | | | [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject), [security.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts#:~:text=SavedObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server/index.ts#:~:text=SavedObjectAttributes) | - | @@ -294,7 +240,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [collect_references_deep.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts#:~:text=SavedObjectAttributes), [collect_references_deep.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts#:~:text=SavedObjectAttributes) | - | | | [collect_references_deep.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts#:~:text=SavedObjectAttributes), [collect_references_deep.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts#:~:text=SavedObjectAttributes) | - | @@ -303,7 +248,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [extract_migration_info.ts](https://github.com/elastic/kibana/tree/main/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts#:~:text=convertToMultiNamespaceTypeVersion), [extract_migration_info.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [get_migration_hash.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [get_migration_hash.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [extract_migration_info.ts](https://github.com/elastic/kibana/tree/main/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts#:~:text=convertToMultiNamespaceTypeVersion), [extract_migration_info.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [get_migration_hash.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts#:~:text=convertToMultiNamespaceTypeVersion), [get_migration_hash.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -312,7 +256,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject) | - | +| | [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject) | - | | | [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject), [transforms.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts#:~:text=SavedObject) | - | @@ -327,30 +271,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] -## @kbn/eslint-plugin-imports - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [uniform_imports.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-eslint-plugin-imports/src/rules/uniform_imports.ts#:~:text=isBazelPackage) | - | - - - -## @kbn/find-used-node-modules - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [find_used_node_modules.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-find-used-node-modules/src/find_used_node_modules.ts#:~:text=isBazelPackage), [find_used_node_modules.test.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-find-used-node-modules/src/find_used_node_modules.test.ts#:~:text=isBazelPackage), [find_used_node_modules.test.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-find-used-node-modules/src/find_used_node_modules.test.ts#:~:text=isBazelPackage) | - | - - - -## @kbn/repo-source-classifier - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [repo_path.ts](https://github.com/elastic/kibana/tree/main/packages/kbn-repo-source-classifier/src/repo_path.ts#:~:text=isBazelPackage) | - | - - - ## @kbn/securitysolution-io-ts-list-types | Deprecated API | Reference location(s) | Remove By | @@ -369,8 +289,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=authc) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=authz) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=index), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=index) | - | -| | [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes)+ 3 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/saved_objects/index.ts#:~:text=convertToMultiNamespaceTypeVersion), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/saved_objects/index.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/saved_objects/index.ts#:~:text=convertToMultiNamespaceTypeVersion), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/saved_objects/index.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes)+ 3 more | - | @@ -380,9 +298,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [to_editable_config.ts](https://github.com/elastic/kibana/tree/main/src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts#:~:text=metric) | - | -| | [to_editable_config.ts](https://github.com/elastic/kibana/tree/main/src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts#:~:text=SavedObjectAttribute), [to_editable_config.ts](https://github.com/elastic/kibana/tree/main/src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts#:~:text=SavedObjectAttribute) | - | -| | [to_editable_config.ts](https://github.com/elastic/kibana/tree/main/src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts#:~:text=metric) | - | | | [to_editable_config.ts](https://github.com/elastic/kibana/tree/main/src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts#:~:text=SavedObjectAttribute), [to_editable_config.ts](https://github.com/elastic/kibana/tree/main/src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts#:~:text=SavedObjectAttribute) | - | | | [to_editable_config.ts](https://github.com/elastic/kibana/tree/main/src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts#:~:text=metric) | - | @@ -395,7 +310,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [log_categorization_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx#:~:text=title), [log_categorization_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx#:~:text=title) | - | | | [log_categorization_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx#:~:text=title), [log_categorization_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx#:~:text=title) | - | | | [log_categorization_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx#:~:text=title) | - | -| | [search_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/application/utils/search_utils.ts#:~:text=SimpleSavedObject), [search_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/application/utils/search_utils.ts#:~:text=SimpleSavedObject) | - | | | [search_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/application/utils/search_utils.ts#:~:text=SimpleSavedObject), [search_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/application/utils/search_utils.ts#:~:text=SimpleSavedObject) | - | @@ -411,8 +325,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [plugin.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24) | 8.8.0 | | | [task.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/usage/task.ts#:~:text=index) | - | -| | [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts#:~:text=SavedObjectAttributes)+ 14 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/index.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/index.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts#:~:text=SavedObjectAttributes)+ 14 more | - | @@ -422,7 +334,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject), [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject) | - | +| | [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject) | - | | | [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject), [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject), [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject) | - | | | [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title), [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title) | - | | | [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title), [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title) | - | @@ -439,7 +351,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject), [use_upload_workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts#:~:text=SavedObject), [use_upload_workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject)+ 2 more | - | +| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject), [use_upload_workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts#:~:text=SavedObject), [use_upload_workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts#:~:text=SavedObject) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject), [use_upload_workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts#:~:text=SavedObject), [use_upload_workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/workpad.ts#:~:text=SavedObject)+ 8 more | - | | | [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title), [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title), [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title), [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title), [es_data_view_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.tsx#:~:text=title), [es_data_view_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.tsx#:~:text=title), [data_views.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/data_views.ts#:~:text=title), [data_views.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/data_views.ts#:~:text=title), [datasource_component.js](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/datasource/datasource_component.js#:~:text=title), [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title)+ 8 more | - | | | [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title), [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title), [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title), [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title), [es_data_view_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.tsx#:~:text=title), [es_data_view_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.tsx#:~:text=title), [data_views.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/data_views.ts#:~:text=title), [data_views.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/data_views.ts#:~:text=title), [datasource_component.js](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/datasource/datasource_component.js#:~:text=title), [es_data_view_select.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/es_data_view_select/es_data_view_select.component.tsx#:~:text=title)+ 8 more | - | @@ -455,15 +367,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getTypes), [application.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/application.tsx#:~:text=getTypes), [functions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getTypes) | - | | | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context), [embeddable.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/common/functions/filters.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context) | - | | | [home.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/home.component.tsx#:~:text=KibanaPageTemplate), [home.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/home.component.tsx#:~:text=KibanaPageTemplate), [home.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/home.component.tsx#:~:text=KibanaPageTemplate) | - | -| | [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/platform.ts#:~:text=SavedObjectsStart), [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/platform.ts#:~:text=SavedObjectsStart) | - | -| | [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/platform.ts#:~:text=SavedObjectsClientContract), [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/platform.ts#:~:text=SavedObjectsClientContract) | - | -| | [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/workpad.ts#:~:text=ResolvedSimpleSavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/workpad.ts#:~:text=ResolvedSimpleSavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/workpad.ts#:~:text=ResolvedSimpleSavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/workpad.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObjectAttributes) | - | -| | [saved_lens.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_lens.ts#:~:text=SavedObjectReference), [saved_lens.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_lens.ts#:~:text=SavedObjectReference), [saved_map.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_map.ts#:~:text=SavedObjectReference), [saved_map.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_map.ts#:~:text=SavedObjectReference), [saved_search.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_search.ts#:~:text=SavedObjectReference), [saved_search.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_search.ts#:~:text=SavedObjectReference), [saved_visualization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_visualization.ts#:~:text=SavedObjectReference), [saved_visualization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_visualization.ts#:~:text=SavedObjectReference), [embeddable.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=SavedObjectReference), [embeddable.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=SavedObjectReference) | - | -| | [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/platform.ts#:~:text=savedObjects), [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/platform.ts#:~:text=savedObjects) | - | -| | [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/platform.ts#:~:text=SavedObjectsStart), [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/platform.ts#:~:text=SavedObjectsStart) | - | -| | [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes) | - | -| | [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/saved_objects/workpad.ts#:~:text=convertToMultiNamespaceTypeVersion), [custom_element.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/saved_objects/custom_element.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/platform.ts#:~:text=savedObjects), [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/kibana/platform.ts#:~:text=savedObjects) | - | | | [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/platform.ts#:~:text=SavedObjectsClientContract), [platform.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/platform.ts#:~:text=SavedObjectsClientContract) | - | | | [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/workpad.ts#:~:text=ResolvedSimpleSavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/workpad.ts#:~:text=ResolvedSimpleSavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/workpad.ts#:~:text=ResolvedSimpleSavedObject), [workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/workpad.ts#:~:text=ResolvedSimpleSavedObject) | - | @@ -478,14 +381,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject)+ 26 more | - | +| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject)+ 8 more | - | | | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/operations/find.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObject)+ 44 more | - | -| | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=find) | - | -| | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject)+ 1 more | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObjectReference), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObjectReference) | - | -| | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=savedObjects), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/plugin.tsx#:~:text=savedObjects) | - | -| | [cases.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/cases.ts#:~:text=convertToMultiNamespaceTypeVersion), [configure.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/configure.ts#:~:text=convertToMultiNamespaceTypeVersion), [comments.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/comments.ts#:~:text=convertToMultiNamespaceTypeVersion), [user_actions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/user_actions.ts#:~:text=convertToMultiNamespaceTypeVersion), [connector_mappings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/connector_mappings.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=savedObjects), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/plugin.tsx#:~:text=savedObjects) | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=find) | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject)+ 1 more | - | @@ -508,11 +405,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [overview_tab.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/overview_tab.tsx#:~:text=indexPatternId) | - | -| | [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=find) | - | -| | [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=get) | - | -| | [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=SimpleSavedObject), [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=SimpleSavedObject), [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=SimpleSavedObject) | - | -| | [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=SavedObjectsFindOptions), [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=SavedObjectsFindOptions) | - | -| | [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=savedObjects) | - | | | [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=savedObjects) | - | | | [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=find) | - | | | [use_csp_rules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts#:~:text=get) | - | @@ -525,7 +417,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/console/server/plugin.ts#:~:text=legacy) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/console/server/plugin.ts#:~:text=legacy) | - | @@ -537,43 +428,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/data_views/data_views.story.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/data_views/data_views.story.ts#:~:text=title) | - | | | [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/data_views/data_views.story.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/data_views/data_views.story.ts#:~:text=title) | - | | | [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [options_list_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/options_list/options_list_service.ts#:~:text=title), [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/public/services/data_views/data_views.story.ts#:~:text=title) | - | -| | [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [control_group_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/control_group/control_group_persistable_state.ts#:~:text=SavedObjectReference)+ 2 more | - | | | [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [options_list_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/options_list/options_list_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [range_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/range_slider/range_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [time_slider_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/time_slider/time_slider_persistable_state.ts#:~:text=SavedObjectReference), [control_group_persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/controls/common/control_group/control_group_persistable_state.ts#:~:text=SavedObjectReference)+ 2 more | - | -## core - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObject) | - | -| | [mocks.ts](https://github.com/elastic/kibana/tree/main/src/core/public/mocks.ts#:~:text=appBasePath) | 8.8.0 | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/server/index.ts#:~:text=AsyncPlugin) | 8.8.0 | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsClientContract) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SimpleSavedObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsCreateOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsDeleteOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBatchResponse) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsFindOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsUpdateOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkUpdateObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsFindResponse) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkCreateOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkUpdateOptions) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkResolveResponse) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsBulkCreateObject) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectsStart), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/server/index.ts#:~:text=SavedObjectsStart) | - | -| | [mocks.ts](https://github.com/elastic/kibana/tree/main/src/core/public/mocks.ts#:~:text=savedObjectsServiceMock) | - | -| | [mocks.ts](https://github.com/elastic/kibana/tree/main/src/core/public/mocks.ts#:~:text=simpleSavedObjectMock) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectAttributeSingle), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObjectAttributeSingle) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectAttribute), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObjectAttribute) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectAttributes), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObjectAttributes), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/server/index.ts#:~:text=SavedObjectAttributes) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/public/index.ts#:~:text=SavedObjectReference), [index.ts](https://github.com/elastic/kibana/tree/main/src/core/types/index.ts#:~:text=SavedObjectReference) | - | - - - ## crossClusterReplication | Deprecated API | Reference location(s) | Remove By | @@ -589,22 +447,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/data/types.ts#:~:text=fieldFormats), [data_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/data/data_service.ts#:~:text=fieldFormats) | - | | | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/overlays/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/overlays/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject) | 8.8.0 | -| | [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObjectsStart), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObjectsStart) | - | -| | [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectsClientContract), [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectsClientContract), [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=SavedObjectsClientContract), [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_dashboard_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_dashboard_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts#:~:text=SavedObjectsClientContract)+ 4 more | - | -| | [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=create), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=create) | - | -| | [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx#:~:text=delete) | - | -| | [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=find), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=find), [check_for_duplicate_dashboard_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts#:~:text=find), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=find) | - | -| | [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=get) | - | -| | [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=bulkGet) | - | -| | [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=resolve) | - | -| | [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SimpleSavedObject), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SimpleSavedObject), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx#:~:text=SimpleSavedObject), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx#:~:text=SimpleSavedObject) | - | -| | [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=ResolvedSimpleSavedObject), [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectAttributes), [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectAttributes), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectAttributes), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectAttributes), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectAttributes), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectAttributes), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectAttributes), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectAttributes), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectAttributes), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectAttributes)+ 2 more | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/bwc/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/bwc/types.ts#:~:text=SavedObjectReference), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectReference), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectReference), [dashboard_saved_object_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_saved_object/persistable_state/dashboard_saved_object_references.ts#:~:text=SavedObjectReference), [dashboard_container_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_container/persistable_state/dashboard_container_references.ts#:~:text=SavedObjectReference), [dashboard_container_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_container/persistable_state/dashboard_container_references.ts#:~:text=SavedObjectReference), [dashboard_container_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/dashboard_container/persistable_state/dashboard_container_references.ts#:~:text=SavedObjectReference) | - | -| | [dashboard_saved_object_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/dashboard_saved_object_service.ts#:~:text=savedObjects), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/index.ts#:~:text=savedObjects), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/index.ts#:~:text=savedObjects) | - | -| | [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObjectsStart), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObjectsStart) | - | -| | [migrate_extract_panel_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/dashboard_saved_object/migrations/migrate_extract_panel_references.ts#:~:text=SavedObjectAttributes), [migrate_extract_panel_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/dashboard_saved_object/migrations/migrate_extract_panel_references.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry_collection_task.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry_collection_task.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry_collection_task.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry.ts#:~:text=SavedObjectAttributes), [find_by_value_embeddables.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/find_by_value_embeddables.ts#:~:text=SavedObjectAttributes), [find_by_value_embeddables.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/find_by_value_embeddables.ts#:~:text=SavedObjectAttributes) | - | -| | [dashboard_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/dashboard_saved_object/dashboard_saved_object.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [dashboard_saved_object_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/dashboard_saved_object_service.ts#:~:text=savedObjects), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/index.ts#:~:text=savedObjects), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/index.ts#:~:text=savedObjects) | - | | | [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectsClientContract), [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectsClientContract), [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=SavedObjectsClientContract), [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_dashboard_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_dashboard_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts#:~:text=SavedObjectsClientContract)+ 4 more | - | | | [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=create), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=create) | - | @@ -627,11 +469,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=find) | - | -| | [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=get) | - | -| | [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=SimpleSavedObject), [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=SimpleSavedObject) | - | -| | [dashboard_drilldown_persistable_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/common/drilldowns/dashboard_drilldown/dashboard_drilldown_persistable_state.ts#:~:text=SavedObjectReference), [dashboard_drilldown_persistable_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/common/drilldowns/dashboard_drilldown/dashboard_drilldown_persistable_state.ts#:~:text=SavedObjectReference), [dashboard_drilldown_persistable_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/common/drilldowns/dashboard_drilldown/dashboard_drilldown_persistable_state.ts#:~:text=SavedObjectReference) | - | -| | [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=savedObjects), [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=savedObjects) | - | | | [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=savedObjects), [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=savedObjects) | - | | | [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=find) | - | | | [collect_config_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/abstract_dashboard_drilldown/components/collect_config_container.tsx#:~:text=get) | - | @@ -649,12 +486,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [kibana_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.test.ts#:~:text=title), [kibana_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.test.ts#:~:text=title), [kibana_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.test.ts#:~:text=title), [inspector_stats.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/inspect/inspector_stats.ts#:~:text=title), [response_writer.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/tabify/response_writer.ts#:~:text=title), [field.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=title), [get_display_value.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/query/filter_manager/lib/get_display_value.ts#:~:text=title), [painless_error.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/errors/painless_error.tsx#:~:text=title), [agg_config.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/aggs/agg_config.test.ts#:~:text=title), [_terms_other_bucket_helper.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/aggs/buckets/_terms_other_bucket_helper.test.ts#:~:text=title)+ 6 more | - | | | [kibana_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.test.ts#:~:text=title), [kibana_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.test.ts#:~:text=title), [kibana_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.test.ts#:~:text=title), [inspector_stats.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/inspect/inspector_stats.ts#:~:text=title), [response_writer.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/tabify/response_writer.ts#:~:text=title), [field.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=title), [get_display_value.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/query/filter_manager/lib/get_display_value.ts#:~:text=title), [painless_error.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/errors/painless_error.tsx#:~:text=title), [agg_config.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/aggs/agg_config.test.ts#:~:text=title), [_terms_other_bucket_helper.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/aggs/buckets/_terms_other_bucket_helper.test.ts#:~:text=title)+ 6 more | - | | | [get_columns.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/session/sessions_mgmt/lib/get_columns.tsx#:~:text=RedirectAppLinks), [get_columns.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/session/sessions_mgmt/lib/get_columns.tsx#:~:text=RedirectAppLinks), [get_columns.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/session/sessions_mgmt/lib/get_columns.tsx#:~:text=RedirectAppLinks), [connected_search_session_indicator.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/session/session_indicator/connected_search_session_indicator/connected_search_session_indicator.tsx#:~:text=RedirectAppLinks), [connected_search_session_indicator.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/session/session_indicator/connected_search_session_indicator/connected_search_session_indicator.tsx#:~:text=RedirectAppLinks), [connected_search_session_indicator.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/session/session_indicator/connected_search_session_indicator/connected_search_session_indicator.tsx#:~:text=RedirectAppLinks) | - | -| | [data_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions), [data_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions) | - | | | [session_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/search/session/session_service.ts#:~:text=authc) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/index.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/index.ts#:~:text=SavedObject), [route_handler_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/query/route_handler_context.test.ts#:~:text=SavedObject), [route_handler_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/query/route_handler_context.test.ts#:~:text=SavedObject), [route_handler_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/query/route_handler_context.test.ts#:~:text=SavedObject), [route_handler_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/query/route_handler_context.test.ts#:~:text=SavedObject), [route_handler_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/query/route_handler_context.test.ts#:~:text=SavedObject), [route_handler_context.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/query/route_handler_context.test.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/session/sessions_mgmt/lib/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/session/sessions_mgmt/lib/api.ts#:~:text=SavedObject)+ 10 more | - | -| | [kibana_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.ts#:~:text=SavedObjectReference), [kibana_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.ts#:~:text=SavedObjectReference), [extract_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/extract_references.ts#:~:text=SavedObjectReference), [extract_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/extract_references.ts#:~:text=SavedObjectReference), [extract_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/extract_references.ts#:~:text=SavedObjectReference), [inject_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/inject_references.ts#:~:text=SavedObjectReference), [inject_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/inject_references.ts#:~:text=SavedObjectReference), [persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/query/filters/persistable_state.ts#:~:text=SavedObjectReference), [persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/query/filters/persistable_state.ts#:~:text=SavedObjectReference), [persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/query/filters/persistable_state.ts#:~:text=SavedObjectReference)+ 5 more | - | -| | [kibana_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/expressions/kibana_context.ts#:~:text=savedObjects) | - | -| | [query.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/saved_objects/query.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | +| | [data_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions), [data_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions) | - | | | [kibana_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/public/search/expressions/kibana_context.ts#:~:text=savedObjects) | - | | | [kibana_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.ts#:~:text=SavedObjectReference), [kibana_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/expressions/kibana_context.ts#:~:text=SavedObjectReference), [extract_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/extract_references.ts#:~:text=SavedObjectReference), [extract_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/extract_references.ts#:~:text=SavedObjectReference), [extract_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/extract_references.ts#:~:text=SavedObjectReference), [inject_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/inject_references.ts#:~:text=SavedObjectReference), [inject_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/search/search_source/inject_references.ts#:~:text=SavedObjectReference), [persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/query/filters/persistable_state.ts#:~:text=SavedObjectReference), [persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/query/filters/persistable_state.ts#:~:text=SavedObjectReference), [persistable_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/common/query/filters/persistable_state.ts#:~:text=SavedObjectReference)+ 5 more | - | | | [query.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data/server/saved_objects/query.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -667,15 +500,15 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | ---------------|-----------|-----------| | | [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [test_script.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=title), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=title), [create_edit_field.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/create_edit_field/create_edit_field.tsx#:~:text=title), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [test_script.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=title), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=title), [create_edit_field.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/create_edit_field/create_edit_field.tsx#:~:text=title) | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField), [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField) | - | -| | [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | - | +| | [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields), [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields) | - | | | [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [test_script.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=title), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=title), [create_edit_field.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/create_edit_field/create_edit_field.tsx#:~:text=title), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [test_script.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=title), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=title), [create_edit_field.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/create_edit_field/create_edit_field.tsx#:~:text=title) | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField), [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField) | - | -| | [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | - | +| | [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields), [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields) | - | | | [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=title), [test_script.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=title), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=title), [create_edit_field.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/create_edit_field/create_edit_field.tsx#:~:text=title) | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField) | - | -| | [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | - | +| | [table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields) | - | @@ -684,7 +517,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/index.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject)+ 44 more | - | +| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/index.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject)+ 17 more | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/index.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=SavedObject)+ 44 more | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.ts#:~:text=title), [data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.ts#:~:text=title), [data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.ts#:~:text=title), [data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.ts#:~:text=title), [update_data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/server/rest_api_routes/update_data_view.ts#:~:text=title), [update_data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/server/rest_api_routes/update_data_view.ts#:~:text=title), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=title) | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.ts#:~:text=flattenHit) | - | @@ -696,19 +529,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [data_view.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=removeScriptedField) | - | | | [data_view.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getNonScriptedFields) | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.ts#:~:text=getScriptedFields), [data_view.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.ts#:~:text=getScriptedFields), [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_views.ts#:~:text=getScriptedFields), [register_index_pattern_usage_collection.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/server/register_index_pattern_usage_collection.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields) | - | -| | [get_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/lib/get_title.ts#:~:text=SavedObjectsClientContract), [get_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/lib/get_title.ts#:~:text=SavedObjectsClientContract), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SavedObjectsClientContract), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SavedObjectsClientContract) | - | -| | [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=create) | - | -| | [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=delete) | - | -| | [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=find) | - | -| | [get_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/lib/get_title.ts#:~:text=get) | - | -| | [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=resolve), [saved_objects_client_wrapper.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.test.ts#:~:text=resolve), [saved_objects_client_wrapper.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.test.ts#:~:text=resolve), [saved_objects_client_wrapper.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.test.ts#:~:text=resolve) | - | -| | [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=update) | - | -| | [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SimpleSavedObject), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SimpleSavedObject) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObjectsCreateOptions), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObjectsCreateOptions), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SavedObjectsCreateOptions), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SavedObjectsCreateOptions) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObjectsUpdateOptions), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/types.ts#:~:text=SavedObjectsUpdateOptions), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SavedObjectsUpdateOptions), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SavedObjectsUpdateOptions) | - | -| | [load_index_pattern.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/expressions/load_index_pattern.ts#:~:text=SavedObjectReference), [load_index_pattern.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/expressions/load_index_pattern.ts#:~:text=SavedObjectReference), [persistable_state.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/persistable_state.test.ts#:~:text=SavedObjectReference), [persistable_state.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/data_views/persistable_state.test.ts#:~:text=SavedObjectReference) | - | -| | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/plugin.ts#:~:text=savedObjects) | - | -| | [data_views.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/server/saved_objects/data_views.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/plugin.ts#:~:text=savedObjects) | - | | | [get_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/lib/get_title.ts#:~:text=SavedObjectsClientContract), [get_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/common/lib/get_title.ts#:~:text=SavedObjectsClientContract), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SavedObjectsClientContract), [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=SavedObjectsClientContract) | - | | | [saved_objects_client_wrapper.ts](https://github.com/elastic/kibana/tree/main/src/plugins/data_views/public/saved_objects_client_wrapper.ts#:~:text=create) | - | @@ -735,12 +555,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [use_data_visualizer_grid_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts#:~:text=title), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=title), [use_data_visualizer_grid_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts#:~:text=title), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=title) | - | | | [use_data_visualizer_grid_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts#:~:text=title), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=title) | - | | | [results_links.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/common/components/results_links/results_links.tsx#:~:text=indexPatternId), [actions_panel.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/actions_panel/actions_panel.tsx#:~:text=indexPatternId) | - | -| | [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=get) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/common/types/index.ts#:~:text=SimpleSavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/common/types/index.ts#:~:text=SimpleSavedObject), [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=SimpleSavedObject), [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=SimpleSavedObject) | - | -| | [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=savedObjects) | - | | | [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=savedObjects) | - | -| | [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=get) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/common/types/index.ts#:~:text=SimpleSavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/common/types/index.ts#:~:text=SimpleSavedObject), [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=SimpleSavedObject), [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=SimpleSavedObject) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/common/types/index.ts#:~:text=SimpleSavedObject), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/data_visualizer/common/types/index.ts#:~:text=SimpleSavedObject) | - | @@ -750,7 +566,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | ---------------|-----------|-----------| | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | | | [discover_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=syncQueryStateWithUrl), [discover_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=syncQueryStateWithUrl) | - | -| | [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject) | - | +| | [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject) | - | | | [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject), [get_layout_props.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/layout/__stories__/get_layout_props.ts#:~:text=SavedObject) | - | | | [use_fetch_occurances_range.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/no_results/no_results_suggestions/use_fetch_occurances_range.ts#:~:text=title), [use_text_based_query_language.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/hooks/use_text_based_query_language.ts#:~:text=title), [use_fetch_occurances_range.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/no_results/no_results_suggestions/use_fetch_occurances_range.ts#:~:text=title), [use_text_based_query_language.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/hooks/use_text_based_query_language.ts#:~:text=title) | - | | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | @@ -759,9 +575,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [use_fetch_occurances_range.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/no_results/no_results_suggestions/use_fetch_occurances_range.ts#:~:text=title), [use_text_based_query_language.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/hooks/use_text_based_query_language.ts#:~:text=title) | - | | | [on_save_search.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/search_embeddable_factory.ts#:~:text=executeTriggerActions), [plugin.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/plugin.tsx#:~:text=executeTriggerActions) | - | -| | [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | -| | [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/search_embeddable_factory.ts#:~:text=savedObjects), [open_search_panel.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/open_search_panel.tsx#:~:text=savedObjects), [persist_saved_search.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/utils/persist_saved_search.ts#:~:text=savedObjects), [use_discover_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/hooks/use_discover_state.ts#:~:text=savedObjects), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=savedObjects), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=savedObjects) | - | -| | [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | | | [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/search_embeddable_factory.ts#:~:text=savedObjects), [open_search_panel.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/open_search_panel.tsx#:~:text=savedObjects), [persist_saved_search.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/utils/persist_saved_search.ts#:~:text=savedObjects), [use_discover_state.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/hooks/use_discover_state.ts#:~:text=savedObjects), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=savedObjects), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=savedObjects) | - | | | [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | @@ -781,10 +594,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | ---------------|-----------|-----------| | | [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal), [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [explicit_input.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/explicit_input.test.ts#:~:text=executeTriggerActions) | - | -| | [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SimpleSavedObject), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SimpleSavedObject), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SimpleSavedObject) | - | -| | [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes) | - | -| | [migrate_base_input.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/migrate_base_input.ts#:~:text=SavedObjectReference), [migrate_base_input.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/migrate_base_input.ts#:~:text=SavedObjectReference), [migrate_base_input.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/migrate_base_input.ts#:~:text=SavedObjectReference), [inject.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/inject.ts#:~:text=SavedObjectReference), [inject.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/inject.ts#:~:text=SavedObjectReference) | - | -| | [plugin.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/plugin.tsx#:~:text=savedObjects) | - | | | [plugin.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/plugin.tsx#:~:text=savedObjects) | - | | | [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SimpleSavedObject), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SimpleSavedObject), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SimpleSavedObject) | - | | | [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes) | - | @@ -797,7 +606,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [encryption_key_rotation_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/encrypted_saved_objects/server/crypto/encryption_key_rotation_service.ts#:~:text=authc), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/encrypted_saved_objects/server/saved_objects/index.ts#:~:text=authc) | - | -| | [create_migration.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/encrypted_saved_objects/server/create_migration.ts#:~:text=convertToMultiNamespaceTypeVersion), [create_migration.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/encrypted_saved_objects/server/create_migration.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [create_migration.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/encrypted_saved_objects/server/create_migration.ts#:~:text=convertToMultiNamespaceTypeVersion), [create_migration.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/encrypted_saved_objects/server/create_migration.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -808,7 +616,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | ---------------|-----------|-----------| | | [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi) | - | | | [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz), [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz), [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz) | - | -| | [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes) | - | | | [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes) | - | @@ -833,7 +640,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [expression_function.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/expression_functions/expression_function.ts#:~:text=SavedObjectReference), [expression_function.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/expression_functions/expression_function.ts#:~:text=SavedObjectReference), [expression_function.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/expression_functions/expression_function.ts#:~:text=SavedObjectReference), [expressions_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/service/expressions_services.ts#:~:text=SavedObjectReference), [expressions_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/service/expressions_services.ts#:~:text=SavedObjectReference), [expressions_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/service/expressions_services.ts#:~:text=SavedObjectReference), [expressions_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/service/expressions_services.ts#:~:text=SavedObjectReference), [executor.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/executor/executor.ts#:~:text=SavedObjectReference), [executor.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/executor/executor.ts#:~:text=SavedObjectReference), [executor.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/executor/executor.ts#:~:text=SavedObjectReference)+ 3 more | - | | | [expression_function.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/expression_functions/expression_function.ts#:~:text=SavedObjectReference), [expression_function.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/expression_functions/expression_function.ts#:~:text=SavedObjectReference), [expression_function.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/expression_functions/expression_function.ts#:~:text=SavedObjectReference), [expressions_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/service/expressions_services.ts#:~:text=SavedObjectReference), [expressions_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/service/expressions_services.ts#:~:text=SavedObjectReference), [expressions_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/service/expressions_services.ts#:~:text=SavedObjectReference), [expressions_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/service/expressions_services.ts#:~:text=SavedObjectReference), [executor.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/executor/executor.ts#:~:text=SavedObjectReference), [executor.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/executor/executor.ts#:~:text=SavedObjectReference), [executor.ts](https://github.com/elastic/kibana/tree/main/src/plugins/expressions/common/executor/executor.ts#:~:text=SavedObjectReference)+ 3 more | - | @@ -842,7 +648,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [kibana_services.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/file_upload/public/kibana_services.ts#:~:text=savedObjects) | - | | | [kibana_services.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/file_upload/public/kibana_services.ts#:~:text=savedObjects) | - | @@ -851,23 +656,16 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject) | - | +| | [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject) | - | | | [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObject) | - | | | [filter_dataset.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_dataset.tsx#:~:text=title), [filter_log_level.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_log_level.tsx#:~:text=title), [query_bar.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/query_bar.tsx#:~:text=title), [filter_dataset.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_dataset.tsx#:~:text=title), [filter_log_level.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_log_level.tsx#:~:text=title), [query_bar.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/query_bar.tsx#:~:text=title) | - | | | [filter_dataset.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_dataset.tsx#:~:text=title), [filter_log_level.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_log_level.tsx#:~:text=title), [query_bar.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/query_bar.tsx#:~:text=title), [filter_dataset.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_dataset.tsx#:~:text=title), [filter_log_level.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_log_level.tsx#:~:text=title), [query_bar.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/query_bar.tsx#:~:text=title) | - | | | [filter_dataset.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_dataset.tsx#:~:text=title), [filter_log_level.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/filter_log_level.tsx#:~:text=title), [query_bar.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/query_bar.tsx#:~:text=title) | - | | | [use_get_logs_discover_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/hooks/use_get_logs_discover_link.tsx#:~:text=indexPatternId) | - | -| | [tutorial_directory_header_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/home_integration/tutorial_directory_header_link.tsx#:~:text=RedirectAppLinks), [tutorial_directory_header_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/home_integration/tutorial_directory_header_link.tsx#:~:text=RedirectAppLinks), [tutorial_directory_header_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/home_integration/tutorial_directory_header_link.tsx#:~:text=RedirectAppLinks), [custom_assets_accordion.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/custom_assets_accordion.tsx#:~:text=RedirectAppLinks), [custom_assets_accordion.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/custom_assets_accordion.tsx#:~:text=RedirectAppLinks), [custom_assets_accordion.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/custom_assets_accordion.tsx#:~:text=RedirectAppLinks), [agent_logs.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx#:~:text=RedirectAppLinks), [agent_logs.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx#:~:text=RedirectAppLinks), [agent_logs.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx#:~:text=RedirectAppLinks), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/app.tsx#:~:text=RedirectAppLinks)+ 5 more | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | -| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath) | 8.8.0 | -| | [assets.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx#:~:text=bulkResolve) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/types.ts#:~:text=SimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/types.ts#:~:text=SimpleSavedObject) | - | -| | [assets.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx#:~:text=ResolvedSimpleSavedObject), [assets.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx#:~:text=ResolvedSimpleSavedObject) | - | -| | [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectAttributes), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectAttributes), [settings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/settings.ts#:~:text=SavedObjectAttributes), [settings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/settings.ts#:~:text=SavedObjectAttributes) | - | -| | [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectReference), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectReference), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectReference), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectReference) | - | -| | [assets.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx#:~:text=savedObjects) | - | +| | [tutorial_directory_header_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/home_integration/tutorial_directory_header_link.tsx#:~:text=RedirectAppLinks), [tutorial_directory_header_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/home_integration/tutorial_directory_header_link.tsx#:~:text=RedirectAppLinks), [tutorial_directory_header_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/home_integration/tutorial_directory_header_link.tsx#:~:text=RedirectAppLinks), [custom_assets_accordion.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/custom_assets_accordion.tsx#:~:text=RedirectAppLinks), [custom_assets_accordion.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/custom_assets_accordion.tsx#:~:text=RedirectAppLinks), [custom_assets_accordion.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/components/custom_assets_accordion.tsx#:~:text=RedirectAppLinks), [agent_logs.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx#:~:text=RedirectAppLinks), [agent_logs.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx#:~:text=RedirectAppLinks), [agent_logs.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx#:~:text=RedirectAppLinks), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/app.tsx#:~:text=RedirectAppLinks)+ 5 more | - | | | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath) | 8.8.0 | | | [assets.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx#:~:text=savedObjects) | - | | | [assets.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/assets/assets.tsx#:~:text=bulkResolve) | - | @@ -882,7 +680,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [map_object_to_result.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/global_search_providers/server/providers/saved_objects/map_object_to_result.test.ts#:~:text=SavedObjectReference), [map_object_to_result.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/global_search_providers/server/providers/saved_objects/map_object_to_result.test.ts#:~:text=SavedObjectReference) | - | | | [map_object_to_result.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/global_search_providers/server/providers/saved_objects/map_object_to_result.test.ts#:~:text=SavedObjectReference), [map_object_to_result.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/global_search_providers/server/providers/saved_objects/map_object_to_result.test.ts#:~:text=SavedObjectReference) | - | @@ -898,19 +695,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [deserialize.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=getNonScriptedFields), [datasource.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=getNonScriptedFields), [datasource.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields) | - | | | [datasource.sagas.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/datasource.sagas.ts#:~:text=title), [persistence.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/persistence.ts#:~:text=title), [persistence.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/persistence.ts#:~:text=title), [datasource.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=title) | - | | | [deserialize.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=getNonScriptedFields), [datasource.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields) | - | -| | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/server/plugin.ts#:~:text=license%24) | 8.8.0 | -| | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/save_modal.tsx#:~:text=SavedObjectsClientContract), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/save_modal.tsx#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/store.ts#:~:text=SavedObjectsClientContract), [store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/store.ts#:~:text=SavedObjectsClientContract), [use_workspace_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/use_workspace_loader.ts#:~:text=SavedObjectsClientContract)+ 5 more | - | -| | [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=create), [saved_workspace_utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.test.ts#:~:text=create) | - | -| | [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=delete) | - | -| | [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=find), [saved_workspace_utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.test.ts#:~:text=find) | - | -| | [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=resolve) | - | -| | [app_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/types/app_state.ts#:~:text=SimpleSavedObject), [app_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/types/app_state.ts#:~:text=SimpleSavedObject) | - | -| | [use_workspace_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/use_workspace_loader.ts#:~:text=ResolvedSimpleSavedObject), [use_workspace_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/use_workspace_loader.ts#:~:text=ResolvedSimpleSavedObject), [use_workspace_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/use_workspace_loader.ts#:~:text=ResolvedSimpleSavedObject), [use_workspace_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/use_workspace_loader.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectAttributes), [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectAttributes), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectAttributes), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectAttributes) | - | -| | [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectReference), [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectReference), [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectReference), [persistence.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/types/persistence.ts#:~:text=SavedObjectReference), [persistence.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/types/persistence.ts#:~:text=SavedObjectReference) | - | -| | [source_picker.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/source_picker.tsx#:~:text=savedObjects), [source_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/source_modal.tsx#:~:text=savedObjects), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/plugin.ts#:~:text=savedObjects), [search_bar.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/search_bar.tsx#:~:text=savedObjects), [guidance_panel.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/guidance_panel/guidance_panel.tsx#:~:text=savedObjects) | - | -| | [graph_workspace.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/server/saved_objects/graph_workspace.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | +| | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [source_picker.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/source_picker.tsx#:~:text=savedObjects), [source_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/source_modal.tsx#:~:text=savedObjects), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/plugin.ts#:~:text=savedObjects), [search_bar.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/search_bar.tsx#:~:text=savedObjects), [guidance_panel.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/guidance_panel/guidance_panel.tsx#:~:text=savedObjects) | - | | | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/save_modal.tsx#:~:text=SavedObjectsClientContract), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/save_modal.tsx#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectsClientContract), [store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/store.ts#:~:text=SavedObjectsClientContract), [store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/store.ts#:~:text=SavedObjectsClientContract), [use_workspace_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/use_workspace_loader.ts#:~:text=SavedObjectsClientContract)+ 5 more | - | | | [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=create), [saved_workspace_utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.test.ts#:~:text=create) | - | @@ -929,13 +715,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject) | - | +| | [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject) | - | | | [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject), [sample_data_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/server/services/sample_data/sample_data_registry.ts#:~:text=SavedObject) | - | | | [tutorial_directory.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/tutorial_directory.js#:~:text=KibanaPageTemplate), [tutorial_directory.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/tutorial_directory.js#:~:text=KibanaPageTemplate), [tutorial_directory.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/tutorial_directory.js#:~:text=KibanaPageTemplate), [tutorial.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/tutorial/tutorial.js#:~:text=KibanaPageTemplate), [tutorial.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/tutorial/tutorial.js#:~:text=KibanaPageTemplate), [tutorial.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/tutorial/tutorial.js#:~:text=KibanaPageTemplate), [tutorial.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/tutorial/tutorial.js#:~:text=KibanaPageTemplate) | - | | | [add_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/add_data/add_data.tsx#:~:text=RedirectAppLinks), [add_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/add_data/add_data.tsx#:~:text=RedirectAppLinks), [add_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/add_data/add_data.tsx#:~:text=RedirectAppLinks), [manage_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/manage_data/manage_data.tsx#:~:text=RedirectAppLinks), [manage_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/manage_data/manage_data.tsx#:~:text=RedirectAppLinks), [manage_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/manage_data/manage_data.tsx#:~:text=RedirectAppLinks), [manage_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/manage_data/manage_data.tsx#:~:text=RedirectAppLinks), [manage_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/manage_data/manage_data.tsx#:~:text=RedirectAppLinks), [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/application.tsx#:~:text=RedirectAppLinks), [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/application.tsx#:~:text=RedirectAppLinks)+ 1 more | - | -| | [kibana_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/kibana_services.ts#:~:text=SavedObjectsClientContract), [kibana_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/kibana_services.ts#:~:text=SavedObjectsClientContract) | - | -| | [home_app.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/home_app.js#:~:text=bulkCreate) | - | -| | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/plugin.ts#:~:text=savedObjects) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/plugin.ts#:~:text=savedObjects) | - | | | [kibana_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/kibana_services.ts#:~:text=SavedObjectsClientContract), [kibana_services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/kibana_services.ts#:~:text=SavedObjectsClientContract) | - | | | [home_app.js](https://github.com/elastic/kibana/tree/main/src/plugins/home/public/application/components/home_app.js#:~:text=bulkCreate) | - | @@ -967,17 +750,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [resolved_log_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/log_views/resolved_log_view.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [use_data_view.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_data_view.test.ts#:~:text=title), [resolved_log_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/log_views/resolved_log_view.ts#:~:text=title)+ 8 more | - | | | [resolved_log_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/log_views/resolved_log_view.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [use_data_view.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_data_view.test.ts#:~:text=title), [resolved_log_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/log_views/resolved_log_view.ts#:~:text=title)+ 8 more | - | | | [resolved_log_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/log_views/resolved_log_view.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [use_data_view.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_data_view.test.ts#:~:text=title) | - | -| | [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=create) | - | -| | [use_delete_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx#:~:text=delete) | - | -| | [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=find), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=find) | - | -| | [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=get) | - | -| | [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=update) | - | -| | [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SimpleSavedObject), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SimpleSavedObject), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=SimpleSavedObject), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=SimpleSavedObject), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SimpleSavedObject), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SimpleSavedObject), [saved_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx#:~:text=SimpleSavedObject), [saved_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx#:~:text=SimpleSavedObject) | - | -| | [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectsCreateOptions), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectsCreateOptions), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectsCreateOptions), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectsCreateOptions) | - | -| | [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=SavedObjectsBatchResponse), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=SavedObjectsBatchResponse) | - | -| | [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=SavedObjectAttributes), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=SavedObjectAttributes), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes)+ 2 more | - | -| | [log_threshold_references_manager.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_references_manager.ts#:~:text=SavedObjectReference), [log_threshold_references_manager.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_references_manager.ts#:~:text=SavedObjectReference), [log_threshold_references_manager.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_references_manager.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/common/visualizations/lens/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/common/visualizations/lens/types.ts#:~:text=SavedObjectReference), [cpu.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/common/visualizations/lens/hosts/cpu.ts#:~:text=SavedObjectReference), [cpu.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/common/visualizations/lens/hosts/cpu.ts#:~:text=SavedObjectReference), [load.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/common/visualizations/lens/hosts/load.ts#:~:text=SavedObjectReference), [load.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/common/visualizations/lens/hosts/load.ts#:~:text=SavedObjectReference), [memory.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/common/visualizations/lens/hosts/memory.ts#:~:text=SavedObjectReference)+ 11 more | - | -| | [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=savedObjects), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=savedObjects), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=savedObjects), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=savedObjects), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=savedObjects), [use_delete_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx#:~:text=savedObjects), [use_delete_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx#:~:text=savedObjects), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=savedObjects), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=savedObjects), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=savedObjects)+ 1 more | - | | | [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=savedObjects), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=savedObjects), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=savedObjects), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=savedObjects), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=savedObjects), [use_delete_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx#:~:text=savedObjects), [use_delete_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx#:~:text=savedObjects), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=savedObjects), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=savedObjects), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=savedObjects)+ 1 more | - | | | [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=create) | - | | | [use_delete_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_delete_saved_object.tsx#:~:text=delete) | - | @@ -1010,7 +782,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [add_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/components/add_data/add_data.tsx#:~:text=RedirectAppLinks), [add_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/components/add_data/add_data.tsx#:~:text=RedirectAppLinks), [add_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/components/add_data/add_data.tsx#:~:text=RedirectAppLinks), [manage_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/components/manage_data/manage_data.tsx#:~:text=RedirectAppLinks), [manage_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/components/manage_data/manage_data.tsx#:~:text=RedirectAppLinks), [manage_data.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/components/manage_data/manage_data.tsx#:~:text=RedirectAppLinks) | - | -| | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/application.tsx#:~:text=appBasePath) | 8.8.0 | | | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/application.tsx#:~:text=appBasePath) | 8.8.0 | @@ -1019,7 +790,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_utils/common/persistable_state/types.ts#:~:text=SavedObjectReference) | - | @@ -1031,17 +801,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/data_views_service/loader.ts#:~:text=title), [lens_top_nav.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx#:~:text=title), [loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/data_views_service/loader.ts#:~:text=title), [lens_top_nav.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx#:~:text=title) | - | | | [loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/data_views_service/loader.ts#:~:text=title), [lens_top_nav.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx#:~:text=title), [loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/data_views_service/loader.ts#:~:text=title), [lens_top_nav.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx#:~:text=title) | - | | | [loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/data_views_service/loader.ts#:~:text=title), [lens_top_nav.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx#:~:text=title) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=SavedObjectsStart), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=SavedObjectsStart) | - | -| | [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObjectsClientContract), [reference_editor.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/reference_editor.tsx#:~:text=SavedObjectsClientContract), [reference_editor.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/reference_editor.tsx#:~:text=SavedObjectsClientContract), [dimension_panel.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/dimension_panel.tsx#:~:text=SavedObjectsClientContract), [dimension_panel.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/dimension_panel.tsx#:~:text=SavedObjectsClientContract), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/index.ts#:~:text=SavedObjectsClientContract), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/index.ts#:~:text=SavedObjectsClientContract)+ 8 more | - | -| | [saved_object_store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_object_store.ts#:~:text=create) | - | -| | [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts#:~:text=find), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts#:~:text=find), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts#:~:text=find) | - | -| | [saved_object_store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_object_store.ts#:~:text=resolve) | - | -| | [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts#:~:text=SimpleSavedObject), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts#:~:text=SimpleSavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts#:~:text=SimpleSavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts#:~:text=SimpleSavedObject) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/types.ts#:~:text=ResolvedSimpleSavedObject), [saved_object_store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_object_store.ts#:~:text=ResolvedSimpleSavedObject), [saved_object_store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_object_store.ts#:~:text=ResolvedSimpleSavedObject), [saved_object_store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_object_store.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [state_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts#:~:text=SavedObjectReference), [state_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts#:~:text=SavedObjectReference), [state_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts#:~:text=SavedObjectReference), [state_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts#:~:text=SavedObjectReference), [state_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts#:~:text=SavedObjectReference), [state_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts#:~:text=SavedObjectReference), [selectors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/state_management/selectors.ts#:~:text=SavedObjectReference), [selectors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/state_management/selectors.ts#:~:text=SavedObjectReference), [selectors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/state_management/selectors.ts#:~:text=SavedObjectReference), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/utils.ts#:~:text=SavedObjectReference)+ 43 more | - | -| | [lens_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/lens_attribute_service.ts#:~:text=savedObjects), [lens_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/lens_attribute_service.ts#:~:text=savedObjects), [form_based.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx#:~:text=savedObjects), [form_based.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx#:~:text=savedObjects), [form_based.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx#:~:text=savedObjects), [visualization.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx#:~:text=savedObjects), [visualization.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx#:~:text=savedObjects), [mounter.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/mounter.tsx#:~:text=savedObjects) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=SavedObjectsStart), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=SavedObjectsStart) | - | -| | [saved_objects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/server/saved_objects.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [lens_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/lens_attribute_service.ts#:~:text=savedObjects), [lens_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/lens_attribute_service.ts#:~:text=savedObjects), [form_based.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx#:~:text=savedObjects), [form_based.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx#:~:text=savedObjects), [form_based.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx#:~:text=savedObjects), [visualization.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx#:~:text=savedObjects), [visualization.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx#:~:text=savedObjects), [mounter.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/mounter.tsx#:~:text=savedObjects) | - | | | [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObjectsClientContract), [reference_editor.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/reference_editor.tsx#:~:text=SavedObjectsClientContract), [reference_editor.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/reference_editor.tsx#:~:text=SavedObjectsClientContract), [dimension_panel.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/dimension_panel.tsx#:~:text=SavedObjectsClientContract), [dimension_panel.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/dimension_panel.tsx#:~:text=SavedObjectsClientContract), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/index.ts#:~:text=SavedObjectsClientContract), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/index.ts#:~:text=SavedObjectsClientContract)+ 8 more | - | | | [saved_object_store.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_object_store.ts#:~:text=create) | - | @@ -1068,17 +827,16 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject) | - | +| | [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject) | - | | | [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject), [exception_list_client.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts#:~:text=SavedObject)+ 5 more | - | | | [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title)+ 8 more | - | | | [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title)+ 8 more | - | | | [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title), [helpers.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts#:~:text=title) | - | -| | [exception_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/saved_objects/exception_list.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | +| | [exception_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/saved_objects/exception_list.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [create_endpoint_trusted_apps_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [create_endpoint_trusted_apps_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [create_endpoint_trusted_apps_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/saved_objects/migrations.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/saved_objects/migrations.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/saved_objects/migrations.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [exception_list_schema.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [exception_list_schema.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [migrations.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/saved_objects/migrations.test.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [migrations.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/saved_objects/migrations.test.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID)+ 7 more | - | | | [create_endpoint_trusted_apps_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_NAME), [create_endpoint_trusted_apps_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_NAME), [exception_list_schema.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_NAME), [exception_list_schema.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_NAME) | - | | | [create_endpoint_trusted_apps_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION), [create_endpoint_trusted_apps_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION), [exception_list_schema.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION), [exception_list_schema.mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION) | - | | | [get_exception_list_summary.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.test.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [get_exception_list_summary.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.test.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID) | - | -| | [exception_list.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lists/server/saved_objects/exception_list.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -1095,7 +853,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/management/public/application.tsx#:~:text=appBasePath) | 8.8.0 | | | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/management/public/application.tsx#:~:text=appBasePath) | 8.8.0 | @@ -1110,16 +867,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | | | [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=title) | - | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | -| | [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=create) | - | -| | [maps_list_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=delete) | - | -| | [maps_list_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=find), [load_list_and_render.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/routes/list_page/load_list_and_render.tsx#:~:text=find) | - | -| | [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=resolve) | - | -| | [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=update) | - | -| | [maps_vis_type_alias.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/maps_vis_type_alias.ts#:~:text=SimpleSavedObject), [maps_vis_type_alias.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/maps_vis_type_alias.ts#:~:text=SimpleSavedObject), [maps_vis_type_alias.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/maps_vis_type_alias.ts#:~:text=SimpleSavedObject), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=SimpleSavedObject), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=SimpleSavedObject) | - | -| | [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=ResolvedSimpleSavedObject), [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=ResolvedSimpleSavedObject), [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=ResolvedSimpleSavedObject), [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/common/migrations/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/common/migrations/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/common/migrations/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/common/migrations/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/common/migrations/references.ts#:~:text=SavedObjectReference), [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=SavedObjectReference), [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=SavedObjectReference), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=SavedObjectReference), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=SavedObjectReference) | - | -| | [kibana_services.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/kibana_services.ts#:~:text=savedObjects) | - | -| | [setup_saved_objects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/server/saved_objects/setup_saved_objects.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [kibana_services.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/kibana_services.ts#:~:text=savedObjects) | - | | | [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=create) | - | | | [maps_list_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=delete) | - | @@ -1146,22 +893,16 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 50 more | - | -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 50 more | - | -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 20 more | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 40 more | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 40 more | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 15 more | - | | | [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks), [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks), [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24) | 8.8.0 | | | [annotations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/routes/annotations.ts#:~:text=authc) | - | | | [initialization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/saved_objects/initialization/initialization.ts#:~:text=authz), [sync_task.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/saved_objects/sync_task.ts#:~:text=authz), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=authz), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=authz) | - | -| | [dependency_cache.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/dependency_cache.ts#:~:text=SavedObjectsClientContract), [dependency_cache.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/dependency_cache.ts#:~:text=SavedObjectsClientContract), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=SavedObjectsClientContract), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=SavedObjectsClientContract) | - | -| | [index_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/index_utils.ts#:~:text=find), [resolvers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/recognize/resolvers.ts#:~:text=find), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=find), [dashboard_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.test.ts#:~:text=find) | - | -| | [index_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/index_utils.ts#:~:text=get), [route_resolver.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts#:~:text=get) | - | -| | [kibana.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/kibana.ts#:~:text=SimpleSavedObject), [kibana.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/kibana.ts#:~:text=SimpleSavedObject), [source_selection.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx#:~:text=SimpleSavedObject), [source_selection.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx#:~:text=SimpleSavedObject) | - | -| | [modules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/modules.ts#:~:text=SavedObjectAttributes), [modules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/modules.ts#:~:text=SavedObjectAttributes) | - | -| | [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/app.tsx#:~:text=savedObjects), [page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/page.tsx#:~:text=savedObjects), [change_data_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx#:~:text=savedObjects), [source_selection.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx#:~:text=savedObjects), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=savedObjects) | - | -| | [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/app.tsx#:~:text=savedObjects), [page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/page.tsx#:~:text=savedObjects), [change_data_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx#:~:text=savedObjects), [source_selection.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx#:~:text=savedObjects), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=savedObjects) | - | -| | [dependency_cache.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/dependency_cache.ts#:~:text=SavedObjectsClientContract), [dependency_cache.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/dependency_cache.ts#:~:text=SavedObjectsClientContract), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=SavedObjectsClientContract), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=SavedObjectsClientContract) | - | +| | [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/app.tsx#:~:text=savedObjects), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/app.tsx#:~:text=savedObjects), [page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/pages/index_or_search/page.tsx#:~:text=savedObjects), [change_data_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/datafeed_step/components/data_view/change_data_view.tsx#:~:text=savedObjects), [source_selection.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx#:~:text=savedObjects), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=savedObjects) | - | +| | [dependency_cache.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/dependency_cache.ts#:~:text=SavedObjectsClientContract), [dependency_cache.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/dependency_cache.ts#:~:text=SavedObjectsClientContract), [use_resolver.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/routing/use_resolver.ts#:~:text=SavedObjectsClientContract), [use_resolver.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/routing/use_resolver.ts#:~:text=SavedObjectsClientContract), [use_resolver.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/routing/use_resolver.ts#:~:text=SavedObjectsClientContract), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=SavedObjectsClientContract), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=SavedObjectsClientContract), [router.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/routing/router.tsx#:~:text=SavedObjectsClientContract), [router.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/routing/router.tsx#:~:text=SavedObjectsClientContract) | - | | | [index_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/index_utils.ts#:~:text=find), [resolvers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/recognize/resolvers.ts#:~:text=find), [dashboard_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.ts#:~:text=find), [dashboard_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/services/dashboard_service.test.ts#:~:text=find) | - | | | [index_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/util/index_utils.ts#:~:text=get), [route_resolver.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts#:~:text=get) | - | | | [kibana.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/kibana.ts#:~:text=SimpleSavedObject), [kibana.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/kibana.ts#:~:text=SimpleSavedObject), [source_selection.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx#:~:text=SimpleSavedObject), [source_selection.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx#:~:text=SimpleSavedObject) | - | @@ -1175,8 +916,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [url_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/url_state.ts#:~:text=syncQueryStateWithUrl), [url_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/url_state.ts#:~:text=syncQueryStateWithUrl) | - | -| | [ingest_pipeline_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx#:~:text=get) | - | -| | [ingest_pipeline_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx#:~:text=savedObjects) | - | | | [ingest_pipeline_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx#:~:text=savedObjects) | - | | | [ingest_pipeline_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx#:~:text=get) | - | @@ -1191,8 +930,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [observability_data_views.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/utils/observability_data_views/observability_data_views.ts#:~:text=title), [report_definition_field.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx#:~:text=title), [use_filter_values.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/use_filter_values.ts#:~:text=title), [filter_value_btn.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.tsx#:~:text=title), [sample_attribute.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/test_data/sample_attribute.ts#:~:text=title), [sample_attribute_kpi.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/test_data/sample_attribute_kpi.ts#:~:text=title), [sample_attribute_with_reference_lines.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/test_data/sample_attribute_with_reference_lines.ts#:~:text=title), [test_formula_metric_attribute.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/test_data/test_formula_metric_attribute.ts#:~:text=title), [single_metric_attributes.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes/single_metric_attributes.test.ts#:~:text=title), [single_metric_attributes.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes/single_metric_attributes.test.ts#:~:text=title)+ 2 more | - | | | [use_discover_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx#:~:text=indexPatternId) | - | | | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/index.tsx#:~:text=RedirectAppLinks), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/index.tsx#:~:text=RedirectAppLinks), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/index.tsx#:~:text=RedirectAppLinks) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/types.ts#:~:text=SavedObjectsStart), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/types.ts#:~:text=SavedObjectsStart) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/types.ts#:~:text=SavedObjectsStart), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/types.ts#:~:text=SavedObjectsStart) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/types.ts#:~:text=SavedObjectsStart), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability/public/application/types.ts#:~:text=SavedObjectsStart) | - | @@ -1201,11 +938,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx#:~:text=SavedObject), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject)+ 6 more | - | +| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx#:~:text=SavedObject), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx#:~:text=SavedObject), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [use_assets_status.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/assets/use_assets_status.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/types.ts#:~:text=SavedObject)+ 14 more | - | | | [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=indexPatternId), [view_results_in_discover.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/discover/view_results_in_discover.tsx#:~:text=indexPatternId), [use_discover_link.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/common/hooks/use_discover_link.tsx#:~:text=indexPatternId) | - | | | [empty_state.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/components/empty_state.tsx#:~:text=KibanaPageTemplate), [empty_state.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/components/empty_state.tsx#:~:text=KibanaPageTemplate) | - | -| | [use_saved_queries.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/saved_queries/use_saved_queries.ts#:~:text=SavedObjectsFindResponse), [use_saved_queries.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/saved_queries/use_saved_queries.ts#:~:text=SavedObjectsFindResponse), [use_packs.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/use_packs.ts#:~:text=SavedObjectsFindResponse), [use_packs.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/use_packs.ts#:~:text=SavedObjectsFindResponse) | - | | | [use_saved_queries.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/saved_queries/use_saved_queries.ts#:~:text=SavedObjectsFindResponse), [use_saved_queries.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/saved_queries/use_saved_queries.ts#:~:text=SavedObjectsFindResponse), [use_packs.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/use_packs.ts#:~:text=SavedObjectsFindResponse), [use_packs.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/osquery/public/packs/use_packs.ts#:~:text=SavedObjectsFindResponse) | - | @@ -1227,9 +963,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/data_views/data_views.story.ts#:~:text=title), [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/data_views/data_views.story.ts#:~:text=title) | - | | | [data_views.story.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/data_views/data_views.story.ts#:~:text=title) | - | | | [saved_object_save_modal_dashboard.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx#:~:text=SavedObjectSaveModal), [saved_object_save_modal_dashboard.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | -| | [dashboards_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/dashboards_service.ts#:~:text=find) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/types.ts#:~:text=SimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/types.ts#:~:text=SimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/types.ts#:~:text=SimpleSavedObject) | - | -| | [dashboards_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/dashboards_service.ts#:~:text=savedObjects) | - | | | [dashboards_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/dashboards_service.ts#:~:text=savedObjects) | - | | | [dashboards_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/dashboards_service.ts#:~:text=find) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/types.ts#:~:text=SimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/types.ts#:~:text=SimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/services/dashboards/types.ts#:~:text=SimpleSavedObject) | - | @@ -1256,23 +989,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject) | - | +| | [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject) | - | | | [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=indexPatterns), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=indexPatterns) | - | | | [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObject) | - | -| | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectsClientContract), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectsClientContract), [initialize_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/initialize_saved_object.ts#:~:text=SavedObjectsClientContract), [initialize_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/initialize_saved_object.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectsClientContract), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObjectsClientContract)+ 5 more | - | -| | [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=create), [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=create), [save_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_saved_object.ts#:~:text=create), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=create), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create)+ 9 more | - | -| | [build_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/build_saved_object.ts#:~:text=delete) | - | -| | [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=find), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=find), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=find), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=find), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=find) | - | -| | [initialize_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/initialize_saved_object.ts#:~:text=get), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=get) | - | -| | [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=bulkGet) | - | -| | [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=update) | - | -| | [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SimpleSavedObject), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SimpleSavedObject), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject)+ 15 more | - | -| | [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectsCreateOptions), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectsCreateOptions), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts#:~:text=SavedObjectsCreateOptions), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts#:~:text=SavedObjectsCreateOptions), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts#:~:text=SavedObjectsCreateOptions) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=SavedObjectAttributes), [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectAttributes)+ 15 more | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectReference) | - | -| | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/plugin.ts#:~:text=savedObjects), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=savedObjects) | - | -| | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/plugin.ts#:~:text=savedObjects), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/finder/saved_object_finder.tsx#:~:text=savedObjects) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectsClientContract), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectsClientContract), [initialize_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/initialize_saved_object.ts#:~:text=SavedObjectsClientContract), [initialize_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/initialize_saved_object.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectsClientContract), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts#:~:text=SavedObjectsClientContract)+ 5 more | - | | | [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=create), [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=create), [save_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_saved_object.ts#:~:text=create), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=create), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=create)+ 9 more | - | @@ -1294,12 +1013,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject) | - | +| | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject) | - | | | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObject) | - | -| | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart) | - | -| | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=find) | - | -| | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject) | - | -| | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart) | - | | | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=find) | - | | | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SimpleSavedObject) | - | | | [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart), [saved_object_finder.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_finder/public/finder/saved_object_finder.tsx#:~:text=SavedObjectsStart) | - | @@ -1310,15 +1025,12 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject) | - | +| | [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject) | - | | | [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject), [find_relationships.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/server/lib/find_relationships.test.ts#:~:text=SavedObject)+ 2 more | - | | | [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title), [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title), [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title), [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title) | - | | | [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title), [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title), [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title), [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title) | - | | | [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title), [flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx#:~:text=title) | - | | | [saved_objects_edition_page.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/saved_objects_edition_page.tsx#:~:text=RedirectAppLinks), [saved_objects_edition_page.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/saved_objects_edition_page.tsx#:~:text=RedirectAppLinks), [saved_objects_edition_page.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/saved_objects_edition_page.tsx#:~:text=RedirectAppLinks), [saved_objects_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx#:~:text=RedirectAppLinks), [saved_objects_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx#:~:text=RedirectAppLinks), [saved_objects_table.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx#:~:text=RedirectAppLinks) | - | -| | [record.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/services/types/record.ts#:~:text=SavedObjectReference), [record.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/services/types/record.ts#:~:text=SavedObjectReference) | - | -| | [resolve_import_errors.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/lib/resolve_import_errors.ts#:~:text=createNewCopy) | - | -| | [resolve_import_errors.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/lib/resolve_import_errors.ts#:~:text=createNewCopy) | - | | | [record.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/services/types/record.ts#:~:text=SavedObjectReference), [record.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/services/types/record.ts#:~:text=SavedObjectReference) | - | | | [resolve_import_errors.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_management/public/lib/resolve_import_errors.ts#:~:text=createNewCopy) | - | @@ -1328,11 +1040,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/types.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject)+ 16 more | - | +| | [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/types.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject)+ 3 more | - | | | [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/types.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject)+ 29 more | - | | | [request_handler_context.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/server/request_handler_context.ts#:~:text=authz) | - | -| | [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObjectReference), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObjectReference), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObjectReference)+ 11 more | - | -| | [tag.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/server/saved_objects/tag.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObjectReference), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObjectReference), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObjectReference)+ 11 more | - | | | [tag.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/server/saved_objects/tag.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -1342,9 +1052,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/types.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject)+ 1 more | - | +| | [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/types.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject) | - | | | [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject) | - | -| | [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [inject_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/inject_tag_references.test.ts#:~:text=SavedObjectReference), [inject_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/inject_tag_references.test.ts#:~:text=SavedObjectReference), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObjectReference), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObjectReference)+ 2 more | - | | | [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [extract_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/extract_tag_references.test.ts#:~:text=SavedObjectReference), [inject_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/inject_tag_references.test.ts#:~:text=SavedObjectReference), [inject_tag_references.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/inject_tag_references.test.ts#:~:text=SavedObjectReference), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObjectReference), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObjectReference)+ 2 more | - | @@ -1353,16 +1062,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=SavedObjectsStart), [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=SavedObjectsStart), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=SavedObjectsStart), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=SavedObjectsStart), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=SavedObjectsStart), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=SavedObjectsStart) | - | -| | [get_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.ts#:~:text=SavedObjectsClientContract), [get_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.ts#:~:text=SavedObjectsClientContract), [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=SavedObjectsClientContract), [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=SavedObjectsClientContract) | - | -| | [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=create), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=create) | - | -| | [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=find), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=find), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=find) | - | -| | [get_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.ts#:~:text=resolve), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=resolve), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=resolve), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=resolve), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=resolve), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=resolve), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=resolve) | - | -| | [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=update), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=update), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=update) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/types.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=SavedObjectsStart), [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=SavedObjectsStart), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=SavedObjectsStart), [get_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.test.ts#:~:text=SavedObjectsStart), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=SavedObjectsStart), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=SavedObjectsStart) | - | -| | [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes), [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes) | - | -| | [search.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [get_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.ts#:~:text=SavedObjectsClientContract), [get_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/get_saved_searches.ts#:~:text=SavedObjectsClientContract), [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=SavedObjectsClientContract), [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=SavedObjectsClientContract) | - | | | [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=create), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=create) | - | | | [save_saved_searches.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.ts#:~:text=find), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=find), [save_saved_searches.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/save_saved_searches.test.ts#:~:text=find) | - | @@ -1406,7 +1105,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/plugin.tsx#:~:text=license%24) | 8.8.0 | | | [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/plugin.ts#:~:text=license%24) | 8.8.0 | -| | [logout_app.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/authentication/logout/logout_app.test.ts#:~:text=appBasePath) | 8.8.0 | | | [logout_app.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/authentication/logout/logout_app.test.ts#:~:text=appBasePath) | 8.8.0 | @@ -1417,25 +1115,25 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | ---------------|-----------|-----------| | | [wrap_search_source_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.ts#:~:text=create) | - | | | [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch) | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=SavedObject), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=SavedObject), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=SavedObject), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=SavedObject), [user_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/user_risk_score_dashboards.ts#:~:text=SavedObject), [user_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/user_risk_score_dashboards.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject)+ 6 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=SavedObject), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=SavedObject), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=SavedObject), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=SavedObject), [user_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/user_risk_score_dashboards.ts#:~:text=SavedObject), [user_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/user_risk_score_dashboards.ts#:~:text=SavedObject) | - | | | [dependencies_start_mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/endpoint/dependencies_start_mock.ts#:~:text=indexPatterns) | - | | | [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=SavedObject), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=SavedObject), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=SavedObject), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=SavedObject), [user_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/user_risk_score_dashboards.ts#:~:text=SavedObject), [user_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/user_risk_score_dashboards.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObject)+ 14 more | - | -| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_query_filter.ts#:~:text=title), [index_pattern.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/index_pattern.ts#:~:text=title), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/flyout_components/alerts_actions/utils.test.ts#:~:text=title), [create_sourcerer_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/sourcerer/create_sourcerer_data_view.ts#:~:text=title)+ 18 more | - | +| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_query_filter.ts#:~:text=title), [index_pattern.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/index_pattern.ts#:~:text=title), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/flyout_components/alerts_actions/utils.test.ts#:~:text=title)+ 20 more | - | | | [wrap_search_source_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.ts#:~:text=create) | - | | | [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch) | - | | | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts#:~:text=options) | - | -| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_query_filter.ts#:~:text=title), [index_pattern.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/index_pattern.ts#:~:text=title), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/flyout_components/alerts_actions/utils.test.ts#:~:text=title), [create_sourcerer_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/sourcerer/create_sourcerer_data_view.ts#:~:text=title)+ 18 more | - | -| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_query_filter.ts#:~:text=title), [index_pattern.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/index_pattern.ts#:~:text=title), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/flyout_components/alerts_actions/utils.test.ts#:~:text=title), [create_sourcerer_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/sourcerer/create_sourcerer_data_view.ts#:~:text=title)+ 4 more | - | +| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_query_filter.ts#:~:text=title), [index_pattern.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/index_pattern.ts#:~:text=title), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/flyout_components/alerts_actions/utils.test.ts#:~:text=title)+ 20 more | - | +| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_query_filter.ts#:~:text=title), [index_pattern.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/index_pattern.ts#:~:text=title), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/flyout_components/alerts_actions/utils.test.ts#:~:text=title)+ 5 more | - | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode)+ 7 more | 8.8.0 | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode)+ 7 more | 8.8.0 | | | [query.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts#:~:text=license%24) | 8.8.0 | | | [request_context_factory.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=authc), [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts#:~:text=authc), [create_signals_migration_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/create_signals_migration_route.ts#:~:text=authc), [delete_signals_migration_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/delete_signals_migration_route.ts#:~:text=authc), [finalize_signals_migration_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/finalize_signals_migration_route.ts#:~:text=authc), [open_close_signals_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/open_close_signals_route.ts#:~:text=authc), [common.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/utils/common.ts#:~:text=authc) | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.test.ts#:~:text=SavedObjectsClientContract), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.test.ts#:~:text=SavedObjectsClientContract) | - | -| | [use_dashboard_button_href.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/use_dashboard_button_href.ts#:~:text=find), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=find), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=find), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=find), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=find) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/types.ts#:~:text=SimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/types.ts#:~:text=SimpleSavedObject) | - | -| | [use_dashboard_button_href.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/use_dashboard_button_href.ts#:~:text=savedObjects), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=savedObjects), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=savedObjects), [use_create_security_dashboard_link.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_create_security_dashboard_link.ts#:~:text=savedObjects) | - | -| | [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes) | - | -| | [timelines.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/timelines.ts#:~:text=convertToMultiNamespaceTypeVersion), [notes.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/notes.ts#:~:text=convertToMultiNamespaceTypeVersion), [pinned_events.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/pinned_events.ts#:~:text=convertToMultiNamespaceTypeVersion), [legacy_saved_object_mappings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_saved_object_mappings.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | +| | [use_dashboard_button_href.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/use_dashboard_button_href.ts#:~:text=savedObjects), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=savedObjects), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=savedObjects), [use_create_security_dashboard_link.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_create_security_dashboard_link.ts#:~:text=savedObjects) | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.test.ts#:~:text=SavedObjectsClientContract), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.test.ts#:~:text=SavedObjectsClientContract) | - | +| | [use_dashboard_button_href.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/use_dashboard_button_href.ts#:~:text=find), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=find), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=find), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=find), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=find) | - | +| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/types.ts#:~:text=SimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/types.ts#:~:text=SimpleSavedObject) | - | +| | [timelines.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/timelines.ts#:~:text=convertToMultiNamespaceTypeVersion), [notes.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/notes.ts#:~:text=convertToMultiNamespaceTypeVersion), [pinned_events.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/pinned_events.ts#:~:text=convertToMultiNamespaceTypeVersion), [legacy_saved_object_mappings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_saved_object_mappings.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | +| | [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes) | - | | | [policy_hooks.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_hooks.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [policy_hooks.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_hooks.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/constants.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/constants.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/api_client.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/api_client.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/api_client.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [lists.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [manifest_manager.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID), [manifest_manager.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_ID)+ 34 more | - | | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/constants.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_NAME), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/constants.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_NAME), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/trusted_apps/index.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_NAME), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/trusted_apps/index.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_NAME) | - | | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/constants.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/trusted_apps/constants.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/trusted_apps/index.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/trusted_apps/index.ts#:~:text=ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION) | - | @@ -1448,12 +1146,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [policy_hooks.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_hooks.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [policy_hooks.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_hooks.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [lists.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [manifest_manager.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [manifest_manager.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID)+ 14 more | - | | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_NAME), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_NAME), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/blocklists/index.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_NAME), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/blocklists/index.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_NAME) | - | | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_DESCRIPTION), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_DESCRIPTION), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/blocklists/index.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_DESCRIPTION), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/blocklists/index.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_DESCRIPTION) | - | -| | [use_dashboard_button_href.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/use_dashboard_button_href.ts#:~:text=savedObjects), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=savedObjects), [use_security_dashboards_table.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_security_dashboards_table.tsx#:~:text=savedObjects), [use_create_security_dashboard_link.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/use_create_security_dashboard_link.ts#:~:text=savedObjects) | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=SavedObjectsClientContract), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.test.ts#:~:text=SavedObjectsClientContract), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.test.ts#:~:text=SavedObjectsClientContract) | - | -| | [use_dashboard_button_href.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/use_dashboard_button_href.ts#:~:text=find), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=find), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=find), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=find), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/dashboards/utils.ts#:~:text=find) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/types.ts#:~:text=SimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/types.ts#:~:text=SimpleSavedObject) | - | -| | [timelines.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/timelines.ts#:~:text=convertToMultiNamespaceTypeVersion), [notes.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/notes.ts#:~:text=convertToMultiNamespaceTypeVersion), [pinned_events.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/saved_object_mappings/pinned_events.ts#:~:text=convertToMultiNamespaceTypeVersion), [legacy_saved_object_mappings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_saved_object_mappings.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | -| | [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes) | - | @@ -1469,12 +1161,9 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [spaces_management_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/management/spaces_management_app.tsx#:~:text=RedirectAppLinks), [spaces_management_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/management/spaces_management_app.tsx#:~:text=RedirectAppLinks), [spaces_management_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/management/spaces_management_app.tsx#:~:text=RedirectAppLinks) | - | | | [on_post_auth_interceptor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/lib/request_interceptors/on_post_auth_interceptor.ts#:~:text=getKibanaFeatures), [spaces_usage_collector.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts#:~:text=getKibanaFeatures), [on_post_auth_interceptor.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/lib/request_interceptors/on_post_auth_interceptor.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | +| | [spaces_management_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/management/spaces_management_app.tsx#:~:text=RedirectAppLinks), [spaces_management_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/management/spaces_management_app.tsx#:~:text=RedirectAppLinks), [spaces_management_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/management/spaces_management_app.tsx#:~:text=RedirectAppLinks) | - | | | [spaces_usage_collector.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/plugin.ts#:~:text=license%24), [spaces_usage_collector.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.test.ts#:~:text=license%24) | 8.8.0 | -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/legacy_urls/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/legacy_urls/types.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [copy_to_space_flyout_internal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_internal.tsx#:~:text=createNewCopy) | - | -| | [copy_to_space_flyout_internal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_internal.tsx#:~:text=createNewCopy) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/legacy_urls/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/legacy_urls/types.ts#:~:text=ResolvedSimpleSavedObject) | - | | | [copy_to_space_flyout_internal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_internal.tsx#:~:text=createNewCopy) | - | @@ -1498,21 +1187,13 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [monitor_detail_flyout.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/monitor_detail_flyout.tsx#:~:text=SavedObject), [monitor_detail_flyout.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/monitor_detail_flyout.tsx#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts#:~:text=SavedObject), [effects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts#:~:text=SavedObject), [effects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts#:~:text=SavedObject)+ 20 more | - | +| | [monitor_detail_flyout.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/monitor_detail_flyout.tsx#:~:text=SavedObject), [monitor_detail_flyout.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/monitor_detail_flyout.tsx#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts#:~:text=SavedObject), [effects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts#:~:text=SavedObject), [effects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts#:~:text=SavedObject)+ 5 more | - | | | [monitor_detail_flyout.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/monitor_detail_flyout.tsx#:~:text=SavedObject), [monitor_detail_flyout.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/monitor_detail_flyout.tsx#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts#:~:text=SavedObject), [effects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts#:~:text=SavedObject), [effects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts#:~:text=SavedObject)+ 35 more | - | | | [filter_group.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/filter_group/filter_group.tsx#:~:text=title), [filters_expression_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/alerts/monitor_expressions/filters_expression_select.tsx#:~:text=title), [filter_group.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/filter_group/filter_group.tsx#:~:text=title), [filters_expression_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/alerts/monitor_expressions/filters_expression_select.tsx#:~:text=title) | - | | | [filter_group.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/filter_group/filter_group.tsx#:~:text=title), [filters_expression_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/alerts/monitor_expressions/filters_expression_select.tsx#:~:text=title), [filter_group.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/filter_group/filter_group.tsx#:~:text=title), [filters_expression_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/alerts/monitor_expressions/filters_expression_select.tsx#:~:text=title) | - | | | [filter_group.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/filter_group/filter_group.tsx#:~:text=title), [filters_expression_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/alerts/monitor_expressions/filters_expression_select.tsx#:~:text=title) | - | | | [stderr_logs.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/synthetics/check_steps/stderr_logs.tsx#:~:text=indexPatternId), [stderr_logs.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/stderr_logs.tsx#:~:text=indexPatternId) | - | | | [alert_messages.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/lib/alert_types/alert_messages.tsx#:~:text=RedirectAppLinks), [alert_messages.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/lib/alert_types/alert_messages.tsx#:~:text=RedirectAppLinks), [alert_messages.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/lib/alert_types/alert_messages.tsx#:~:text=RedirectAppLinks), [uptime_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/app/uptime_app.tsx#:~:text=RedirectAppLinks), [uptime_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/app/uptime_app.tsx#:~:text=RedirectAppLinks), [uptime_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/app/uptime_app.tsx#:~:text=RedirectAppLinks), [synthetics_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/synthetics_app.tsx#:~:text=RedirectAppLinks), [synthetics_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/synthetics_app.tsx#:~:text=RedirectAppLinks), [synthetics_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/synthetics_app.tsx#:~:text=RedirectAppLinks) | - | -| | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=SavedObjectsClientContract) | - | -| | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=create), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=create) | - | -| | [delete_param.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/settings/global_params/delete_param.tsx#:~:text=bulkDelete) | - | -| | [use_filters.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.ts#:~:text=find), [use_monitor_name.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/use_monitor_name.ts#:~:text=find), [use_location_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/manage_locations/hooks/use_location_monitors.ts#:~:text=find), [use_location_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/settings/private_locations/hooks/use_location_monitors.ts#:~:text=find), [use_monitor_name.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_name.ts#:~:text=find), [use_filters.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.test.ts#:~:text=find), [use_filters.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.test.ts#:~:text=find) | - | -| | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=get), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=get) | - | -| | [use_invalid_monitors.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/hooks/use_invalid_monitors.tsx#:~:text=bulkResolve), [use_recently_viewed_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_selector/use_recently_viewed_monitors.ts#:~:text=bulkResolve) | - | -| | [synthetics_monitor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/common/types/synthetics_monitor.ts#:~:text=SimpleSavedObject), [synthetics_monitor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/common/types/synthetics_monitor.ts#:~:text=SimpleSavedObject), [synthetics_monitor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/common/types/synthetics_monitor.ts#:~:text=SimpleSavedObject) | - | -| | [use_filters.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.ts#:~:text=savedObjects), [use_monitor_name.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/use_monitor_name.ts#:~:text=savedObjects), [use_location_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/manage_locations/hooks/use_location_monitors.ts#:~:text=savedObjects), [use_locations_api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/manage_locations/hooks/use_locations_api.ts#:~:text=savedObjects), [use_invalid_monitors.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/hooks/use_invalid_monitors.tsx#:~:text=savedObjects), [use_recently_viewed_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_selector/use_recently_viewed_monitors.ts#:~:text=savedObjects), [delete_param.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/settings/global_params/delete_param.tsx#:~:text=savedObjects), [use_location_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/settings/private_locations/hooks/use_location_monitors.ts#:~:text=savedObjects), [use_locations_api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/settings/private_locations/hooks/use_locations_api.ts#:~:text=savedObjects), [use_monitor_name.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_name.ts#:~:text=savedObjects)+ 1 more | - | | | [use_filters.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/monitor_filters/use_filters.ts#:~:text=savedObjects), [use_monitor_name.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/use_monitor_name.ts#:~:text=savedObjects), [use_location_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/manage_locations/hooks/use_location_monitors.ts#:~:text=savedObjects), [use_locations_api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/manage_locations/hooks/use_locations_api.ts#:~:text=savedObjects), [use_invalid_monitors.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/hooks/use_invalid_monitors.tsx#:~:text=savedObjects), [use_recently_viewed_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_selector/use_recently_viewed_monitors.ts#:~:text=savedObjects), [delete_param.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/settings/global_params/delete_param.tsx#:~:text=savedObjects), [use_location_monitors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/settings/private_locations/hooks/use_location_monitors.ts#:~:text=savedObjects), [use_locations_api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/settings/private_locations/hooks/use_locations_api.ts#:~:text=savedObjects), [use_monitor_name.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_name.ts#:~:text=savedObjects)+ 1 more | - | | | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=SavedObjectsClientContract) | - | | | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/apps/synthetics/state/private_locations/api.ts#:~:text=create), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/api.ts#:~:text=create) | - | @@ -1528,7 +1209,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [task_store.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/task_manager/server/task_store.test.ts#:~:text=SavedObjectAttributes), [task_store.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/task_manager/server/task_store.test.ts#:~:text=SavedObjectAttributes) | - | | | [task_store.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/task_manager/server/task_store.test.ts#:~:text=SavedObjectAttributes), [task_store.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/task_manager/server/task_store.test.ts#:~:text=SavedObjectAttributes) | - | @@ -1561,9 +1241,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [filter_term_form.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_term_form.tsx#:~:text=title), [common.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/hooks/use_search_items/common.ts#:~:text=title), [es_index_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/services/es_index_service.ts#:~:text=title), [transforms.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/routes/api/transforms.ts#:~:text=title), [common.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/common.test.ts#:~:text=title), [filter_term_form.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_term_form.tsx#:~:text=title), [common.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/hooks/use_search_items/common.ts#:~:text=title), [es_index_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/services/es_index_service.ts#:~:text=title), [transforms.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/routes/api/transforms.ts#:~:text=title), [common.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/common.test.ts#:~:text=title) | - | | | [filter_term_form.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_term_form.tsx#:~:text=title), [common.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/hooks/use_search_items/common.ts#:~:text=title), [es_index_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/services/es_index_service.ts#:~:text=title), [transforms.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/routes/api/transforms.ts#:~:text=title), [common.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/common.test.ts#:~:text=title) | - | | | [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/services/license.ts#:~:text=license%24) | 8.8.0 | -| | [app_dependencies.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app_dependencies.tsx#:~:text=SavedObjectsStart), [app_dependencies.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app_dependencies.tsx#:~:text=SavedObjectsStart) | - | -| | [mount_management_section.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/mount_management_section.ts#:~:text=savedObjects) | - | -| | [app_dependencies.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app_dependencies.tsx#:~:text=SavedObjectsStart), [app_dependencies.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app_dependencies.tsx#:~:text=SavedObjectsStart) | - | | | [mount_management_section.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/mount_management_section.ts#:~:text=savedObjects) | - | | | [app_dependencies.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app_dependencies.tsx#:~:text=SavedObjectsStart), [app_dependencies.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app_dependencies.tsx#:~:text=SavedObjectsStart) | - | @@ -1576,7 +1253,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [data_apis.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts#:~:text=title), [data_apis.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts#:~:text=title) | - | | | [data_apis.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts#:~:text=title), [data_apis.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts#:~:text=title) | - | | | [data_apis.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts#:~:text=title) | - | -| | [rule_reducer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts#:~:text=SavedObjectAttribute), [rule_reducer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts#:~:text=SavedObjectAttribute), [rule_reducer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts#:~:text=SavedObjectAttribute) | - | | | [rule_reducer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts#:~:text=SavedObjectAttribute), [rule_reducer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts#:~:text=SavedObjectAttribute), [rule_reducer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts#:~:text=SavedObjectAttribute) | - | @@ -1585,7 +1261,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [action_factory.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts#:~:text=SavedObjectReference), [action_factory.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts#:~:text=SavedObjectReference), [ui_actions_service_enhancements.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts#:~:text=SavedObjectReference), [ui_actions_service_enhancements.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts#:~:text=SavedObjectReference), [ui_actions_service_enhancements.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/dynamic_actions/dynamic_action_enhancement.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/dynamic_actions/dynamic_action_enhancement.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts#:~:text=SavedObjectReference) | - | | | [action_factory.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts#:~:text=SavedObjectReference), [action_factory.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts#:~:text=SavedObjectReference), [ui_actions_service_enhancements.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts#:~:text=SavedObjectReference), [ui_actions_service_enhancements.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts#:~:text=SavedObjectReference), [ui_actions_service_enhancements.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/services/ui_actions_service_enhancements.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/dynamic_actions/dynamic_action_enhancement.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/public/dynamic_actions/dynamic_action_enhancement.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts#:~:text=SavedObjectReference), [dynamic_action_enhancement.ts](https://github.com/elastic/kibana/tree/main/src/plugins/ui_actions_enhanced/server/dynamic_action_enhancement.ts#:~:text=SavedObjectReference) | - | @@ -1609,7 +1284,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [value_suggestion_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/public/autocomplete/providers/value_suggestion_provider.ts#:~:text=title), [fetch_index_patterns.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/public/query_string_input/fetch_index_patterns.ts#:~:text=title), [change_dataview.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx#:~:text=title) | - | | | [terms_enum.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/server/autocomplete/terms_enum.ts#:~:text=getFieldByName), [terms_enum.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/server/autocomplete/terms_enum.ts#:~:text=getFieldByName), [terms_agg.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/server/autocomplete/terms_agg.ts#:~:text=getFieldByName), [terms_agg.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/server/autocomplete/terms_agg.ts#:~:text=getFieldByName) | - | | | [terms_enum.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/server/autocomplete/terms_enum.ts#:~:text=findIndexPatternById), [terms_enum.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/server/autocomplete/terms_enum.ts#:~:text=findIndexPatternById), [terms_agg.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/server/autocomplete/terms_agg.ts#:~:text=findIndexPatternById), [terms_agg.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/server/autocomplete/terms_agg.ts#:~:text=findIndexPatternById) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/public/types.ts#:~:text=savedObjects), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/public/types.ts#:~:text=savedObjects) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/public/types.ts#:~:text=savedObjects), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/unified_search/public/types.ts#:~:text=savedObjects) | - | @@ -1618,7 +1292,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject) | - | +| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/common/types.ts#:~:text=SavedObject) | - | | | [external_links.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.tsx#:~:text=title), [external_links.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.tsx#:~:text=title) | - | | | [external_links.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.tsx#:~:text=title), [external_links.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.tsx#:~:text=title) | - | @@ -1686,7 +1360,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | - | | | [index_patterns_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/common/index_patterns_utils.ts#:~:text=title), [index_patterns_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/common/index_patterns_utils.ts#:~:text=title), [get_fields.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/server/lib/get_fields.ts#:~:text=title), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=title), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=title), [convert_series_to_datatable.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.ts#:~:text=title), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=title), [datasource_info.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/convert_to_lens/lib/datasource/datasource_info.test.ts#:~:text=title), [datasource_info.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/convert_to_lens/lib/datasource/datasource_info.test.ts#:~:text=title), [datasource_info.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/convert_to_lens/lib/datasource/datasource_info.test.ts#:~:text=title)+ 2 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | - | -| | [query_input_bar_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/contexts/query_input_bar_context.ts#:~:text=SavedObjectsClientContract), [query_input_bar_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/contexts/query_input_bar_context.ts#:~:text=SavedObjectsClientContract) | - | | | [query_input_bar_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/contexts/query_input_bar_context.ts#:~:text=SavedObjectsClientContract), [query_input_bar_context.ts](https://github.com/elastic/kibana/tree/main/src/plugins/vis_types/timeseries/public/application/contexts/query_input_bar_context.ts#:~:text=SavedObjectsClientContract) | - | @@ -1705,23 +1378,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/services.ts#:~:text=SavedObjectsStart), [services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/services.ts#:~:text=SavedObjectsStart), [search_selection.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx#:~:text=SavedObjectsStart), [search_selection.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx#:~:text=SavedObjectsStart), [new_vis_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/new_vis_modal.tsx#:~:text=SavedObjectsStart), [new_vis_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/new_vis_modal.tsx#:~:text=SavedObjectsStart) | - | -| | [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectsClientContract), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObjectsClientContract), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsClientContract), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsClientContract), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsClientContract), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsClientContract)+ 12 more | - | -| | [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=create), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=create), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=create), [update_basic_attributes.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/update_basic_attributes.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create)+ 7 more | - | -| | [visualize_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=delete) | - | -| | [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=find), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=find), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts#:~:text=find), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts#:~:text=find), [saved_visualize_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts#:~:text=find), [saved_visualize_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts#:~:text=find), [saved_visualize_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts#:~:text=find), [saved_visualize_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts#:~:text=find), [saved_visualize_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts#:~:text=find), [saved_visualize_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts#:~:text=find)+ 2 more | - | -| | [update_basic_attributes.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/update_basic_attributes.ts#:~:text=get) | - | -| | [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=resolve), [saved_visualize_utils.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.test.ts#:~:text=resolve) | - | -| | [vis_type_alias_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/vis_types/vis_type_alias_registry.ts#:~:text=SimpleSavedObject), [vis_type_alias_registry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/vis_types/vis_type_alias_registry.ts#:~:text=SimpleSavedObject), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SimpleSavedObject), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SimpleSavedObject), [show_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/show_saved_object.ts#:~:text=SimpleSavedObject), [show_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/show_saved_object.ts#:~:text=SimpleSavedObject), [show_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/show_saved_object.ts#:~:text=SimpleSavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts#:~:text=SimpleSavedObject), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.test.ts#:~:text=SimpleSavedObject), [show_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/show_saved_object.test.ts#:~:text=SimpleSavedObject)+ 4 more | - | -| | [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectsCreateOptions), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectsCreateOptions), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=SavedObjectsCreateOptions), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=SavedObjectsCreateOptions), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=SavedObjectsCreateOptions) | - | -| | [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsFindOptions), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsFindOptions) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/types.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectAttribute), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectAttribute) | - | -| | [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes)+ 11 more | - | -| | [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=SavedObjectReference), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=SavedObjectReference), [controls_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/controls_references.ts#:~:text=SavedObjectReference)+ 5 more | - | -| | [get_top_nav_config.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.tsx#:~:text=savedObjects), [get_visualization_instance.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts#:~:text=savedObjects), [get_visualization_instance.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts#:~:text=savedObjects), [get_visualization_instance.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts#:~:text=savedObjects), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=savedObjects), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=savedObjects), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=savedObjects), [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/plugin.ts#:~:text=savedObjects), [visualize_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=savedObjects) | - | -| | [services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/services.ts#:~:text=SavedObjectsStart), [services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/services.ts#:~:text=SavedObjectsStart), [search_selection.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx#:~:text=SavedObjectsStart), [search_selection.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx#:~:text=SavedObjectsStart), [new_vis_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/new_vis_modal.tsx#:~:text=SavedObjectsStart), [new_vis_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/new_vis_modal.tsx#:~:text=SavedObjectsStart) | - | -| | [visualization.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/server/saved_objects/visualization.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [get_top_nav_config.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.tsx#:~:text=savedObjects), [get_visualization_instance.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts#:~:text=savedObjects), [get_visualization_instance.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts#:~:text=savedObjects), [get_visualization_instance.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts#:~:text=savedObjects), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=savedObjects), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=savedObjects), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=savedObjects), [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/plugin.ts#:~:text=savedObjects), [visualize_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=savedObjects) | - | | | [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectsClientContract), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObjectsClientContract), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsClientContract), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsClientContract), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsClientContract), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectsClientContract)+ 12 more | - | | | [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=create), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=create), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=create), [update_basic_attributes.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/update_basic_attributes.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create), [save_with_confirmation.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts#:~:text=create)+ 7 more | - | @@ -1747,7 +1403,5 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24) | 8.8.0 | -| | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/lib/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/lib/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/lib/api.ts#:~:text=SavedObjectsClientContract), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/index.tsx#:~:text=SavedObjectsClientContract), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/index.tsx#:~:text=SavedObjectsClientContract) | - | -| | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=savedObjects) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=savedObjects) | - | | | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/lib/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/lib/api.ts#:~:text=SavedObjectsClientContract), [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/lib/api.ts#:~:text=SavedObjectsClientContract), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/index.tsx#:~:text=SavedObjectsClientContract), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/index.tsx#:~:text=SavedObjectsClientContract) | - | \ No newline at end of file diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 485fd41c74f4ee..54bb94c8dfa64b 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,12 +7,12 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- -## APM UI +## @elastic/apm-ui | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| @@ -23,88 +23,65 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] -## App Services +## @elastic/appex-sharedux | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| embeddable | | [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal), [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | - - - -## Data Discovery - -| Plugin | Deprecated API | Reference location(s) | Remove By | -| --------|-------|-----------|-----------| -| discover | | [on_save_search.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | -| graph | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/server/plugin.ts#:~:text=license%24) | 8.8.0 | +| savedObjectsTaggingOss | | [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/types.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject) | 8.8.0 | +| kibanaOverview | | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/application.tsx#:~:text=appBasePath) | 8.8.0 | -## Fleet +## @elastic/fleet | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| | fleet | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | fleet | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | fleet | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | -| fleet | | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath) | 8.8.0 | | fleet | | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath) | 8.8.0 | -## GIS - -| Plugin | Deprecated API | Reference location(s) | Remove By | -| --------|-------|-----------|-----------| -| mapsEms | | [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/maps_ems/server/index.ts#:~:text=license%24) | 8.8.0 | -| mapsEms | | [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/maps_ems/server/index.ts#:~:text=refresh) | 8.8.0 | - - - -## Kibana Core +## @elastic/kibana-core | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| core | | [mocks.ts](https://github.com/elastic/kibana/tree/main/src/core/public/mocks.ts#:~:text=appBasePath), [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/application.tsx#:~:text=appBasePath), [app_container.tsx](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-internal/src/ui/app_container.tsx#:~:text=appBasePath), [application_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-mocks/src/application_service.mock.ts#:~:text=appBasePath) | 8.8.0 | -| core | | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/server/index.ts#:~:text=AsyncPlugin), [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin), [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin) | 8.8.0 | -| savedObjectsTaggingOss | | [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/decorator/types.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject), [api.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects_tagging_oss/public/api.ts#:~:text=SavedObject) | 8.8.0 | -| kibanaOverview | | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/kibana_overview/public/application.tsx#:~:text=appBasePath), [app_container.tsx](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-internal/src/ui/app_container.tsx#:~:text=appBasePath), [application_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-mocks/src/application_service.mock.ts#:~:text=appBasePath) | 8.8.0 | -| @kbn/core-plugins-server-internal | | [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin), [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin), [types.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server/src/types.ts#:~:text=AsyncPlugin), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server/src/index.ts#:~:text=AsyncPlugin), [index.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server/index.ts#:~:text=AsyncPlugin) | 8.8.0 | +| @kbn/core | | [mocks.ts](https://github.com/elastic/kibana/tree/main/src/core/public/mocks.ts#:~:text=appBasePath), [app_container.tsx](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-internal/src/ui/app_container.tsx#:~:text=appBasePath), [application_service.mock.ts](https://github.com/elastic/kibana/tree/main/packages/core/application/core-application-browser-mocks/src/application_service.mock.ts#:~:text=appBasePath) | 8.8.0 | +| @kbn/core | | [index.ts](https://github.com/elastic/kibana/tree/main/src/core/server/index.ts#:~:text=AsyncPlugin), [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin), [plugin.ts](https://github.com/elastic/kibana/tree/main/packages/core/plugins/core-plugins-server-internal/src/plugin.ts#:~:text=AsyncPlugin) | 8.8.0 | -## Kibana Presentation +## @elastic/kibana-data-discovery | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| dashboard | | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/overlays/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/overlays/save_modal.tsx#:~:text=SavedObjectSaveModal), [saved_object_save_modal_dashboard.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx#:~:text=SavedObjectSaveModal), [saved_object_save_modal_dashboard.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | -| dashboard | | [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject) | 8.8.0 | +| discover | | [on_save_search.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | -## Logstash +## @elastic/kibana-gis | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| logstash | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/logstash/public/plugin.ts#:~:text=license%24) | 8.8.0 | +| mapsEms | | [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/maps_ems/server/index.ts#:~:text=license%24) | 8.8.0 | +| mapsEms | | [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/maps_ems/server/index.ts#:~:text=refresh) | 8.8.0 | -## Machine Learning UI +## @elastic/kibana-presentation | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24) | 8.8.0 | -| ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/services/license.ts#:~:text=license%24) | 8.8.0 | +| dashboard | | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/overlays/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/overlays/save_modal.tsx#:~:text=SavedObjectSaveModal), [saved_object_save_modal_dashboard.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx#:~:text=SavedObjectSaveModal), [saved_object_save_modal_dashboard.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx#:~:text=SavedObjectSaveModal), [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal), [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | +| dashboard | | [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObject) | 8.8.0 | -## Platform Security +## @elastic/kibana-security | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| spaces | | [on_post_auth_interceptor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/lib/request_interceptors/on_post_auth_interceptor.ts#:~:text=getKibanaFeatures), [spaces_usage_collector.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts#:~:text=getKibanaFeatures), [on_post_auth_interceptor.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/lib/request_interceptors/on_post_auth_interceptor.test.ts#:~:text=getKibanaFeatures), [app_authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.ts#:~:text=getKibanaFeatures), [privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.ts#:~:text=getKibanaFeatures), [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getKibanaFeatures), [app_authorization.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures)+ 18 more | 8.8.0 | -| spaces | | [spaces_usage_collector.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/plugin.ts#:~:text=license%24), [spaces_usage_collector.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.test.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/plugin.ts#:~:text=license%24) | 8.8.0 | | security | | [elasticsearch_role.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/roles/elasticsearch_role.ts#:~:text=disabled), [role_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/lib/role_utils.ts#:~:text=disabled), [role_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/lib/role_utils.ts#:~:text=disabled), [primary_feature_privilege.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/management/roles/model/primary_feature_privilege.ts#:~:text=disabled), [elasticsearch_role.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/roles/elasticsearch_role.test.ts#:~:text=disabled), [kibana_features.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/management/roles/__fixtures__/kibana_features.ts#:~:text=disabled), [put.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/routes/authorization/roles/put.test.ts#:~:text=disabled), [put_payload.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/routes/authorization/roles/model/put_payload.test.ts#:~:text=disabled), [put_payload.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/routes/authorization/roles/model/put_payload.test.ts#:~:text=disabled) | 8.8.0 | | security | | [disable_ui_capabilities.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/disable_ui_capabilities.ts#:~:text=requiredRoles) | 8.8.0 @@ -116,46 +93,65 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ This is relied on by the reporting feature, and should be removed once reporting migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/issues/19914 | +| security | | [app_authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.ts#:~:text=getKibanaFeatures), [privileges.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.ts#:~:text=getKibanaFeatures), [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getKibanaFeatures), [app_authorization.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/app_authorization.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures), [privileges.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/privileges/privileges.test.ts#:~:text=getKibanaFeatures)+ 18 more | 8.8.0 | | security | | [authorization_service.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/authorization/authorization_service.tsx#:~:text=getElasticsearchFeatures) | 8.8.0 | | security | | [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode) | 8.8.0 | | security | | [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/plugin.tsx#:~:text=license%24) | 8.8.0 | | security | | [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode), [license_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/common/licensing/license_service.test.ts#:~:text=mode) | 8.8.0 | -| security | | [logout_app.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/authentication/logout/logout_app.test.ts#:~:text=appBasePath) | 8.8.0 | +| security | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/server/plugin.ts#:~:text=license%24), [spaces_usage_collector.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/plugin.ts#:~:text=license%24), [spaces_usage_collector.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.test.ts#:~:text=license%24) | 8.8.0 | | security | | [logout_app.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security/public/authentication/logout/logout_app.test.ts#:~:text=appBasePath) | 8.8.0 | -## Response Ops +## @elastic/kibana-visualizations | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| alerting | | [plugin.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | -| alerting | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/lib/license_state.test.ts#:~:text=license%24) | 8.8.0 | +| graph | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/server/plugin.ts#:~:text=license%24) | 8.8.0 | +| graph | | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | -## Security solution +## @elastic/logstash | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| securitySolution | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode)+ 7 more | 8.8.0 | -| securitySolution | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode)+ 7 more | 8.8.0 | -| securitySolution | | [query.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts#:~:text=license%24) | 8.8.0 | +| logstash | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/logstash/public/plugin.ts#:~:text=license%24) | 8.8.0 | + + + +## @elastic/ml-ui + +| Plugin | Deprecated API | Reference location(s) | Remove By | +| --------|-------|-----------|-----------| +| ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24) | 8.8.0 | +| ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/services/license.ts#:~:text=license%24) | 8.8.0 | -## Stack Management +## @elastic/platform-deployment-management | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| | upgradeAssistant | | [reindex_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/index_lifecycle_management/server/services/license.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/painless_lab/server/services/license.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/searchprofiler/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/remote_clusters/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/rollup/server/services/license.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/snapshot_restore/server/services/license.ts#:~:text=license%24) | 8.8.0 | | licenseManagement | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/license_management/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cross_cluster_replication/public/plugin.ts#:~:text=license%24), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/painless_lab/public/plugin.tsx#:~:text=license%24), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/painless_lab/public/plugin.tsx#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/searchprofiler/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/searchprofiler/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24) | 8.8.0 | +| management | | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/management/public/application.tsx#:~:text=appBasePath) | 8.8.0 | + + + +## @elastic/response-ops + +| Plugin | Deprecated API | Reference location(s) | Remove By | +| --------|-------|-----------|-----------| +| alerting | | [plugin.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | +| alerting | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/lib/license_state.test.ts#:~:text=license%24) | 8.8.0 | -## Vis Editors +## @elastic/security-solution | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| management | | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/management/public/application.tsx#:~:text=appBasePath) | 8.8.0 | -| management | | [application.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/management/public/application.tsx#:~:text=appBasePath) | 8.8.0 | \ No newline at end of file +| securitySolution | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode)+ 7 more | 8.8.0 | +| securitySolution | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode)+ 7 more | 8.8.0 | +| securitySolution | | [query.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts#:~:text=license%24) | 8.8.0 | \ No newline at end of file diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 420428ea297a3d..1db5ed65d06556 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; -Contact [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/discover.devdocs.json b/api_docs/discover.devdocs.json index 5a808736cc9b20..676ad6ce01b701 100644 --- a/api_docs/discover.devdocs.json +++ b/api_docs/discover.devdocs.json @@ -396,7 +396,19 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; history: ", + "; fetch: (options?: ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSourceSearchOptions", + "text": "SearchSourceSearchOptions" + }, + ") => Promise<", + "SearchResponse", + ">>; history: ", "SearchRequest", "[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: >>>; fetch: (options?: ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSourceSearchOptions", - "text": "SearchSourceSearchOptions" - }, - ") => Promise<", - "SearchResponse", - ">>; onRequestStart: (handler: (searchSource: ", + ">>>>; onRequestStart: (handler: (searchSource: ", { "pluginId": "data", "scope": "common", diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 30376e7cd0b798..5c741d9fd04aec 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; This plugin contains the Discover application and the saved search embeddable. -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/discover_enhanced.devdocs.json b/api_docs/discover_enhanced.devdocs.json index 700dee2a1b0b0f..a169cd469249b8 100644 --- a/api_docs/discover_enhanced.devdocs.json +++ b/api_docs/discover_enhanced.devdocs.json @@ -760,7 +760,7 @@ "label": "uiActions", "description": [], "signature": [ - "{ readonly clear: () => void; readonly addTriggerAction: (triggerId: string, action: ", + "{ readonly addTriggerAction: (triggerId: string, action: ", { "pluginId": "uiActions", "scope": "public", @@ -818,7 +818,7 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly fork: () => ", + "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index 13ae1bf4df5ead..86926e0166907b 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/ecs_data_quality_dashboard.devdocs.json b/api_docs/ecs_data_quality_dashboard.devdocs.json new file mode 100644 index 00000000000000..bff702356c0e2c --- /dev/null +++ b/api_docs/ecs_data_quality_dashboard.devdocs.json @@ -0,0 +1,59 @@ +{ + "id": "ecsDataQualityDashboard", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [], + "setup": { + "parentPluginId": "ecsDataQualityDashboard", + "id": "def-server.EcsDataQualityDashboardPluginSetup", + "type": "Interface", + "tags": [], + "label": "EcsDataQualityDashboardPluginSetup", + "description": [ + "The plugin setup interface" + ], + "path": "x-pack/plugins/ecs_data_quality_dashboard/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "setup", + "initialIsOpen": true + }, + "start": { + "parentPluginId": "ecsDataQualityDashboard", + "id": "def-server.EcsDataQualityDashboardPluginStart", + "type": "Interface", + "tags": [], + "label": "EcsDataQualityDashboardPluginStart", + "description": [ + "The plugin start interface" + ], + "path": "x-pack/plugins/ecs_data_quality_dashboard/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "start", + "initialIsOpen": true + } + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx new file mode 100644 index 00000000000000..37c83323ecf347 --- /dev/null +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -0,0 +1,33 @@ +--- +#### +#### 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: kibEcsDataQualityDashboardPluginApi +slug: /kibana-dev-docs/api/ecsDataQualityDashboard +title: "ecsDataQualityDashboard" +image: https://source.unsplash.com/400x175/?github +description: API docs for the ecsDataQualityDashboard plugin +date: 2023-02-09 +tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] +--- +import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; + +APIs used to assess the quality of data in Elasticsearch indexes + +Contact [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 2 | 0 | 0 | 0 | + +## Server + +### Setup + + +### Start + + diff --git a/api_docs/embeddable.devdocs.json b/api_docs/embeddable.devdocs.json index e2c8a61eb683bb..864ed5798a485d 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -7910,7 +7910,7 @@ "label": "status", "description": [], "signature": [ - "\"loading\" | \"error\" | \"loaded\" | \"rendered\"" + "\"error\" | \"loading\" | \"loaded\" | \"rendered\"" ], "path": "src/plugins/embeddable/public/lib/containers/embeddable_child_panel.tsx", "deprecated": false, @@ -8030,7 +8030,7 @@ "label": "uiActions", "description": [], "signature": [ - "{ readonly clear: () => void; readonly addTriggerAction: (triggerId: string, action: ", + "{ readonly addTriggerAction: (triggerId: string, action: ", { "pluginId": "uiActions", "scope": "public", @@ -8088,7 +8088,7 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly fork: () => ", + "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", @@ -10259,7 +10259,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - ", \"type\" | \"create\" | \"isEditable\" | \"getDisplayName\"> & Partial, \"create\" | \"type\" | \"isEditable\" | \"getDisplayName\"> & Partial | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; action?: Readonly<{ name?: string | undefined; id?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" + "(Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false, @@ -1534,7 +1534,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; action?: Readonly<{ name?: string | undefined; id?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1549,7 +1549,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; action?: Readonly<{ name?: string | undefined; id?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; } & {}> | undefined" + "Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index b6a23a56b1374e..c623776fa5c9af 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; -Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 41b6022d49a8d9..3eb11e9412469d 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; Adds 'error' renderer to expressions -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_gauge.devdocs.json b/api_docs/expression_gauge.devdocs.json index df2f0f554f8a6f..c7d1cad58dfd93 100644 --- a/api_docs/expression_gauge.devdocs.json +++ b/api_docs/expression_gauge.devdocs.json @@ -702,7 +702,7 @@ "label": "ticksPosition", "description": [], "signature": [ - "\"auto\" | \"hidden\" | \"bands\"" + "\"hidden\" | \"auto\" | \"bands\"" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts", "deprecated": false, @@ -716,7 +716,7 @@ "label": "labelMajorMode", "description": [], "signature": [ - "\"none\" | \"auto\" | \"custom\"" + "\"none\" | \"custom\" | \"auto\"" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts", "deprecated": false, @@ -831,7 +831,7 @@ "label": "shape", "description": [], "signature": [ - "\"horizontalBullet\" | \"verticalBullet\" | \"arc\" | \"circle\"" + "\"arc\" | \"circle\" | \"horizontalBullet\" | \"verticalBullet\"" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts", "deprecated": false, @@ -1112,7 +1112,7 @@ "label": "GaugeLabelMajorMode", "description": [], "signature": [ - "\"none\" | \"auto\" | \"custom\"" + "\"none\" | \"custom\" | \"auto\"" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts", "deprecated": false, @@ -1175,7 +1175,7 @@ "label": "GaugeShape", "description": [], "signature": [ - "\"horizontalBullet\" | \"verticalBullet\" | \"arc\" | \"circle\"" + "\"arc\" | \"circle\" | \"horizontalBullet\" | \"verticalBullet\"" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts", "deprecated": false, @@ -1190,7 +1190,7 @@ "label": "GaugeTicksPosition", "description": [], "signature": [ - "\"auto\" | \"hidden\" | \"bands\"" + "\"hidden\" | \"auto\" | \"bands\"" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index bb707b22c75e52..ac248077b10e03 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_heatmap.devdocs.json b/api_docs/expression_heatmap.devdocs.json index 00f5b52897b507..75f69c2db43138 100644 --- a/api_docs/expression_heatmap.devdocs.json +++ b/api_docs/expression_heatmap.devdocs.json @@ -1657,7 +1657,7 @@ "label": "options", "description": [], "signature": [ - "(\"top\" | \"bottom\" | \"left\" | \"right\")[]" + "(\"right\" | \"left\" | \"top\" | \"bottom\")[]" ], "path": "src/plugins/chart_expressions/expression_heatmap/common/expression_functions/heatmap_legend.ts", "deprecated": false, diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index fdd83027426671..9624b530197181 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_image.devdocs.json b/api_docs/expression_image.devdocs.json index 0ee010f93dc47a..9d01073c26d1fe 100644 --- a/api_docs/expression_image.devdocs.json +++ b/api_docs/expression_image.devdocs.json @@ -431,7 +431,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/expression_image/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 87bee08d4ee15f..f6a0347fdf5a73 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; Adds 'image' function and renderer to expressions -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index a2510b3e44ce4c..819908cec963e7 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; Adds a `metric` renderer and function to the expression plugin. The renderer will display the `legacy metric` chart. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_metric.devdocs.json b/api_docs/expression_metric.devdocs.json index 9535030e090743..3e1815b5e41bee 100644 --- a/api_docs/expression_metric.devdocs.json +++ b/api_docs/expression_metric.devdocs.json @@ -192,7 +192,7 @@ "label": "metricFunction", "description": [], "signature": [ - "() => { name: \"metric\"; aliases: never[]; type: \"render\"; inputTypes: (\"number\" | \"null\" | \"string\")[]; help: any; args: { label: { types: \"string\"[]; aliases: string[]; help: any; default: string; }; labelFont: { types: \"style\"[]; help: any; default: string; }; metricFont: { types: \"style\"[]; help: any; default: string; }; metricFormat: { types: \"string\"[]; aliases: string[]; help: any; }; }; fn: (input: ", + "() => { name: \"metric\"; aliases: never[]; type: \"render\"; inputTypes: (\"string\" | \"number\" | \"null\")[]; help: any; args: { label: { types: \"string\"[]; aliases: string[]; help: any; default: string; }; labelFont: { types: \"style\"[]; help: any; default: string; }; metricFont: { types: \"style\"[]; help: any; default: string; }; metricFormat: { types: \"string\"[]; aliases: string[]; help: any; }; }; fn: (input: ", { "pluginId": "expressionMetric", "scope": "common", diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index 088694c8d6b316..4905340a3ec55d 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; Adds 'metric' function and renderer to expressions -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index a40ab35d7830e3..c448af489e8d90 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; Adds a `metric` renderer and function to the expression plugin. The renderer will display the `metric` chart. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 6231361a92ac06..4dba869f70612b 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; Expression Partition Visualization plugin adds a `partitionVis` renderer and `pieVis`, `mosaicVis`, `treemapVis`, `waffleVis` functions to the expression plugin. The renderer will display the `pie`, `waffle`, `treemap` and `mosaic` charts. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_repeat_image.devdocs.json b/api_docs/expression_repeat_image.devdocs.json index 22b84f29f55b83..1d7d9d10e45c7f 100644 --- a/api_docs/expression_repeat_image.devdocs.json +++ b/api_docs/expression_repeat_image.devdocs.json @@ -192,7 +192,7 @@ "label": "repeatImageFunction", "description": [], "signature": [ - "() => { name: \"repeatImage\"; aliases: never[]; type: \"render\"; inputTypes: \"number\"[]; help: any; args: { emptyImage: { types: (\"null\" | \"string\")[]; help: any; default: null; }; image: { types: (\"null\" | \"string\")[]; help: any; default: null; }; max: { types: (\"number\" | \"null\")[]; help: any; default: number; }; size: { types: \"number\"[]; default: number; help: any; }; }; fn: (count: number, args: Arguments) => Promise<{ type: \"render\"; as: string; value: { image: string | null; emptyImage: string | null; size: number; max: number | null; count: number; }; }>; }" + "() => { name: \"repeatImage\"; aliases: never[]; type: \"render\"; inputTypes: \"number\"[]; help: any; args: { emptyImage: { types: (\"string\" | \"null\")[]; help: any; default: null; }; image: { types: (\"string\" | \"null\")[]; help: any; default: null; }; max: { types: (\"number\" | \"null\")[]; help: any; default: number; }; size: { types: \"number\"[]; default: number; help: any; }; }; fn: (count: number, args: Arguments) => Promise<{ type: \"render\"; as: string; value: { image: string | null; emptyImage: string | null; size: number; max: number | null; count: number; }; }>; }" ], "path": "src/plugins/expression_repeat_image/common/expression_functions/repeat_image_function.ts", "deprecated": false, @@ -500,7 +500,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/expression_repeat_image/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 1a07abf3be48b6..2d8e2f92d5b5bc 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; Adds 'repeatImage' function and renderer to expressions -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_reveal_image.devdocs.json b/api_docs/expression_reveal_image.devdocs.json index 4d852540140502..1b1e64a2fd2109 100644 --- a/api_docs/expression_reveal_image.devdocs.json +++ b/api_docs/expression_reveal_image.devdocs.json @@ -180,7 +180,7 @@ "label": "revealImageFunction", "description": [], "signature": [ - "() => { name: \"revealImage\"; aliases: never[]; type: \"render\"; inputTypes: \"number\"[]; help: any; args: { image: { types: (\"null\" | \"string\")[]; help: any; default: null; }; emptyImage: { types: (\"null\" | \"string\")[]; help: any; default: null; }; origin: { types: \"string\"[]; help: any; default: string; options: ", + "() => { name: \"revealImage\"; aliases: never[]; type: \"render\"; inputTypes: \"number\"[]; help: any; args: { image: { types: (\"string\" | \"null\")[]; help: any; default: null; }; emptyImage: { types: (\"string\" | \"null\")[]; help: any; default: null; }; origin: { types: \"string\"[]; help: any; default: string; options: ", "Origin", "[]; }; }; fn: (percent: number, args: Arguments) => Promise<{ type: \"render\"; as: string; value: { image: string; emptyImage: string; origin: ", "Origin", diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index b83009430e2241..81a6b08712ac57 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; Adds 'revealImage' function and renderer to expressions -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_shape.devdocs.json b/api_docs/expression_shape.devdocs.json index 595aac8a67a701..cb0dd0c5e84845 100644 --- a/api_docs/expression_shape.devdocs.json +++ b/api_docs/expression_shape.devdocs.json @@ -635,7 +635,7 @@ "label": "strokeLinecap", "description": [], "signature": [ - "\"butt\" | \"round\" | \"square\" | \"inherit\" | undefined" + "\"inherit\" | \"square\" | \"butt\" | \"round\" | undefined" ], "path": "src/plugins/expression_shape/public/components/reusable/types.tsx", "deprecated": false, @@ -677,7 +677,7 @@ "label": "strokeLinejoin", "description": [], "signature": [ - "\"round\" | \"inherit\" | \"miter\" | \"bevel\" | undefined" + "\"inherit\" | \"round\" | \"miter\" | \"bevel\" | undefined" ], "path": "src/plugins/expression_shape/public/components/reusable/types.tsx", "deprecated": false, @@ -1599,7 +1599,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/expression_shape/common/types/expression_renderers.ts", "deprecated": false, @@ -2633,7 +2633,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/expression_shape/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index 13b178d2c84c62..37518c256b7d88 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; Adds 'shape' function and renderer to expressions -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index 9c99922702562b..7561c885452500 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; Expression Tagcloud plugin adds a `tagcloud` renderer and function to the expression plugin. The renderer will display the `Wordcloud` chart. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expression_x_y.devdocs.json b/api_docs/expression_x_y.devdocs.json index 67d952fd86d4f6..78e6aa08280848 100644 --- a/api_docs/expression_x_y.devdocs.json +++ b/api_docs/expression_x_y.devdocs.json @@ -402,7 +402,7 @@ "label": "mode", "description": [], "signature": [ - "\"custom\" | \"full\" | \"dataBounds\"" + "\"full\" | \"custom\" | \"dataBounds\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -561,7 +561,7 @@ "label": "seriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\"" + "\"area\" | \"line\" | \"bar\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -725,7 +725,7 @@ "label": "xScaleType", "description": [], "signature": [ - "\"linear\" | \"time\" | \"ordinal\"" + "\"time\" | \"linear\" | \"ordinal\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -875,7 +875,7 @@ "\nPosition of the legend relative to the chart" ], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -923,7 +923,7 @@ "\nHorizontal Alignment of the legend when it is set inside chart" ], "signature": [ - "\"left\" | \"right\" | undefined" + "\"right\" | \"left\" | undefined" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -2022,7 +2022,7 @@ "label": "AvailableReferenceLineIcon", "description": [], "signature": [ - "\"circle\" | \"asterisk\" | \"alert\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"tag\" | \"triangle\" | \"empty\"" + "\"alert\" | \"circle\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"empty\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"tag\" | \"triangle\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -2059,7 +2059,7 @@ "label": "AxisExtentMode", "description": [], "signature": [ - "\"custom\" | \"full\" | \"dataBounds\"" + "\"full\" | \"custom\" | \"dataBounds\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -2644,7 +2644,7 @@ "label": "FillStyle", "description": [], "signature": [ - "\"above\" | \"below\" | \"none\"" + "\"none\" | \"above\" | \"below\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -2659,7 +2659,7 @@ "label": "FittingFunction", "description": [], "signature": [ - "\"None\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\" | \"Average\"" + "\"None\" | \"Average\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -2674,7 +2674,7 @@ "label": "IconPosition", "description": [], "signature": [ - "\"above\" | \"below\" | \"auto\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"above\" | \"below\" | \"auto\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -2753,7 +2753,7 @@ "label": "LayerType", "description": [], "signature": [ - "\"data\" | \"referenceLine\" | \"annotations\"" + "\"data\" | \"annotations\" | \"referenceLine\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -3112,7 +3112,7 @@ "label": "SeriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\"" + "\"area\" | \"line\" | \"bar\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -3226,7 +3226,7 @@ "label": "XScaleType", "description": [], "signature": [ - "\"linear\" | \"time\" | \"ordinal\"" + "\"time\" | \"linear\" | \"ordinal\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -3402,7 +3402,7 @@ "label": "YScaleType", "description": [], "signature": [ - "\"linear\" | \"log\" | \"time\" | \"sqrt\"" + "\"log\" | \"time\" | \"sqrt\" | \"linear\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 37a5dc7eaf4f41..3446d219d73944 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/expressions.devdocs.json b/api_docs/expressions.devdocs.json index 187a1f46d0f848..3d3855cad3b001 100644 --- a/api_docs/expressions.devdocs.json +++ b/api_docs/expressions.devdocs.json @@ -7499,7 +7499,7 @@ "\nTracks state of execution.\n\n- `not-started` - before .start() method was called.\n- `pending` - immediately after .start() method is called.\n- `result` - when expression execution completed.\n- `error` - when execution failed with error." ], "signature": [ - "\"error\" | \"not-started\" | \"pending\" | \"result\"" + "\"error\" | \"pending\" | \"not-started\" | \"result\"" ], "path": "src/plugins/expressions/common/execution/container.ts", "deprecated": false, @@ -11911,7 +11911,7 @@ "\nThis type represents the `type` of any `DatatableColumn` in a `Datatable`.\nits duplicated from KBN_FIELD_TYPES" ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"object\" | \"date\" | \"null\" | \"ip\" | \"nested\" | \"_source\" | \"attachment\" | \"geo_point\" | \"geo_shape\" | \"murmur3\" | \"unknown\" | \"conflict\" | \"histogram\"" + "\"string\" | \"number\" | \"boolean\" | \"object\" | \"nested\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"date\" | \"murmur3\" | \"histogram\" | \"unknown\" | \"_source\" | \"attachment\" | \"conflict\" | \"null\"" ], "path": "src/plugins/expressions/common/expression_types/specs/datatable.ts", "deprecated": false, @@ -12556,7 +12556,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"size\" | \"text\" | \"y\" | \"x\"" + "\"text\" | \"color\" | \"x\" | \"y\" | \"size\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -12818,7 +12818,7 @@ "\nTypes used in Expressions that don't map to a primitive cleanly:\n\n`date` is typed as a number or string, and represents a date" ], "signature": [ - "\"date\" | \"filter\"" + "\"filter\" | \"date\"" ], "path": "src/plugins/expressions/common/types/common.ts", "deprecated": false, @@ -18892,7 +18892,7 @@ "\nTracks state of execution.\n\n- `not-started` - before .start() method was called.\n- `pending` - immediately after .start() method is called.\n- `result` - when expression execution completed.\n- `error` - when execution failed with error." ], "signature": [ - "\"error\" | \"not-started\" | \"pending\" | \"result\"" + "\"error\" | \"pending\" | \"not-started\" | \"result\"" ], "path": "src/plugins/expressions/common/execution/container.ts", "deprecated": false, @@ -21805,7 +21805,7 @@ "\nThis type represents the `type` of any `DatatableColumn` in a `Datatable`.\nits duplicated from KBN_FIELD_TYPES" ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"object\" | \"date\" | \"null\" | \"ip\" | \"nested\" | \"_source\" | \"attachment\" | \"geo_point\" | \"geo_shape\" | \"murmur3\" | \"unknown\" | \"conflict\" | \"histogram\"" + "\"string\" | \"number\" | \"boolean\" | \"object\" | \"nested\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"date\" | \"murmur3\" | \"histogram\" | \"unknown\" | \"_source\" | \"attachment\" | \"conflict\" | \"null\"" ], "path": "src/plugins/expressions/common/expression_types/specs/datatable.ts", "deprecated": false, @@ -22374,7 +22374,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"size\" | \"text\" | \"y\" | \"x\"" + "\"text\" | \"color\" | \"x\" | \"y\" | \"size\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -22605,7 +22605,7 @@ "\nTypes used in Expressions that don't map to a primitive cleanly:\n\n`date` is typed as a number or string, and represents a date" ], "signature": [ - "\"date\" | \"filter\"" + "\"filter\" | \"date\"" ], "path": "src/plugins/expressions/common/types/common.ts", "deprecated": false, @@ -30216,7 +30216,7 @@ "label": "type", "description": [], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"object\" | \"date\" | \"null\" | \"ip\" | \"nested\" | \"_source\" | \"attachment\" | \"geo_point\" | \"geo_shape\" | \"murmur3\" | \"unknown\" | \"conflict\" | \"histogram\"" + "\"string\" | \"number\" | \"boolean\" | \"object\" | \"nested\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"date\" | \"murmur3\" | \"histogram\" | \"unknown\" | \"_source\" | \"attachment\" | \"conflict\" | \"null\"" ], "path": "src/plugins/expressions/common/expression_types/specs/datatable.ts", "deprecated": false, @@ -31189,7 +31189,7 @@ "\nTracks state of execution.\n\n- `not-started` - before .start() method was called.\n- `pending` - immediately after .start() method is called.\n- `result` - when expression execution completed.\n- `error` - when execution failed with error." ], "signature": [ - "\"error\" | \"not-started\" | \"pending\" | \"result\"" + "\"error\" | \"pending\" | \"not-started\" | \"result\"" ], "path": "src/plugins/expressions/common/execution/container.ts", "deprecated": false, @@ -36498,7 +36498,7 @@ "\nThis type represents the `type` of any `DatatableColumn` in a `Datatable`.\nits duplicated from KBN_FIELD_TYPES" ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"object\" | \"date\" | \"null\" | \"ip\" | \"nested\" | \"_source\" | \"attachment\" | \"geo_point\" | \"geo_shape\" | \"murmur3\" | \"unknown\" | \"conflict\" | \"histogram\"" + "\"string\" | \"number\" | \"boolean\" | \"object\" | \"nested\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"date\" | \"murmur3\" | \"histogram\" | \"unknown\" | \"_source\" | \"attachment\" | \"conflict\" | \"null\"" ], "path": "src/plugins/expressions/common/expression_types/specs/datatable.ts", "deprecated": false, @@ -37696,7 +37696,7 @@ "label": "MathArguments", "description": [], "signature": [ - "{ expression: string; onError?: \"null\" | \"zero\" | \"false\" | \"throw\" | undefined; }" + "{ expression: string; onError?: \"false\" | \"null\" | \"zero\" | \"throw\" | undefined; }" ], "path": "src/plugins/expressions/common/expression_functions/specs/math.ts", "deprecated": false, @@ -37790,7 +37790,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"size\" | \"text\" | \"y\" | \"x\"" + "\"text\" | \"color\" | \"x\" | \"y\" | \"size\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -37922,7 +37922,7 @@ "\nMode of the expression render environment.\nThis value can be set from a consumer embedding an expression renderer and is accessible\nfrom within the active render function as part of the handlers.\nThe following modes are supported:\n* view (default): The chart is rendered in a container with the main purpose of viewing the chart (e.g. in a container like dashboard or canvas)\n* preview: The chart is rendered in very restricted space (below 100px width and height) and should only show a rough outline\n* edit: The chart is rendered within an editor and configuration elements within the chart should be displayed" ], "signature": [ - "\"edit\" | \"preview\" | \"view\"" + "\"view\" | \"edit\" | \"preview\"" ], "path": "src/plugins/expressions/common/expression_renderers/types.ts", "deprecated": false, @@ -38157,7 +38157,7 @@ "\nTypes used in Expressions that don't map to a primitive cleanly:\n\n`date` is typed as a number or string, and represents a date" ], "signature": [ - "\"date\" | \"filter\"" + "\"filter\" | \"date\"" ], "path": "src/plugins/expressions/common/types/common.ts", "deprecated": false, @@ -41577,7 +41577,7 @@ "label": "types", "description": [], "signature": [ - "(\"null\" | \"string\")[]" + "(\"string\" | \"null\")[]" ], "path": "src/plugins/expressions/common/expression_functions/specs/map_column.ts", "deprecated": false, @@ -41715,7 +41715,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"null\" | \"boolean\" | \"string\")[]" + "(\"string\" | \"boolean\" | \"number\" | \"null\")[]" ], "path": "src/plugins/expressions/common/expression_functions/specs/map_column.ts", "deprecated": false, @@ -41798,7 +41798,7 @@ "label": "types", "description": [], "signature": [ - "(\"null\" | \"string\")[]" + "(\"string\" | \"null\")[]" ], "path": "src/plugins/expressions/common/expression_functions/specs/map_column.ts", "deprecated": false, @@ -42122,7 +42122,7 @@ "label": "options", "description": [], "signature": [ - "(\"null\" | \"zero\" | \"false\" | \"throw\")[]" + "(\"false\" | \"null\" | \"zero\" | \"throw\")[]" ], "path": "src/plugins/expressions/common/expression_functions/specs/math.ts", "deprecated": false, @@ -42528,7 +42528,7 @@ "label": "types", "description": [], "signature": [ - "(\"null\" | \"string\")[]" + "(\"string\" | \"null\")[]" ], "path": "src/plugins/expressions/common/expression_functions/specs/math_column.ts", "deprecated": false, diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index 142010370c1c14..c4d9f53e67edc4 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; Adds expression runtime to Kibana -Contact [Visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/features.devdocs.json b/api_docs/features.devdocs.json index 01692bc13b431b..8c7ee2f787f07f 100644 --- a/api_docs/features.devdocs.json +++ b/api_docs/features.devdocs.json @@ -64,7 +64,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -1317,7 +1317,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -3082,7 +3082,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -3346,7 +3346,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3383,7 +3383,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3427,7 +3427,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 4552385f2f494e..18af6bcfd5efb6 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/field_formats.devdocs.json b/api_docs/field_formats.devdocs.json index 798a450ca3183c..309316f1deb28d 100644 --- a/api_docs/field_formats.devdocs.json +++ b/api_docs/field_formats.devdocs.json @@ -384,7 +384,7 @@ "section": "def-common.FieldFormatsRegistry", "text": "FieldFormatsRegistry" }, - ", \"init\" | \"register\"> & { deserialize: ", + ", \"register\" | \"init\"> & { deserialize: ", { "pluginId": "fieldFormats", "scope": "common", @@ -6172,7 +6172,15 @@ "label": "IFieldFormatsRegistry", "description": [], "signature": [ - "{ init: (getConfig: ", + "{ has: (id: string) => boolean; register: (fieldFormats: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormatInstanceType", + "text": "FieldFormatInstanceType" + }, + "[]) => void; init: (getConfig: ", { "pluginId": "fieldFormats", "scope": "common", @@ -6204,7 +6212,7 @@ "section": "def-common.FieldFormatInstanceType", "text": "FieldFormatInstanceType" }, - "[]) => void; has: (id: string) => boolean; deserialize: ", + "[]) => void; deserialize: ", { "pluginId": "fieldFormats", "scope": "common", @@ -6212,15 +6220,7 @@ "section": "def-common.FormatFactory", "text": "FormatFactory" }, - "; register: (fieldFormats: ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormatInstanceType", - "text": "FieldFormatInstanceType" - }, - "[]) => void; getDefaultConfig: (fieldType: ", + "; getDefaultConfig: (fieldType: ", { "pluginId": "@kbn/field-types", "scope": "common", diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index f410ac8a9c406c..96967ed5837ac1 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; Index pattern fields and ambiguous values formatters -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 30a7a683dead43..1bc3b915f11ee5 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. -Contact [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. +Contact [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/files.devdocs.json b/api_docs/files.devdocs.json index 9e8b6fe8793511..53059366ece6cb 100644 --- a/api_docs/files.devdocs.json +++ b/api_docs/files.devdocs.json @@ -782,7 +782,59 @@ "\nAn elasticsearch client that will be used to interact with the cluster" ], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -834,9 +886,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -1046,33 +1086,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -1154,27 +1170,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -1352,9 +1350,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -1532,9 +1554,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -1560,27 +1580,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", diff --git a/api_docs/files.mdx b/api_docs/files.mdx index cf55e802778506..6865d180028751 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; File upload, download, sharing, and serving over HTTP implementation in Kibana. -Contact [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/team:AppServicesUx) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index 8dc9a217075189..5b9603ae9399d6 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; Simple UI for managing files in Kibana -Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/@elastic/appex-sharedux) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index b50d330b5bfd77..e3730fe8734056 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -4405,7 +4405,7 @@ "\nList agents" ], "signature": [ - "(options: Readonly<{ page?: number | undefined; perPage?: number | undefined; sortField?: string | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; kuery?: any; showUpgradeable?: boolean | undefined; } & {}> & { showInactive: boolean; }) => Promise<{ agents: ", + "(options: Readonly<{ page?: number | undefined; kuery?: any; sortField?: string | undefined; perPage?: number | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; showUpgradeable?: boolean | undefined; } & {}> & { showInactive: boolean; }) => Promise<{ agents: ", { "pluginId": "fleet", "scope": "common", @@ -4427,7 +4427,7 @@ "label": "options", "description": [], "signature": [ - "Readonly<{ page?: number | undefined; perPage?: number | undefined; sortField?: string | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; kuery?: any; showUpgradeable?: boolean | undefined; } & {}> & { showInactive: boolean; }" + "Readonly<{ page?: number | undefined; kuery?: any; sortField?: string | undefined; perPage?: number | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; showUpgradeable?: boolean | undefined; } & {}> & { showInactive: boolean; }" ], "path": "x-pack/plugins/fleet/server/services/agents/agent_service.ts", "deprecated": false, @@ -4544,7 +4544,7 @@ "section": "def-common.SavedObjectsClientContract", "text": "SavedObjectsClientContract" }, - ", options: Readonly<{ page?: number | undefined; perPage?: number | undefined; sortField?: string | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; kuery?: any; showUpgradeable?: boolean | undefined; } & {}> & { withPackagePolicies?: boolean | undefined; }) => Promise<{ items: ", + ", options: Readonly<{ page?: number | undefined; kuery?: any; sortField?: string | undefined; perPage?: number | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; showUpgradeable?: boolean | undefined; } & {}> & { withPackagePolicies?: boolean | undefined; }) => Promise<{ items: ", { "pluginId": "fleet", "scope": "common", @@ -4587,7 +4587,7 @@ "label": "options", "description": [], "signature": [ - "Readonly<{ page?: number | undefined; perPage?: number | undefined; sortField?: string | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; kuery?: any; showUpgradeable?: boolean | undefined; } & {}> & { withPackagePolicies?: boolean | undefined; }" + "Readonly<{ page?: number | undefined; kuery?: any; sortField?: string | undefined; perPage?: number | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; showUpgradeable?: boolean | undefined; } & {}> & { withPackagePolicies?: boolean | undefined; }" ], "path": "x-pack/plugins/fleet/server/services/agent_policy.ts", "deprecated": false, @@ -8636,7 +8636,7 @@ "label": "ListArtifactsProps", "description": [], "signature": [ - "Pick, \"page\" | \"perPage\" | \"sortOrder\" | \"kuery\"> & { sortField?: string | undefined; }" + "Pick, \"page\" | \"kuery\" | \"perPage\" | \"sortOrder\"> & { sortField?: string | undefined; }" ], "path": "x-pack/plugins/fleet/server/services/artifacts/types.ts", "deprecated": false, @@ -8754,7 +8754,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -8806,9 +8858,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -9018,33 +9058,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -9126,27 +9142,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -9324,9 +9322,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -9504,9 +9526,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -9532,27 +9552,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -10089,7 +10089,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -10141,9 +10193,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -10353,33 +10393,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -10461,27 +10477,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -10659,9 +10657,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -10839,9 +10861,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -10867,27 +10887,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -11437,7 +11437,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -11489,9 +11541,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -11701,33 +11741,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -11809,27 +11825,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -12007,9 +12005,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -12187,9 +12209,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -12215,27 +12235,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -12782,7 +12782,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -12834,9 +12886,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -13046,33 +13086,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -13154,27 +13170,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -13352,9 +13350,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -13532,9 +13554,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -13560,27 +13580,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -14130,7 +14130,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -14182,9 +14234,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -14394,33 +14434,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -14502,27 +14518,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -14700,9 +14698,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -14880,9 +14902,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -14908,27 +14928,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -16592,7 +16592,7 @@ "label": "installType", "description": [], "signature": [ - "\"unknown\" | \"update\" | \"reinstall\" | \"reupdate\" | \"rollback\" | \"install\"" + "\"update\" | \"unknown\" | \"reinstall\" | \"reupdate\" | \"rollback\" | \"install\"" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false, @@ -17584,7 +17584,7 @@ "label": "agent", "description": [], "signature": [ - "{ monitoring: { namespace?: string | undefined; use_output?: string | undefined; enabled: boolean; metrics: boolean; logs: boolean; }; download: { sourceURI: string; }; } | undefined" + "{ monitoring: { namespace?: string | undefined; use_output?: string | undefined; enabled: boolean; metrics: boolean; logs: boolean; }; download: { sourceURI: string; }; features: Record; } | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts", "deprecated": false, @@ -18730,7 +18730,7 @@ "label": "installType", "description": [], "signature": [ - "\"unknown\" | \"update\" | \"reinstall\" | \"reupdate\" | \"rollback\" | \"install\"" + "\"update\" | \"unknown\" | \"reinstall\" | \"reupdate\" | \"rollback\" | \"install\"" ], "path": "x-pack/plugins/fleet/common/types/rest_spec/epm.ts", "deprecated": false, @@ -19167,6 +19167,20 @@ "path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.NewAgentPolicy.agent_features", + "type": "Array", + "tags": [], + "label": "agent_features", + "description": [], + "signature": [ + "{ name: string; enabled: boolean; }[] | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -20400,7 +20414,7 @@ "label": "release", "description": [], "signature": [ - "\"beta\" | \"experimental\" | \"ga\" | undefined" + "\"experimental\" | \"beta\" | \"ga\" | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/package_spec.ts", "deprecated": false, @@ -20783,7 +20797,7 @@ "label": "[RegistryDataStreamKeys.release]", "description": [], "signature": [ - "\"beta\" | \"experimental\" | \"ga\"" + "\"experimental\" | \"beta\" | \"ga\"" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false, @@ -21361,7 +21375,7 @@ "label": "[RegistryVarsEntryKeys.type]", "description": [], "signature": [ - "\"string\" | \"text\" | \"yaml\" | \"textarea\" | \"password\" | \"integer\" | \"bool\"" + "\"string\" | \"text\" | \"integer\" | \"textarea\" | \"bool\" | \"password\" | \"yaml\"" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false, @@ -21871,7 +21885,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"elasticsearch\" | \"internal\" | \"assets\" | \"readme\" | \"data_streams\">" + ", \"internal\" | \"elasticsearch\" | \"assets\" | \"readme\" | \"data_streams\">" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false, @@ -23079,7 +23093,7 @@ "label": "PackageSpecCategory", "description": [], "signature": [ - "\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"infrastructure\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\"" + "\"monitoring\" | \"security\" | \"infrastructure\" | \"cloud\" | \"custom\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"web\"" ], "path": "x-pack/plugins/fleet/common/types/models/package_spec.ts", "deprecated": false, @@ -23201,7 +23215,7 @@ "label": "RegistrySearchResult", "description": [], "signature": [ - "{ name: string; description: string; type?: \"input\" | \"integration\" | undefined; path: string; download: string; title: string; icons?: (", + "{ type?: \"input\" | \"integration\" | undefined; name: string; description: string; version: string; title: string; path: string; download: string; internal?: boolean | undefined; icons?: (", { "pluginId": "fleet", "scope": "common", @@ -23225,7 +23239,7 @@ "section": "def-common.PackageSpecCategory", "text": "PackageSpecCategory" }, - " | undefined)[] | undefined; version: string; internal?: boolean | undefined; release?: \"beta\" | \"experimental\" | \"ga\" | undefined; policy_templates?: ", + " | undefined)[] | undefined; release?: \"experimental\" | \"beta\" | \"ga\" | undefined; policy_templates?: ", { "pluginId": "fleet", "scope": "common", diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 157a2c3c8c56bb..fd5e580b7fdd60 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; -Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regarding this plugin. +Contact [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1068 | 3 | 963 | 26 | +| 1069 | 3 | 964 | 26 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index d524a8f297332a..ccc29726ef282a 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/guided_onboarding.devdocs.json b/api_docs/guided_onboarding.devdocs.json index 4e356303de1465..cd8f47f8cf2776 100644 --- a/api_docs/guided_onboarding.devdocs.json +++ b/api_docs/guided_onboarding.devdocs.json @@ -1191,7 +1191,7 @@ "label": "GuidesConfig", "description": [], "signature": [ - "{ search: ", + "{ siem: ", { "pluginId": "@kbn/guided-onboarding", "scope": "common", @@ -1207,7 +1207,23 @@ "section": "def-common.GuideConfig", "text": "GuideConfig" }, - "; siem: ", + "; appSearch: ", + { + "pluginId": "@kbn/guided-onboarding", + "scope": "common", + "docId": "kibKbnGuidedOnboardingPluginApi", + "section": "def-common.GuideConfig", + "text": "GuideConfig" + }, + "; websiteSearch: ", + { + "pluginId": "@kbn/guided-onboarding", + "scope": "common", + "docId": "kibKbnGuidedOnboardingPluginApi", + "section": "def-common.GuideConfig", + "text": "GuideConfig" + }, + "; databaseSearch: ", { "pluginId": "@kbn/guided-onboarding", "scope": "common", diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index c9bc8ee05101f7..8e49dd31bcabcc 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; Guided onboarding framework -Contact [Journey Onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) for questions regarding this plugin. +Contact [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/home.devdocs.json b/api_docs/home.devdocs.json index c3083143846944..ccda886c9fcdd4 100644 --- a/api_docs/home.devdocs.json +++ b/api_docs/home.devdocs.json @@ -1699,7 +1699,7 @@ "label": "ArtifactsSchema", "description": [], "signature": [ - "{ readonly application?: Readonly<{} & { path: string; label: string; }> | undefined; readonly exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; readonly dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }" + "{ readonly application?: Readonly<{} & { label: string; path: string; }> | undefined; readonly exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; readonly dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -1714,7 +1714,7 @@ "label": "InstructionSetSchema", "description": [], "signature": [ - "{ readonly title?: string | undefined; readonly callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; readonly statusCheck?: Readonly<{ error?: string | undefined; success?: string | undefined; text?: string | undefined; title?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; readonly instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }" + "{ readonly title?: string | undefined; readonly callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; readonly statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; readonly instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -1729,7 +1729,7 @@ "label": "InstructionsSchema", "description": [], "signature": [ - "{ readonly params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; readonly instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; success?: string | undefined; text?: string | undefined; title?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }" + "{ readonly params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; readonly instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -1752,7 +1752,7 @@ "section": "def-common.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; defaultIndex: string; dataIndices: Readonly<{ isDataStream?: boolean | undefined; } & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", + "[]; previewImagePath: string; overviewDashboard: string; defaultIndex: string; dataIndices: Readonly<{ isDataStream?: boolean | undefined; } & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", { "pluginId": "@kbn/core-saved-objects-common", "scope": "common", @@ -1799,7 +1799,7 @@ "section": "def-common.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; defaultIndex: string; dataIndices: Readonly<{ isDataStream?: boolean | undefined; } & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>" + "[]; previewImagePath: string; overviewDashboard: string; defaultIndex: string; dataIndices: Readonly<{ isDataStream?: boolean | undefined; } & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>" ], "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", "deprecated": false, @@ -1856,7 +1856,7 @@ "section": "def-server.TutorialContext", "text": "TutorialContext" }, - ") => Readonly<{ isBeta?: boolean | undefined; savedObjects?: any[] | undefined; euiIconType?: string | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; success?: string | undefined; text?: string | undefined; title?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; success?: string | undefined; text?: string | undefined; title?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjectsInstallMsg?: string | undefined; customStatusCheckName?: string | undefined; integrationBrowserCategories?: string[] | undefined; eprPackageOverlap?: string | undefined; } & { name: string; category: \"metrics\" | \"other\" | \"security\" | \"logging\"; id: string; shortDescription: string; longDescription: string; onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; success?: string | undefined; text?: string | undefined; title?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }>" + ") => Readonly<{ savedObjects?: any[] | undefined; euiIconType?: string | undefined; isBeta?: boolean | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; artifacts?: Readonly<{ application?: Readonly<{} & { label: string; path: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjectsInstallMsg?: string | undefined; customStatusCheckName?: string | undefined; integrationBrowserCategories?: string[] | undefined; eprPackageOverlap?: string | undefined; } & { id: string; name: string; category: \"security\" | \"metrics\" | \"other\" | \"logging\"; shortDescription: string; longDescription: string; onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }>" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", "deprecated": false, @@ -1894,7 +1894,7 @@ "label": "TutorialSchema", "description": [], "signature": [ - "{ readonly isBeta?: boolean | undefined; readonly savedObjects?: any[] | undefined; readonly euiIconType?: string | undefined; readonly previewImagePath?: string | undefined; readonly moduleName?: string | undefined; readonly completionTimeMinutes?: number | undefined; readonly elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; success?: string | undefined; text?: string | undefined; title?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; success?: string | undefined; text?: string | undefined; title?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; readonly savedObjectsInstallMsg?: string | undefined; readonly customStatusCheckName?: string | undefined; readonly integrationBrowserCategories?: string[] | undefined; readonly eprPackageOverlap?: string | undefined; readonly name: string; readonly category: \"metrics\" | \"other\" | \"security\" | \"logging\"; readonly id: string; readonly shortDescription: string; readonly longDescription: string; readonly onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; success?: string | undefined; text?: string | undefined; title?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }" + "{ readonly savedObjects?: any[] | undefined; readonly euiIconType?: string | undefined; readonly isBeta?: boolean | undefined; readonly previewImagePath?: string | undefined; readonly moduleName?: string | undefined; readonly completionTimeMinutes?: number | undefined; readonly elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly artifacts?: Readonly<{ application?: Readonly<{} & { label: string; path: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; readonly savedObjectsInstallMsg?: string | undefined; readonly customStatusCheckName?: string | undefined; readonly integrationBrowserCategories?: string[] | undefined; readonly eprPackageOverlap?: string | undefined; readonly id: string; readonly name: string; readonly category: \"security\" | \"metrics\" | \"other\" | \"logging\"; readonly shortDescription: string; readonly longDescription: string; readonly onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -2192,7 +2192,7 @@ "section": "def-common.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; defaultIndex: string; dataIndices: Readonly<{ isDataStream?: boolean | undefined; } & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", + "[]; previewImagePath: string; overviewDashboard: string; defaultIndex: string; dataIndices: Readonly<{ isDataStream?: boolean | undefined; } & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", { "pluginId": "@kbn/core-saved-objects-common", "scope": "common", diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 980f106773ef36..d0ca7b48dc3eee 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 4555a859bdbfe4..377c01d4f92ade 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; Image embeddable -Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/@elastic/appex-sharedux) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 76699352355d35..ed84bf34e3bd6e 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; -Contact [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/index_management.devdocs.json b/api_docs/index_management.devdocs.json index 50bacf0ad5086a..3a128d3474f8ee 100644 --- a/api_docs/index_management.devdocs.json +++ b/api_docs/index_management.devdocs.json @@ -818,7 +818,7 @@ "section": "def-common.TemplateSerialized", "text": "TemplateSerialized" }, - ", setting: \"aliases\" | \"settings\" | \"mappings\") => ", + ", setting: \"settings\" | \"mappings\" | \"aliases\") => ", { "pluginId": "indexManagement", "scope": "common", @@ -869,7 +869,7 @@ "label": "setting", "description": [], "signature": [ - "\"aliases\" | \"settings\" | \"mappings\"" + "\"settings\" | \"mappings\" | \"aliases\"" ], "path": "x-pack/plugins/index_management/common/lib/utils.ts", "deprecated": false, diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index bc2a867738f1d2..bc06e6bfcfb397 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; -Contact [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 2135c0f786100c..2f44bef831edc6 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions -Contact [Logs and Metrics UI](https://github.com/orgs/elastic/teams/logs-metrics-ui) for questions regarding this plugin. +Contact [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index 69a44b6d819186..9f657fd76e9ed8 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index e086228c90973d..3e9ae85bfeefe2 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; This plugin provides UI and APIs for the interactive setup mode. -Contact [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. +Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 6ac6b3768b9ab1..c5241f57706c1f 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,14 +8,14 @@ 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: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index bb348ec467e614..160a6f41150ca1 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; -React components for AIOps related efforts. -Contact Machine Learning UI for questions regarding this plugin. + +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index ab0875b855424c..d8391519b55ef1 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; -Static utilities for AIOps related efforts. -Contact Machine Learning UI for questions regarding this plugin. + +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index 8c4828aa8c8457..3f0e9e903929d7 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; -Alerts components and hooks -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_alerts_ui_shared.devdocs.json b/api_docs/kbn_alerts_ui_shared.devdocs.json new file mode 100644 index 00000000000000..7577f6d8519f53 --- /dev/null +++ b/api_docs/kbn_alerts_ui_shared.devdocs.json @@ -0,0 +1,119 @@ +{ + "id": "@kbn/alerts-ui-shared", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertLifecycleStatusBadge", + "type": "Function", + "tags": [], + "label": "AlertLifecycleStatusBadge", + "description": [], + "signature": [ + "React.NamedExoticComponent<", + { + "pluginId": "@kbn/alerts-ui-shared", + "scope": "common", + "docId": "kibKbnAlertsUiSharedPluginApi", + "section": "def-common.AlertLifecycleStatusBadgeProps", + "text": "AlertLifecycleStatusBadgeProps" + }, + "> & { readonly type: (props: ", + { + "pluginId": "@kbn/alerts-ui-shared", + "scope": "common", + "docId": "kibKbnAlertsUiSharedPluginApi", + "section": "def-common.AlertLifecycleStatusBadgeProps", + "text": "AlertLifecycleStatusBadgeProps" + }, + ") => JSX.Element; }" + ], + "path": "packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertLifecycleStatusBadge.$1", + "type": "Uncategorized", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "P" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertLifecycleStatusBadgeProps", + "type": "Interface", + "tags": [], + "label": "AlertLifecycleStatusBadgeProps", + "description": [], + "path": "packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertLifecycleStatusBadgeProps.alertStatus", + "type": "CompoundType", + "tags": [], + "label": "alertStatus", + "description": [], + "signature": [ + "\"recovered\" | \"active\"" + ], + "path": "packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertLifecycleStatusBadgeProps.flapping", + "type": "CompoundType", + "tags": [], + "label": "flapping", + "description": [], + "signature": [ + "string | boolean | undefined" + ], + "path": "packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx new file mode 100644 index 00000000000000..8b199d3aaa8c4d --- /dev/null +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -0,0 +1,33 @@ +--- +#### +#### 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: kibKbnAlertsUiSharedPluginApi +slug: /kibana-dev-docs/api/kbn-alerts-ui-shared +title: "@kbn/alerts-ui-shared" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/alerts-ui-shared plugin +date: 2023-02-09 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] +--- +import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; + + + +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 5 | 0 | 4 | 0 | + +## Common + +### Functions + + +### Interfaces + + diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index fe8eb6c543158b..bbb632cd9319ba 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; -Kibana Analytics tool -Contact Kibana Core for questions regarding this plugin. + +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_analytics_client.devdocs.json b/api_docs/kbn_analytics_client.devdocs.json index 47bd94ed1644f4..0a76e063abadcb 100644 --- a/api_docs/kbn_analytics_client.devdocs.json +++ b/api_docs/kbn_analytics_client.devdocs.json @@ -2356,7 +2356,7 @@ "Types matching number values" ], "signature": [ - "\"date\" | \"long\" | \"double\" | \"short\" | \"byte\" | \"float\" | \"integer\"" + "\"date\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"double\"" ], "path": "packages/analytics/client/src/schema/types.ts", "deprecated": false, @@ -2373,7 +2373,7 @@ "Types matching string values" ], "signature": [ - "\"date\" | \"keyword\" | \"text\"" + "\"keyword\" | \"text\" | \"date\"" ], "path": "packages/analytics/client/src/schema/types.ts", "deprecated": false, @@ -2390,7 +2390,7 @@ "\nPossible type values in the schema" ], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"text\" | \"long\" | \"double\" | \"short\" | \"byte\" | \"float\" | \"integer\"" + "\"boolean\" | \"keyword\" | \"text\" | \"date\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"double\"" ], "path": "packages/analytics/client/src/schema/types.ts", "deprecated": false, diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index d2c65b50642286..ae3b94567492ef 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index 246b9b080f3dca..d7fbdacbcf2275 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index e6fb7e0fca19fe..b2ded279c40697 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index bcc88432ba1539..7562ee8a0a1209 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index 6a934db0d020b2..34a959b95d4009 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_analytics_shippers_gainsight.devdocs.json b/api_docs/kbn_analytics_shippers_gainsight.devdocs.json index a1ffcc4c59204a..b9be131348a0af 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.devdocs.json +++ b/api_docs/kbn_analytics_shippers_gainsight.devdocs.json @@ -1,26 +1,10 @@ { "id": "@kbn/analytics-shippers-gainsight", "client": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "server": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "common": { "classes": [ { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper", + "id": "def-public.GainsightShipper", "type": "Class", "tags": [], "label": "GainsightShipper", @@ -30,9 +14,9 @@ "signature": [ { "pluginId": "@kbn/analytics-shippers-gainsight", - "scope": "common", + "scope": "public", "docId": "kibKbnAnalyticsShippersGainsightPluginApi", - "section": "def-common.GainsightShipper", + "section": "def-public.GainsightShipper", "text": "GainsightShipper" }, " implements ", @@ -50,7 +34,7 @@ "children": [ { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.shipperName", + "id": "def-public.GainsightShipper.shipperName", "type": "string", "tags": [], "label": "shipperName", @@ -63,7 +47,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.Unnamed", + "id": "def-public.GainsightShipper.Unnamed", "type": "Function", "tags": [], "label": "Constructor", @@ -79,7 +63,7 @@ "children": [ { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.Unnamed.$1", + "id": "def-public.GainsightShipper.Unnamed.$1", "type": "Object", "tags": [], "label": "config", @@ -89,9 +73,9 @@ "signature": [ { "pluginId": "@kbn/analytics-shippers-gainsight", - "scope": "common", + "scope": "public", "docId": "kibKbnAnalyticsShippersGainsightPluginApi", - "section": "def-common.GainsightSnippetConfig", + "section": "def-public.GainsightSnippetConfig", "text": "GainsightSnippetConfig" } ], @@ -102,7 +86,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.Unnamed.$2", + "id": "def-public.GainsightShipper.Unnamed.$2", "type": "Object", "tags": [], "label": "initContext", @@ -128,7 +112,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.extendContext", + "id": "def-public.GainsightShipper.extendContext", "type": "Function", "tags": [], "label": "extendContext", @@ -152,7 +136,7 @@ "children": [ { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.extendContext.$1", + "id": "def-public.GainsightShipper.extendContext.$1", "type": "Object", "tags": [], "label": "newContext", @@ -178,7 +162,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.optIn", + "id": "def-public.GainsightShipper.optIn", "type": "Function", "tags": [], "label": "optIn", @@ -194,7 +178,7 @@ "children": [ { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.optIn.$1", + "id": "def-public.GainsightShipper.optIn.$1", "type": "boolean", "tags": [], "label": "isOptedIn", @@ -214,7 +198,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.reportEvents", + "id": "def-public.GainsightShipper.reportEvents", "type": "Function", "tags": [], "label": "reportEvents", @@ -238,7 +222,7 @@ "children": [ { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.reportEvents.$1", + "id": "def-public.GainsightShipper.reportEvents.$1", "type": "Array", "tags": [], "label": "events", @@ -265,7 +249,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.flush", + "id": "def-public.GainsightShipper.flush", "type": "Function", "tags": [], "label": "flush", @@ -283,7 +267,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightShipper.shutdown", + "id": "def-public.GainsightShipper.shutdown", "type": "Function", "tags": [], "label": "shutdown", @@ -307,7 +291,7 @@ "interfaces": [ { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightSnippetConfig", + "id": "def-public.GainsightSnippetConfig", "type": "Interface", "tags": [], "label": "GainsightSnippetConfig", @@ -320,7 +304,7 @@ "children": [ { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightSnippetConfig.gainsightOrgId", + "id": "def-public.GainsightSnippetConfig.gainsightOrgId", "type": "string", "tags": [], "label": "gainsightOrgId", @@ -333,7 +317,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightSnippetConfig.scriptUrl", + "id": "def-public.GainsightSnippetConfig.scriptUrl", "type": "string", "tags": [], "label": "scriptUrl", @@ -349,7 +333,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightSnippetConfig.cssFileEndpoint", + "id": "def-public.GainsightSnippetConfig.cssFileEndpoint", "type": "string", "tags": [], "label": "cssFileEndpoint", @@ -363,7 +347,7 @@ }, { "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-common.GainsightSnippetConfig.widgetFileEndpoint", + "id": "def-public.GainsightSnippetConfig.widgetFileEndpoint", "type": "string", "tags": [], "label": "widgetFileEndpoint", @@ -382,5 +366,21 @@ "enums": [], "misc": [], "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] } } \ No newline at end of file diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index 855a2fa53354ca..e8cee297e69346 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] --- import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** @@ -23,11 +23,11 @@ Contact Kibana Core for questions regarding this plugin. |-------------------|-----------|------------------------|-----------------| | 18 | 0 | 2 | 0 | -## Common +## Client ### Classes - + ### Interfaces - + diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 6aa8a4c5a23155..61a6ef53f7377d 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_apm_synthtrace.devdocs.json b/api_docs/kbn_apm_synthtrace.devdocs.json index 8ac8e3da77113d..f67d17edfab9ec 100644 --- a/api_docs/kbn_apm_synthtrace.devdocs.json +++ b/api_docs/kbn_apm_synthtrace.devdocs.json @@ -9,18 +9,10 @@ "objects": [] }, "server": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "common": { "classes": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient", + "id": "def-server.ApmSynthtraceEsClient", "type": "Class", "tags": [], "label": "ApmSynthtraceEsClient", @@ -31,7 +23,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.Unnamed", + "id": "def-server.ApmSynthtraceEsClient.Unnamed", "type": "Function", "tags": [], "label": "Constructor", @@ -45,7 +37,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.Unnamed.$1", + "id": "def-server.ApmSynthtraceEsClient.Unnamed.$1", "type": "CompoundType", "tags": [], "label": "options", @@ -68,7 +60,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.clean", + "id": "def-server.ApmSynthtraceEsClient.clean", "type": "Function", "tags": [], "label": "clean", @@ -84,7 +76,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.updateComponentTemplate", + "id": "def-server.ApmSynthtraceEsClient.updateComponentTemplate", "type": "Function", "tags": [], "label": "updateComponentTemplate", @@ -104,7 +96,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.updateComponentTemplate.$1", + "id": "def-server.ApmSynthtraceEsClient.updateComponentTemplate.$1", "type": "Enum", "tags": [], "label": "name", @@ -119,7 +111,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.updateComponentTemplate.$2", + "id": "def-server.ApmSynthtraceEsClient.updateComponentTemplate.$2", "type": "Function", "tags": [], "label": "modify", @@ -140,7 +132,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.refresh", + "id": "def-server.ApmSynthtraceEsClient.refresh", "type": "Function", "tags": [], "label": "refresh", @@ -156,7 +148,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.refresh.$1", + "id": "def-server.ApmSynthtraceEsClient.refresh.$1", "type": "Array", "tags": [], "label": "dataStreams", @@ -174,7 +166,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.getDefaultPipeline", + "id": "def-server.ApmSynthtraceEsClient.getDefaultPipeline", "type": "Function", "tags": [], "label": "getDefaultPipeline", @@ -190,7 +182,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.getDefaultPipeline.$1", + "id": "def-server.ApmSynthtraceEsClient.getDefaultPipeline.$1", "type": "boolean", "tags": [], "label": "includeSerialization", @@ -208,7 +200,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.pipeline", + "id": "def-server.ApmSynthtraceEsClient.pipeline", "type": "Function", "tags": [], "label": "pipeline", @@ -224,7 +216,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.pipeline.$1", + "id": "def-server.ApmSynthtraceEsClient.pipeline.$1", "type": "Function", "tags": [], "label": "cb", @@ -244,7 +236,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.getVersion", + "id": "def-server.ApmSynthtraceEsClient.getVersion", "type": "Function", "tags": [], "label": "getVersion", @@ -260,7 +252,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.index", + "id": "def-server.ApmSynthtraceEsClient.index", "type": "Function", "tags": [], "label": "index", @@ -292,7 +284,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceEsClient.index.$1", + "id": "def-server.ApmSynthtraceEsClient.index.$1", "type": "CompoundType", "tags": [], "label": "streamOrGenerator", @@ -331,7 +323,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceKibanaClient", + "id": "def-server.ApmSynthtraceKibanaClient", "type": "Class", "tags": [], "label": "ApmSynthtraceKibanaClient", @@ -342,7 +334,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceKibanaClient.Unnamed", + "id": "def-server.ApmSynthtraceKibanaClient.Unnamed", "type": "Function", "tags": [], "label": "Constructor", @@ -356,7 +348,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceKibanaClient.Unnamed.$1", + "id": "def-server.ApmSynthtraceKibanaClient.Unnamed.$1", "type": "Object", "tags": [], "label": "options", @@ -367,7 +359,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceKibanaClient.Unnamed.$1.logger", + "id": "def-server.ApmSynthtraceKibanaClient.Unnamed.$1.logger", "type": "Object", "tags": [], "label": "logger", @@ -381,7 +373,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceKibanaClient.Unnamed.$1.target", + "id": "def-server.ApmSynthtraceKibanaClient.Unnamed.$1.target", "type": "string", "tags": [], "label": "target", @@ -397,7 +389,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceKibanaClient.fetchLatestApmPackageVersion", + "id": "def-server.ApmSynthtraceKibanaClient.fetchLatestApmPackageVersion", "type": "Function", "tags": [], "label": "fetchLatestApmPackageVersion", @@ -413,7 +405,7 @@ }, { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceKibanaClient.installApmPackage", + "id": "def-server.ApmSynthtraceKibanaClient.installApmPackage", "type": "Function", "tags": [], "label": "installApmPackage", @@ -427,7 +419,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.ApmSynthtraceKibanaClient.installApmPackage.$1", + "id": "def-server.ApmSynthtraceKibanaClient.installApmPackage.$1", "type": "string", "tags": [], "label": "packageVersion", @@ -450,7 +442,7 @@ "functions": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.createLogger", + "id": "def-server.createLogger", "type": "Function", "tags": [], "label": "createLogger", @@ -459,9 +451,9 @@ "(logLevel: ", { "pluginId": "@kbn/apm-synthtrace", - "scope": "common", + "scope": "server", "docId": "kibKbnApmSynthtracePluginApi", - "section": "def-common.LogLevel", + "section": "def-server.LogLevel", "text": "LogLevel" }, ") => ", @@ -473,7 +465,7 @@ "children": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.createLogger.$1", + "id": "def-server.createLogger.$1", "type": "Enum", "tags": [], "label": "logLevel", @@ -481,9 +473,9 @@ "signature": [ { "pluginId": "@kbn/apm-synthtrace", - "scope": "common", + "scope": "server", "docId": "kibKbnApmSynthtracePluginApi", - "section": "def-common.LogLevel", + "section": "def-server.LogLevel", "text": "LogLevel" } ], @@ -501,7 +493,7 @@ "enums": [ { "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-common.LogLevel", + "id": "def-server.LogLevel", "type": "Enum", "tags": [], "label": "LogLevel", @@ -514,5 +506,13 @@ ], "misc": [], "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] } } \ No newline at end of file diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 84ad6439c18613..bfc8c34f831606 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; -Elastic APM trace data generator -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. **Code health stats** @@ -23,14 +23,14 @@ Contact [Owner missing] for questions regarding this plugin. |-------------------|-----------|------------------------|-----------------| | 27 | 0 | 27 | 3 | -## Common +## Server ### Functions - + ### Classes - + ### Enums - + diff --git a/api_docs/kbn_apm_synthtrace_client.devdocs.json b/api_docs/kbn_apm_synthtrace_client.devdocs.json index 7c272f970dbc0c..73dc27fa40f914 100644 --- a/api_docs/kbn_apm_synthtrace_client.devdocs.json +++ b/api_docs/kbn_apm_synthtrace_client.devdocs.json @@ -1892,7 +1892,7 @@ "label": "timerange", "description": [], "signature": [ - "(from: number | Date, to: number | Date) => ", + "(from: number | Date | moment.Moment, to: number | Date | moment.Moment) => ", { "pluginId": "@kbn/apm-synthtrace-client", "scope": "common", @@ -1913,7 +1913,7 @@ "label": "from", "description": [], "signature": [ - "number | Date" + "number | Date | moment.Moment" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/timerange.ts", "deprecated": false, @@ -1928,7 +1928,7 @@ "label": "to", "description": [], "signature": [ - "number | Date" + "number | Date | moment.Moment" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/timerange.ts", "deprecated": false, @@ -2232,7 +2232,7 @@ "label": "osType", "description": [], "signature": [ - "\"android\" | \"ios\"" + "\"ios\" | \"android\"" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/apm/mobile_device.ts", "deprecated": false, @@ -2318,7 +2318,7 @@ "GeoLocation", "; 'client.geo.region_iso_code': string; 'client.geo.region_name': string; 'client.ip': string; 'cloud.account.id': string; 'cloud.account.name': string; 'cloud.availability_zone': string; 'cloud.machine.type': string; 'cloud.project.id': string; 'cloud.project.name': string; 'cloud.provider': string; 'cloud.region': string; 'cloud.service.name': string; 'container.id': string; 'destination.address': string; 'destination.port': number; 'device.id': string; 'device.manufacturer': string; 'device.model.identifier': string; 'device.model.name': string; 'ecs.version': string; 'error.exception': ", "ApmException", - "[]; 'error.grouping_key': string; 'error.grouping_name': string; 'error.id': string; 'event.ingested': number; 'event.name': string; 'event.outcome': string; 'event.outcome_numeric': number | { sum: number; value_count: number; }; 'faas.coldstart': boolean; 'faas.execution': string; 'faas.id': string; 'faas.name': string; 'faas.trigger.type': string; 'faas.version': string; 'host.architecture': string; 'host.hostname': string; 'host.name': string; 'host.os.full': string; 'host.os.name': string; 'host.os.platform': string; 'host.os.type': string; 'host.os.version': string; 'http.request.method': string; 'http.response.status_code': number; 'kubernetes.pod.name': string; 'kubernetes.pod.uid': string; 'metricset.name': string; 'network.carrier.icc': string; 'network.carrier.mcc': string; 'network.carrier.mnc': string; 'network.carrier.name': string; 'network.connection.subtype': string; 'network.connection.type': string; 'observer.type': string; 'observer.version_major': number; 'observer.version': string; 'parent.id': string; 'processor.event': string; 'processor.name': string; 'session.id': string; 'trace.id': string; 'transaction.aggregation.overflow_count': number; 'transaction.duration.us': number; 'transaction.id': string; 'transaction.name': string; 'transaction.type': string; 'transaction.duration.histogram': { values: number[]; counts: number[]; }; 'service.environment': string; 'service.framework.name': string; 'service.framework.version': string; 'service.language.name': string; 'service.language.version': string; 'service.name': string; 'service.node.name': string; 'service.runtime.name': string; 'service.runtime.version': string; 'service.target.name': string; 'service.target.type': string; 'service.version': string; 'span.action': string; 'span.destination.service.resource': string; 'span.destination.service.response_time.count': number; 'span.destination.service.response_time.sum.us': number; 'span.duration.us': number; 'span.id': string; 'span.name': string; 'span.self_time.count': number; 'span.self_time.sum.us': number; 'span.subtype': string; 'span.type': string; 'transaction.result': string; 'transaction.sampled': true; 'span.links': { trace: { id: string; }; span: { id: string; }; }[]; 'url.original': string; }> & Partial<{ 'system.process.memory.size': number; 'system.memory.actual.free': number; 'system.memory.total': number; 'system.cpu.total.norm.pct': number; 'system.process.memory.rss.bytes': number; 'system.process.cpu.total.norm.pct': number; 'jvm.memory.heap.used': number; 'jvm.memory.non_heap.used': number; 'jvm.thread.count': number; 'faas.billed_duration': number; 'faas.timeout': number; 'faas.coldstart_duration': number; 'faas.duration': number; }> & Partial<{ 'metricset.interval': string; 'transaction.duration.summary': string; }>" + "[]; 'error.grouping_key': string; 'error.grouping_name': string; 'error.id': string; 'event.ingested': number; 'event.name': string; 'event.outcome': string; 'event.outcome_numeric': number | { sum: number; value_count: number; }; 'faas.coldstart': boolean; 'faas.execution': string; 'faas.id': string; 'faas.name': string; 'faas.trigger.type': string; 'faas.version': string; 'host.architecture': string; 'host.hostname': string; 'host.name': string; 'host.os.full': string; 'host.os.name': string; 'host.os.platform': string; 'host.os.type': string; 'host.os.version': string; 'http.request.method': string; 'http.response.status_code': number; 'kubernetes.pod.name': string; 'kubernetes.pod.uid': string; 'labels.name': string; 'metricset.name': string; 'network.carrier.icc': string; 'network.carrier.mcc': string; 'network.carrier.mnc': string; 'network.carrier.name': string; 'network.connection.subtype': string; 'network.connection.type': string; 'observer.type': string; 'observer.version_major': number; 'observer.version': string; 'parent.id': string; 'processor.event': string; 'processor.name': string; 'session.id': string; 'trace.id': string; 'transaction.aggregation.overflow_count': number; 'transaction.duration.us': number; 'transaction.id': string; 'transaction.name': string; 'transaction.type': string; 'transaction.duration.histogram': { values: number[]; counts: number[]; }; 'service.environment': string; 'service.framework.name': string; 'service.framework.version': string; 'service.language.name': string; 'service.language.version': string; 'service.name': string; 'service.node.name': string; 'service.runtime.name': string; 'service.runtime.version': string; 'service.target.name': string; 'service.target.type': string; 'service.version': string; 'span.action': string; 'span.destination.service.resource': string; 'span.destination.service.response_time.count': number; 'span.destination.service.response_time.sum.us': number; 'span.duration.us': number; 'span.id': string; 'span.name': string; 'span.self_time.count': number; 'span.self_time.sum.us': number; 'span.subtype': string; 'span.type': string; 'transaction.result': string; 'transaction.sampled': true; 'span.links': { trace: { id: string; }; span: { id: string; }; }[]; 'url.original': string; }> & Partial<{ 'system.process.memory.size': number; 'system.memory.actual.free': number; 'system.memory.total': number; 'system.cpu.total.norm.pct': number; 'system.process.memory.rss.bytes': number; 'system.process.cpu.total.norm.pct': number; 'jvm.memory.heap.used': number; 'jvm.memory.non_heap.used': number; 'jvm.thread.count': number; 'faas.billed_duration': number; 'faas.timeout': number; 'faas.coldstart_duration': number; 'faas.duration': number; }> & Partial<{ 'metricset.interval': string; 'transaction.duration.summary': string; }>" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/apm/apm_fields.ts", "deprecated": false, diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 8847127b1167ba..a91a3806d43eb2 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; -Elastic APM trace data generator -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index bb6290785972f5..c3418cdc2f4388 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index f13d82c7e5b07e..d3c08a5b2b8aaa 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-qa](https://github.com/orgs/elastic/teams/kibana-qa) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index 14b56b40d9ae41..eedcf063d05899 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_cell_actions.devdocs.json b/api_docs/kbn_cell_actions.devdocs.json index c6df4678bfb02a..437a5ab691653c 100644 --- a/api_docs/kbn_cell_actions.devdocs.json +++ b/api_docs/kbn_cell_actions.devdocs.json @@ -263,7 +263,7 @@ "\nThe object containing the field name and type, needed for the compatibility check" ], "signature": [ - "{ name: string; type: string; }" + "{ type: string; name: string; }" ], "path": "packages/kbn-cell-actions/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index db4126ba2899bd..5631e1f3546c97 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; -Uniform components for displaying UI actions in data cells -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_chart_expressions_common.devdocs.json b/api_docs/kbn_chart_expressions_common.devdocs.json new file mode 100644 index 00000000000000..28f0f297c20f90 --- /dev/null +++ b/api_docs/kbn_chart_expressions_common.devdocs.json @@ -0,0 +1,124 @@ +{ + "id": "@kbn/chart-expressions-common", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.extractContainerType", + "type": "Function", + "tags": [], + "label": "extractContainerType", + "description": [], + "signature": [ + "(context?: ", + { + "pluginId": "@kbn/core-execution-context-common", + "scope": "common", + "docId": "kibKbnCoreExecutionContextCommonPluginApi", + "section": "def-common.KibanaExecutionContext", + "text": "KibanaExecutionContext" + }, + " | undefined) => string | undefined" + ], + "path": "src/plugins/chart_expressions/common/utils.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.extractContainerType.$1", + "type": "Object", + "tags": [], + "label": "context", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-execution-context-common", + "scope": "common", + "docId": "kibKbnCoreExecutionContextCommonPluginApi", + "section": "def-common.KibanaExecutionContext", + "text": "KibanaExecutionContext" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/common/utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.extractVisualizationType", + "type": "Function", + "tags": [], + "label": "extractVisualizationType", + "description": [], + "signature": [ + "(context?: ", + { + "pluginId": "@kbn/core-execution-context-common", + "scope": "common", + "docId": "kibKbnCoreExecutionContextCommonPluginApi", + "section": "def-common.KibanaExecutionContext", + "text": "KibanaExecutionContext" + }, + " | undefined) => string | undefined" + ], + "path": "src/plugins/chart_expressions/common/utils.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.extractVisualizationType.$1", + "type": "Object", + "tags": [], + "label": "context", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-execution-context-common", + "scope": "common", + "docId": "kibKbnCoreExecutionContextCommonPluginApi", + "section": "def-common.KibanaExecutionContext", + "text": "KibanaExecutionContext" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/common/utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx new file mode 100644 index 00000000000000..bf53db69ed4f07 --- /dev/null +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -0,0 +1,30 @@ +--- +#### +#### 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: kibKbnChartExpressionsCommonPluginApi +slug: /kibana-dev-docs/api/kbn-chart-expressions-common +title: "@kbn/chart-expressions-common" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/chart-expressions-common plugin +date: 2023-02-09 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] +--- +import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; + + + +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 4 | 0 | 4 | 0 | + +## Common + +### Functions + + diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 2cce790c01661b..a151c02cc8f533 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index 7e699ce2cac7dc..006dbc4226d45d 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 0ff104b780fdc8..e1fbb08aae34fc 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index 4af115eb421f6b..ab31ba40a75ca6 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 78480922f30372..ce89d339d87eaf 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 0bc34f4809da1b..b50f154c020d24 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_code_editor_mocks.devdocs.json b/api_docs/kbn_code_editor_mocks.devdocs.json index 1c39d497c16d1d..18ea0f97a7fc75 100644 --- a/api_docs/kbn_code_editor_mocks.devdocs.json +++ b/api_docs/kbn_code_editor_mocks.devdocs.json @@ -534,7 +534,7 @@ "label": "Params", "description": [], "signature": [ - "{ value: any; placeholder: any; \"aria-label\": any; allowFullScreen: any; languageId: any; useDarkTheme: any; transparentBackground: any; }" + "{ value: any; \"aria-label\": any; placeholder: any; allowFullScreen: any; languageId: any; useDarkTheme: any; transparentBackground: any; }" ], "path": "packages/shared-ux/code_editor/mocks/storybook.ts", "deprecated": false, diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 602e670cc15eaf..6d4c9e940f5210 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_coloring.devdocs.json b/api_docs/kbn_coloring.devdocs.json index bfddcf39dfed92..cc22fde27959f4 100644 --- a/api_docs/kbn_coloring.devdocs.json +++ b/api_docs/kbn_coloring.devdocs.json @@ -1553,7 +1553,7 @@ "label": "type", "description": [], "signature": [ - "\"palette\" | \"system_palette\"" + "\"system_palette\" | \"palette\"" ], "path": "packages/kbn-coloring/src/palettes/types.ts", "deprecated": false, @@ -1851,7 +1851,7 @@ "label": "PaletteContinuity", "description": [], "signature": [ - "\"above\" | \"below\" | \"none\" | \"all\"" + "\"none\" | \"all\" | \"above\" | \"below\"" ], "path": "packages/kbn-coloring/src/palettes/types.ts", "deprecated": false, @@ -1866,7 +1866,7 @@ "label": "RequiredPaletteParamTypes", "description": [], "signature": [ - "{ name: string; rangeMin: number; reverse: boolean; rangeType: \"number\" | \"percent\"; continuity: ", + "{ reverse: boolean; name: string; rangeMin: number; rangeType: \"number\" | \"percent\"; continuity: ", { "pluginId": "@kbn/coloring", "scope": "common", diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 500b6ad46b3949..b025e981b9d060 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index a70d935fce647e..7107b4df60c492 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index ebadcf98e00e99..73d7e9d8f66562 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 2418ec0f71a72d..6ff4154a7eea23 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 7b3f9b3c47d840..86a6b6261406d5 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 0c5fe9a6129760..7fa19f018859a1 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list'] --- import kbnContentManagementTableListObj from './kbn_content_management_table_list.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index e78eb0265921e1..06fcf260682b85 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index 9021655914f513..2538c44be6f2c5 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index 66c1ed181590e1..6d661dd9f86d48 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 69fecba05998c9..c9dc54bc78c7e3 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index 1fc79239543841..2188c1b2e0c55e 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index a355e7e58dea26..f21396d3a1bbf0 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_application_browser.devdocs.json b/api_docs/kbn_core_application_browser.devdocs.json index 7804ba2910977a..cb8d6d567771d3 100644 --- a/api_docs/kbn_core_application_browser.devdocs.json +++ b/api_docs/kbn_core_application_browser.devdocs.json @@ -1191,7 +1191,7 @@ "path": "src/plugins/kibana_overview/public/application.tsx" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/mocks.ts" } ] @@ -2014,23 +2014,23 @@ "section": "def-common.AppStatus", "text": "AppStatus" }, - " | undefined; tooltip?: string | undefined; searchable?: boolean | undefined; deepLinks?: ", + " | undefined; tooltip?: string | undefined; navLinkStatus?: ", { "pluginId": "@kbn/core-application-browser", "scope": "common", "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppDeepLink", - "text": "AppDeepLink" + "section": "def-common.AppNavLinkStatus", + "text": "AppNavLinkStatus" }, - "[] | undefined; navLinkStatus?: ", + " | undefined; searchable?: boolean | undefined; deepLinks?: ", { "pluginId": "@kbn/core-application-browser", "scope": "common", "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppNavLinkStatus", - "text": "AppNavLinkStatus" + "section": "def-common.AppDeepLink", + "text": "AppDeepLink" }, - " | undefined; defaultPath?: string | undefined; }" + "[] | undefined; defaultPath?: string | undefined; }" ], "path": "packages/core/application/core-application-browser/src/application.ts", "deprecated": false, @@ -2112,7 +2112,7 @@ "section": "def-common.AppDeepLink", "text": "AppDeepLink" }, - ", \"searchable\" | \"keywords\" | \"deepLinks\" | \"navLinkStatus\"> & { deepLinks: ", + ", \"keywords\" | \"navLinkStatus\" | \"searchable\" | \"deepLinks\"> & { deepLinks: ", { "pluginId": "@kbn/core-application-browser", "scope": "common", @@ -2153,7 +2153,7 @@ "section": "def-common.App", "text": "App" }, - ", \"searchable\" | \"mount\" | \"updater$\" | \"keywords\" | \"deepLinks\"> & { status: ", + ", \"keywords\" | \"searchable\" | \"deepLinks\" | \"mount\" | \"updater$\"> & { status: ", { "pluginId": "@kbn/core-application-browser", "scope": "common", diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index 5e621b77b855f6..2f63adf19265a9 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index a81107897ac100..7c6ac5c8a0cb02 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index eec7e523f70526..ff0cbb7d255e0b 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index 15e8f690c56cb4..360c7c903aeb6d 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index 515c211550f5af..aa981fb786ecd6 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index c151c8568edca4..1f0d7bcef399d6 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index 3aa6e612039025..12d84443ca2913 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 048314a4aa99da..27e60987112cd5 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 841841559df445..9ffe894ec230cd 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index 37e3f1feba5417..95b9e142ba8558 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index 0f36ccf0e33a3d..5e623b14ac9d1e 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index cc0497e5ab4a0f..8ee0f28ccf8494 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 8994a768b8d4e3..7d6c00d91ecae0 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 10528940f60ecc..44b0244ef8f272 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_capabilities_server_mocks.devdocs.json b/api_docs/kbn_core_capabilities_server_mocks.devdocs.json index 67c9f022b8b4c0..f3677b722c7c09 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.devdocs.json +++ b/api_docs/kbn_core_capabilities_server_mocks.devdocs.json @@ -30,21 +30,21 @@ "label": "CapabilitiesServiceContract", "description": [], "signature": [ - "{ setup: (setupDeps: SetupDeps) => ", + "{ start: () => ", { "pluginId": "@kbn/core-capabilities-server", "scope": "common", "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.CapabilitiesSetup", - "text": "CapabilitiesSetup" + "section": "def-common.CapabilitiesStart", + "text": "CapabilitiesStart" }, - "; start: () => ", + "; setup: (setupDeps: SetupDeps) => ", { "pluginId": "@kbn/core-capabilities-server", "scope": "common", "docId": "kibKbnCoreCapabilitiesServerPluginApi", - "section": "def-common.CapabilitiesStart", - "text": "CapabilitiesStart" + "section": "def-common.CapabilitiesSetup", + "text": "CapabilitiesSetup" }, "; preboot: (prebootDeps: PrebootSetupDeps) => void; }" ], diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 14a2c149dfe1a3..b2213e79d57f02 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_chrome_browser.devdocs.json b/api_docs/kbn_core_chrome_browser.devdocs.json index f5c7db656e790e..bd758f63eaa30e 100644 --- a/api_docs/kbn_core_chrome_browser.devdocs.json +++ b/api_docs/kbn_core_chrome_browser.devdocs.json @@ -2306,7 +2306,7 @@ "signature": [ "Omit, \"color\" | \"aria-current\"> & ", "CommonProps", - " & { href?: string | undefined; rel?: string | undefined; onClick?: React.MouseEventHandler | undefined; text: React.ReactNode; truncate?: boolean | undefined; color?: \"warning\" | \"subdued\" | \"primary\" | \"accent\" | \"success\" | \"danger\" | \"text\" | \"ghost\" | undefined; 'aria-current'?: boolean | \"date\" | \"location\" | \"time\" | \"page\" | \"false\" | \"true\" | \"step\" | undefined; }" + " & { href?: string | undefined; rel?: string | undefined; onClick?: React.MouseEventHandler | undefined; text: React.ReactNode; truncate?: boolean | undefined; color?: \"text\" | \"warning\" | \"success\" | \"subdued\" | \"primary\" | \"accent\" | \"danger\" | \"ghost\" | undefined; 'aria-current'?: boolean | \"page\" | \"date\" | \"time\" | \"true\" | \"false\" | \"step\" | \"location\" | undefined; }" ], "path": "packages/core/chrome/core-chrome-browser/src/breadcrumb.ts", "deprecated": false, @@ -2321,9 +2321,9 @@ "label": "ChromeHelpExtensionLinkBase", "description": [], "signature": [ - "{ iconType?: ", + "{ 'data-test-subj'?: string | undefined; iconType?: ", "IconType", - " | undefined; 'data-test-subj'?: string | undefined; rel?: string | undefined; target?: string | (string & {}) | undefined; }" + " | undefined; rel?: string | undefined; target?: string | (string & {}) | undefined; }" ], "path": "packages/core/chrome/core-chrome-browser/src/help_extension.ts", "deprecated": false, diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index bee89da0df614e..327a4b26f56a0a 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index b3984212918575..7679d6f7c223c8 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index ba65df64e4d70b..57684d01cbaedb 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 7d3382acf95e51..7e244eda410e0c 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 79d4563cbcfe39..2b54a9d630d3ae 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index b196e413247f7a..3ad3d101dde2be 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 93daedf7b13a48..3a176e740c0f07 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 479530c51bf81d..64f01c48739311 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index 8ca298141f4140..f765896d9854e7 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 7fe86cc86a492f..b2872d2ea208cc 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 09c29d178a0fe8..3e7fa67fb9f451 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 0d2b7218e54ac8..054585c3e03153 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index 740e7fe40341c9..3c224f0e7fb99d 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 4b4be715f501d4..b516573cefbb07 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index f6d99feabf1081..027a69083553d1 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index 83c02407894f4c..adf408bdd9f544 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 1912a6996080ee..8efd51cea0f5e0 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index a9c3c4fdbf9aee..f1209e37043d89 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index ba7692df85c854..a8adf40d561731 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index db1ca6333973f4..5a632cb7ebdc54 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index 1ba87f915cef17..707d98e64be8fe 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index 6a68c6eb9499f5..3fe555ec14d709 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.devdocs.json b/api_docs/kbn_core_elasticsearch_client_server_mocks.devdocs.json index 0f4d736b4b50c7..9d6cbc620eac27 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.devdocs.json @@ -302,7 +302,39 @@ "label": "asInternalUser", "description": [], "signature": [ - "{ name: string | symbol; get: ", + "{ create: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; update: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ">, [params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; get: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -334,17 +366,7 @@ "DeleteRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; cluster: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" - }, - "<", - "default", - ">; eql: ", + " | undefined]>; helpers: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -370,7 +392,17 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; create: ", + " | undefined]>; name: string | symbol; monitoring: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -379,24 +411,28 @@ "text": "ClientApiMockInstance" }, ", [params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">, [params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; monitoring: ", + " | undefined]>; exists: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" }, - "<", - "default", - ">; security: ", + ", [params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; security: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -406,23 +442,7 @@ }, "<", "default", - ">; index: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" - }, - ", [params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined]>; update: ", + ">; ping: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -430,15 +450,13 @@ "section": "def-common.ClientApiMockInstance", "text": "ClientApiMockInstance" }, - ">, [params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ", [params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; asyncSearch: ", + " | undefined]>; nodes: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -448,7 +466,7 @@ }, "<", "default", - ">; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; indices: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -458,7 +476,7 @@ }, "<", "default", - ">; helpers: ", + ">; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -480,7 +498,17 @@ "default", ", [opts: ", "ClientOptions", - "]>; autoscaling: ", + "]>; asyncSearch: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; autoscaling: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -558,23 +586,17 @@ "ClosePointInTimeRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; count: ", + " | undefined]>; cluster: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" }, - ", [params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined]>; danglingIndices: ", + "<", + "default", + ">; danglingIndices: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -642,21 +664,17 @@ }, "<", "default", - ">; exists: ", + ">; eql: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" }, - ", [params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined]>; existsSource: ", + "<", + "default", + ">; existsSource: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -804,17 +822,23 @@ }, "<", "default", - ">; indices: ", + ">; index: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" }, - "<", - "default", - ">; info: ", + ", [params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; info: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -960,17 +984,7 @@ "MtermvectorsRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; nodes: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" - }, - "<", - "default", - ">; openPointInTime: ", + " | undefined]>; openPointInTime: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -986,20 +1000,6 @@ "OpenPointInTimeRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; ping: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" - }, - ", [params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", " | undefined]>; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -1409,7 +1409,39 @@ "label": "asInternalUser", "description": [], "signature": [ - "{ name: string | symbol; get: ", + "{ create: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; update: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ">, [params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; get: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1441,17 +1473,7 @@ "DeleteRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; cluster: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" - }, - "<", - "default", - ">; eql: ", + " | undefined]>; helpers: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1477,7 +1499,17 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; create: ", + " | undefined]>; name: string | symbol; monitoring: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1486,24 +1518,28 @@ "text": "ClientApiMockInstance" }, ", [params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">, [params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; monitoring: ", + " | undefined]>; exists: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" }, - "<", - "default", - ">; security: ", + ", [params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; security: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1513,7 +1549,7 @@ }, "<", "default", - ">; index: ", + ">; ping: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1521,31 +1557,13 @@ "section": "def-common.ClientApiMockInstance", "text": "ClientApiMockInstance" }, - ", [params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined]>; update: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" - }, - ">, [params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ", [params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; asyncSearch: ", + " | undefined]>; nodes: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1555,7 +1573,7 @@ }, "<", "default", - ">; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; indices: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1565,7 +1583,7 @@ }, "<", "default", - ">; helpers: ", + ">; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1587,7 +1605,17 @@ "default", ", [opts: ", "ClientOptions", - "]>; autoscaling: ", + "]>; asyncSearch: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; autoscaling: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1665,23 +1693,17 @@ "ClosePointInTimeRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; count: ", + " | undefined]>; cluster: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" }, - ", [params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined]>; danglingIndices: ", + "<", + "default", + ">; danglingIndices: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1749,21 +1771,17 @@ }, "<", "default", - ">; exists: ", + ">; eql: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" }, - ", [params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined]>; existsSource: ", + "<", + "default", + ">; existsSource: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -1911,17 +1929,23 @@ }, "<", "default", - ">; indices: ", + ">; index: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" }, - "<", - "default", - ">; info: ", + ", [params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; info: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2067,17 +2091,7 @@ "MtermvectorsRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; nodes: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" - }, - "<", - "default", - ">; openPointInTime: ", + " | undefined]>; openPointInTime: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2093,20 +2107,6 @@ "OpenPointInTimeRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; ping: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" - }, - ", [params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", " | undefined]>; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -2470,7 +2470,39 @@ "label": "asCurrentUser", "description": [], "signature": [ - "{ name: string | symbol; get: ", + "{ create: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; update: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ">, [params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; get: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2502,17 +2534,7 @@ "DeleteRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; cluster: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" - }, - "<", - "default", - ">; eql: ", + " | undefined]>; helpers: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2538,7 +2560,17 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; create: ", + " | undefined]>; name: string | symbol; monitoring: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2547,24 +2579,28 @@ "text": "ClientApiMockInstance" }, ", [params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">, [params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; monitoring: ", + " | undefined]>; exists: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" }, - "<", - "default", - ">; security: ", + ", [params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; security: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2574,23 +2610,7 @@ }, "<", "default", - ">; index: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" - }, - ", [params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined]>; update: ", + ">; ping: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2598,15 +2618,13 @@ "section": "def-common.ClientApiMockInstance", "text": "ClientApiMockInstance" }, - ">, [params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ", [params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; asyncSearch: ", + " | undefined]>; nodes: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2616,7 +2634,7 @@ }, "<", "default", - ">; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; indices: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2626,7 +2644,7 @@ }, "<", "default", - ">; helpers: ", + ">; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2646,9 +2664,19 @@ }, "<", "default", - ", [opts: ", - "ClientOptions", - "]>; autoscaling: ", + ", [opts: ", + "ClientOptions", + "]>; asyncSearch: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; autoscaling: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2726,23 +2754,17 @@ "ClosePointInTimeRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; count: ", + " | undefined]>; cluster: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" }, - ", [params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined]>; danglingIndices: ", + "<", + "default", + ">; danglingIndices: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2810,21 +2832,17 @@ }, "<", "default", - ">; exists: ", + ">; eql: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" }, - ", [params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined]>; existsSource: ", + "<", + "default", + ">; existsSource: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -2972,17 +2990,23 @@ }, "<", "default", - ">; indices: ", + ">; index: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" }, - "<", - "default", - ">; info: ", + ", [params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; info: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3128,17 +3152,7 @@ "MtermvectorsRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; nodes: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" - }, - "<", - "default", - ">; openPointInTime: ", + " | undefined]>; openPointInTime: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3154,20 +3168,6 @@ "OpenPointInTimeRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; ping: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" - }, - ", [params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", " | undefined]>; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", @@ -3622,7 +3622,39 @@ "label": "ElasticsearchClientMock", "description": [], "signature": [ - "{ name: string | symbol; get: ", + "{ create: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ", [params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; update: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" + }, + ">, [params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; get: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3654,17 +3686,7 @@ "DeleteRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; cluster: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" - }, - "<", - "default", - ">; eql: ", + " | undefined]>; helpers: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3690,7 +3712,17 @@ "SearchRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; create: ", + " | undefined]>; name: string | symbol; monitoring: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; count: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3699,24 +3731,28 @@ "text": "ClientApiMockInstance" }, ", [params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">, [params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; monitoring: ", + " | undefined]>; exists: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" }, - "<", - "default", - ">; security: ", + ", [params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; security: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3726,23 +3762,7 @@ }, "<", "default", - ">; index: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" - }, - ", [params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined]>; update: ", + ">; ping: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3750,15 +3770,13 @@ "section": "def-common.ClientApiMockInstance", "text": "ClientApiMockInstance" }, - ">, [params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ", [params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; asyncSearch: ", + " | undefined]>; nodes: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3768,7 +3786,7 @@ }, "<", "default", - ">; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + ">; indices: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3778,7 +3796,7 @@ }, "<", "default", - ">; helpers: ", + ">; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3800,7 +3818,17 @@ "default", ", [opts: ", "ClientOptions", - "]>; autoscaling: ", + "]>; asyncSearch: ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-mocks", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" + }, + "<", + "default", + ">; autoscaling: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3878,23 +3906,17 @@ "ClosePointInTimeRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; count: ", + " | undefined]>; cluster: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" }, - ", [params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined]>; danglingIndices: ", + "<", + "default", + ">; danglingIndices: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -3962,21 +3984,17 @@ }, "<", "default", - ">; exists: ", + ">; eql: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" + "section": "def-common.DeeplyMockedApi", + "text": "DeeplyMockedApi" }, - ", [params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined]>; existsSource: ", + "<", + "default", + ">; existsSource: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -4124,17 +4142,23 @@ }, "<", "default", - ">; indices: ", + ">; index: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" + "section": "def-common.ClientApiMockInstance", + "text": "ClientApiMockInstance" }, - "<", - "default", - ">; info: ", + ", [params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined]>; info: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -4280,17 +4304,7 @@ "MtermvectorsRequest", " | undefined, options?: ", "TransportRequestOptions", - " | undefined]>; nodes: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.DeeplyMockedApi", - "text": "DeeplyMockedApi" - }, - "<", - "default", - ">; openPointInTime: ", + " | undefined]>; openPointInTime: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", "scope": "common", @@ -4306,20 +4320,6 @@ "OpenPointInTimeRequest", ", options?: ", "TransportRequestOptions", - " | undefined]>; ping: ", - { - "pluginId": "@kbn/core-elasticsearch-client-server-mocks", - "scope": "common", - "docId": "kibKbnCoreElasticsearchClientServerMocksPluginApi", - "section": "def-common.ClientApiMockInstance", - "text": "ClientApiMockInstance" - }, - ", [params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", " | undefined]>; putScript: ", { "pluginId": "@kbn/core-elasticsearch-client-server-mocks", diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index e5c8803a0d35ce..23e7bedadbe973 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_elasticsearch_server.devdocs.json b/api_docs/kbn_core_elasticsearch_server.devdocs.json index 920530d733a72f..0d13d0516f3f72 100644 --- a/api_docs/kbn_core_elasticsearch_server.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server.devdocs.json @@ -905,7 +905,7 @@ "Headers used for authentication against Elasticsearch" ], "signature": [ - "{ accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; date?: string | string[] | undefined; etag?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; from?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; location?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; range?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; warning?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" + "{ date?: string | string[] | undefined; range?: string | string[] | undefined; warning?: string | string[] | undefined; location?: string | string[] | undefined; from?: string | string[] | undefined; etag?: string | string[] | undefined; accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" ], "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/scopeable_request.ts", "deprecated": false, @@ -937,7 +937,59 @@ "\nA {@link ElasticsearchClient | client} to be used to query the ES cluster on behalf of the Kibana internal user" ], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -989,9 +1041,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -1201,33 +1241,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -1309,27 +1325,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -1507,9 +1505,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -1687,9 +1709,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -1715,31 +1735,11 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", + ">; }; putScript: { (this: That, params: ", + "PutScriptRequest", " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", + "PutScriptRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", "AcknowledgedResponseBase", @@ -2580,7 +2580,59 @@ "\nA {@link ElasticsearchClient | client} to be used to query the elasticsearch cluster\non behalf of the internal Kibana user." ], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -2632,9 +2684,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -2844,33 +2884,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -2952,27 +2968,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -3150,9 +3148,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -3330,9 +3352,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -3358,27 +3378,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -3782,7 +3782,59 @@ "\nA {@link ElasticsearchClient | client} to be used to query the elasticsearch cluster\non behalf of the user that initiated the request to the Kibana server." ], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -3834,9 +3886,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -4046,33 +4086,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -4154,27 +4170,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -4352,26 +4350,50 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "InfoResponse", - ">; (this: That, params?: ", - "InfoRequest", - " | ", - "InfoRequest", - " | undefined, options?: ", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "InfoResponse", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", + "InfoRequest", + " | ", + "InfoRequest", + " | undefined, options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "InfoResponse", + ">; (this: That, params?: ", + "InfoRequest", + " | ", + "InfoRequest", + " | undefined, options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "InfoResponse", ", unknown>>; (this: That, params?: ", "InfoRequest", " | ", @@ -4532,9 +4554,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -4560,27 +4580,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -5237,7 +5237,59 @@ "\nClient used to query the elasticsearch cluster.\n" ], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -5289,9 +5341,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -5501,33 +5541,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -5609,27 +5625,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -5807,9 +5805,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -5987,9 +6009,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -6015,27 +6035,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index 24b2cf14d9a232..96e381ce4db6b9 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json index eeb2f6e556374a..0b19e6e87fab8d 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json @@ -60,7 +60,59 @@ "label": "client", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -112,9 +164,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -324,33 +364,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -432,27 +448,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -630,9 +628,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -810,9 +832,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -838,31 +858,11 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", + ">; }; putScript: { (this: That, params: ", + "PutScriptRequest", " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", + "PutScriptRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", "AcknowledgedResponseBase", @@ -1690,7 +1690,59 @@ "label": "internalClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -1742,9 +1794,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -1954,33 +1994,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -2062,27 +2078,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -2260,9 +2258,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -2440,9 +2462,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -2468,27 +2488,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -2949,7 +2949,7 @@ "label": "ElasticsearchConfigType", "description": [], "signature": [ - "{ readonly username?: string | undefined; readonly password?: string | undefined; readonly serviceAccountToken?: string | undefined; readonly requestTimeout: moment.Duration; readonly compression: boolean; readonly ssl: Readonly<{ key?: string | undefined; certificate?: string | undefined; certificateAuthorities?: string | string[] | undefined; keyPassphrase?: string | undefined; } & { verificationMode: \"none\" | \"full\" | \"certificate\"; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; alwaysPresentCertificate: boolean; }>; readonly sniffOnStart: boolean; readonly sniffInterval: false | moment.Duration; readonly sniffOnConnectionFault: boolean; readonly hosts: string | string[]; readonly maxSockets: number; readonly maxIdleSockets: number; readonly idleSocketTimeout: moment.Duration; readonly requestHeadersWhitelist: string | string[]; readonly customHeaders: Record; readonly shardTimeout: moment.Duration; readonly pingTimeout: moment.Duration; readonly logQueries: boolean; readonly apiVersion: string; readonly healthCheck: Readonly<{} & { delay: moment.Duration; }>; readonly ignoreVersionMismatch: boolean; readonly skipStartupConnectionCheck: boolean; }" + "{ readonly username?: string | undefined; readonly password?: string | undefined; readonly serviceAccountToken?: string | undefined; readonly healthCheck: Readonly<{} & { delay: moment.Duration; }>; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; } & { verificationMode: \"none\" | \"full\" | \"certificate\"; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; alwaysPresentCertificate: boolean; }>; readonly requestTimeout: moment.Duration; readonly compression: boolean; readonly customHeaders: Record; readonly hosts: string | string[]; readonly sniffOnStart: boolean; readonly sniffInterval: false | moment.Duration; readonly sniffOnConnectionFault: boolean; readonly maxSockets: number; readonly maxIdleSockets: number; readonly idleSocketTimeout: moment.Duration; readonly requestHeadersWhitelist: string | string[]; readonly shardTimeout: moment.Duration; readonly pingTimeout: moment.Duration; readonly logQueries: boolean; readonly apiVersion: string; readonly ignoreVersionMismatch: boolean; readonly skipStartupConnectionCheck: boolean; }" ], "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts", "deprecated": false, diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index 6751009159330e..1286a66c618d55 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index b5976699d9b8f6..2324ebcff5105f 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index 5e6cdbe68c253e..ba17b696bb4d72 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index b8e89fc2053bc9..e79ad30b396c01 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index 9e3998885fb021..7fe72a60b5f96e 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index fa3c7a486a73ea..ae8465f353435e 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 4096893d6631bb..3314084d001b6d 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index d6c9da222caf9d..995ea6a8af5a31 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index a058956d068a06..6584fc965104f6 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index 1ed91da55936f7..501c1ac1bcd7f8 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index 1c34a681a4ab0b..68e3ef5d1419af 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index 1828a48c464863..cdc8f64f21a859 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index f52a4555be911e..6a2d4b0ddcdf51 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_browser.devdocs.json b/api_docs/kbn_core_http_browser.devdocs.json index 3b88bacd1a65d1..f62733c44afd5c 100644 --- a/api_docs/kbn_core_http_browser.devdocs.json +++ b/api_docs/kbn_core_http_browser.devdocs.json @@ -277,12 +277,12 @@ "id": "def-common.HttpFetchQuery.Unnamed", "type": "IndexSignature", "tags": [], - "label": "[key: string]: string | number | boolean | string[] | number[] | boolean[] | null | undefined", + "label": "[key: string]: string | number | boolean | string[] | boolean[] | number[] | null | undefined", "description": [ "\nTypeScript note: Technically we should use this interface instead, but @types/node uses the below stricter\ndefinition, so to avoid TypeScript errors, we'll restrict our version.\n\n[key: string]:\n | string\n | number\n | boolean\n | Array\n | undefined\n | null;" ], "signature": [ - "[key: string]: string | number | boolean | string[] | number[] | boolean[] | null | undefined" + "[key: string]: string | number | boolean | string[] | boolean[] | number[] | null | undefined" ], "path": "packages/core/http/core-http-browser/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index 42500c14493318..98b29a18025b26 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index e48eee0106d4c2..7aca48a031e2b1 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index cbda349122f743..f2cd9f599d087c 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index 5b91484d1b26cc..6fac263c6ccb60 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index 499563bcb38533..dfcd87837b111a 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index d4dc541d220734..e7f64a5ac292e2 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_resources_server.devdocs.json b/api_docs/kbn_core_http_resources_server.devdocs.json index dd454b4ac32d76..ac3aa3ad57cf83 100644 --- a/api_docs/kbn_core_http_resources_server.devdocs.json +++ b/api_docs/kbn_core_http_resources_server.devdocs.json @@ -513,9 +513,9 @@ "section": "def-common.KibanaErrorResponseFactory", "text": "KibanaErrorResponseFactory" }, - " & { custom | Error | ", + " & { custom | Error | Buffer | ", "Stream", - " | Buffer | { message: string | Error; attributes?: ", + " | { message: string | Error; attributes?: ", { "pluginId": "@kbn/core-http-server", "scope": "common", diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 8a1057887dfad5..56ed8ac4f3bbd9 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index 41d604dedd65de..a2da7c9c7f95e8 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_resources_server_mocks.devdocs.json b/api_docs/kbn_core_http_resources_server_mocks.devdocs.json index 21a8b734247784..c8bdc7c3f74738 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.devdocs.json +++ b/api_docs/kbn_core_http_resources_server_mocks.devdocs.json @@ -30,7 +30,7 @@ "label": "HttpResourcesMock", "description": [], "signature": [ - "{ setup: jest.MockInstance<{ createRegistrar: (router: ", + "{ start: jest.MockInstance; setup: jest.MockInstance<{ createRegistrar: (router: ", { "pluginId": "@kbn/core-http-server", "scope": "common", @@ -56,7 +56,7 @@ }, "; }, [deps: ", "SetupDeps", - "]>; start: jest.MockInstance; stop: jest.MockInstance; preboot: jest.MockInstance<{ createRegistrar: (router: ", + "]>; stop: jest.MockInstance; preboot: jest.MockInstance<{ createRegistrar: (router: ", { "pluginId": "@kbn/core-http-server", "scope": "common", @@ -685,9 +685,9 @@ "section": "def-common.CustomHttpResponseOptions", "text": "CustomHttpResponseOptions" }, - "<", + " | Error | ", + " | Error | Buffer | ", "Stream", - " | Buffer | { message: string | Error; attributes?: ", + " | { message: string | Error; attributes?: ", { "pluginId": "@kbn/core-http-server", "scope": "common", @@ -747,9 +747,9 @@ "section": "def-common.ResponseErrorAttributes", "text": "ResponseErrorAttributes" }, - " | undefined; } | undefined>]> & ( | Error | ", + " | undefined; } | undefined>]> & ( | Error | Buffer | ", "Stream", - " | Buffer | { message: string | Error; attributes?: ", + " | { message: string | Error; attributes?: ", { "pluginId": "@kbn/core-http-server", "scope": "common", diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index ced317ad951b8a..28fcf319c1d0c1 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_router_server_internal.devdocs.json b/api_docs/kbn_core_http_router_server_internal.devdocs.json index bbdd0947ae9280..ee67394ec64324 100644 --- a/api_docs/kbn_core_http_router_server_internal.devdocs.json +++ b/api_docs/kbn_core_http_router_server_internal.devdocs.json @@ -124,9 +124,10 @@ "(kibanaResponse: ", "KibanaResponse", ") => ", + "ResponseObject", + " | ", "Boom", - " | ", - "ResponseObject" + "" ], "path": "packages/core/http/core-http-router-server-internal/src/response_adapter.ts", "deprecated": false, @@ -386,9 +387,9 @@ "label": "custom", "description": [], "signature": [ - " | Error | ", + " | Error | Buffer | ", "Stream", - " | Buffer | { message: string | Error; attributes?: ", + " | { message: string | Error; attributes?: ", { "pluginId": "@kbn/core-http-server", "scope": "common", diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index ec05bb42e941ec..00efc812fc790c 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 7b3fe35f6b3bb2..e17bbd3cdba5a6 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index 695493f22ca3d7..35891c964b6d22 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -685,7 +685,7 @@ "The headers associated with the request." ], "signature": [ - "{ accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; date?: string | string[] | undefined; etag?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; from?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; location?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; range?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; warning?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" + "{ date?: string | string[] | undefined; range?: string | string[] | undefined; warning?: string | string[] | undefined; location?: string | string[] | undefined; from?: string | string[] | undefined; etag?: string | string[] | undefined; accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" ], "path": "packages/core/http/core-http-server/src/router/raw_request.ts", "deprecated": false, @@ -929,9 +929,9 @@ "HTTP message to send to the client" ], "signature": [ - "string | Record | ", + "string | Record | Buffer | ", "Stream", - " | Buffer | undefined" + " | undefined" ], "path": "packages/core/http/core-http-server/src/router/response.ts", "deprecated": false, @@ -4179,9 +4179,9 @@ "section": "def-common.CustomHttpResponseOptions", "text": "CustomHttpResponseOptions" }, - "<", + " Promise<", - "Boom", - " | ", "ResponseObject", - ">" + " | ", + "Boom", + ">" ], "path": "packages/core/http/core-http-server/src/router/router.ts", "deprecated": false, @@ -7054,7 +7054,7 @@ "\nSet of HTTP methods changing the state of the server." ], "signature": [ - "\"post\" | \"put\" | \"delete\" | \"patch\"" + "\"delete\" | \"post\" | \"put\" | \"patch\"" ], "path": "packages/core/http/core-http-server/src/router/route.ts", "deprecated": false, @@ -7283,7 +7283,7 @@ "\nHttp request headers to read." ], "signature": [ - "{ accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; date?: string | string[] | undefined; etag?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; from?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; location?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; range?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; warning?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" + "{ date?: string | string[] | undefined; range?: string | string[] | undefined; warning?: string | string[] | undefined; location?: string | string[] | undefined; from?: string | string[] | undefined; etag?: string | string[] | undefined; accept?: string | string[] | undefined; \"accept-language\"?: string | string[] | undefined; \"accept-patch\"?: string | string[] | undefined; \"accept-ranges\"?: string | string[] | undefined; \"access-control-allow-credentials\"?: string | string[] | undefined; \"access-control-allow-headers\"?: string | string[] | undefined; \"access-control-allow-methods\"?: string | string[] | undefined; \"access-control-allow-origin\"?: string | string[] | undefined; \"access-control-expose-headers\"?: string | string[] | undefined; \"access-control-max-age\"?: string | string[] | undefined; \"access-control-request-headers\"?: string | string[] | undefined; \"access-control-request-method\"?: string | string[] | undefined; age?: string | string[] | undefined; allow?: string | string[] | undefined; \"alt-svc\"?: string | string[] | undefined; authorization?: string | string[] | undefined; \"cache-control\"?: string | string[] | undefined; connection?: string | string[] | undefined; \"content-disposition\"?: string | string[] | undefined; \"content-encoding\"?: string | string[] | undefined; \"content-language\"?: string | string[] | undefined; \"content-length\"?: string | string[] | undefined; \"content-location\"?: string | string[] | undefined; \"content-range\"?: string | string[] | undefined; \"content-type\"?: string | string[] | undefined; cookie?: string | string[] | undefined; expect?: string | string[] | undefined; expires?: string | string[] | undefined; forwarded?: string | string[] | undefined; host?: string | string[] | undefined; \"if-match\"?: string | string[] | undefined; \"if-modified-since\"?: string | string[] | undefined; \"if-none-match\"?: string | string[] | undefined; \"if-unmodified-since\"?: string | string[] | undefined; \"last-modified\"?: string | string[] | undefined; origin?: string | string[] | undefined; pragma?: string | string[] | undefined; \"proxy-authenticate\"?: string | string[] | undefined; \"proxy-authorization\"?: string | string[] | undefined; \"public-key-pins\"?: string | string[] | undefined; referer?: string | string[] | undefined; \"retry-after\"?: string | string[] | undefined; \"sec-websocket-accept\"?: string | string[] | undefined; \"sec-websocket-extensions\"?: string | string[] | undefined; \"sec-websocket-key\"?: string | string[] | undefined; \"sec-websocket-protocol\"?: string | string[] | undefined; \"sec-websocket-version\"?: string | string[] | undefined; \"set-cookie\"?: string | string[] | undefined; \"strict-transport-security\"?: string | string[] | undefined; tk?: string | string[] | undefined; trailer?: string | string[] | undefined; \"transfer-encoding\"?: string | string[] | undefined; upgrade?: string | string[] | undefined; \"user-agent\"?: string | string[] | undefined; vary?: string | string[] | undefined; via?: string | string[] | undefined; \"www-authenticate\"?: string | string[] | undefined; } & { [header: string]: string | string[] | undefined; }" ], "path": "packages/core/http/core-http-server/src/router/headers.ts", "deprecated": false, @@ -7300,9 +7300,9 @@ "\nData send to the client as a response payload." ], "signature": [ - "string | Record | ", + "string | Record | Buffer | ", "Stream", - " | Buffer | undefined" + " | undefined" ], "path": "packages/core/http/core-http-server/src/router/response.ts", "deprecated": false, @@ -7464,7 +7464,7 @@ "\nRoute options: If 'GET' or 'OPTIONS' method, body options won't be returned." ], "signature": [ - "Method extends \"options\" | \"get\" ? Required | Error | ", + " & { custom | Error | Buffer | ", "Stream", - " | Buffer | { message: string | Error; attributes?: ", + " | { message: string | Error; attributes?: ", { "pluginId": "@kbn/core-http-server", "scope": "common", @@ -7563,7 +7563,7 @@ "\nSet of well-known HTTP headers." ], "signature": [ - "\"accept\" | \"accept-language\" | \"accept-patch\" | \"accept-ranges\" | \"access-control-allow-credentials\" | \"access-control-allow-headers\" | \"access-control-allow-methods\" | \"access-control-allow-origin\" | \"access-control-expose-headers\" | \"access-control-max-age\" | \"access-control-request-headers\" | \"access-control-request-method\" | \"age\" | \"allow\" | \"alt-svc\" | \"authorization\" | \"cache-control\" | \"connection\" | \"content-disposition\" | \"content-encoding\" | \"content-language\" | \"content-length\" | \"content-location\" | \"content-range\" | \"content-type\" | \"cookie\" | \"date\" | \"etag\" | \"expect\" | \"expires\" | \"forwarded\" | \"from\" | \"host\" | \"if-match\" | \"if-modified-since\" | \"if-none-match\" | \"if-unmodified-since\" | \"last-modified\" | \"location\" | \"origin\" | \"pragma\" | \"proxy-authenticate\" | \"proxy-authorization\" | \"public-key-pins\" | \"range\" | \"referer\" | \"retry-after\" | \"sec-websocket-accept\" | \"sec-websocket-extensions\" | \"sec-websocket-key\" | \"sec-websocket-protocol\" | \"sec-websocket-version\" | \"set-cookie\" | \"strict-transport-security\" | \"tk\" | \"trailer\" | \"transfer-encoding\" | \"upgrade\" | \"user-agent\" | \"vary\" | \"via\" | \"warning\" | \"www-authenticate\"" + "\"date\" | \"range\" | \"warning\" | \"location\" | \"from\" | \"etag\" | \"accept\" | \"accept-language\" | \"accept-patch\" | \"accept-ranges\" | \"access-control-allow-credentials\" | \"access-control-allow-headers\" | \"access-control-allow-methods\" | \"access-control-allow-origin\" | \"access-control-expose-headers\" | \"access-control-max-age\" | \"access-control-request-headers\" | \"access-control-request-method\" | \"age\" | \"allow\" | \"alt-svc\" | \"authorization\" | \"cache-control\" | \"connection\" | \"content-disposition\" | \"content-encoding\" | \"content-language\" | \"content-length\" | \"content-location\" | \"content-range\" | \"content-type\" | \"cookie\" | \"expect\" | \"expires\" | \"forwarded\" | \"host\" | \"if-match\" | \"if-modified-since\" | \"if-none-match\" | \"if-unmodified-since\" | \"last-modified\" | \"origin\" | \"pragma\" | \"proxy-authenticate\" | \"proxy-authorization\" | \"public-key-pins\" | \"referer\" | \"retry-after\" | \"sec-websocket-accept\" | \"sec-websocket-extensions\" | \"sec-websocket-key\" | \"sec-websocket-protocol\" | \"sec-websocket-version\" | \"set-cookie\" | \"strict-transport-security\" | \"tk\" | \"trailer\" | \"transfer-encoding\" | \"upgrade\" | \"user-agent\" | \"vary\" | \"via\" | \"www-authenticate\"" ], "path": "packages/core/http/core-http-server/src/router/headers.ts", "deprecated": false, @@ -8669,7 +8669,7 @@ "\nHttp response headers to set." ], "signature": [ - "Record<\"accept\" | \"accept-language\" | \"accept-patch\" | \"accept-ranges\" | \"access-control-allow-credentials\" | \"access-control-allow-headers\" | \"access-control-allow-methods\" | \"access-control-allow-origin\" | \"access-control-expose-headers\" | \"access-control-max-age\" | \"access-control-request-headers\" | \"access-control-request-method\" | \"age\" | \"allow\" | \"alt-svc\" | \"authorization\" | \"cache-control\" | \"connection\" | \"content-disposition\" | \"content-encoding\" | \"content-language\" | \"content-length\" | \"content-location\" | \"content-range\" | \"content-type\" | \"cookie\" | \"date\" | \"etag\" | \"expect\" | \"expires\" | \"forwarded\" | \"from\" | \"host\" | \"if-match\" | \"if-modified-since\" | \"if-none-match\" | \"if-unmodified-since\" | \"last-modified\" | \"location\" | \"origin\" | \"pragma\" | \"proxy-authenticate\" | \"proxy-authorization\" | \"public-key-pins\" | \"range\" | \"referer\" | \"retry-after\" | \"sec-websocket-accept\" | \"sec-websocket-extensions\" | \"sec-websocket-key\" | \"sec-websocket-protocol\" | \"sec-websocket-version\" | \"set-cookie\" | \"strict-transport-security\" | \"tk\" | \"trailer\" | \"transfer-encoding\" | \"upgrade\" | \"user-agent\" | \"vary\" | \"via\" | \"warning\" | \"www-authenticate\", string | string[]> | Record" + "Record | Record<\"date\" | \"range\" | \"warning\" | \"location\" | \"from\" | \"etag\" | \"accept\" | \"accept-language\" | \"accept-patch\" | \"accept-ranges\" | \"access-control-allow-credentials\" | \"access-control-allow-headers\" | \"access-control-allow-methods\" | \"access-control-allow-origin\" | \"access-control-expose-headers\" | \"access-control-max-age\" | \"access-control-request-headers\" | \"access-control-request-method\" | \"age\" | \"allow\" | \"alt-svc\" | \"authorization\" | \"cache-control\" | \"connection\" | \"content-disposition\" | \"content-encoding\" | \"content-language\" | \"content-length\" | \"content-location\" | \"content-range\" | \"content-type\" | \"cookie\" | \"expect\" | \"expires\" | \"forwarded\" | \"host\" | \"if-match\" | \"if-modified-since\" | \"if-none-match\" | \"if-unmodified-since\" | \"last-modified\" | \"origin\" | \"pragma\" | \"proxy-authenticate\" | \"proxy-authorization\" | \"public-key-pins\" | \"referer\" | \"retry-after\" | \"sec-websocket-accept\" | \"sec-websocket-extensions\" | \"sec-websocket-key\" | \"sec-websocket-protocol\" | \"sec-websocket-version\" | \"set-cookie\" | \"strict-transport-security\" | \"tk\" | \"trailer\" | \"transfer-encoding\" | \"upgrade\" | \"user-agent\" | \"vary\" | \"via\" | \"www-authenticate\", string | string[]>" ], "path": "packages/core/http/core-http-server/src/router/headers.ts", "deprecated": false, @@ -9038,7 +9038,7 @@ "\nSet of HTTP methods not changing the state of the server." ], "signature": [ - "\"options\" | \"get\"" + "\"get\" | \"options\"" ], "path": "packages/core/http/core-http-server/src/router/route.ts", "deprecated": false, diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 814131d015e741..1410e5cdb37e7a 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_http_server_internal.devdocs.json b/api_docs/kbn_core_http_server_internal.devdocs.json index bee16276e70e4a..09fb909f8e5463 100644 --- a/api_docs/kbn_core_http_server_internal.devdocs.json +++ b/api_docs/kbn_core_http_server_internal.devdocs.json @@ -93,6 +93,17 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/core-http-server-internal", + "id": "def-common.CspConfig.disableUnsafeEval", + "type": "boolean", + "tags": [], + "label": "disableUnsafeEval", + "description": [], + "path": "packages/core/http/core-http-server-internal/src/csp/csp_config.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/core-http-server-internal", "id": "def-common.CspConfig.warnLegacyBrowsers", @@ -851,7 +862,7 @@ "label": "HttpConfigType", "description": [], "signature": [ - "{ readonly basePath?: string | undefined; readonly uuid?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly name: string; readonly host: string; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly ssl: Readonly<{ key?: string | undefined; certificate?: string | undefined; certificateAuthorities?: string | string[] | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"optional\" | \"none\" | \"required\"; }>; readonly port: number; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; disableEmbedding: boolean; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ", + "{ readonly basePath?: string | undefined; readonly uuid?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly name: string; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; readonly host: string; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly port: number; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -912,10 +923,10 @@ "pluginId": "@kbn/config-schema", "scope": "common", "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.ConditionalType", - "text": "ConditionalType" + "section": "def-common.Type", + "text": "Type" }, - "; script_src: ", + "; script_src: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index ec5849ed565e1f..80bcba4dd03f5c 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 54 | 0 | 48 | 6 | +| 55 | 0 | 49 | 6 | ## Common diff --git a/api_docs/kbn_core_http_server_mocks.devdocs.json b/api_docs/kbn_core_http_server_mocks.devdocs.json index 03dcec7536ef24..e865f39eefd7e7 100644 --- a/api_docs/kbn_core_http_server_mocks.devdocs.json +++ b/api_docs/kbn_core_http_server_mocks.devdocs.json @@ -338,17 +338,7 @@ "label": "InternalHttpServicePrebootMock", "description": [], "signature": [ - "{ auth: ", - { - "pluginId": "@kbn/core-http-server", - "scope": "common", - "docId": "kibKbnCoreHttpServerPluginApi", - "section": "def-common.HttpAuth", - "text": "HttpAuth" - }, - "; server: ", - "Server", - "; externalUrl: ", + "{ externalUrl: ", { "pluginId": "@kbn/core-http-server-internal", "scope": "common", @@ -364,6 +354,16 @@ "section": "def-common.ICspConfig", "text": "ICspConfig" }, + "; auth: ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.HttpAuth", + "text": "HttpAuth" + }, + "; server: ", + "Server", "; registerStaticDir: jest.MockInstance; registerRouteHandlerContext: jest.MockInstance; registerRouteHandlerContext: jest.MockInstance) => void]>; } & Omit<", "InternalHttpServiceSetup", - ", \"createRouter\" | \"auth\" | \"basePath\" | \"authRequestHeaders\"> & { auth: AuthMocked; basePath: BasePathMocked; createRouter: jest.MockedFunction<(path: string) => ", + ", \"createRouter\" | \"basePath\" | \"auth\" | \"authRequestHeaders\"> & { auth: AuthMocked; basePath: BasePathMocked; createRouter: jest.MockedFunction<(path: string) => ", { "pluginId": "@kbn/core-http-router-server-mocks", "scope": "common", @@ -804,9 +804,7 @@ "section": "def-common.DeepPartialObject", "text": "DeepPartialObject" }, - "<", - "Readable", - "> | ", + " | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -814,7 +812,9 @@ "section": "def-common.DeepPartialObject", "text": "DeepPartialObject" }, - " | undefined; plugins?: ", + "<", + "Readable", + "> | undefined; plugins?: ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -843,8 +843,8 @@ "text": "DeepPartialObject" }, "<", - "Boom", - "> | ", + "ResponseObject", + "> | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -853,8 +853,8 @@ "text": "DeepPartialObject" }, "<", - "ResponseObject", - "> | undefined; readonly preResponses?: ", + "Boom", + "> | undefined; readonly preResponses?: ", { "pluginId": "@kbn/utility-types", "scope": "common", diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index a2d52f79b1a88b..e38ea00d22a4a0 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index 70ec5e53f7826c..4c616ddd9ee9ba 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index b78a7a37e195c9..888511ffd8d13c 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index ee3c22f3f78880..dedbaec367b49e 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 916009fcfd73ee..c39b5e2d87b03f 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index 070b001b1966b8..00f2fa9f04acd2 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 4d03bcac5b5f11..a8d535907e1513 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index ee3665e1077e9b..0c796992949d0c 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_integrations_browser_mocks.devdocs.json b/api_docs/kbn_core_integrations_browser_mocks.devdocs.json index 8cfbd08b465849..a5bbc4f2e637bc 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.devdocs.json +++ b/api_docs/kbn_core_integrations_browser_mocks.devdocs.json @@ -30,7 +30,7 @@ "label": "IntegrationsServiceContract", "description": [], "signature": [ - "{ setup: () => Promise; start: ({ uiSettings }: ", + "{ start: ({ uiSettings }: ", { "pluginId": "@kbn/core-integrations-browser-internal", "scope": "common", @@ -38,7 +38,7 @@ "section": "def-common.IntegrationsServiceSetupDeps", "text": "IntegrationsServiceSetupDeps" }, - ") => Promise; stop: () => Promise; }" + ") => Promise; setup: () => Promise; stop: () => Promise; }" ], "path": "packages/core/integrations/core-integrations-browser-mocks/src/integrations_service.mock.ts", "deprecated": false, @@ -53,7 +53,7 @@ "label": "IntegrationsServiceMock", "description": [], "signature": [ - "{ setup: jest.MockInstance, []>; start: jest.MockInstance, [", + "{ start: jest.MockInstance, [", { "pluginId": "@kbn/core-integrations-browser-internal", "scope": "common", @@ -61,7 +61,7 @@ "section": "def-common.IntegrationsServiceSetupDeps", "text": "IntegrationsServiceSetupDeps" }, - "]>; stop: jest.MockInstance, []>; } & ", + "]>; setup: jest.MockInstance, []>; stop: jest.MockInstance, []>; } & ", { "pluginId": "@kbn/core-integrations-browser-mocks", "scope": "common", diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index e6fd91ff759ae8..34518c6eef1454 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_lifecycle_browser.devdocs.json b/api_docs/kbn_core_lifecycle_browser.devdocs.json index 2dc072deb9de86..69669e96d4319b 100644 --- a/api_docs/kbn_core_lifecycle_browser.devdocs.json +++ b/api_docs/kbn_core_lifecycle_browser.devdocs.json @@ -709,6 +709,10 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/app.tsx" }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/public/application/app.tsx" + }, { "plugin": "infra", "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 803e088c0d302f..bbf007eaf59da8 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index c5bb5bc287b942..b1d51c5ec9ca78 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index acb577ddd9793a..ed3068d6e58f85 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index bccb040d985369..456eea26469f26 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index 5a1000962f8216..5ee164de272d52 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index b56580d60fed28..e5b2d949422b82 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_logging_server.devdocs.json b/api_docs/kbn_core_logging_server.devdocs.json index 4a178303f26bda..3341d022e82807 100644 --- a/api_docs/kbn_core_logging_server.devdocs.json +++ b/api_docs/kbn_core_logging_server.devdocs.json @@ -223,7 +223,7 @@ "label": "level", "description": [], "signature": [ - "\"error\" | \"all\" | \"info\" | \"debug\" | \"off\" | \"warn\" | \"trace\" | \"fatal\"" + "\"error\" | \"off\" | \"all\" | \"debug\" | \"info\" | \"warn\" | \"trace\" | \"fatal\"" ], "path": "packages/core/logging/core-logging-server/src/logger.ts", "deprecated": false, diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index d0113e9a3eaadd..44db646d5f7302 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_logging_server_internal.devdocs.json b/api_docs/kbn_core_logging_server_internal.devdocs.json index c6895f2a61af69..d304656de71921 100644 --- a/api_docs/kbn_core_logging_server_internal.devdocs.json +++ b/api_docs/kbn_core_logging_server_internal.devdocs.json @@ -135,7 +135,7 @@ "section": "def-common.Type", "text": "Type" }, - " | Readonly<{ highlight?: boolean | undefined; pattern?: string | undefined; } & { type: \"pattern\"; }>; }> | Readonly<{} & { type: \"file\"; fileName: string; layout: Readonly<{} & { type: \"json\"; }> | Readonly<{ highlight?: boolean | undefined; pattern?: string | undefined; } & { type: \"pattern\"; }>; }> | Readonly<{} & { type: \"rewrite\"; policy: Readonly<{} & { type: \"meta\"; mode: \"update\" | \"remove\"; properties: Readonly<{ value?: string | number | boolean | null | undefined; } & { path: string; }>[]; }>; appenders: string[]; }> | Readonly<{} & { type: \"rolling-file\"; strategy: ", + " | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; }> | Readonly<{} & { type: \"file\"; fileName: string; layout: Readonly<{} & { type: \"json\"; }> | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; }> | Readonly<{} & { type: \"rewrite\"; policy: Readonly<{} & { type: \"meta\"; mode: \"update\" | \"remove\"; properties: Readonly<{ value?: string | number | boolean | null | undefined; } & { path: string; }>[]; }>; appenders: string[]; }> | Readonly<{} & { type: \"rolling-file\"; strategy: ", { "pluginId": "@kbn/core-logging-server", "scope": "common", @@ -143,7 +143,7 @@ "section": "def-common.NumericRollingStrategyConfig", "text": "NumericRollingStrategyConfig" }, - "; fileName: string; layout: Readonly<{} & { type: \"json\"; }> | Readonly<{ highlight?: boolean | undefined; pattern?: string | undefined; } & { type: \"pattern\"; }>; policy: Readonly<{} & { type: \"size-limit\"; size: ", + "; fileName: string; policy: Readonly<{} & { type: \"size-limit\"; size: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -151,7 +151,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; }> | Readonly<{} & { type: \"time-interval\"; interval: moment.Duration; modulate: boolean; }>; }>>" + "; }> | Readonly<{} & { type: \"time-interval\"; interval: moment.Duration; modulate: boolean; }>; layout: Readonly<{} & { type: \"json\"; }> | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; }>>" ], "path": "packages/core/logging/core-logging-server-internal/src/appenders/appenders.ts", "deprecated": false, @@ -199,7 +199,7 @@ "section": "def-common.Type", "text": "Type" }, - "[]>; }>" + "[]>; }>" ], "path": "packages/core/logging/core-logging-server-internal/src/logging_config.ts", "deprecated": false, @@ -247,7 +247,7 @@ "section": "def-common.Type", "text": "Type" }, - "<\"error\" | \"all\" | \"info\" | \"debug\" | \"off\" | \"warn\" | \"trace\" | \"fatal\">; }>" + "<\"error\" | \"off\" | \"all\" | \"debug\" | \"info\" | \"warn\" | \"trace\" | \"fatal\">; }>" ], "path": "packages/core/logging/core-logging-server-internal/src/logging_config.ts", "deprecated": false, diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index d1eff84a39eaef..8311c18cefaa22 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index 0c0229fc331c28..f2f86c3c4f6364 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index fec8cab86e7a14..a695b1f82bb66c 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index 802578f21771c9..73a8a1fe6a57fe 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_metrics_server.devdocs.json b/api_docs/kbn_core_metrics_server.devdocs.json index af44534db740fe..c1b49b0117dea7 100644 --- a/api_docs/kbn_core_metrics_server.devdocs.json +++ b/api_docs/kbn_core_metrics_server.devdocs.json @@ -578,7 +578,7 @@ "The os platform" ], "signature": [ - "\"linux\" | \"aix\" | \"android\" | \"darwin\" | \"freebsd\" | \"haiku\" | \"openbsd\" | \"sunos\" | \"win32\" | \"cygwin\" | \"netbsd\"" + "\"linux\" | \"android\" | \"aix\" | \"darwin\" | \"freebsd\" | \"haiku\" | \"openbsd\" | \"sunos\" | \"win32\" | \"cygwin\" | \"netbsd\"" ], "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", "deprecated": false, @@ -876,7 +876,7 @@ "\nProtocol(s) used by the Elasticsearch Client" ], "signature": [ - "\"http\" | \"none\" | \"mixed\" | \"https\"" + "\"none\" | \"mixed\" | \"http\" | \"https\"" ], "path": "packages/core/metrics/core-metrics-server/src/metrics.ts", "deprecated": false, diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 2ef489a080d622..626b47a7c19bc7 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index 80d577ea9a36b5..d265262246c8fa 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index 5b1d13f4e10d39..b4cdb5b1dcf977 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 1a27bc7312a206..584fadf8344c6f 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index 29168c8dd36c26..918b700e3bbc5c 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index 01b61a79fe8ab8..6f77323d65f236 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index 89d6088c2e75ac..2bffba7080557b 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_notifications_browser.devdocs.json b/api_docs/kbn_core_notifications_browser.devdocs.json index 7b8599aa02a93c..67b0e25e4cda80 100644 --- a/api_docs/kbn_core_notifications_browser.devdocs.json +++ b/api_docs/kbn_core_notifications_browser.devdocs.json @@ -681,7 +681,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onError\" | \"hidden\" | \"color\" | \"className\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"placeholder\" | \"security\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"toastLifeTimeMs\" | \"iconType\" | \"onClose\" | \"data-test-subj\" | \"css\"> & { title?: string | ", + ", \"prefix\" | \"defaultValue\" | \"children\" | \"is\" | \"slot\" | \"style\" | \"className\" | \"aria-label\" | \"data-test-subj\" | \"css\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", @@ -740,7 +740,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onError\" | \"hidden\" | \"color\" | \"className\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"placeholder\" | \"security\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"toastLifeTimeMs\" | \"iconType\" | \"onClose\" | \"data-test-subj\" | \"css\"> & { title?: string | ", + ", \"prefix\" | \"defaultValue\" | \"children\" | \"is\" | \"slot\" | \"style\" | \"className\" | \"aria-label\" | \"data-test-subj\" | \"css\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 6cea67e883ea58..e3d4bebbabcb84 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_notifications_browser_internal.devdocs.json b/api_docs/kbn_core_notifications_browser_internal.devdocs.json index a76ecdf8d28c0a..f77222a80fcd1a 100644 --- a/api_docs/kbn_core_notifications_browser_internal.devdocs.json +++ b/api_docs/kbn_core_notifications_browser_internal.devdocs.json @@ -820,25 +820,25 @@ "label": "NotificationsServiceContract", "description": [], "signature": [ - "{ setup: ({ uiSettings }: ", - "SetupDeps", + "{ start: ({ i18n: i18nDep, overlays, theme, targetDomElement, }: ", + "StartDeps", ") => ", { "pluginId": "@kbn/core-notifications-browser", "scope": "common", "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.NotificationsSetup", - "text": "NotificationsSetup" + "section": "def-common.NotificationsStart", + "text": "NotificationsStart" }, - "; start: ({ i18n: i18nDep, overlays, theme, targetDomElement, }: ", - "StartDeps", + "; setup: ({ uiSettings }: ", + "SetupDeps", ") => ", { "pluginId": "@kbn/core-notifications-browser", "scope": "common", "docId": "kibKbnCoreNotificationsBrowserPluginApi", - "section": "def-common.NotificationsStart", - "text": "NotificationsStart" + "section": "def-common.NotificationsSetup", + "text": "NotificationsSetup" }, "; stop: () => void; }" ], diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index 3fe1ec109fba33..e044e509760351 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index b5fc67506249a0..b39d40dc502037 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 08bbe84068ee55..19be5ce24276d0 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index aa973df88eb1b7..8d318877f20f2b 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index f7b62ebf262113..f8ec446b6f96b7 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index 9b212f6e3f9c1c..05c630e7378916 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index 083d82c7aa7280..c1506289e0898e 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_plugins_server.devdocs.json b/api_docs/kbn_core_plugins_server.devdocs.json index 5b1a7be09eb6e7..98b15965497582 100644 --- a/api_docs/kbn_core_plugins_server.devdocs.json +++ b/api_docs/kbn_core_plugins_server.devdocs.json @@ -55,7 +55,7 @@ "path": "packages/core/plugins/core-plugins-server-internal/src/plugin.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/server/index.ts" } ], diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index 9bfe434c198c88..94d0db1d25b869 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index d0c7ac93bd9b3e..54ccc5c6f8d040 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index 4af53b58837169..98a746c8b65e9a 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index ae4678eb866b38..030f462d796cc7 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index dec57e714aee00..715341c690ed2e 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index 60664c8a2b463d..e701321b8a4190 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index 6b91b53cad58c2..548aed514df97e 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index 1f8c1ee1c338e0..7c9ff58e5f0980 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_api_browser.devdocs.json b/api_docs/kbn_core_saved_objects_api_browser.devdocs.json index 0875a3e75de10f..c2152fcd5914f0 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.devdocs.json +++ b/api_docs/kbn_core_saved_objects_api_browser.devdocs.json @@ -62,7 +62,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -343,7 +343,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -423,7 +423,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" } ], @@ -484,7 +484,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" } ], @@ -701,7 +701,7 @@ "trackAdoption": false, "references": [ { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" } ], @@ -766,7 +766,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" } ], @@ -871,7 +871,7 @@ "trackAdoption": false, "references": [ { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" } ], @@ -935,7 +935,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -1178,6 +1178,18 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/util/dependency_cache.ts" }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/public/application/routing/use_resolver.ts" + }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/public/application/routing/use_resolver.ts" + }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/public/application/routing/use_resolver.ts" + }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/services/dashboard_service.ts" @@ -1186,6 +1198,14 @@ "plugin": "ml", "path": "x-pack/plugins/ml/public/application/services/dashboard_service.ts" }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/public/application/routing/router.tsx" + }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/public/application/routing/router.tsx" + }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/public/services/platform.ts" @@ -2491,10 +2511,6 @@ "plugin": "dashboard", "path": "src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/util/index_utils.ts" @@ -2739,7 +2755,7 @@ ], "label": "resolve", "description": [ - "\nResolves a single object\n" + "\nResolves a single object.\n\nAfter 8.0.0, saved objects are provided a unique ID _across_ spaces.\nA subset of existing saved objects may have IDs regenerated while upgrading to 8+.\n`.resolve` provides a way for clients with legacy IDs to still retrieve the correct\nsaved object.\n\nAn example of a client with a \"legacy ID\" is a bookmarked dashboard in a\nnon-default space.\n" ], "signature": [ "(type: string, id: string) => Promise<", @@ -2935,7 +2951,7 @@ ], "label": "bulkResolve", "description": [ - "\nResolves an array of objects by id, using any legacy URL aliases if they exist\n" + "\nResolves an array of objects by id.\n\nSee documentation for `.resolve`.\n" ], "signature": [ "(objects: ", @@ -3309,7 +3325,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -3507,7 +3523,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" } ], @@ -3623,7 +3639,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -3736,7 +3752,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -3877,7 +3893,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -4136,14 +4152,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/common/types/index.ts" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/source_selection/source_selection.tsx" @@ -4750,9 +4758,9 @@ "\nBrowser options for finding saved objects\n" ], "signature": [ - "{ type: string | string[]; filter?: any; search?: string | undefined; fields?: string[] | undefined; aggs?: Record | undefined; page?: number | undefined; perPage?: number | undefined; sortField?: string | undefined; searchFields?: string[] | undefined; hasReference?: ", + "> | undefined; search?: string | undefined; namespaces?: string[] | undefined; sortField?: string | undefined; fields?: string[] | undefined; preference?: string | undefined; perPage?: number | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; searchFields?: string[] | undefined; hasReference?: ", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", @@ -4784,7 +4792,7 @@ "section": "def-common.SavedObjectsFindOptionsReference", "text": "SavedObjectsFindOptionsReference" }, - "[] | undefined; hasNoReferenceOperator?: \"AND\" | \"OR\" | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; namespaces?: string[] | undefined; preference?: string | undefined; }" + "[] | undefined; hasNoReferenceOperator?: \"AND\" | \"OR\" | undefined; }" ], "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/find.ts", "deprecated": true, @@ -4803,7 +4811,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index e5640680fa2575..785a2fccacfac0 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_api_server.devdocs.json b/api_docs/kbn_core_saved_objects_api_server.devdocs.json index 13470d08ccac92..eba841b82db650 100644 --- a/api_docs/kbn_core_saved_objects_api_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_api_server.devdocs.json @@ -3873,7 +3873,7 @@ ], "label": "bulkResolve", "description": [ - "\nResolves an array of objects by id, using any legacy URL aliases if they exist\n" + "\nResolves an array of objects by id.\n\nSee documentation for `.resolve`.\n" ], "signature": [ "(objects: ", @@ -3966,7 +3966,7 @@ "tags": [], "label": "resolve", "description": [ - "\nResolves a single object, using any legacy URL alias if it exists\n" + "\nResolves a single object.\n\nAfter 8.0.0, saved objects are provided a unique ID _across_ spaces.\nA subset of existing saved objects may have IDs regenerated while upgrading to 8+.\n`.resolve` provides a way for clients with legacy IDs to still retrieve the correct\nsaved object.\n\nAn example of a client with a \"legacy ID\" is a bookmarked dashboard in a\nnon-default space.\n" ], "signature": [ "(type: string, id: string, options?: ", @@ -6879,7 +6879,7 @@ "section": "def-common.SavedObject", "text": "SavedObject" }, - ", \"attributes\" | \"references\">" + ", \"references\" | \"attributes\">" ], "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts", "deprecated": false, @@ -6980,11 +6980,11 @@ "\nOptions for the create point-in-time finder operation\n" ], "signature": [ - "{ type: string | string[]; filter?: any; search?: string | undefined; fields?: string[] | undefined; aggs?: Record | undefined; perPage?: number | undefined; sortField?: string | undefined; sortOrder?: ", + "> | undefined; search?: string | undefined; namespaces?: string[] | undefined; sortField?: string | undefined; fields?: string[] | undefined; preference?: string | undefined; perPage?: number | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; searchFields?: string[] | undefined; rootSearchFields?: string[] | undefined; sortOrder?: ", "SortOrder", - " | undefined; searchFields?: string[] | undefined; rootSearchFields?: string[] | undefined; hasReference?: ", + " | undefined; hasReference?: ", { "pluginId": "@kbn/core-saved-objects-api-server", "scope": "common", @@ -7016,7 +7016,7 @@ "section": "def-common.SavedObjectsFindOptionsReference", "text": "SavedObjectsFindOptionsReference" }, - "[] | undefined; hasNoReferenceOperator?: \"AND\" | \"OR\" | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; namespaces?: string[] | undefined; typeToNamespacesMap?: Map | undefined; preference?: string | undefined; }" + "[] | undefined; hasNoReferenceOperator?: \"AND\" | \"OR\" | undefined; typeToNamespacesMap?: Map | undefined; }" ], "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/create_point_in_time_finder.ts", "deprecated": false, diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 6d390c231be610..66c97e14be2afc 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_api_server_internal.mdx b/api_docs/kbn_core_saved_objects_api_server_internal.mdx index b80de1f3a6c925..022d88ddd09e83 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-internal'] --- import kbnCoreSavedObjectsApiServerInternalObj from './kbn_core_saved_objects_api_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index 29b09c2573e293..2eb8db148afcf4 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json b/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json index 059bd4e9757779..81e9492f9c625d 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json +++ b/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json @@ -59,7 +59,7 @@ "label": "migration", "description": [], "signature": [ - "{ readonly discardUnknownObjects?: string | undefined; readonly discardCorruptObjects?: string | undefined; readonly pollInterval: number; readonly skip: boolean; readonly batchSize: number; readonly maxBatchSizeBytes: ", + "{ readonly discardUnknownObjects?: string | undefined; readonly discardCorruptObjects?: string | undefined; readonly skip: boolean; readonly pollInterval: number; readonly batchSize: number; readonly maxBatchSizeBytes: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -118,7 +118,7 @@ "label": "rawMigrationConfig", "description": [], "signature": [ - "Readonly<{ discardUnknownObjects?: string | undefined; discardCorruptObjects?: string | undefined; } & { pollInterval: number; skip: boolean; batchSize: number; maxBatchSizeBytes: ", + "Readonly<{ discardUnknownObjects?: string | undefined; discardCorruptObjects?: string | undefined; } & { skip: boolean; pollInterval: number; batchSize: number; maxBatchSizeBytes: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -364,6 +364,8 @@ "description": [], "signature": [ "(mappings: ", + "IndexMapping", + " | ", { "pluginId": "@kbn/core-saved-objects-server", "scope": "common", @@ -371,8 +373,6 @@ "section": "def-common.SavedObjectsFieldMapping", "text": "SavedObjectsFieldMapping" }, - " | ", - "IndexMapping", ", path: string | string[]) => ", { "pluginId": "@kbn/core-saved-objects-server", @@ -395,15 +395,15 @@ "label": "mappings", "description": [], "signature": [ + "IndexMapping", + " | ", { "pluginId": "@kbn/core-saved-objects-server", "scope": "common", "docId": "kibKbnCoreSavedObjectsServerPluginApi", "section": "def-common.SavedObjectsFieldMapping", "text": "SavedObjectsFieldMapping" - }, - " | ", - "IndexMapping" + } ], "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/mappings/lib/get_property.ts", "deprecated": false, @@ -587,7 +587,7 @@ "label": "SavedObjectsMigrationConfigType", "description": [], "signature": [ - "{ readonly discardUnknownObjects?: string | undefined; readonly discardCorruptObjects?: string | undefined; readonly pollInterval: number; readonly skip: boolean; readonly batchSize: number; readonly maxBatchSizeBytes: ", + "{ readonly discardUnknownObjects?: string | undefined; readonly discardCorruptObjects?: string | undefined; readonly skip: boolean; readonly pollInterval: number; readonly batchSize: number; readonly maxBatchSizeBytes: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index e516ee15767c4b..d67e126e2fabe0 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index c33f1cc283fc86..3fa89352bec7e5 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_browser.devdocs.json b/api_docs/kbn_core_saved_objects_browser.devdocs.json index 81f2e469e47aa1..d40aa8ce76ba92 100644 --- a/api_docs/kbn_core_saved_objects_browser.devdocs.json +++ b/api_docs/kbn_core_saved_objects_browser.devdocs.json @@ -54,7 +54,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -170,7 +170,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-mocks/src/saved_objects_service.mock.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/server/index.ts" } ], diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index c9f4cc63fca357..0d02c0b3acc067 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index 61d43e236cb659..d912da3aac01b2 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.devdocs.json b/api_docs/kbn_core_saved_objects_browser_mocks.devdocs.json index bc3340c763c9e1..03fd9c9054e508 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.devdocs.json +++ b/api_docs/kbn_core_saved_objects_browser_mocks.devdocs.json @@ -45,7 +45,7 @@ "path": "packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_start.mock.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/mocks.ts" }, { @@ -155,7 +155,7 @@ "trackAdoption": false, "references": [ { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/mocks.ts" }, { diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index d3459608866301..a82d2265ff9f19 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_common.devdocs.json b/api_docs/kbn_core_saved_objects_common.devdocs.json index 096ee82d8985aa..ff0bd2270c69f4 100644 --- a/api_docs/kbn_core_saved_objects_common.devdocs.json +++ b/api_docs/kbn_core_saved_objects_common.devdocs.json @@ -1141,7 +1141,7 @@ "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -1513,7 +1513,7 @@ "path": "packages/core/saved-objects/core-saved-objects-import-export-server-internal/src/export/apply_export_transforms.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, { @@ -1879,7 +1879,7 @@ "trackAdoption": false, "references": [ { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -1911,7 +1911,7 @@ "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/types/index.ts" } ], @@ -1931,7 +1931,7 @@ "trackAdoption": false, "references": [ { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -2235,7 +2235,7 @@ "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, { @@ -2322,11 +2322,11 @@ "trackAdoption": false, "references": [ { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/types/index.ts" } ], @@ -2398,7 +2398,7 @@ "path": "packages/core/saved-objects/core-saved-objects-api-browser/src/apis/update.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/public/index.ts" }, { @@ -2726,7 +2726,7 @@ "path": "src/plugins/saved_objects_tagging_oss/public/decorator/inject_tag_references.test.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, { @@ -3425,7 +3425,7 @@ "\nThe namespace type dictates how a saved object can be interacted in relation to namespaces. Each type is mutually exclusive:\n * single (default): This type of saved object is namespace-isolated, e.g., it exists in only one namespace.\n * multiple: This type of saved object is shareable, e.g., it can exist in one or more namespaces.\n * multiple-isolated: This type of saved object is namespace-isolated, e.g., it exists in only one namespace, but object IDs must be\n unique across all namespaces. This is intended to be an intermediate step when objects with a \"single\" namespace type are being\n converted to a \"multiple\" namespace type. In other words, objects with a \"multiple-isolated\" namespace type will be *share-capable*,\n but will not actually be shareable until the namespace type is changed to \"multiple\".\n * agnostic: This type of saved object is global.\n" ], "signature": [ - "\"single\" | \"multiple\" | \"multiple-isolated\" | \"agnostic\"" + "\"single\" | \"multiple\" | \"agnostic\" | \"multiple-isolated\"" ], "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", "deprecated": false, diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index cd1a2fe0b3ca99..441ab73b75b7b8 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index 4df1f8396426b6..76b62d19981b70 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index 2b0cb885d0e0f9..757865166ba244 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.devdocs.json b/api_docs/kbn_core_saved_objects_migration_server_internal.devdocs.json index 4143641d21a64d..e9d8d1afb191ec 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.devdocs.json +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.devdocs.json @@ -38,7 +38,7 @@ " implements ", "VersionedTransformer" ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -60,7 +60,7 @@ "signature": [ "any" ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -74,7 +74,7 @@ "signature": [ "DocumentMigratorOptions" ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -104,7 +104,7 @@ "text": "SavedObjectsMigrationVersion" } ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false }, @@ -122,7 +122,7 @@ "signature": [ "() => void" ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false, "children": [], @@ -158,7 +158,7 @@ }, "" ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -179,7 +179,7 @@ }, "" ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -217,7 +217,7 @@ }, "[]" ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -238,7 +238,7 @@ }, "" ], - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts", + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -2115,7 +2115,59 @@ "label": "client", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -2167,9 +2219,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -2379,33 +2419,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -2487,27 +2503,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -2685,9 +2683,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -2865,9 +2887,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -2893,27 +2913,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -3335,7 +3335,7 @@ "label": "soMigrationsConfig", "description": [], "signature": [ - "{ readonly discardUnknownObjects?: string | undefined; readonly discardCorruptObjects?: string | undefined; readonly pollInterval: number; readonly skip: boolean; readonly batchSize: number; readonly maxBatchSizeBytes: ", + "{ readonly discardUnknownObjects?: string | undefined; readonly discardCorruptObjects?: string | undefined; readonly skip: boolean; readonly pollInterval: number; readonly batchSize: number; readonly maxBatchSizeBytes: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index 6046df2517200c..857b89e1eab769 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index 0b3a3fa873489e..fee43d4cebbe64 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_server.devdocs.json b/api_docs/kbn_core_saved_objects_server.devdocs.json index 3890cd7f96e1ec..b6888cc7a41bf1 100644 --- a/api_docs/kbn_core_saved_objects_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_server.devdocs.json @@ -309,7 +309,7 @@ "\nThe overall status of the authorization check as a string:\n'fully_authorized' | 'partially_authorized' | 'unauthorized'" ], "signature": [ - "\"fully_authorized\" | \"partially_authorized\" | \"unauthorized\"" + "\"unauthorized\" | \"fully_authorized\" | \"partially_authorized\"" ], "path": "packages/core/saved-objects/core-saved-objects-server/src/extensions/security.ts", "deprecated": false, @@ -2569,7 +2569,7 @@ "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts" }, { - "plugin": "core", + "plugin": "@kbn/core", "path": "src/core/server/index.ts" }, { @@ -3081,6 +3081,301 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelBidirectionalTransformation", + "type": "Interface", + "tags": [], + "label": "SavedObjectModelBidirectionalTransformation", + "description": [ + "\nA bidirectional transformation.\n\nBidirectional transformations define migration functions that can be used to\ntransform a document from the lower version to the higher one (`up`), and\nthe other way around, from the higher version to the lower one (`down`)\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelBidirectionalTransformation", + "text": "SavedObjectModelBidirectionalTransformation" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelBidirectionalTransformation.up", + "type": "Function", + "tags": [], + "label": "up", + "description": [ + "\nThe upward (previous=>next) transformation." + ], + "signature": [ + "(document: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationDoc", + "text": "SavedObjectModelTransformationDoc" + }, + ", context: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationContext", + "text": "SavedObjectModelTransformationContext" + }, + ") => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationResult", + "text": "SavedObjectModelTransformationResult" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelBidirectionalTransformation.up.$1", + "type": "CompoundType", + "tags": [], + "label": "document", + "description": [], + "signature": [ + "SavedObjectDoc & { references: ", + { + "pluginId": "@kbn/core-saved-objects-common", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsCommonPluginApi", + "section": "def-common.SavedObjectReference", + "text": "SavedObjectReference" + }, + "[]; }" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelBidirectionalTransformation.up.$2", + "type": "Object", + "tags": [], + "label": "context", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationContext", + "text": "SavedObjectModelTransformationContext" + } + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelBidirectionalTransformation.down", + "type": "Function", + "tags": [], + "label": "down", + "description": [ + "\nThe downward (next=>previous) transformation." + ], + "signature": [ + "(document: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationDoc", + "text": "SavedObjectModelTransformationDoc" + }, + ", context: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationContext", + "text": "SavedObjectModelTransformationContext" + }, + ") => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationResult", + "text": "SavedObjectModelTransformationResult" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelBidirectionalTransformation.down.$1", + "type": "CompoundType", + "tags": [], + "label": "document", + "description": [], + "signature": [ + "SavedObjectDoc & { references: ", + { + "pluginId": "@kbn/core-saved-objects-common", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsCommonPluginApi", + "section": "def-common.SavedObjectReference", + "text": "SavedObjectReference" + }, + "[]; }" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelBidirectionalTransformation.down.$2", + "type": "Object", + "tags": [], + "label": "context", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationContext", + "text": "SavedObjectModelTransformationContext" + } + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationContext", + "type": "Interface", + "tags": [], + "label": "SavedObjectModelTransformationContext", + "description": [ + "\nContext passed down to {@link SavedObjectModelTransformationFn | transformation functions}.\n" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationContext.log", + "type": "Object", + "tags": [], + "label": "log", + "description": [ + "\nlogger instance to be used by the migration handler" + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsMigrationLogger", + "text": "SavedObjectsMigrationLogger" + } + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationContext.modelVersion", + "type": "number", + "tags": [], + "label": "modelVersion", + "description": [ + "\nThe model version this migration is registered for" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationResult", + "type": "Interface", + "tags": [], + "label": "SavedObjectModelTransformationResult", + "description": [ + "\nReturn type for the {@link SavedObjectModelTransformationFn | transformation functions}\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationResult", + "text": "SavedObjectModelTransformationResult" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationResult.document", + "type": "CompoundType", + "tags": [], + "label": "document", + "description": [], + "signature": [ + "SavedObjectDoc & { references: ", + { + "pluginId": "@kbn/core-saved-objects-common", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsCommonPluginApi", + "section": "def-common.SavedObjectReference", + "text": "SavedObjectReference" + }, + "[]; }" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-saved-objects-server", "id": "def-common.SavedObjectReference", @@ -3936,6 +4231,186 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelExpansionChange", + "type": "Interface", + "tags": [], + "label": "SavedObjectsModelExpansionChange", + "description": [ + "\n{@link SavedObjectsModelChange | model change} representing an expansion.\n\nA model expansion can do either, or both, or those:\n- add new mappings\n- migrate data in a backward-compatible way\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsModelExpansionChange", + "text": "SavedObjectsModelExpansionChange" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelExpansionChange.type", + "type": "string", + "tags": [], + "label": "type", + "description": [ + "\nThe type of {@link SavedObjectsModelChange | change}, used to identify them internally." + ], + "signature": [ + "\"expansion\"" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelExpansionChange.transformation", + "type": "Object", + "tags": [], + "label": "transformation", + "description": [ + "\n(optional) A bidirectional transformation to migrate the document from and/or to the previous model version." + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelBidirectionalTransformation", + "text": "SavedObjectModelBidirectionalTransformation" + }, + " | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelExpansionChange.addedMappings", + "type": "Object", + "tags": [], + "label": "addedMappings", + "description": [ + "\n(optional) The new mappings introduced in this version." + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsMappingProperties", + "text": "SavedObjectsMappingProperties" + }, + " | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelExpansionChange.deprecatedMappings", + "type": "Array", + "tags": [], + "label": "deprecatedMappings", + "description": [ + "\n(optional) A list of paths to mappings to flag as deprecated. Deprecated mappings should no longer be used and will\neventually be deleted later." + ], + "signature": [ + "string[] | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelVersion", + "type": "Interface", + "tags": [], + "label": "SavedObjectsModelVersion", + "description": [ + "\nRepresents a model version of a given savedObjects type.\n\nModel versions supersede the {@link SavedObjectsType.migrations | migrations} (and {@link SavedObjectsType.schemas | schemas}) APIs\nby exposing an unified way of describing the changes of shape or data of a type.\n" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelVersion.modelChange", + "type": "Object", + "tags": [], + "label": "modelChange", + "description": [ + "\nThe {@link SavedObjectsModelChange | changes} associated with this version." + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsModelExpansionChange", + "text": "SavedObjectsModelExpansionChange" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelVersionMap", + "type": "Interface", + "tags": [], + "label": "SavedObjectsModelVersionMap", + "description": [ + "\nA record of {@link SavedObjectsModelVersion | model versions} for a given savedObjects type.\nThe record's keys must be integers, starting with 1 for the first entry, and there shouldn't be gaps.\n" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelVersionMap.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[modelVersion: string]: SavedObjectsModelVersion", + "description": [], + "signature": [ + "[modelVersion: string]: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsModelVersion", + "text": "SavedObjectsModelVersion" + } + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-saved-objects-server", "id": "def-common.SavedObjectsRawDoc", @@ -5530,7 +6005,7 @@ "\nThe {@link SavedObjectsNamespaceType | namespace type} for the type." ], "signature": [ - "\"single\" | \"multiple\" | \"multiple-isolated\" | \"agnostic\"" + "\"single\" | \"multiple\" | \"agnostic\" | \"multiple-isolated\"" ], "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", "deprecated": false, @@ -5695,23 +6170,23 @@ "references": [ { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/validate_migrations.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts" }, { "plugin": "actions", @@ -5827,71 +6302,71 @@ }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" }, { "plugin": "@kbn/core-saved-objects-migration-server-internal", - "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts" + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts" } ] }, @@ -5917,6 +6392,55 @@ "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsType.modelVersions", + "type": "CompoundType", + "tags": [ + "alpha" + ], + "label": "modelVersions", + "description": [ + "\nA map of model versions associated with this type.\n\nModel versions supersede the {@link SavedObjectsType.migrations | migrations} (and {@link SavedObjectsType.schemas | schemas}) APIs\nby exposing an unified way of describing the changes of shape or data of the type.\n\nModel versioning is decoupled from Kibana versioning, and isolated between types.\nModel versions are identified by a single numeric value, starting at `1` and without gaps.\n\nPlease refer to {@link SavedObjectsModelVersion} for details on the API's usages.\n\nA **valid** versioning would be:\n\n```ts\n{\n name: 'foo',\n // other mandatory attributes...\n modelVersions: {\n '1': modelVersion1,\n '2': modelVersion2,\n '3': modelVersion3,\n }\n}\n```\n\nA **invalid** versioning would be:\n\n```ts\n{\n name: 'foo',\n // other mandatory attributes...\n modelVersions: {\n '1': modelVersion1,\n '3': modelVersion3, // ERROR, no model version 2\n '3.1': modelVersion31, // ERROR, model version is a single numeric value\n }\n}\n```\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsModelVersionMap", + "text": "SavedObjectsModelVersionMap" + }, + " | ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsModelVersionMapProvider", + "text": "SavedObjectsModelVersionMapProvider" + }, + " | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsType.switchToModelVersionAt", + "type": "string", + "tags": [], + "label": "switchToModelVersionAt", + "description": [ + "\nAllows to opt-in to the new model version API.\n\nMust be a valid semver version (with the patch version being necessarily 0)\n\nWhen specified, the type will switch from using the {@link SavedObjectsType.migrations | legacy migration API}\nto use the {@link SavedObjectsType.modelVersions | modelVersion API} after the specified version.\n\nWhen opted in, it will no longer be possible to use the legacy migration API after the specified version.\n\nA **valid** usage example would be:\n\n```ts\n{\n name: 'foo',\n // other mandatory attributes...\n switchToModelVersionAt: '8.8.0',\n migrations: {\n '8.1.0': migrateTo810,\n '8.7.0': migrateTo870,\n },\n modelVersions: {\n '1': modelVersion1\n }\n}\n```\n\nAn **invalid** usage example would be:\n\n```ts\n{\n name: 'foo',\n // other mandatory attributes...\n switchToModelVersionAt: '8.9.0',\n migrations: {\n '8.1.0': migrateTo8_1,\n '8.9.0': migrateTo8_9, // error: migration registered for the switch version\n '8.10.0': migrateTo8_10, // error: migration registered for after the switch version\n },\n modelVersions: {\n '1': modelVersion1\n }\n}\n```\n\nPlease refer to the {@link SavedObjectsType.modelVersions | modelVersion API} for more documentation on\nthe new API.\n" + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -6559,6 +7083,117 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationDoc", + "type": "Type", + "tags": [], + "label": "SavedObjectModelTransformationDoc", + "description": [ + "\nDocument type used during model migration.\n" + ], + "signature": [ + "SavedObjectDoc & { references: ", + { + "pluginId": "@kbn/core-saved-objects-common", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsCommonPluginApi", + "section": "def-common.SavedObjectReference", + "text": "SavedObjectReference" + }, + "[]; }" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationFn", + "type": "Type", + "tags": [], + "label": "SavedObjectModelTransformationFn", + "description": [ + "\nTransformation function for the model version API.\n\nSimilar to the old migration system, model version transformations take the document to migrate\nand a context object as input and must return the transformed document in its return value.\n" + ], + "signature": [ + "(document: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationDoc", + "text": "SavedObjectModelTransformationDoc" + }, + ", context: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationContext", + "text": "SavedObjectModelTransformationContext" + }, + ") => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationResult", + "text": "SavedObjectModelTransformationResult" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationFn.$1", + "type": "CompoundType", + "tags": [], + "label": "document", + "description": [], + "signature": [ + "SavedObjectDoc & { references: ", + { + "pluginId": "@kbn/core-saved-objects-common", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsCommonPluginApi", + "section": "def-common.SavedObjectReference", + "text": "SavedObjectReference" + }, + "[]; }" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationFn.$2", + "type": "Object", + "tags": [], + "label": "context", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectModelTransformationContext", + "text": "SavedObjectModelTransformationContext" + } + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-saved-objects-server", "id": "def-common.SavedObjectSanitizedDoc", @@ -7077,6 +7712,56 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelChange", + "type": "Type", + "tags": [], + "label": "SavedObjectsModelChange", + "description": [ + "\nIdentify the model change associated with a given {@link SavedObjectsModelVersion}.\n\nAt the moment, Only one type of change is supported: {@link SavedObjectsModelExpansionChange | expansions}.\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsModelExpansionChange", + "text": "SavedObjectsModelExpansionChange" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsModelVersionMapProvider", + "type": "Type", + "tags": [], + "label": "SavedObjectsModelVersionMapProvider", + "description": [ + "\nA function returning a {@link SavedObjectsModelVersionMap | model version map}\n\nEnsured to be called after all plugins executed their `setup` phase.\nSimilar to what was done with migrations, can be used to defer resolving the model versions\nassociated to a type to after all plugins have been set up.\n" + ], + "signature": [ + "() => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsModelVersionMap", + "text": "SavedObjectsModelVersionMap" + } + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-saved-objects-server", "id": "def-common.SavedObjectsSecurityExtensionFactory", diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 87d773ba1eb890..ac2d200c35b27d 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 329 | 0 | 96 | 1 | +| 358 | 0 | 104 | 1 | ## Common diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index e485af1e5360a9..32735b6dc5b99d 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index df25c86f565126..b6654eddc2d75f 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index 6df7b9144b6e34..42b5e22e546016 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_status_common.devdocs.json b/api_docs/kbn_core_status_common.devdocs.json index 10cab0bc062636..9f812b6cacb3d2 100644 --- a/api_docs/kbn_core_status_common.devdocs.json +++ b/api_docs/kbn_core_status_common.devdocs.json @@ -211,7 +211,7 @@ "\nPossible values for the ID of a {@link ServiceStatusLevel}\n" ], "signature": [ - "\"degraded\" | \"unavailable\" | \"available\" | \"critical\"" + "\"degraded\" | \"unavailable\" | \"critical\" | \"available\"" ], "path": "packages/core/status/core-status-common/src/service_status.ts", "deprecated": false, diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 884151ff0d1b26..c490e15d7aef02 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_status_common_internal.devdocs.json b/api_docs/kbn_core_status_common_internal.devdocs.json index 7f1ad0a639fb5f..bf962bc7f7b7f8 100644 --- a/api_docs/kbn_core_status_common_internal.devdocs.json +++ b/api_docs/kbn_core_status_common_internal.devdocs.json @@ -201,7 +201,7 @@ "label": "level", "description": [], "signature": [ - "\"degraded\" | \"unavailable\" | \"available\" | \"critical\"" + "\"degraded\" | \"unavailable\" | \"critical\" | \"available\"" ], "path": "packages/core/status/core-status-common-internal/src/status.ts", "deprecated": false, diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index fa9c757d586729..481d63a5b7c7f0 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_status_server.devdocs.json b/api_docs/kbn_core_status_server.devdocs.json index b345658f087904..f417cc31259e8d 100644 --- a/api_docs/kbn_core_status_server.devdocs.json +++ b/api_docs/kbn_core_status_server.devdocs.json @@ -398,7 +398,7 @@ "\nPossible values for the ID of a {@link ServiceStatusLevel}\n" ], "signature": [ - "\"degraded\" | \"unavailable\" | \"available\" | \"critical\"" + "\"degraded\" | \"unavailable\" | \"critical\" | \"available\"" ], "path": "packages/core/status/core-status-common/src/service_status.ts", "deprecated": false, diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 4c8202bc5b0bd5..54821cc75611ca 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index a8247f55dabfc2..990e9ec7103cd0 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index 2d1f6eb6439fdf..770fb68ffe8664 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index 810ea7cae355fd..5a4d0787673ef1 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index 6141868f07e50b..aa822456afc13a 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_test_helpers_kbn_server.devdocs.json b/api_docs/kbn_core_test_helpers_kbn_server.devdocs.json index 13f39f2016fb44..2dbf01c6a6480e 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.devdocs.json +++ b/api_docs/kbn_core_test_helpers_kbn_server.devdocs.json @@ -666,7 +666,7 @@ "label": "HttpMethod", "description": [], "signature": [ - "\"get\" | \"post\" | \"put\" | \"delete\" | \"patch\" | \"head\"" + "\"get\" | \"delete\" | \"head\" | \"post\" | \"put\" | \"patch\"" ], "path": "packages/core/test-helpers/core-test-helpers-kbn-server/src/create_root.ts", "deprecated": false, diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 929e9cc8151c44..7f4615e1fb4930 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.devdocs.json b/api_docs/kbn_core_test_helpers_so_type_serializer.devdocs.json index 82290b2116ef26..df070b1f4b526f 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.devdocs.json +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.devdocs.json @@ -156,7 +156,7 @@ "label": "namespaceType", "description": [], "signature": [ - "\"single\" | \"multiple\" | \"multiple-isolated\" | \"agnostic\"" + "\"single\" | \"multiple\" | \"agnostic\" | \"multiple-isolated\"" ], "path": "packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts", "deprecated": false, @@ -242,6 +242,35 @@ "path": "packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-test-helpers-so-type-serializer", + "id": "def-common.SavedObjectTypeMigrationInfo.modelVersions", + "type": "Array", + "tags": [], + "label": "modelVersions", + "description": [], + "signature": [ + "ModelVersionSummary", + "[]" + ], + "path": "packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-test-helpers-so-type-serializer", + "id": "def-common.SavedObjectTypeMigrationInfo.switchToModelVersionAt", + "type": "string", + "tags": [], + "label": "switchToModelVersionAt", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 5dffa7d5ca947a..95c637ea21bccd 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 13 | 0 | 12 | 0 | +| 15 | 0 | 14 | 1 | ## Common diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index ddddbaa1a05c0e..e490bfaf7a6ce1 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 04eb0a2ae1149a..7d1190378e7575 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_theme_browser_internal.mdx b/api_docs/kbn_core_theme_browser_internal.mdx index 4a2d95da8c3819..a4beefa2e4c3b1 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-internal'] --- import kbnCoreThemeBrowserInternalObj from './kbn_core_theme_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 11230e92609317..35a50119988a11 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_ui_settings_browser.devdocs.json b/api_docs/kbn_core_ui_settings_browser.devdocs.json index bffcf4582a71e4..f39807e781468e 100644 --- a/api_docs/kbn_core_ui_settings_browser.devdocs.json +++ b/api_docs/kbn_core_ui_settings_browser.devdocs.json @@ -538,7 +538,7 @@ "label": "PublicUiSettingsParams", "description": [], "signature": [ - "{ name?: string | undefined; value?: unknown; description?: string | undefined; category?: string[] | undefined; options?: string[] | number[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; type?: ", + "{ type?: ", { "pluginId": "@kbn/core-ui-settings-common", "scope": "common", @@ -546,23 +546,23 @@ "section": "def-common.UiSettingsType", "text": "UiSettingsType" }, - " | undefined; deprecation?: ", + " | undefined; options?: string[] | number[] | undefined; value?: unknown; scope?: ", { "pluginId": "@kbn/core-ui-settings-common", "scope": "common", "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.DeprecationSettings", - "text": "DeprecationSettings" + "section": "def-common.UiSettingsScope", + "text": "UiSettingsScope" }, - " | undefined; order?: number | undefined; metric?: { type: string; name: string; } | undefined; scope?: ", + " | undefined; order?: number | undefined; name?: string | undefined; description?: string | undefined; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", { "pluginId": "@kbn/core-ui-settings-common", "scope": "common", "docId": "kibKbnCoreUiSettingsCommonPluginApi", - "section": "def-common.UiSettingsScope", - "text": "UiSettingsScope" + "section": "def-common.DeprecationSettings", + "text": "DeprecationSettings" }, - " | undefined; }" + " | undefined; metric?: { type: string; name: string; } | undefined; }" ], "path": "packages/core/ui-settings/core-ui-settings-browser/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index f4ab6d78ad8972..2fd92bc8bfe855 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index 2ca4f0691f1b68..5c177242b73683 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index 2a91d8d64590b2..b16af749187ee0 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_ui_settings_common.devdocs.json b/api_docs/kbn_core_ui_settings_common.devdocs.json index e8e61fb48328f1..75913bf8f3cad9 100644 --- a/api_docs/kbn_core_ui_settings_common.devdocs.json +++ b/api_docs/kbn_core_ui_settings_common.devdocs.json @@ -441,7 +441,7 @@ "\nDenotes the scope of the setting" ], "signature": [ - "\"namespace\" | \"global\"" + "\"global\" | \"namespace\"" ], "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", "deprecated": false, @@ -458,7 +458,7 @@ "\nUI element type to represent the settings." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"image\" | \"json\" | \"markdown\" | \"select\" | \"array\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"select\" | \"image\" | \"color\" | \"json\" | \"markdown\" | \"array\"" ], "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", "deprecated": false, diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 1ce16af43b5bc2..cd4c1af7dc6fd2 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index c10dbcfa72139b..ca84c0bd80024d 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index 820ed14a65e06c..fe2d99129a8dfe 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 4eefd75e3529b0..e8155a46d980f4 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_usage_data_server.devdocs.json b/api_docs/kbn_core_usage_data_server.devdocs.json index 5ffe116334c386..11fa425905afff 100644 --- a/api_docs/kbn_core_usage_data_server.devdocs.json +++ b/api_docs/kbn_core_usage_data_server.devdocs.json @@ -55,7 +55,7 @@ "label": "http", "description": [], "signature": [ - "{ basePathConfigured: boolean; maxPayloadInBytes: number; rewriteBasePath: boolean; keepaliveTimeout: number; socketTimeout: number; compression: { enabled: boolean; referrerWhitelistConfigured: boolean; }; xsrf: { disableProtection: boolean; allowlistConfigured: boolean; }; requestId: { allowFromAnyIp: boolean; ipAllowlistConfigured: boolean; }; ssl: { certificateAuthoritiesConfigured: boolean; certificateConfigured: boolean; cipherSuites: string[]; keyConfigured: boolean; keystoreConfigured: boolean; truststoreConfigured: boolean; redirectHttpFromPortConfigured: boolean; supportedProtocols: string[]; clientAuthentication: \"optional\" | \"none\" | \"required\"; }; securityResponseHeaders: { strictTransportSecurity: string; xContentTypeOptions: string; referrerPolicy: string; permissionsPolicyConfigured: boolean; disableEmbedding: boolean; crossOriginOpenerPolicy: string; }; }" + "{ basePathConfigured: boolean; maxPayloadInBytes: number; rewriteBasePath: boolean; keepaliveTimeout: number; socketTimeout: number; compression: { enabled: boolean; referrerWhitelistConfigured: boolean; }; xsrf: { disableProtection: boolean; allowlistConfigured: boolean; }; requestId: { allowFromAnyIp: boolean; ipAllowlistConfigured: boolean; }; ssl: { certificateAuthoritiesConfigured: boolean; certificateConfigured: boolean; cipherSuites: string[]; keyConfigured: boolean; keystoreConfigured: boolean; truststoreConfigured: boolean; redirectHttpFromPortConfigured: boolean; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }; securityResponseHeaders: { strictTransportSecurity: string; xContentTypeOptions: string; referrerPolicy: string; permissionsPolicyConfigured: boolean; disableEmbedding: boolean; crossOriginOpenerPolicy: string; }; }" ], "path": "packages/core/usage-data/core-usage-data-server/src/core_usage_data.ts", "deprecated": false, diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 748038923e349a..016f3ced7db021 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index 6c8faf76c54e41..ceee82a34d4cec 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index 89dca6c96dbec2..2da89ace327bff 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 67fbd85335110d..38862eea22ae78 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index a077e4ecf2b083..b0dcd85946cffa 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 36e28090a20811..ea5fa70c4cf6f3 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_datemath.devdocs.json b/api_docs/kbn_datemath.devdocs.json index 0b4de2e3a6390c..eab4721dc49ff5 100644 --- a/api_docs/kbn_datemath.devdocs.json +++ b/api_docs/kbn_datemath.devdocs.json @@ -119,7 +119,7 @@ "label": "Unit", "description": [], "signature": [ - "\"y\" | \"M\" | \"w\" | \"d\" | \"h\" | \"m\" | \"s\" | \"ms\"" + "\"m\" | \"s\" | \"y\" | \"M\" | \"w\" | \"d\" | \"h\" | \"ms\"" ], "path": "packages/kbn-datemath/index.ts", "deprecated": false, @@ -200,7 +200,7 @@ "label": "UnitsMap", "description": [], "signature": [ - "{ y: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; M: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; w: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; d: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; h: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; m: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; s: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; ms: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; }" + "{ m: { weight: number; type: \"fixed\" | \"mixed\" | \"calendar\"; base: number; }; s: { weight: number; type: \"fixed\" | \"mixed\" | \"calendar\"; base: number; }; y: { weight: number; type: \"fixed\" | \"mixed\" | \"calendar\"; base: number; }; M: { weight: number; type: \"fixed\" | \"mixed\" | \"calendar\"; base: number; }; w: { weight: number; type: \"fixed\" | \"mixed\" | \"calendar\"; base: number; }; d: { weight: number; type: \"fixed\" | \"mixed\" | \"calendar\"; base: number; }; h: { weight: number; type: \"fixed\" | \"mixed\" | \"calendar\"; base: number; }; ms: { weight: number; type: \"fixed\" | \"mixed\" | \"calendar\"; base: number; }; }" ], "path": "packages/kbn-datemath/index.ts", "deprecated": false, diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 42ba58a97cf3da..c315293d814164 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; -elasticsearch datemath parser, used in kibana -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index d7e358e6a7aa49..b48ce46ecae069 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_dev_cli_runner.devdocs.json b/api_docs/kbn_dev_cli_runner.devdocs.json index 06885fbd9480e3..0b98f6d345d607 100644 --- a/api_docs/kbn_dev_cli_runner.devdocs.json +++ b/api_docs/kbn_dev_cli_runner.devdocs.json @@ -1526,7 +1526,7 @@ "label": "log", "description": [], "signature": [ - "{ defaultLevel?: \"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\" | undefined; } | undefined" + "{ defaultLevel?: \"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\" | undefined; } | undefined" ], "path": "packages/kbn-dev-cli-runner/src/run.ts", "deprecated": false, @@ -1585,7 +1585,7 @@ "label": "log", "description": [], "signature": [ - "{ defaultLevel?: \"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\" | undefined; } | undefined" + "{ defaultLevel?: \"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\" | undefined; } | undefined" ], "path": "packages/kbn-dev-cli-runner/src/run_with_commands.ts", "deprecated": false, diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 105d35cb627432..35db7b9537f107 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index b33576a76dd17a..13eebde1ffd30d 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index 287865db537600..1ad361f4be3d68 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index 95bd54c7055c26..5c2b615b390117 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -300,7 +300,7 @@ "label": "enterpriseSearch", "description": [], "signature": [ - "{ readonly apiKeys: string; readonly behavioralAnalyticsEvents: string; readonly bulkApi: string; readonly configuration: string; readonly connectors: string; readonly connectorsMongoDB: string; readonly connectorsMySQL: string; readonly connectorsWorkplaceSearch: string; readonly crawlerManaging: string; readonly crawlerOverview: string; readonly deployTrainedModels: string; readonly documentLevelSecurity: string; readonly ingestPipelines: string; readonly languageAnalyzers: string; readonly languageClients: string; readonly licenseManagement: string; readonly machineLearningStart: string; readonly mailService: string; readonly start: string; readonly syncRules: string; readonly troubleshootSetup: string; readonly usersAccess: string; }" + "{ readonly apiKeys: string; readonly behavioralAnalyticsEvents: string; readonly bulkApi: string; readonly configuration: string; readonly connectors: string; readonly connectorsMongoDB: string; readonly connectorsMySQL: string; readonly connectorsWorkplaceSearch: string; readonly crawlerManaging: string; readonly crawlerOverview: string; readonly deployTrainedModels: string; readonly documentLevelSecurity: string; readonly engines: string; readonly ingestPipelines: string; readonly languageAnalyzers: string; readonly languageClients: string; readonly licenseManagement: string; readonly machineLearningStart: string; readonly mailService: string; readonly start: string; readonly syncRules: string; readonly troubleshootSetup: string; readonly usersAccess: string; }" ], "path": "packages/kbn-doc-links/src/types.ts", "deprecated": false, @@ -398,7 +398,7 @@ "label": "aggs", "description": [], "signature": [ - "{ readonly composite: string; readonly composite_missing_bucket: string; readonly date_histogram: string; readonly date_range: string; readonly date_format_pattern: string; readonly filter: string; readonly filters: string; readonly geohash_grid: string; readonly histogram: string; readonly ip_range: string; readonly range: string; readonly significant_terms: string; readonly terms: string; readonly terms_doc_count_error: string; readonly rare_terms: string; readonly avg: string; readonly avg_bucket: string; readonly max_bucket: string; readonly min_bucket: string; readonly sum_bucket: string; readonly cardinality: string; readonly count: string; readonly cumulative_sum: string; readonly derivative: string; readonly geo_bounds: string; readonly geo_centroid: string; readonly max: string; readonly median: string; readonly min: string; readonly moving_avg: string; readonly percentile_ranks: string; readonly serial_diff: string; readonly std_dev: string; readonly sum: string; readonly top_hits: string; }" + "{ readonly composite: string; readonly composite_missing_bucket: string; readonly date_histogram: string; readonly date_range: string; readonly date_format_pattern: string; readonly filter: string; readonly filters: string; readonly geohash_grid: string; readonly histogram: string; readonly ip_range: string; readonly range: string; readonly significant_terms: string; readonly terms: string; readonly terms_doc_count_error: string; readonly rare_terms: string; readonly avg: string; readonly avg_bucket: string; readonly max_bucket: string; readonly min_bucket: string; readonly sum_bucket: string; readonly cardinality: string; readonly count: string; readonly cumulative_sum: string; readonly derivative: string; readonly geo_bounds: string; readonly geo_centroid: string; readonly max: string; readonly median: string; readonly min: string; readonly moving_avg: string; readonly percentile_ranks: string; readonly serial_diff: string; readonly std_dev: string; readonly sum: string; readonly top_hits: string; readonly change_point: string; }" ], "path": "packages/kbn-doc-links/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 306f686c6e60c0..41d47fc9cbc233 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-docs](https://github.com/orgs/elastic/teams/kibana-docs) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 25fd521f294fe9..3b03066ef17c7d 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index f9b8bdf0b5ab23..3c84ccf2edcbcf 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index d87a7945a7f850..2410dc4c2bf863 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ecs_data_quality_dashboard.devdocs.json b/api_docs/kbn_ecs_data_quality_dashboard.devdocs.json new file mode 100644 index 00000000000000..d675f903d244cd --- /dev/null +++ b/api_docs/kbn_ecs_data_quality_dashboard.devdocs.json @@ -0,0 +1,171 @@ +{ + "id": "@kbn/ecs-data-quality-dashboard", + "client": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.DataQualityPanel", + "type": "Function", + "tags": [], + "label": "DataQualityPanel", + "description": [ + "Renders the `Data Quality` dashboard content" + ], + "signature": [ + "React.NamedExoticComponent" + ], + "path": "x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/index.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.DataQualityPanel.$1", + "type": "Uncategorized", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "P" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.getIlmPhaseDescription", + "type": "Function", + "tags": [], + "label": "getIlmPhaseDescription", + "description": [ + "\nReturns an i18n description of an an ILM phase" + ], + "signature": [ + "(phase: string) => string" + ], + "path": "x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/helpers.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.getIlmPhaseDescription.$1", + "type": "string", + "tags": [], + "label": "phase", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/helpers.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.DATA_QUALITY_SUBTITLE", + "type": "string", + "tags": [], + "label": "DATA_QUALITY_SUBTITLE", + "description": [ + "The subtitle displayed on the Data Quality dashboard" + ], + "path": "x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/translations.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.ECS_REFERENCE_URL", + "type": "string", + "tags": [], + "label": "ECS_REFERENCE_URL", + "description": [ + "The documentation link shown in the `Data Quality` dashboard" + ], + "signature": [ + "\"https://www.elastic.co/guide/en/ecs/current/ecs-reference.html\"" + ], + "path": "x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/markdown/helpers.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.ILM_PHASE", + "type": "string", + "tags": [], + "label": "ILM_PHASE", + "description": [ + "The label displayed for the `ILM phase` combo box on the Data Quality dashboard" + ], + "path": "x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/translations.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.INDEX_LIFECYCLE_MANAGEMENT_PHASES", + "type": "string", + "tags": [], + "label": "INDEX_LIFECYCLE_MANAGEMENT_PHASES", + "description": [ + "The tooltip for the `ILM phase` combo box on the Data Quality Dashboard" + ], + "path": "x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/translations.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ecs-data-quality-dashboard", + "id": "def-public.SELECT_ONE_OR_MORE_ILM_PHASES", + "type": "string", + "tags": [], + "label": "SELECT_ONE_OR_MORE_ILM_PHASES", + "description": [ + "The placeholder for the `ILM phase` combo box on the Data Quality Dashboard" + ], + "path": "x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/translations.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx new file mode 100644 index 00000000000000..f3211aa05bce2b --- /dev/null +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -0,0 +1,33 @@ +--- +#### +#### 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: kibKbnEcsDataQualityDashboardPluginApi +slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard +title: "@kbn/ecs-data-quality-dashboard" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/ecs-data-quality-dashboard plugin +date: 2023-02-09 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] +--- +import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; + + + +Contact [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 9 | 0 | 1 | 0 | + +## Client + +### Functions + + +### Consts, variables and types + + diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index b52410eff9a41f..9b0cbfdbff84c9 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index feb2d47ad4b36d..258a055c5b16a3 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index 51a01c84ef002f..2a5b9034fa94d0 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_es_query.devdocs.json b/api_docs/kbn_es_query.devdocs.json index 8bfb4b0ebbbd02..419b01d31bd166 100644 --- a/api_docs/kbn_es_query.devdocs.json +++ b/api_docs/kbn_es_query.devdocs.json @@ -4209,10 +4209,10 @@ "FilterMetaParams", " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): string | undefined; push(...items: string[]): number; concat(...items: ConcatArray[]): string[]; concat(...items: (string | ConcatArray)[]): string[]; join(separator?: string | undefined): string; reverse(): string[]; shift(): string | undefined; slice(start?: number | undefined, end?: number | undefined): string[]; sort(compareFn?: ((a: string, b: string) => number) | undefined): string[]; splice(start: number, deleteCount?: number | undefined): string[]; splice(start: number, deleteCount: number, ...items: string[]): string[]; unshift(...items: string[]): number; indexOf(searchElement: string, fromIndex?: number | undefined): number; lastIndexOf(searchElement: string, fromIndex?: number | undefined): number; every(predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): boolean; some(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any): void; map(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any): U[]; filter(predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string[]; reduce(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; reduce(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; reduce(callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; reduceRight(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; reduceRight(callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; find(predicate: (this: void, value: string, index: number, obj: string[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: string, index: number, obj: string[]) => unknown, thisArg?: any): string | undefined; findIndex(predicate: (value: string, index: number, obj: string[]) => unknown, thisArg?: any): number; fill(value: string, start?: number | undefined, end?: number | undefined): string[]; copyWithin(target: number, start: number, end?: number | undefined): string[]; entries(): IterableIterator<[number, string]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: string, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: string, index: number, array: string[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): string | undefined; } | { query: ", "FilterMetaParams", - " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): number | undefined; push(...items: number[]): number; concat(...items: ConcatArray[]): number[]; concat(...items: (number | ConcatArray)[]): number[]; join(separator?: string | undefined): string; reverse(): number[]; shift(): number | undefined; slice(start?: number | undefined, end?: number | undefined): number[]; sort(compareFn?: ((a: number, b: number) => number) | undefined): number[]; splice(start: number, deleteCount?: number | undefined): number[]; splice(start: number, deleteCount: number, ...items: number[]): number[]; unshift(...items: number[]): number; indexOf(searchElement: number, fromIndex?: number | undefined): number; lastIndexOf(searchElement: number, fromIndex?: number | undefined): number; every(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; some(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any): void; map(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any): U[]; filter(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; find(predicate: (this: void, value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; findIndex(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; fill(value: number, start?: number | undefined, end?: number | undefined): number[]; copyWithin(target: number, start: number, end?: number | undefined): number[]; entries(): IterableIterator<[number, number]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: number, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): number | undefined; } | { query: ", - "FilterMetaParams", " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): boolean | undefined; push(...items: boolean[]): number; concat(...items: ConcatArray[]): boolean[]; concat(...items: (boolean | ConcatArray)[]): boolean[]; join(separator?: string | undefined): string; reverse(): boolean[]; shift(): boolean | undefined; slice(start?: number | undefined, end?: number | undefined): boolean[]; sort(compareFn?: ((a: boolean, b: boolean) => number) | undefined): boolean[]; splice(start: number, deleteCount?: number | undefined): boolean[]; splice(start: number, deleteCount: number, ...items: boolean[]): boolean[]; unshift(...items: boolean[]): number; indexOf(searchElement: boolean, fromIndex?: number | undefined): number; lastIndexOf(searchElement: boolean, fromIndex?: number | undefined): number; every(predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean; some(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: boolean, index: number, array: boolean[]) => void, thisArg?: any): void; map(callbackfn: (value: boolean, index: number, array: boolean[]) => U, thisArg?: any): U[]; filter(predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean[]; reduce(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean): boolean; reduce(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean, initialValue: boolean): boolean; reduce(callbackfn: (previousValue: U, currentValue: boolean, currentIndex: number, array: boolean[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean): boolean; reduceRight(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean, initialValue: boolean): boolean; reduceRight(callbackfn: (previousValue: U, currentValue: boolean, currentIndex: number, array: boolean[]) => U, initialValue: U): U; find(predicate: (this: void, value: boolean, index: number, obj: boolean[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: boolean, index: number, obj: boolean[]) => unknown, thisArg?: any): boolean | undefined; findIndex(predicate: (value: boolean, index: number, obj: boolean[]) => unknown, thisArg?: any): number; fill(value: boolean, start?: number | undefined, end?: number | undefined): boolean[]; copyWithin(target: number, start: number, end?: number | undefined): boolean[]; entries(): IterableIterator<[number, boolean]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: boolean, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: boolean, index: number, array: boolean[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): boolean | undefined; } | { query: ", "FilterMetaParams", + " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): number | undefined; push(...items: number[]): number; concat(...items: ConcatArray[]): number[]; concat(...items: (number | ConcatArray)[]): number[]; join(separator?: string | undefined): string; reverse(): number[]; shift(): number | undefined; slice(start?: number | undefined, end?: number | undefined): number[]; sort(compareFn?: ((a: number, b: number) => number) | undefined): number[]; splice(start: number, deleteCount?: number | undefined): number[]; splice(start: number, deleteCount: number, ...items: number[]): number[]; unshift(...items: number[]): number; indexOf(searchElement: number, fromIndex?: number | undefined): number; lastIndexOf(searchElement: number, fromIndex?: number | undefined): number; every(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; some(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any): void; map(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any): U[]; filter(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; find(predicate: (this: void, value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; findIndex(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; fill(value: number, start?: number | undefined, end?: number | undefined): number[]; copyWithin(target: number, start: number, end?: number | undefined): number[]; entries(): IterableIterator<[number, number]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: number, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): number | undefined; } | { query: ", + "FilterMetaParams", " | undefined; $state?: { store: ", { "pluginId": "@kbn/es-query", @@ -5298,7 +5298,7 @@ "label": "function", "description": [], "signature": [ - "\"range\" | \"nested\" | \"exists\" | \"is\" | \"and\" | \"or\" | \"not\"" + "\"nested\" | \"is\" | \"and\" | \"or\" | \"not\" | \"range\" | \"exists\"" ], "path": "packages/kbn-es-query/src/kuery/node_types/types.ts", "deprecated": false, @@ -5396,7 +5396,7 @@ "label": "type", "description": [], "signature": [ - "\"function\" | \"wildcard\" | \"literal\"" + "\"function\" | \"literal\" | \"wildcard\"" ], "path": "packages/kbn-es-query/src/kuery/types.ts", "deprecated": false, diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 5fb8d4c69710fa..92de37768d5f48 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_es_types.devdocs.json b/api_docs/kbn_es_types.devdocs.json index f87e463dd060c0..fc197d24736da0 100644 --- a/api_docs/kbn_es_types.devdocs.json +++ b/api_docs/kbn_es_types.devdocs.json @@ -319,9 +319,9 @@ "SearchResponse", ">, \"hits\" | \"aggregations\"> & (TSearchRequest[\"body\"] extends TopLevelAggregationRequest ? WrapAggregationResponse> : TSearchRequest extends TopLevelAggregationRequest ? WrapAggregationResponse> : { aggregations?: unknown; }) & { hits: Omit<", + ">>, \"aggregations\" | \"hits\"> & (TSearchRequest[\"body\"] extends TopLevelAggregationRequest ? WrapAggregationResponse> : TSearchRequest extends TopLevelAggregationRequest ? WrapAggregationResponse> : { aggregations?: unknown; }) & { hits: Omit<", "SearchHitsMetadata", - ", \"hits\" | \"total\"> & (TOptions[\"restTotalHitsAsInt\"] extends true ? { total: number; } : { total: { value: number; relation: \"gte\" | \"eq\"; }; }) & { hits: HitsOf, \"total\" | \"hits\"> & (TOptions[\"restTotalHitsAsInt\"] extends true ? { total: number; } : { total: { value: number; relation: \"gte\" | \"eq\"; }; }) & { hits: HitsOf; }; }" ], @@ -357,9 +357,9 @@ "SearchResponse", ">, \"hits\" | \"aggregations\"> & (TSearchRequest[\"body\"] extends TopLevelAggregationRequest ? WrapAggregationResponse> : TSearchRequest extends TopLevelAggregationRequest ? WrapAggregationResponse> : { aggregations?: unknown; }) & { hits: Omit<", + ">>, \"aggregations\" | \"hits\"> & (TSearchRequest[\"body\"] extends TopLevelAggregationRequest ? WrapAggregationResponse> : TSearchRequest extends TopLevelAggregationRequest ? WrapAggregationResponse> : { aggregations?: unknown; }) & { hits: Omit<", "SearchHitsMetadata", - ", \"hits\" | \"total\"> & (TOptions[\"restTotalHitsAsInt\"] extends true ? { total: number; } : { total: { value: number; relation: \"gte\" | \"eq\"; }; }) & { hits: HitsOf, \"total\" | \"hits\"> & (TOptions[\"restTotalHitsAsInt\"] extends true ? { total: number; } : { total: { value: number; relation: \"gte\" | \"eq\"; }; }) & { hits: HitsOf; }; }" ], diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index af915e1c8a60f9..d4fe9208d6cdde 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 7e63ded0698bd6..834ce9d932fa03 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 59f654dfea57a1..c94e63827cc58f 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_find_used_node_modules.devdocs.json b/api_docs/kbn_find_used_node_modules.devdocs.json index a2c7a9e0104529..b763e0c5eb6fcf 100644 --- a/api_docs/kbn_find_used_node_modules.devdocs.json +++ b/api_docs/kbn_find_used_node_modules.devdocs.json @@ -25,7 +25,9 @@ "type": "Function", "tags": [], "label": "findUsedNodeModules", - "description": [], + "description": [ + "\nParse a list of entry paths and find the node_modules which are required by them. If the\nentry path requires/imports a non-node_module then that file is scanned too, deeply, until\nall referenced files are scanned.\n\nOptionally, we can find the used peers of the used node_modules. This will keep track of all\nthe paths we use to enter a node_module and then traverse from those points, finding the\nused modules and comparing those to the `peerDependencies` listed in the node_module's package.json\nfile. If a used dependeny is in the `peerDependencies` and is used by the node_module it will\nbe included in the results.\n\nThis was implemented mostly for `@emotion/react` which is used by @elastic/eui but only listed\nas a peerDependency. If we didn't keep it in the Kibana package.json then the package would not\nbe installed and cause an error on startup because `@emotion/react` can't be found. We used to\nsolve this by scanning the node_modules directory for all the packages which are used but that\nwas much slower and lead to extra entries in package.json." + ], "signature": [ "(options: Options) => Promise" ], diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index 08aed69cb96af1..e101f0b64ba3c2 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index 3c46723d75692d..f9aaf97d778a19 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index 6f9a8314454922..08d0e2b53981e9 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_get_repo_files.devdocs.json b/api_docs/kbn_get_repo_files.devdocs.json deleted file mode 100644 index e578f06b33325c..00000000000000 --- a/api_docs/kbn_get_repo_files.devdocs.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "id": "@kbn/get-repo-files", - "client": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "server": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "common": { - "classes": [], - "functions": [ - { - "parentPluginId": "@kbn/get-repo-files", - "id": "def-common.getRepoFiles", - "type": "Function", - "tags": [], - "label": "getRepoFiles", - "description": [ - "\nList the files in the repo, only including files which are manged by version\ncontrol or \"untracked\" (new, not committed, and not ignored)." - ], - "signature": [ - "(include: string[] | undefined, exclude: string[] | undefined) => Promise>" - ], - "path": "packages/kbn-get-repo-files/src/get_repo_files.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/get-repo-files", - "id": "def-common.getRepoFiles.$1", - "type": "Array", - "tags": [], - "label": "include", - "description": [ - "limit the list to specfic absolute paths" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/kbn-get-repo-files/src/get_repo_files.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "@kbn/get-repo-files", - "id": "def-common.getRepoFiles.$2", - "type": "Array", - "tags": [], - "label": "exclude", - "description": [ - "exclude specific absolute paths" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/kbn-get-repo-files/src/get_repo_files.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/get-repo-files", - "id": "def-common.getRepoFilesSync", - "type": "Function", - "tags": [], - "label": "getRepoFilesSync", - "description": [ - "\nSynchronously list the files in the repo, only including files which are manged by version\ncontrol or \"untracked\" (new, not committed, and not ignored)." - ], - "signature": [ - "(include: string[] | undefined, exclude: string[] | undefined) => Set<", - { - "pluginId": "@kbn/repo-path", - "scope": "common", - "docId": "kibKbnRepoPathPluginApi", - "section": "def-common.RepoPath", - "text": "RepoPath" - }, - ">" - ], - "path": "packages/kbn-get-repo-files/src/get_repo_files.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/get-repo-files", - "id": "def-common.getRepoFilesSync.$1", - "type": "Array", - "tags": [], - "label": "include", - "description": [ - "limit the list to specfic absolute paths" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/kbn-get-repo-files/src/get_repo_files.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "@kbn/get-repo-files", - "id": "def-common.getRepoFilesSync.$2", - "type": "Array", - "tags": [], - "label": "exclude", - "description": [ - "exclude specific absolute paths" - ], - "signature": [ - "string[] | undefined" - ], - "path": "packages/kbn-get-repo-files/src/get_repo_files.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [], - "initialIsOpen": false - } - ], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - } -} \ No newline at end of file diff --git a/api_docs/kbn_get_repo_files.mdx b/api_docs/kbn_get_repo_files.mdx deleted file mode 100644 index e3326f3f695621..00000000000000 --- a/api_docs/kbn_get_repo_files.mdx +++ /dev/null @@ -1,30 +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: kibKbnGetRepoFilesPluginApi -slug: /kibana-dev-docs/api/kbn-get-repo-files -title: "@kbn/get-repo-files" -image: https://source.unsplash.com/400x175/?github -description: API docs for the @kbn/get-repo-files plugin -date: 2023-02-06 -tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/get-repo-files'] ---- -import kbnGetRepoFilesObj from './kbn_get_repo_files.devdocs.json'; - - - -Contact [Owner missing] for questions regarding this plugin. - -**Code health stats** - -| Public API count | Any count | Items lacking comments | Missing exports | -|-------------------|-----------|------------------------|-----------------| -| 6 | 0 | 0 | 0 | - -## Common - -### Functions - - diff --git a/api_docs/kbn_guided_onboarding.devdocs.json b/api_docs/kbn_guided_onboarding.devdocs.json index 246ef8f89dd34d..41b2b81986fe25 100644 --- a/api_docs/kbn_guided_onboarding.devdocs.json +++ b/api_docs/kbn_guided_onboarding.devdocs.json @@ -215,7 +215,7 @@ "label": "guideId", "description": [], "signature": [ - "\"search\" | \"kubernetes\" | \"siem\" | \"testGuide\"" + "\"siem\" | \"kubernetes\" | \"appSearch\" | \"websiteSearch\" | \"databaseSearch\" | \"testGuide\"" ], "path": "packages/kbn-guided-onboarding/src/types.ts", "deprecated": false, @@ -292,7 +292,7 @@ "label": "id", "description": [], "signature": [ - "\"add_data\" | \"view_dashboard\" | \"tour_observability\" | \"rules\" | \"alertsCases\" | \"search_experience\" | \"step1\" | \"step2\" | \"step3\"" + "\"rules\" | \"add_data\" | \"view_dashboard\" | \"tour_observability\" | \"alertsCases\" | \"search_experience\" | \"step1\" | \"step2\" | \"step3\"" ], "path": "packages/kbn-guided-onboarding/src/types.ts", "deprecated": false, @@ -306,7 +306,7 @@ "label": "status", "description": [], "signature": [ - "\"complete\" | \"in_progress\" | \"active\" | \"inactive\" | \"ready_to_complete\"" + "\"active\" | \"complete\" | \"inactive\" | \"in_progress\" | \"ready_to_complete\"" ], "path": "packages/kbn-guided-onboarding/src/types.ts", "deprecated": false, @@ -334,7 +334,7 @@ "label": "id", "description": [], "signature": [ - "\"add_data\" | \"view_dashboard\" | \"tour_observability\" | \"rules\" | \"alertsCases\" | \"search_experience\" | \"step1\" | \"step2\" | \"step3\"" + "\"rules\" | \"add_data\" | \"view_dashboard\" | \"tour_observability\" | \"alertsCases\" | \"search_experience\" | \"step1\" | \"step2\" | \"step3\"" ], "path": "packages/kbn-guided-onboarding/src/types.ts", "deprecated": false, @@ -549,7 +549,7 @@ "label": "GuideId", "description": [], "signature": [ - "\"search\" | \"kubernetes\" | \"siem\" | \"testGuide\"" + "\"siem\" | \"kubernetes\" | \"appSearch\" | \"websiteSearch\" | \"databaseSearch\" | \"testGuide\"" ], "path": "packages/kbn-guided-onboarding/src/types.ts", "deprecated": false, @@ -581,7 +581,7 @@ "label": "GuideStepIds", "description": [], "signature": [ - "\"add_data\" | \"view_dashboard\" | \"tour_observability\" | \"rules\" | \"alertsCases\" | \"search_experience\" | \"step1\" | \"step2\" | \"step3\"" + "\"rules\" | \"add_data\" | \"view_dashboard\" | \"tour_observability\" | \"alertsCases\" | \"search_experience\" | \"step1\" | \"step2\" | \"step3\"" ], "path": "packages/kbn-guided-onboarding/src/types.ts", "deprecated": false, @@ -598,7 +598,7 @@ "\nAllowed states for each step in a guide:\n inactive: Step has not started\n active: Step is ready to start (i.e., the guide has been started)\n in_progress: Step has been started and is in progress\n ready_to_complete: Step can be manually completed\n complete: Step has been completed" ], "signature": [ - "\"complete\" | \"in_progress\" | \"active\" | \"inactive\" | \"ready_to_complete\"" + "\"active\" | \"complete\" | \"inactive\" | \"in_progress\" | \"ready_to_complete\"" ], "path": "packages/kbn-guided-onboarding/src/types.ts", "deprecated": false, @@ -613,7 +613,7 @@ "label": "testGuideId", "description": [], "signature": [ - "\"search\" | \"kubernetes\" | \"siem\" | \"testGuide\"" + "\"siem\" | \"kubernetes\" | \"appSearch\" | \"websiteSearch\" | \"databaseSearch\" | \"testGuide\"" ], "path": "packages/kbn-guided-onboarding/src/common/test_guide_config.ts", "deprecated": false, diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index a94f6f9e8de73e..4f5e2244b9af81 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_handlebars.devdocs.json b/api_docs/kbn_handlebars.devdocs.json index 7136c0d8fdbba1..274e1ab0cbd528 100644 --- a/api_docs/kbn_handlebars.devdocs.json +++ b/api_docs/kbn_handlebars.devdocs.json @@ -18,189 +18,10 @@ }, "common": { "classes": [], - "functions": [ - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.create", - "type": "Function", - "tags": [], - "label": "create", - "description": [ - "\nCreates an isolated Handlebars environment.\n\nEach environment has its own helpers.\nThis is only necessary for use cases that demand distinct helpers.\nMost use cases can use the root Handlebars environment directly.\n" - ], - "signature": [ - "() => typeof ", - "node_modules/handlebars/types/index.d.ts" - ], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [ - "A sandboxed/scoped version of the" - ], - "initialIsOpen": false - } - ], - "interfaces": [ - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.DecoratorOptions", - "type": "Interface", - "tags": [], - "label": "DecoratorOptions", - "description": [], - "signature": [ - { - "pluginId": "@kbn/handlebars", - "scope": "common", - "docId": "kibKbnHandlebarsPluginApi", - "section": "def-common.DecoratorOptions", - "text": "DecoratorOptions" - }, - " extends Omit<", - "HelperOptions", - ", \"lookupProperties\">" - ], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.DecoratorOptions.args", - "type": "Array", - "tags": [], - "label": "args", - "description": [], - "signature": [ - "any[] | undefined" - ], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.DecoratorsHash", - "type": "Interface", - "tags": [], - "label": "DecoratorsHash", - "description": [], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.DecoratorsHash.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[name: string]: DecoratorFunction", - "description": [], - "signature": [ - "[name: string]: ", - { - "pluginId": "@kbn/handlebars", - "scope": "common", - "docId": "kibKbnHandlebarsPluginApi", - "section": "def-common.DecoratorFunction", - "text": "DecoratorFunction" - } - ], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.HelpersHash", - "type": "Interface", - "tags": [], - "label": "HelpersHash", - "description": [], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.HelpersHash.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[name: string]: HelperDelegate", - "description": [], - "signature": [ - "[name: string]: ", - "HelperDelegate" - ], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.PartialsHash", - "type": "Interface", - "tags": [], - "label": "PartialsHash", - "description": [], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.PartialsHash.Unnamed", - "type": "IndexSignature", - "tags": [], - "label": "[name: string]: HandlebarsTemplateDelegate", - "description": [], - "signature": [ - "[name: string]: HandlebarsTemplateDelegate" - ], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - } - ], + "functions": [], + "interfaces": [], "enums": [], "misc": [ - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.AmbiguousHelperOptions", - "type": "Type", - "tags": [], - "label": "AmbiguousHelperOptions", - "description": [], - "signature": [ - "HelperOptions", - " | ", - { - "pluginId": "@kbn/handlebars", - "scope": "common", - "docId": "kibKbnHandlebarsPluginApi", - "section": "def-common.NonBlockHelperOptions", - "text": "NonBlockHelperOptions" - } - ], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "@kbn/handlebars", "id": "def-common.compileFnName", @@ -230,9 +51,11 @@ "signature": [ "(prog: ", "TemplateDelegate", - ", props: Record, container: Container, options: any) => any" + ", props: Record, container: ", + "Container", + ", options: any) => any" ], - "path": "packages/kbn-handlebars/index.ts", + "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -248,7 +71,7 @@ "TemplateDelegate", "" ], - "path": "packages/kbn-handlebars/index.ts", + "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -262,7 +85,7 @@ "signature": [ "{ [x: string]: any; }" ], - "path": "packages/kbn-handlebars/index.ts", + "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -276,7 +99,7 @@ "signature": [ "Container" ], - "path": "packages/kbn-handlebars/index.ts", + "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -290,7 +113,7 @@ "signature": [ "any" ], - "path": "packages/kbn-handlebars/index.ts", + "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -309,7 +132,7 @@ "signature": [ "{ data?: boolean | undefined; strict?: boolean | undefined; knownHelpers?: KnownHelpers | undefined; knownHelpersOnly?: boolean | undefined; noEscape?: boolean | undefined; assumeObjects?: boolean | undefined; preventIndent?: boolean | undefined; explicitPartialContext?: boolean | undefined; }" ], - "path": "packages/kbn-handlebars/index.ts", + "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -324,24 +147,9 @@ "\nSupported Handlebars runtime options\n\nThis is a subset of all the runtime options supported by the upstream\nHandlebars module." ], "signature": [ - "{ data?: any; helpers?: { [name: string]: Function; } | undefined; partials?: { [name: string]: HandlebarsTemplateDelegate; } | undefined; decorators?: { [name: string]: Function; } | undefined; blockParams?: any[] | undefined; }" - ], - "path": "packages/kbn-handlebars/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/handlebars", - "id": "def-common.NonBlockHelperOptions", - "type": "Type", - "tags": [], - "label": "NonBlockHelperOptions", - "description": [], - "signature": [ - "{ name: string; data?: any; hash: any; loc: { start: hbs.AST.Position; end: hbs.AST.Position; }; lookupProperty: LookupProperty; }" + "{ helpers?: { [name: string]: Function; } | undefined; data?: any; partials?: { [name: string]: HandlebarsTemplateDelegate; } | undefined; decorators?: { [name: string]: Function; } | undefined; blockParams?: any[] | undefined; }" ], - "path": "packages/kbn-handlebars/index.ts", + "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -361,7 +169,7 @@ "typeof ", "node_modules/handlebars/types/index.d.ts" ], - "path": "packages/kbn-handlebars/index.ts", + "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 921a80cb393b20..550294f3003ebd 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,32 +8,26 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 21 | 1 | 14 | 0 | +| 10 | 1 | 4 | 1 | ## Common ### Objects -### Functions - - -### Interfaces - - ### Consts, variables and types diff --git a/api_docs/kbn_hapi_mocks.devdocs.json b/api_docs/kbn_hapi_mocks.devdocs.json index ea6ed36bfa5807..d093b8e00819d3 100644 --- a/api_docs/kbn_hapi_mocks.devdocs.json +++ b/api_docs/kbn_hapi_mocks.devdocs.json @@ -166,9 +166,7 @@ "section": "def-common.DeepPartialObject", "text": "DeepPartialObject" }, - "<", - "Readable", - "> | ", + " | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -176,7 +174,9 @@ "section": "def-common.DeepPartialObject", "text": "DeepPartialObject" }, - " | undefined; plugins?: ", + "<", + "Readable", + "> | undefined; plugins?: ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -205,8 +205,8 @@ "text": "DeepPartialObject" }, "<", - "Boom", - "> | ", + "ResponseObject", + "> | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -215,8 +215,8 @@ "text": "DeepPartialObject" }, "<", - "ResponseObject", - "> | undefined; readonly preResponses?: ", + "Boom", + "> | undefined; readonly preResponses?: ", { "pluginId": "@kbn/utility-types", "scope": "common", diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index 36acec18604900..5253d790cf7154 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_health_gateway_server.devdocs.json b/api_docs/kbn_health_gateway_server.devdocs.json index 9e18b219094516..aaa224813e07ec 100644 --- a/api_docs/kbn_health_gateway_server.devdocs.json +++ b/api_docs/kbn_health_gateway_server.devdocs.json @@ -9,19 +9,11 @@ "objects": [] }, "server": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "common": { "classes": [], "functions": [ { "parentPluginId": "@kbn/health-gateway-server", - "id": "def-common.bootstrap", + "id": "def-server.bootstrap", "type": "Function", "tags": [], "label": "bootstrap", @@ -41,5 +33,13 @@ "enums": [], "misc": [], "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] } } \ No newline at end of file diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 0abe353ee6aaf7..14a9bc3db4b8f6 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** @@ -23,8 +23,8 @@ Contact Kibana Core for questions regarding this plugin. |-------------------|-----------|------------------------|-----------------| | 1 | 0 | 1 | 0 | -## Common +## Server ### Functions - + diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index 0d9d8bc394e75f..f3877c9ca47ab5 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index ce539b30554fd9..28cc210e1dfb7e 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_i18n.devdocs.json b/api_docs/kbn_i18n.devdocs.json index db5383189aacf3..e1c6115605d1ab 100644 --- a/api_docs/kbn_i18n.devdocs.json +++ b/api_docs/kbn_i18n.devdocs.json @@ -1,12 +1,28 @@ { "id": "@kbn/i18n", "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { "classes": [], "functions": [], "interfaces": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.Formats", + "id": "def-common.Formats", "type": "Interface", "tags": [], "label": "Formats", @@ -17,13 +33,13 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.Formats.number", + "id": "def-common.Formats.number", "type": "Object", "tags": [], "label": "number", "description": [], "signature": [ - "Partial<{ [key: string]: NumberFormatOptions<\"percent\" | \"currency\" | \"decimal\">; currency: NumberFormatOptions<\"currency\">; percent: NumberFormatOptions<\"percent\">; }> | undefined" + "Partial<{ [key: string]: NumberFormatOptions<\"decimal\" | \"percent\" | \"currency\">; currency: NumberFormatOptions<\"currency\">; percent: NumberFormatOptions<\"percent\">; }> | undefined" ], "path": "packages/kbn-i18n/src/core/formats.ts", "deprecated": false, @@ -31,7 +47,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.Formats.date", + "id": "def-common.Formats.date", "type": "Object", "tags": [], "label": "date", @@ -45,7 +61,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.Formats.time", + "id": "def-common.Formats.time", "type": "Object", "tags": [], "label": "time", @@ -59,7 +75,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.Formats.relative", + "id": "def-common.Formats.relative", "type": "Object", "tags": [], "label": "relative", @@ -76,7 +92,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.TranslateArguments", + "id": "def-common.TranslateArguments", "type": "Interface", "tags": [], "label": "TranslateArguments", @@ -87,7 +103,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.TranslateArguments.values", + "id": "def-common.TranslateArguments.values", "type": "Object", "tags": [], "label": "values", @@ -101,7 +117,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.TranslateArguments.defaultMessage", + "id": "def-common.TranslateArguments.defaultMessage", "type": "string", "tags": [], "label": "defaultMessage", @@ -112,7 +128,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.TranslateArguments.description", + "id": "def-common.TranslateArguments.description", "type": "string", "tags": [], "label": "description", @@ -129,7 +145,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.Translation", + "id": "def-common.Translation", "type": "Interface", "tags": [], "label": "Translation", @@ -140,7 +156,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.Translation.messages", + "id": "def-common.Translation.messages", "type": "Object", "tags": [], "label": "messages", @@ -156,7 +172,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.Translation.locale", + "id": "def-common.Translation.locale", "type": "string", "tags": [], "label": "locale", @@ -172,7 +188,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.Translation.formats", + "id": "def-common.Translation.formats", "type": "Object", "tags": [], "label": "formats", @@ -182,9 +198,9 @@ "signature": [ { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Formats", + "section": "def-common.Formats", "text": "Formats" }, " | undefined" @@ -202,7 +218,7 @@ "objects": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n", + "id": "def-common.i18n", "type": "Object", "tags": [], "label": "i18n", @@ -213,7 +229,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.formats", + "id": "def-common.i18n.formats", "type": "Object", "tags": [], "label": "formats", @@ -221,9 +237,9 @@ "signature": [ { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Formats", + "section": "def-common.Formats", "text": "Formats" } ], @@ -233,7 +249,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.addTranslation", + "id": "def-common.i18n.addTranslation", "type": "Function", "tags": [], "label": "addTranslation", @@ -242,9 +258,9 @@ "(newTranslation: ", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Translation", + "section": "def-common.Translation", "text": "Translation" }, ", locale?: string | undefined) => void" @@ -256,7 +272,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.addTranslation.$1", + "id": "def-common.i18n.addTranslation.$1", "type": "Object", "tags": [], "label": "newTranslation", @@ -264,9 +280,9 @@ "signature": [ { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Translation", + "section": "def-common.Translation", "text": "Translation" } ], @@ -276,7 +292,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.addTranslation.$2", + "id": "def-common.i18n.addTranslation.$2", "type": "string", "tags": [], "label": "locale", @@ -292,7 +308,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.getTranslation", + "id": "def-common.i18n.getTranslation", "type": "Function", "tags": [], "label": "getTranslation", @@ -301,9 +317,9 @@ "() => ", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Translation", + "section": "def-common.Translation", "text": "Translation" } ], @@ -315,7 +331,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.setLocale", + "id": "def-common.i18n.setLocale", "type": "Function", "tags": [], "label": "setLocale", @@ -330,7 +346,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.setLocale.$1", + "id": "def-common.i18n.setLocale.$1", "type": "string", "tags": [], "label": "locale", @@ -343,7 +359,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.getLocale", + "id": "def-common.i18n.getLocale", "type": "Function", "tags": [], "label": "getLocale", @@ -359,7 +375,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.setDefaultLocale", + "id": "def-common.i18n.setDefaultLocale", "type": "Function", "tags": [], "label": "setDefaultLocale", @@ -374,7 +390,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.setDefaultLocale.$1", + "id": "def-common.i18n.setDefaultLocale.$1", "type": "string", "tags": [], "label": "locale", @@ -387,7 +403,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.getDefaultLocale", + "id": "def-common.i18n.getDefaultLocale", "type": "Function", "tags": [], "label": "getDefaultLocale", @@ -403,7 +419,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.setFormats", + "id": "def-common.i18n.setFormats", "type": "Function", "tags": [], "label": "setFormats", @@ -412,9 +428,9 @@ "(newFormats: ", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Formats", + "section": "def-common.Formats", "text": "Formats" }, ") => void" @@ -426,7 +442,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.setFormats.$1", + "id": "def-common.i18n.setFormats.$1", "type": "Object", "tags": [], "label": "newFormats", @@ -434,9 +450,9 @@ "signature": [ { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Formats", + "section": "def-common.Formats", "text": "Formats" } ], @@ -448,7 +464,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.getFormats", + "id": "def-common.i18n.getFormats", "type": "Function", "tags": [], "label": "getFormats", @@ -457,9 +473,9 @@ "() => ", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Formats", + "section": "def-common.Formats", "text": "Formats" } ], @@ -471,7 +487,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.getRegisteredLocales", + "id": "def-common.i18n.getRegisteredLocales", "type": "Function", "tags": [], "label": "getRegisteredLocales", @@ -487,7 +503,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.translate", + "id": "def-common.i18n.translate", "type": "Function", "tags": [], "label": "translate", @@ -496,9 +512,9 @@ "(id: string, { values, defaultMessage }: ", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.TranslateArguments", + "section": "def-common.TranslateArguments", "text": "TranslateArguments" }, ") => any" @@ -510,7 +526,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.translate.$1", + "id": "def-common.i18n.translate.$1", "type": "string", "tags": [], "label": "id", @@ -521,7 +537,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.translate.$2", + "id": "def-common.i18n.translate.$2", "type": "Object", "tags": [], "label": "__1", @@ -529,9 +545,9 @@ "signature": [ { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.TranslateArguments", + "section": "def-common.TranslateArguments", "text": "TranslateArguments" } ], @@ -543,7 +559,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.init", + "id": "def-common.i18n.init", "type": "Function", "tags": [], "label": "init", @@ -552,9 +568,9 @@ "(newTranslation?: ", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Translation", + "section": "def-common.Translation", "text": "Translation" }, " | undefined) => void" @@ -566,7 +582,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.init.$1", + "id": "def-common.i18n.init.$1", "type": "Object", "tags": [], "label": "newTranslation", @@ -574,9 +590,9 @@ "signature": [ { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Translation", + "section": "def-common.Translation", "text": "Translation" }, " | undefined" @@ -589,7 +605,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.load", + "id": "def-common.i18n.load", "type": "Function", "tags": [], "label": "load", @@ -604,7 +620,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.load.$1", + "id": "def-common.i18n.load.$1", "type": "string", "tags": [], "label": "translationsUrl", @@ -617,7 +633,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.isPseudoLocale", + "id": "def-common.i18n.isPseudoLocale", "type": "Function", "tags": [], "label": "isPseudoLocale", @@ -632,7 +648,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.isPseudoLocale.$1", + "id": "def-common.i18n.isPseudoLocale.$1", "type": "string", "tags": [], "label": "locale", @@ -645,7 +661,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.translateUsingPseudoLocale", + "id": "def-common.i18n.translateUsingPseudoLocale", "type": "Function", "tags": [], "label": "translateUsingPseudoLocale", @@ -660,7 +676,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18n.translateUsingPseudoLocale.$1", + "id": "def-common.i18n.translateUsingPseudoLocale.$1", "type": "string", "tags": [], "label": "message", @@ -676,7 +692,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader", + "id": "def-common.i18nLoader", "type": "Object", "tags": [], "label": "i18nLoader", @@ -687,7 +703,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.registerTranslationFile", + "id": "def-common.i18nLoader.registerTranslationFile", "type": "Function", "tags": [], "label": "registerTranslationFile", @@ -702,7 +718,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.registerTranslationFile.$1", + "id": "def-common.i18nLoader.registerTranslationFile.$1", "type": "string", "tags": [], "label": "translationFilePath", @@ -715,7 +731,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.registerTranslationFiles", + "id": "def-common.i18nLoader.registerTranslationFiles", "type": "Function", "tags": [], "label": "registerTranslationFiles", @@ -730,7 +746,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.registerTranslationFiles.$1", + "id": "def-common.i18nLoader.registerTranslationFiles.$1", "type": "Array", "tags": [], "label": "arrayOfPaths", @@ -746,7 +762,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.getTranslationsByLocale", + "id": "def-common.i18nLoader.getTranslationsByLocale", "type": "Function", "tags": [], "label": "getTranslationsByLocale", @@ -755,9 +771,9 @@ "(locale: string) => Promise<", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Translation", + "section": "def-common.Translation", "text": "Translation" }, ">" @@ -769,7 +785,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.getTranslationsByLocale.$1", + "id": "def-common.i18nLoader.getTranslationsByLocale.$1", "type": "string", "tags": [], "label": "locale", @@ -782,7 +798,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.getAllTranslations", + "id": "def-common.i18nLoader.getAllTranslations", "type": "Function", "tags": [], "label": "getAllTranslations", @@ -791,9 +807,9 @@ "() => Promise<{ [key: string]: ", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Translation", + "section": "def-common.Translation", "text": "Translation" }, "; }>" @@ -806,7 +822,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.getAllTranslationsFromPaths", + "id": "def-common.i18nLoader.getAllTranslationsFromPaths", "type": "Function", "tags": [], "label": "getAllTranslationsFromPaths", @@ -815,9 +831,9 @@ "(paths: string[]) => Promise<{ [key: string]: ", { "pluginId": "@kbn/i18n", - "scope": "public", + "scope": "common", "docId": "kibKbnI18nPluginApi", - "section": "def-public.Translation", + "section": "def-common.Translation", "text": "Translation" }, "; }>" @@ -829,7 +845,7 @@ "children": [ { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.getAllTranslationsFromPaths.$1", + "id": "def-common.i18nLoader.getAllTranslationsFromPaths.$1", "type": "Array", "tags": [], "label": "paths", @@ -845,7 +861,7 @@ }, { "parentPluginId": "@kbn/i18n", - "id": "def-public.i18nLoader.getRegisteredLocales", + "id": "def-common.i18nLoader.getRegisteredLocales", "type": "Function", "tags": [], "label": "getRegisteredLocales", @@ -863,21 +879,5 @@ "initialIsOpen": false } ] - }, - "server": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "common": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] } } \ No newline at end of file diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 413fe32532f299..4c286cf1c1ea35 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** @@ -23,11 +23,11 @@ Contact Kibana Core for questions regarding this plugin. |-------------------|-----------|------------------------|-----------------| | 51 | 0 | 48 | 0 | -## Client +## Common ### Objects - + ### Interfaces - + diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index 43a03ca9d1d6cd..90b3450bd249f5 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_import_resolver.devdocs.json b/api_docs/kbn_import_resolver.devdocs.json index e8c96c916845bc..008233e9778913 100644 --- a/api_docs/kbn_import_resolver.devdocs.json +++ b/api_docs/kbn_import_resolver.devdocs.json @@ -37,7 +37,9 @@ "label": "create", "description": [], "signature": [ - "(repoRoot: string) => ", + "(repoRoot: string, packages?: ", + "Package", + "[]) => ", { "pluginId": "@kbn/import-resolver", "scope": "common", @@ -64,6 +66,22 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "@kbn/import-resolver", + "id": "def-common.ImportResolver.create.$2", + "type": "Array", + "tags": [], + "label": "packages", + "description": [], + "signature": [ + "Package", + "[]" + ], + "path": "packages/kbn-import-resolver/src/import_resolver.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -102,26 +120,11 @@ "id": "def-common.ImportResolver.Unnamed.$2", "type": "Object", "tags": [], - "label": "pkgMap", - "description": [], - "signature": [ - "PackageMap" - ], - "path": "packages/kbn-import-resolver/src/import_resolver.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "@kbn/import-resolver", - "id": "def-common.ImportResolver.Unnamed.$3", - "type": "Object", - "tags": [], - "label": "pkgManifests", + "label": "pkgsById", "description": [], "signature": [ "Map" ], "path": "packages/kbn-import-resolver/src/import_resolver.ts", @@ -232,47 +235,21 @@ }, { "parentPluginId": "@kbn/import-resolver", - "id": "def-common.ImportResolver.isBazelPackage", + "id": "def-common.ImportResolver.isRepoPkg", "type": "Function", - "tags": [ - "deprecated" - ], - "label": "isBazelPackage", - "description": [ - "\nIs the package a bazel package?" - ], + "tags": [], + "label": "isRepoPkg", + "description": [], "signature": [ "(pkgId: string) => boolean" ], "path": "packages/kbn-import-resolver/src/import_resolver.ts", - "deprecated": true, + "deprecated": false, "trackAdoption": false, - "references": [ - { - "plugin": "@kbn/repo-source-classifier", - "path": "packages/kbn-repo-source-classifier/src/repo_path.ts" - }, - { - "plugin": "@kbn/eslint-plugin-imports", - "path": "packages/kbn-eslint-plugin-imports/src/rules/uniform_imports.ts" - }, - { - "plugin": "@kbn/find-used-node-modules", - "path": "packages/kbn-find-used-node-modules/src/find_used_node_modules.ts" - }, - { - "plugin": "@kbn/find-used-node-modules", - "path": "packages/kbn-find-used-node-modules/src/find_used_node_modules.test.ts" - }, - { - "plugin": "@kbn/find-used-node-modules", - "path": "packages/kbn-find-used-node-modules/src/find_used_node_modules.test.ts" - } - ], "children": [ { "parentPluginId": "@kbn/import-resolver", - "id": "def-common.ImportResolver.isBazelPackage.$1", + "id": "def-common.ImportResolver.isRepoPkg.$1", "type": "string", "tags": [], "label": "pkgId", diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 5fa285729b6088..ac67833d43aa5c 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 47 | 0 | 39 | 0 | +| 47 | 0 | 40 | 0 | ## Common diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index afc33cb8104c9a..ae7e83a05590f7 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; -Contact Visualizations for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 7f60edb4c605ee..97fd6713471327 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index f291fc872eac59..e8c3d5d01de412 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_journeys.devdocs.json b/api_docs/kbn_journeys.devdocs.json index 325cf4e2bf6164..a367aafa2dd815 100644 --- a/api_docs/kbn_journeys.devdocs.json +++ b/api_docs/kbn_journeys.devdocs.json @@ -944,7 +944,7 @@ "label": "get", "description": [], "signature": [ - "() => { path: string; fullscreenPath: string; type: \"success\" | \"failure\"; title: string; filename: string; fullscreenFilename: string; }[]" + "() => { path: string; fullscreenPath: string; type: \"failure\" | \"success\"; title: string; filename: string; fullscreenFilename: string; }[]" ], "path": "packages/kbn-journeys/journey/journey_screenshots.ts", "deprecated": false, diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index 618196777b5346..3f6471d57e6b69 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_json_ast.devdocs.json b/api_docs/kbn_json_ast.devdocs.json index 10774bec288891..daf126e7da87e3 100644 --- a/api_docs/kbn_json_ast.devdocs.json +++ b/api_docs/kbn_json_ast.devdocs.json @@ -67,6 +67,54 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.getPropFromSource", + "type": "Function", + "tags": [], + "label": "getPropFromSource", + "description": [], + "signature": [ + "(source: string, name: string) => (babel.types.ObjectProperty & { key: babel.types.StringLiteral; }) | undefined" + ], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.getPropFromSource.$1", + "type": "string", + "tags": [], + "label": "source", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.getPropFromSource.$2", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/json-ast", "id": "def-common.removeAllReferences", @@ -148,6 +196,83 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.removeProp", + "type": "Function", + "tags": [], + "label": "removeProp", + "description": [ + "\nRemoves a property from a JSONc object. If the property does not exist the source is just returned" + ], + "signature": [ + "(source: string, key: string, opts: { node?: babel.types.ObjectExpression | undefined; } | undefined) => string" + ], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.removeProp.$1", + "type": "string", + "tags": [], + "label": "source", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.removeProp.$2", + "type": "string", + "tags": [], + "label": "key", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.removeProp.$3", + "type": "Object", + "tags": [], + "label": "opts", + "description": [], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.removeProp.$3.node", + "type": "Object", + "tags": [], + "label": "node", + "description": [], + "signature": [ + "babel.types.ObjectExpression | undefined" + ], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/json-ast", "id": "def-common.removeReferences", @@ -363,7 +488,7 @@ "label": "setProp", "description": [], "signature": [ - "(source: string, key: string, value: any, opts: { insertAtTop?: boolean | undefined; node?: babel.types.ObjectExpression | undefined; spaces?: string | undefined; } | undefined) => string" + "(source: string, key: string, value: any, opts: { insertAtTop?: boolean | undefined; insertAfter?: babel.types.ObjectProperty | undefined; node?: babel.types.ObjectExpression | undefined; spaces?: string | undefined; } | undefined) => string" ], "path": "packages/kbn-json-ast/src/props.ts", "deprecated": false, @@ -441,6 +566,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/json-ast", + "id": "def-common.setProp.$4.insertAfter", + "type": "Object", + "tags": [], + "label": "insertAfter", + "description": [ + "by default, if the key isn't already in the json, it will be added at the bottom. Set this to an existing property node to have the key added after this node" + ], + "signature": [ + "babel.types.ObjectProperty | undefined" + ], + "path": "packages/kbn-json-ast/src/props.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/json-ast", "id": "def-common.setProp.$4.node", diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 8df69f024406fa..6481c0a1e2390e 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 32 | 2 | 28 | 0 | +| 41 | 2 | 35 | 0 | ## Common diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index ae41b65315f1a5..ff4571e9fcdd72 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 3ebcb0620b9ee3..f34c8b3eeab0a3 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_logging.devdocs.json b/api_docs/kbn_logging.devdocs.json index 14c85f50a07a6f..7c1b8e758e7163 100644 --- a/api_docs/kbn_logging.devdocs.json +++ b/api_docs/kbn_logging.devdocs.json @@ -609,7 +609,7 @@ "section": "def-common.EcsBase", "text": "EcsBase" }, - ", \"message\" | \"@timestamp\"> & ", + ", \"@timestamp\" | \"message\"> & ", { "pluginId": "@kbn/ecs", "scope": "common", diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 1ee481a2decb8c..8985fc36d4bc2f 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 46fb35d66725b1..e00c5556739e0c 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 4a9bd326351c8b..932fdc5dd4efc0 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_mapbox_gl.devdocs.json b/api_docs/kbn_mapbox_gl.devdocs.json index 0feba79911db88..1ea33a1ad23735 100644 --- a/api_docs/kbn_mapbox_gl.devdocs.json +++ b/api_docs/kbn_mapbox_gl.devdocs.json @@ -8632,7 +8632,7 @@ "label": "MapEvent", "description": [], "signature": [ - "\"error\" | \"render\" | \"data\" | \"remove\" | \"rotate\" | \"move\" | \"idle\" | \"resize\" | \"zoom\" | \"mousedown\" | \"mouseup\" | \"mouseover\" | \"mousemove\" | \"click\" | \"dblclick\" | \"mouseenter\" | \"mouseleave\" | \"mouseout\" | \"contextmenu\" | \"wheel\" | \"touchstart\" | \"touchend\" | \"touchmove\" | \"touchcancel\" | \"movestart\" | \"moveend\" | \"dragstart\" | \"drag\" | \"dragend\" | \"zoomstart\" | \"zoomend\" | \"rotatestart\" | \"rotateend\" | \"pitchstart\" | \"pitch\" | \"pitchend\" | \"boxzoomstart\" | \"boxzoomend\" | \"boxzoomcancel\" | \"webglcontextlost\" | \"webglcontextrestored\" | \"load\" | \"styledata\" | \"sourcedata\" | \"dataloading\" | \"styledataloading\" | \"sourcedataloading\" | \"styleimagemissing\" | \"style.load\" | \"dataabort\" | \"sourcedataabort\"" + "\"error\" | \"remove\" | \"data\" | \"move\" | \"render\" | \"rotate\" | \"resize\" | \"zoom\" | \"idle\" | \"mousedown\" | \"mouseup\" | \"mouseover\" | \"mousemove\" | \"click\" | \"dblclick\" | \"mouseenter\" | \"mouseleave\" | \"mouseout\" | \"contextmenu\" | \"wheel\" | \"touchstart\" | \"touchend\" | \"touchmove\" | \"touchcancel\" | \"movestart\" | \"moveend\" | \"dragstart\" | \"drag\" | \"dragend\" | \"zoomstart\" | \"zoomend\" | \"rotatestart\" | \"rotateend\" | \"pitchstart\" | \"pitch\" | \"pitchend\" | \"boxzoomstart\" | \"boxzoomend\" | \"boxzoomcancel\" | \"webglcontextlost\" | \"webglcontextrestored\" | \"load\" | \"styledata\" | \"sourcedata\" | \"dataloading\" | \"styledataloading\" | \"sourcedataloading\" | \"styleimagemissing\" | \"style.load\" | \"dataabort\" | \"sourcedataabort\"" ], "path": "node_modules/maplibre-gl/dist/maplibre-gl.d.ts", "deprecated": false, diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 29013130d6578a..84b28aa06d027b 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 94bf4b07975523..8fe17a16db9b96 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; -This package includes utility functions related to creating elasticsearch aggregation queries, data manipulation and verification. -Contact Machine Learning UI for questions regarding this plugin. + +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ml_date_picker.devdocs.json b/api_docs/kbn_ml_date_picker.devdocs.json index e50bbe5efc0a07..53d6b048fdbcbb 100644 --- a/api_docs/kbn_ml_date_picker.devdocs.json +++ b/api_docs/kbn_ml_date_picker.devdocs.json @@ -234,6 +234,33 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/ml-date-picker", + "id": "def-common.useRefresh", + "type": "Function", + "tags": [], + "label": "useRefresh", + "description": [ + "\nProvides the latest refresh, both manual or auto." + ], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ml-date-picker", + "scope": "common", + "docId": "kibKbnMlDatePickerPluginApi", + "section": "def-common.Refresh", + "text": "Refresh" + }, + " | undefined" + ], + "path": "x-pack/packages/ml/date_picker/src/hooks/use_timefilter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ml-date-picker", "id": "def-common.useRefreshIntervalUpdates", diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index bf67fc455dd61f..353fd6a5872c38 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 49 | 0 | 4 | 0 | +| 50 | 0 | 4 | 0 | ## Common diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index b89c976edcd1f8..8bce6576342e72 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index ff7786fde7e575..27a7fdc8413248 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; -A type guard to check record like object structures. -Contact Machine Learning UI for questions regarding this plugin. + +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 353ff9e08b3f16..e33bcd06b8e917 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; -Utilities to combine url state management with local storage. -Contact Machine Learning UI for questions regarding this plugin. + +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 9949cfa0c70381..80bc0ef9fc8e52 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; -TypeScript-aware utility functions to get/set attributes from objects. -Contact Machine Learning UI for questions regarding this plugin. + +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 281a76c3602cf6..4a21fc7bf810af 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 947446d121dbb0..d2e6035fc2b90d 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; -Creates a deterministic number based hash out of a string. -Contact Machine Learning UI for questions regarding this plugin. + +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index bea9a2ad655162..9f52996cbd45e2 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; -Url state management utilities. -Contact Machine Learning UI for questions regarding this plugin. + +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_monaco.devdocs.json b/api_docs/kbn_monaco.devdocs.json index d4928fabdb23b9..364fa6046fc990 100644 --- a/api_docs/kbn_monaco.devdocs.json +++ b/api_docs/kbn_monaco.devdocs.json @@ -588,7 +588,7 @@ "label": "kind", "description": [], "signature": [ - "\"type\" | \"method\" | \"keyword\" | \"field\" | \"property\" | \"class\" | \"constructor\"" + "\"type\" | \"keyword\" | \"property\" | \"field\" | \"method\" | \"class\" | \"constructor\"" ], "path": "packages/kbn-monaco/src/painless/types.ts", "deprecated": false, @@ -756,7 +756,7 @@ "label": "PainlessCompletionKind", "description": [], "signature": [ - "\"type\" | \"method\" | \"keyword\" | \"field\" | \"property\" | \"class\" | \"constructor\"" + "\"type\" | \"keyword\" | \"property\" | \"field\" | \"method\" | \"class\" | \"constructor\"" ], "path": "packages/kbn-monaco/src/painless/types.ts", "deprecated": false, diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index efd3ed7177c98a..7d628749274930 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 55c2bfaafc49f5..308d0baa4effdb 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index ddde20ac384764..0b64e9481b32b3 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index 0c012f64a536e7..f140dba6cb8d9f 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; -io ts utilities and types to be shared with plugins from the osquery project -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-asset-management](https://github.com/orgs/elastic/teams/security-asset-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index d4eb151fb325ed..38a2d3e427bb05 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; -A library to convert APM traces into JSON format for performance testing. -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/kibana-performance-testing](https://github.com/orgs/elastic/teams/kibana-performance-testing) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index bcd11b758380fb..35fc81a71256b8 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 19b35137b05cc4..fe8273bbd423c8 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; -Just some helpers for kibana plugin devs. -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index 1d253f50ceef54..79911ead0f2444 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 3c4a7b66e105ec..e8d3f3f9daec40 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index fb4efc0b607cf9..69acca6028c2dd 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 6487df18705970..8a4490fbd1bb03 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index aa0d0614ec653e..d2bd06b06f64c8 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 3f7465b287e88b..f4029012603aa2 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_rule_data_utils.devdocs.json b/api_docs/kbn_rule_data_utils.devdocs.json index 1b93a3e0236c89..2d5199b399c1b0 100644 --- a/api_docs/kbn_rule_data_utils.devdocs.json +++ b/api_docs/kbn_rule_data_utils.devdocs.json @@ -1266,7 +1266,7 @@ "label": "AlertConsumers", "description": [], "signature": [ - "\"infrastructure\" | \"apm\" | \"siem\" | \"logs\" | \"uptime\" | \"observability\"" + "\"uptime\" | \"siem\" | \"apm\" | \"logs\" | \"infrastructure\" | \"observability\"" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, @@ -1431,7 +1431,7 @@ "label": "STATUS_VALUES", "description": [], "signature": [ - "\"open\" | \"closed\" | \"in-progress\" | \"acknowledged\"" + "\"in-progress\" | \"open\" | \"closed\" | \"acknowledged\"" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, @@ -1461,7 +1461,7 @@ "label": "TechnicalRuleDataFieldName", "description": [], "signature": [ - "\"tags\" | \"kibana\" | \"@timestamp\" | \"event.action\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert.rule.execution.uuid\" | \"kibana.alert\" | \"kibana.alert.rule\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.producer\" | \"kibana.space_ids\" | \"kibana.alert.uuid\" | \"kibana.alert.instance.id\" | \"kibana.alert.start\" | \"kibana.alert.time_range\" | \"kibana.alert.end\" | \"kibana.alert.duration.us\" | \"kibana.alert.severity\" | \"kibana.alert.status\" | \"kibana.alert.flapping\" | \"kibana.version\" | \"ecs.version\" | \"kibana.alert.risk_score\" | \"kibana.alert.workflow_status\" | \"kibana.alert.workflow_user\" | \"kibana.alert.workflow_reason\" | \"kibana.alert.system_status\" | \"kibana.alert.action_group\" | \"kibana.alert.reason\" | \"kibana.alert.case_ids\" | \"kibana.alert.rule.author\" | \"kibana.alert.rule.category\" | \"kibana.alert.rule.uuid\" | \"kibana.alert.rule.created_at\" | \"kibana.alert.rule.created_by\" | \"kibana.alert.rule.description\" | \"kibana.alert.rule.enabled\" | \"kibana.alert.rule.from\" | \"kibana.alert.rule.interval\" | \"kibana.alert.rule.license\" | \"kibana.alert.rule.name\" | \"kibana.alert.rule.note\" | \"kibana.alert.rule.references\" | \"kibana.alert.rule.rule_id\" | \"kibana.alert.rule.rule_name_override\" | \"kibana.alert.rule.tags\" | \"kibana.alert.rule.to\" | \"kibana.alert.rule.type\" | \"kibana.alert.rule.updated_at\" | \"kibana.alert.rule.updated_by\" | \"kibana.alert.rule.version\" | \"kibana.alert.suppression.terms\" | \"kibana.alert.suppression.terms.field\" | \"kibana.alert.suppression.terms.value\" | \"kibana.alert.suppression.start\" | \"kibana.alert.suppression.end\" | \"kibana.alert.suppression.docs_count\" | \"event.kind\" | \"event.module\" | \"kibana.alert.evaluation.threshold\" | \"kibana.alert.evaluation.value\" | \"kibana.alert.building_block_type\" | \"kibana.alert.rule.exceptions_list\" | \"kibana.alert.rule.namespace\" | \"kibana.alert.rule.threat.framework\" | \"kibana.alert.rule.threat.tactic.id\" | \"kibana.alert.rule.threat.tactic.name\" | \"kibana.alert.rule.threat.tactic.reference\" | \"kibana.alert.rule.threat.technique.id\" | \"kibana.alert.rule.threat.technique.name\" | \"kibana.alert.rule.threat.technique.reference\" | \"kibana.alert.rule.threat.technique.subtechnique.id\" | \"kibana.alert.rule.threat.technique.subtechnique.name\" | \"kibana.alert.rule.threat.technique.subtechnique.reference\"" + "\"@timestamp\" | \"event.action\" | \"tags\" | \"kibana\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert.rule.execution.uuid\" | \"kibana.alert\" | \"kibana.alert.rule\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.producer\" | \"kibana.space_ids\" | \"kibana.alert.uuid\" | \"kibana.alert.instance.id\" | \"kibana.alert.start\" | \"kibana.alert.time_range\" | \"kibana.alert.end\" | \"kibana.alert.duration.us\" | \"kibana.alert.severity\" | \"kibana.alert.status\" | \"kibana.alert.flapping\" | \"kibana.version\" | \"ecs.version\" | \"kibana.alert.risk_score\" | \"kibana.alert.workflow_status\" | \"kibana.alert.workflow_user\" | \"kibana.alert.workflow_reason\" | \"kibana.alert.system_status\" | \"kibana.alert.action_group\" | \"kibana.alert.reason\" | \"kibana.alert.case_ids\" | \"kibana.alert.rule.author\" | \"kibana.alert.rule.category\" | \"kibana.alert.rule.uuid\" | \"kibana.alert.rule.created_at\" | \"kibana.alert.rule.created_by\" | \"kibana.alert.rule.description\" | \"kibana.alert.rule.enabled\" | \"kibana.alert.rule.from\" | \"kibana.alert.rule.interval\" | \"kibana.alert.rule.license\" | \"kibana.alert.rule.name\" | \"kibana.alert.rule.note\" | \"kibana.alert.rule.references\" | \"kibana.alert.rule.rule_id\" | \"kibana.alert.rule.rule_name_override\" | \"kibana.alert.rule.tags\" | \"kibana.alert.rule.to\" | \"kibana.alert.rule.type\" | \"kibana.alert.rule.updated_at\" | \"kibana.alert.rule.updated_by\" | \"kibana.alert.rule.version\" | \"kibana.alert.suppression.terms\" | \"kibana.alert.suppression.terms.field\" | \"kibana.alert.suppression.terms.value\" | \"kibana.alert.suppression.start\" | \"kibana.alert.suppression.end\" | \"kibana.alert.suppression.docs_count\" | \"event.kind\" | \"event.module\" | \"kibana.alert.evaluation.threshold\" | \"kibana.alert.evaluation.value\" | \"kibana.alert.building_block_type\" | \"kibana.alert.rule.exceptions_list\" | \"kibana.alert.rule.namespace\" | \"kibana.alert.rule.threat.framework\" | \"kibana.alert.rule.threat.tactic.id\" | \"kibana.alert.rule.threat.tactic.name\" | \"kibana.alert.rule.threat.tactic.reference\" | \"kibana.alert.rule.threat.technique.id\" | \"kibana.alert.rule.threat.technique.name\" | \"kibana.alert.rule.threat.technique.reference\" | \"kibana.alert.rule.threat.technique.subtechnique.id\" | \"kibana.alert.rule.threat.technique.subtechnique.name\" | \"kibana.alert.rule.threat.technique.subtechnique.reference\"" ], "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", "deprecated": false, @@ -1506,7 +1506,7 @@ "label": "ValidFeatureId", "description": [], "signature": [ - "\"infrastructure\" | \"apm\" | \"siem\" | \"logs\" | \"uptime\" | \"observability\"" + "\"uptime\" | \"siem\" | \"apm\" | \"logs\" | \"infrastructure\" | \"observability\"" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 9d7713964317c0..aab2f99a8cfbc9 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/security-detections-response](https://github.com/orgs/elastic/teams/security-detections-response) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_autocomplete.devdocs.json b/api_docs/kbn_securitysolution_autocomplete.devdocs.json index 5f57ad28f5f73b..fd3a4ca6431f95 100644 --- a/api_docs/kbn_securitysolution_autocomplete.devdocs.json +++ b/api_docs/kbn_securitysolution_autocomplete.devdocs.json @@ -300,7 +300,7 @@ "label": "FieldComponent", "description": [], "signature": [ - "{ ({ fieldInputWidth, fieldTypeFilter, indexPattern, isClearable, isDisabled, isLoading, isRequired, onChange, placeholder, selectedField, acceptsCustomOptions, }: React.PropsWithChildren<", + "{ ({ fieldInputWidth, fieldTypeFilter, indexPattern, isClearable, isDisabled, isLoading, isRequired, onChange, placeholder, selectedField, acceptsCustomOptions, showMappingConflicts, }: React.PropsWithChildren<", "FieldProps", ">): JSX.Element; displayName: string | undefined; }" ], @@ -313,7 +313,7 @@ "id": "def-common.FieldComponent.$1", "type": "CompoundType", "tags": [], - "label": "{\n fieldInputWidth,\n fieldTypeFilter = [],\n indexPattern,\n isClearable = false,\n isDisabled = false,\n isLoading = false,\n isRequired = false,\n onChange,\n placeholder,\n selectedField,\n acceptsCustomOptions = false,\n}", + "label": "{\n fieldInputWidth,\n fieldTypeFilter = [],\n indexPattern,\n isClearable = false,\n isDisabled = false,\n isLoading = false,\n isRequired = false,\n onChange,\n placeholder,\n selectedField,\n acceptsCustomOptions = false,\n showMappingConflicts = false,\n}", "description": [], "signature": [ "React.PropsWithChildren<", @@ -842,7 +842,7 @@ "label": "smallLists", "description": [], "signature": [ - "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]" + "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]" ], "path": "packages/kbn-securitysolution-autocomplete/src/field_value_lists/index.tsx", "deprecated": false, @@ -856,7 +856,7 @@ "label": "largeLists", "description": [], "signature": [ - "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]" + "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]" ], "path": "packages/kbn-securitysolution-autocomplete/src/field_value_lists/index.tsx", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 33d44627f331db..df28172dd30ae3 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; -Security Solution auto complete -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_ecs.devdocs.json b/api_docs/kbn_securitysolution_ecs.devdocs.json index 677dca84723088..e8293850397450 100644 --- a/api_docs/kbn_securitysolution_ecs.devdocs.json +++ b/api_docs/kbn_securitysolution_ecs.devdocs.json @@ -975,7 +975,7 @@ "label": "'kibana.alert.workflow_status'", "description": [], "signature": [ - "\"open\" | \"closed\" | \"in-progress\" | \"acknowledged\" | undefined" + "\"in-progress\" | \"open\" | \"closed\" | \"acknowledged\" | undefined" ], "path": "packages/kbn-securitysolution-ecs/src/index.ts", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 272ece5620933d..37e09bd98a2037 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_es_utils.devdocs.json b/api_docs/kbn_securitysolution_es_utils.devdocs.json index bcf1477f303b2a..e21a4c67cb4acb 100644 --- a/api_docs/kbn_securitysolution_es_utils.devdocs.json +++ b/api_docs/kbn_securitysolution_es_utils.devdocs.json @@ -469,7 +469,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -521,9 +573,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", + "default", + "; indices: ", "default", "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", - "; helpers: ", + "; asyncSearch: ", "default", "; autoscaling: ", "default", @@ -729,33 +769,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -837,27 +853,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -1035,9 +1033,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -1215,9 +1237,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -1243,31 +1263,11 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", + ">; }; putScript: { (this: That, params: ", + "PutScriptRequest", " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", - "PutScriptRequest", - " | ", - "PutScriptRequest", - ", options?: ", + "PutScriptRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", "AcknowledgedResponseBase", @@ -1713,7 +1713,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -1765,9 +1817,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", + "default", + "; indices: ", "default", "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", - "; helpers: ", + "; asyncSearch: ", "default", "; autoscaling: ", "default", @@ -1973,33 +2013,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -2081,27 +2097,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -2279,9 +2277,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -2459,9 +2481,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -2487,27 +2507,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index c46a9195cc985f..27fb2dad6edb78 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; -security solution elastic search utilities to use across plugins such lists, security_solution, cases, etc... -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_exception_list_components.devdocs.json b/api_docs/kbn_securitysolution_exception_list_components.devdocs.json index c798c33780ef8b..562bde31e9f313 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.devdocs.json +++ b/api_docs/kbn_securitysolution_exception_list_components.devdocs.json @@ -721,7 +721,7 @@ "label": "item", "description": [], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/header/index.tsx", "deprecated": false, @@ -788,7 +788,7 @@ "label": "item", "description": [], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -834,7 +834,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"map\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"meta\" | \"title\" | \"main\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"article\" | \"aside\" | \"audio\" | \"b\" | \"base\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"body\" | \"br\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"data\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"form\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"i\" | \"iframe\" | \"img\" | \"input\" | \"ins\" | \"kbd\" | \"keygen\" | \"label\" | \"legend\" | \"li\" | \"mark\" | \"menu\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"output\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"progress\" | \"q\" | \"rp\" | \"rt\" | \"ruby\" | \"s\" | \"samp\" | \"slot\" | \"script\" | \"section\" | \"select\" | \"span\" | \"strong\" | \"style\" | \"summary\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"time\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"svg\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"stop\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -848,7 +848,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"map\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"meta\" | \"title\" | \"main\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"article\" | \"aside\" | \"audio\" | \"b\" | \"base\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"body\" | \"br\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"data\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"form\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"i\" | \"iframe\" | \"img\" | \"input\" | \"ins\" | \"kbd\" | \"keygen\" | \"label\" | \"legend\" | \"li\" | \"mark\" | \"menu\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"output\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"progress\" | \"q\" | \"rp\" | \"rt\" | \"ruby\" | \"s\" | \"samp\" | \"slot\" | \"script\" | \"section\" | \"select\" | \"span\" | \"strong\" | \"style\" | \"summary\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"time\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"svg\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"stop\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -904,7 +904,7 @@ "label": "exceptionItem", "description": [], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -987,7 +987,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"map\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"meta\" | \"title\" | \"main\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"article\" | \"aside\" | \"audio\" | \"b\" | \"base\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"body\" | \"br\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"data\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"form\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"i\" | \"iframe\" | \"img\" | \"input\" | \"ins\" | \"kbd\" | \"keygen\" | \"label\" | \"legend\" | \"li\" | \"mark\" | \"menu\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"output\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"progress\" | \"q\" | \"rp\" | \"rt\" | \"ruby\" | \"s\" | \"samp\" | \"slot\" | \"script\" | \"section\" | \"select\" | \"span\" | \"strong\" | \"style\" | \"summary\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"time\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"svg\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"stop\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1001,7 +1001,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"map\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"meta\" | \"title\" | \"main\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"article\" | \"aside\" | \"audio\" | \"b\" | \"base\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"body\" | \"br\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"data\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"form\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"i\" | \"iframe\" | \"img\" | \"input\" | \"ins\" | \"kbd\" | \"keygen\" | \"label\" | \"legend\" | \"li\" | \"mark\" | \"menu\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"output\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"progress\" | \"q\" | \"rp\" | \"rt\" | \"ruby\" | \"s\" | \"samp\" | \"slot\" | \"script\" | \"section\" | \"select\" | \"span\" | \"strong\" | \"style\" | \"summary\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"time\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"svg\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"stop\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1095,7 +1095,7 @@ "label": "onEditException", "description": [], "signature": [ - "(item: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => void" + "(item: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => void" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1109,7 +1109,7 @@ "label": "item", "description": [], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index a41a49860f3887..356d752d3d647b 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 24361556df4f1b..5c92dd9a38c575 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; -Security Solution utilities for React hooks -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.devdocs.json b/api_docs/kbn_securitysolution_io_ts_alerting_types.devdocs.json index 37adc65cf7feeb..2f8855c5e41805 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.devdocs.json +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.devdocs.json @@ -128,7 +128,7 @@ "label": "Language", "description": [], "signature": [ - "\"eql\" | \"lucene\" | \"kuery\"" + "\"kuery\" | \"eql\" | \"lucene\"" ], "path": "packages/kbn-securitysolution-io-ts-alerting-types/src/language/index.ts", "deprecated": false, @@ -143,7 +143,7 @@ "label": "LanguageOrUndefined", "description": [], "signature": [ - "\"eql\" | \"lucene\" | \"kuery\" | undefined" + "\"kuery\" | \"eql\" | \"lucene\" | undefined" ], "path": "packages/kbn-securitysolution-io-ts-alerting-types/src/language/index.ts", "deprecated": false, @@ -726,7 +726,7 @@ "label": "ThreatLanguage", "description": [], "signature": [ - "\"eql\" | \"lucene\" | \"kuery\" | undefined" + "\"kuery\" | \"eql\" | \"lucene\" | undefined" ], "path": "packages/kbn-securitysolution-io-ts-alerting-types/src/threat_mapping/index.ts", "deprecated": false, @@ -741,7 +741,7 @@ "label": "ThreatLanguageOrUndefined", "description": [], "signature": [ - "\"eql\" | \"lucene\" | \"kuery\" | undefined" + "\"kuery\" | \"eql\" | \"lucene\" | undefined" ], "path": "packages/kbn-securitysolution-io-ts-alerting-types/src/threat_mapping/index.ts", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index 6ecb0482284768..78c35c9ee9a4d9 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; -io ts utilities and types to be shared with plugins from the security solution project -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.devdocs.json b/api_docs/kbn_securitysolution_io_ts_list_types.devdocs.json index 9bcbaf8108ab88..858be46e1f1886 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.devdocs.json +++ b/api_docs/kbn_securitysolution_io_ts_list_types.devdocs.json @@ -27,7 +27,7 @@ "label": "updateExceptionListItemValidate", "description": [], "signature": [ - "(schema: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) => string[]" + "(schema: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) => string[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_validation/index.ts", "deprecated": false, @@ -41,7 +41,7 @@ "label": "schema", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_validation/index.ts", "deprecated": false, @@ -60,7 +60,7 @@ "label": "validateComments", "description": [], "signature": [ - "(item: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) => string[]" + "(item: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) => string[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_validation/index.ts", "deprecated": false, @@ -74,7 +74,7 @@ "label": "item", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_validation/index.ts", "deprecated": false, @@ -162,7 +162,7 @@ "label": "listItem", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts", "deprecated": false, @@ -718,7 +718,7 @@ "label": "exceptions", "description": [], "signature": [ - "({ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }))[]" + "({ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }))[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts", "deprecated": false, @@ -1037,6 +1037,17 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/securitysolution-io-ts-list-types", + "id": "def-common.ApiListExportProps.includeExpiredExceptions", + "type": "boolean", + "tags": [], + "label": "includeExpiredExceptions", + "description": [], + "path": "packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/securitysolution-io-ts-list-types", "id": "def-common.ApiListExportProps.listId", @@ -1424,6 +1435,17 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/securitysolution-io-ts-list-types", + "id": "def-common.ExportExceptionListProps.includeExpiredExceptions", + "type": "boolean", + "tags": [], + "label": "includeExpiredExceptions", + "description": [], + "path": "packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/securitysolution-io-ts-list-types", "id": "def-common.ExportExceptionListProps.signal", @@ -1589,7 +1611,7 @@ "label": "exceptions", "description": [], "signature": [ - "({ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }))[]" + "({ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }))[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts", "deprecated": false, @@ -1847,7 +1869,7 @@ "label": "listItem", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts", "deprecated": false, @@ -1945,7 +1967,7 @@ "label": "exceptions", "description": [], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts", "deprecated": false, @@ -2602,7 +2624,7 @@ "label": "CreateEndpointListItemSchema", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; expire_time?: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_endpoint_list_item_schema/index.ts", "deprecated": false, @@ -2617,7 +2639,7 @@ "label": "CreateEndpointListItemSchemaDecoded", "description": [], "signature": [ - "Omit<{ description: string; entries: ({ field: string; operator: \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; name: string; type: \"simple\"; comments: { comment: string; }[] | undefined; item_id: string | undefined; meta: object | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; }, \"tags\" | \"entries\" | \"comments\" | \"item_id\" | \"os_types\"> & { comments: { comment: string; }[]; tags: string[]; item_id: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; os_types: (\"windows\" | \"linux\" | \"macos\")[]; }" + "Omit<{ description: string; entries: ({ field: string; operator: \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; name: string; type: \"simple\"; comments: { comment: string; }[] | undefined; item_id: string | undefined; meta: object | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; expire_time: string | undefined; }, \"entries\" | \"tags\" | \"comments\" | \"expire_time\" | \"item_id\" | \"os_types\"> & { comments: { comment: string; }[]; tags: string[]; item_id: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; os_types: (\"windows\" | \"linux\" | \"macos\")[]; expire_time: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_endpoint_list_item_schema/index.ts", "deprecated": false, @@ -2647,7 +2669,7 @@ "label": "CreateExceptionListItemSchema", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_exception_list_item_schema/index.ts", "deprecated": false, @@ -2662,7 +2684,7 @@ "label": "CreateExceptionListItemSchemaDecoded", "description": [], "signature": [ - "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; comments: { comment: string; }[] | undefined; item_id: string | undefined; meta: object | undefined; namespace_type: \"single\" | \"agnostic\" | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; }, \"tags\" | \"entries\" | \"comments\" | \"item_id\" | \"namespace_type\"> & { comments: { comment: string; }[]; tags: string[]; item_id: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; }" + "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; comments: { comment: string; }[] | undefined; expire_time: string | undefined; item_id: string | undefined; meta: object | undefined; namespace_type: \"single\" | \"agnostic\" | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; }, \"entries\" | \"tags\" | \"comments\" | \"expire_time\" | \"item_id\" | \"namespace_type\"> & { comments: { comment: string; }[]; expire_time: string | undefined; tags: string[]; item_id: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_exception_list_item_schema/index.ts", "deprecated": false, @@ -2737,7 +2759,7 @@ "label": "CreateListSchema", "description": [], "signature": [ - "{ description: string; name: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; } & { deserializer?: string | undefined; id?: string | undefined; meta?: object | undefined; serializer?: string | undefined; version?: number | undefined; }" + "{ description: string; name: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; } & { deserializer?: string | undefined; id?: string | undefined; meta?: object | undefined; serializer?: string | undefined; version?: number | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_list_schema/index.ts", "deprecated": false, @@ -2752,7 +2774,7 @@ "label": "CreateListSchemaDecoded", "description": [], "signature": [ - "{ name: string; description: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; id: string | undefined; meta: object | undefined; serializer: string | undefined; deserializer: string | undefined; } & { version: number; }" + "{ type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; id: string | undefined; name: string; description: string; meta: object | undefined; serializer: string | undefined; deserializer: string | undefined; } & { version: number; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_list_schema/index.ts", "deprecated": false, @@ -2767,7 +2789,7 @@ "label": "CreateRuleExceptionListItemSchema", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; list_id?: undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; list_id?: undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; expire_time?: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_rule_exception_item_schema/index.ts", "deprecated": false, @@ -2782,7 +2804,7 @@ "label": "CreateRuleExceptionListItemSchemaDecoded", "description": [], "signature": [ - "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; comments: { comment: string; }[] | undefined; item_id: string | undefined; list_id: undefined; meta: object | undefined; namespace_type: \"single\" | \"agnostic\" | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; }, \"tags\" | \"entries\" | \"comments\" | \"item_id\" | \"namespace_type\"> & { comments: { comment: string; }[]; tags: string[]; item_id: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; }" + "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; comments: { comment: string; }[] | undefined; item_id: string | undefined; list_id: undefined; meta: object | undefined; namespace_type: \"single\" | \"agnostic\" | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; expire_time: string | undefined; }, \"entries\" | \"tags\" | \"comments\" | \"expire_time\" | \"item_id\" | \"namespace_type\"> & { comments: { comment: string; }[]; tags: string[]; item_id: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; expire_time: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_rule_exception_item_schema/index.ts", "deprecated": false, @@ -3097,7 +3119,7 @@ "label": "EntriesArray", "description": [], "signature": [ - "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/entries/index.ts", "deprecated": false, @@ -3112,7 +3134,7 @@ "label": "EntriesArrayOrUndefined", "description": [], "signature": [ - "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[] | undefined" + "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[] | undefined" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/entries/index.ts", "deprecated": false, @@ -3127,7 +3149,7 @@ "label": "Entry", "description": [], "signature": [ - "{ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; }" + "{ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/entries/index.ts", "deprecated": false, @@ -3157,7 +3179,7 @@ "label": "EntryList", "description": [], "signature": [ - "{ field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; }" + "{ field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/entries_list/index.ts", "deprecated": false, @@ -3247,7 +3269,7 @@ "label": "ExceptionListItemSchema", "description": [], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.ts", "deprecated": false, @@ -3344,6 +3366,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/securitysolution-io-ts-list-types", + "id": "def-common.ExpireTimeOrUndefined", + "type": "Type", + "tags": [], + "label": "ExpireTimeOrUndefined", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/expire_time/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/securitysolution-io-ts-list-types", "id": "def-common.ExportExceptionDetails", @@ -3367,7 +3404,7 @@ "label": "ExportExceptionListQuerySchema", "description": [], "signature": [ - "{ id: string; list_id: string; namespace_type: \"single\" | \"agnostic\" | undefined; }" + "{ id: string; list_id: string; namespace_type: \"single\" | \"agnostic\" | undefined; include_expired_exceptions: \"true\" | \"false\" | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.ts", "deprecated": false, @@ -3592,7 +3629,7 @@ "label": "FoundAllListItemsSchema", "description": [], "signature": [ - "{ data: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]; total: number; }" + "{ data: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]; total: number; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/found_all_list_items_schema/index.ts", "deprecated": false, @@ -3607,7 +3644,7 @@ "label": "FoundExceptionListItemSchema", "description": [], "signature": [ - "{ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }" + "{ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/found_exception_list_item_schema/index.ts", "deprecated": false, @@ -3637,7 +3674,7 @@ "label": "FoundListItemSchema", "description": [], "signature": [ - "{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]; page: number; per_page: number; total: number; }" + "{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]; page: number; per_page: number; total: number; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/found_list_item_schema/index.ts", "deprecated": false, @@ -3652,7 +3689,7 @@ "label": "FoundListsBySizeSchema", "description": [], "signature": [ - "{ largeLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; smallLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; }" + "{ largeLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; smallLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/found_lists_by_size_schema/index.ts", "deprecated": false, @@ -3667,7 +3704,7 @@ "label": "FoundListSchema", "description": [], "signature": [ - "{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }" + "{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/found_list_schema/index.ts", "deprecated": false, @@ -3682,7 +3719,7 @@ "label": "GetExceptionFilterSchema", "description": [], "signature": [ - "({ exception_list_ids: { exception_list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; type: \"exception_list_ids\"; } | { exceptions: ({ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }))[]; type: \"exception_items\"; }) & { alias?: string | undefined; chunk_size?: number | undefined; exclude_exceptions?: boolean | undefined; }" + "({ exception_list_ids: { exception_list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; type: \"exception_list_ids\"; } | { exceptions: ({ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }))[]; type: \"exception_items\"; }) & { alias?: string | undefined; chunk_size?: number | undefined; exclude_exceptions?: boolean | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/get_exception_filter_schema/index.ts", "deprecated": false, @@ -3802,7 +3839,7 @@ "label": "ImportExceptionListItemSchema", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; item_id: string; list_id: string; name: string; type: \"simple\"; } & { id?: string | undefined; comments?: (({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; }) | { comment: string; })[] | undefined; created_at?: string | undefined; updated_at?: string | undefined; created_by?: string | undefined; updated_by?: string | undefined; _version?: string | undefined; tie_breaker_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; item_id: string; list_id: string; name: string; type: \"simple\"; } & { id?: string | undefined; comments?: (({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; }) | { comment: string; })[] | undefined; created_at?: string | undefined; updated_at?: string | undefined; created_by?: string | undefined; updated_by?: string | undefined; _version?: string | undefined; tie_breaker_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; expire_time?: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.ts", "deprecated": false, @@ -3817,7 +3854,7 @@ "label": "ImportExceptionListItemSchemaDecoded", "description": [], "signature": [ - "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; item_id: string; list_id: string; name: string; type: \"simple\"; } & { id?: string | undefined; comments?: (({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; }) | { comment: string; })[] | undefined; created_at?: string | undefined; updated_at?: string | undefined; created_by?: string | undefined; updated_by?: string | undefined; _version?: string | undefined; tie_breaker_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }, \"tags\" | \"entries\" | \"comments\" | \"item_id\" | \"namespace_type\"> & { comments: (({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; }) | { comment: string; })[]; tags: string[]; item_id: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; }" + "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; item_id: string; list_id: string; name: string; type: \"simple\"; } & { id?: string | undefined; comments?: (({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; }) | { comment: string; })[] | undefined; created_at?: string | undefined; updated_at?: string | undefined; created_by?: string | undefined; updated_by?: string | undefined; _version?: string | undefined; tie_breaker_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; expire_time?: string | undefined; }, \"entries\" | \"tags\" | \"comments\" | \"expire_time\" | \"item_id\" | \"namespace_type\"> & { comments: (({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; }) | { comment: string; })[]; tags: string[]; item_id: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; expire_time: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.ts", "deprecated": false, @@ -3877,7 +3914,7 @@ "label": "ImportListItemQuerySchema", "description": [], "signature": [ - "{ deserializer: string | undefined; list_id: string | undefined; serializer: string | undefined; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\" | undefined; }" + "{ deserializer: string | undefined; list_id: string | undefined; serializer: string | undefined; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\" | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/import_list_item_query_schema/index.ts", "deprecated": false, @@ -3892,7 +3929,7 @@ "label": "ImportListItemQuerySchemaEncoded", "description": [], "signature": [ - "{ deserializer?: string | undefined; list_id?: string | undefined; serializer?: string | undefined; type?: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\" | undefined; }" + "{ deserializer?: string | undefined; list_id?: string | undefined; serializer?: string | undefined; type?: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\" | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/import_list_item_query_schema/index.ts", "deprecated": false, @@ -4042,7 +4079,7 @@ "label": "ListArraySchema", "description": [], "signature": [ - "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]" + "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/list_schema/index.ts", "deprecated": false, @@ -4087,7 +4124,7 @@ "label": "ListItemArraySchema", "description": [], "signature": [ - "{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]" + "{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/list_item_schema/index.ts", "deprecated": false, @@ -4117,7 +4154,7 @@ "label": "ListItemSchema", "description": [], "signature": [ - "{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }" + "{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/list_item_schema/index.ts", "deprecated": false, @@ -4147,7 +4184,7 @@ "label": "ListSchema", "description": [], "signature": [ - "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }" + "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/list_schema/index.ts", "deprecated": false, @@ -4372,7 +4409,7 @@ "label": "NonEmptyEntriesArray", "description": [], "signature": [ - "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/non_empty_entries_array/index.ts", "deprecated": false, @@ -4387,7 +4424,7 @@ "label": "NonEmptyEntriesArrayDecoded", "description": [], "signature": [ - "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/non_empty_entries_array/index.ts", "deprecated": false, @@ -4822,7 +4859,7 @@ "label": "SearchListItemArraySchema", "description": [], "signature": [ - "{ items: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]; value: unknown; }[]" + "{ items: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]; value: unknown; }[]" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/search_list_item_schema/index.ts", "deprecated": false, @@ -4837,7 +4874,7 @@ "label": "SearchListItemSchema", "description": [], "signature": [ - "{ items: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]; value: unknown; }" + "{ items: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]; value: unknown; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/response/search_list_item_schema/index.ts", "deprecated": false, @@ -5002,7 +5039,7 @@ "label": "Type", "description": [], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"" + "\"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/type/index.ts", "deprecated": false, @@ -5017,7 +5054,7 @@ "label": "TypeOrUndefined", "description": [], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\" | undefined" + "\"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\" | undefined" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/type/index.ts", "deprecated": false, @@ -5077,7 +5114,7 @@ "label": "UpdateEndpointListItemSchema", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; expire_time?: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_endpoint_list_item_schema/index.ts", "deprecated": false, @@ -5092,7 +5129,7 @@ "label": "UpdateEndpointListItemSchemaDecoded", "description": [], "signature": [ - "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; _version: string | undefined; comments: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id: string | undefined; item_id: string | undefined; meta: object | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; }, \"tags\" | \"entries\" | \"comments\"> & { comments: ({ comment: string; } & { id?: string | undefined; })[]; tags: string[]; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; os_types: (\"windows\" | \"linux\" | \"macos\")[]; }" + "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; _version: string | undefined; comments: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id: string | undefined; item_id: string | undefined; meta: object | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; expire_time: string | undefined; }, \"entries\" | \"tags\" | \"comments\" | \"expire_time\"> & { comments: ({ comment: string; } & { id?: string | undefined; })[]; tags: string[]; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; os_types: (\"windows\" | \"linux\" | \"macos\")[]; expire_time: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_endpoint_list_item_schema/index.ts", "deprecated": false, @@ -5107,7 +5144,7 @@ "label": "UpdateExceptionListItemSchema", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_schema/index.ts", "deprecated": false, @@ -5122,7 +5159,7 @@ "label": "UpdateExceptionListItemSchemaDecoded", "description": [], "signature": [ - "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; _version: string | undefined; comments: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id: string | undefined; item_id: string | undefined; meta: object | undefined; namespace_type: \"single\" | \"agnostic\" | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; }, \"tags\" | \"entries\" | \"comments\" | \"namespace_type\" | \"os_types\"> & { comments: ({ comment: string; } & { id?: string | undefined; })[]; tags: string[]; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; }" + "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; _version: string | undefined; comments: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time: string | undefined; id: string | undefined; item_id: string | undefined; meta: object | undefined; namespace_type: \"single\" | \"agnostic\" | undefined; os_types: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags: string[] | undefined; }, \"entries\" | \"tags\" | \"comments\" | \"expire_time\" | \"namespace_type\" | \"os_types\"> & { comments: ({ comment: string; } & { id?: string | undefined; })[]; tags: string[]; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; expire_time: string | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_schema/index.ts", "deprecated": false, @@ -5587,7 +5624,13 @@ "UndefinedC", "]>; tags: ", "Type", - "; }>>]>" + "; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; }>>]>" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_endpoint_list_item_schema/index.ts", "deprecated": false, @@ -5677,7 +5720,7 @@ "StringC", "; entries: ", "Type", - "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; list_id: ", + "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; list_id: ", "Type", "; name: ", "StringC", @@ -5689,7 +5732,13 @@ "PartialC", "<{ comments: ", "Type", - "<{ comment: string; }[], { comment: string; }[], unknown>; item_id: ", + "<{ comment: string; }[], { comment: string; }[], unknown>; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; item_id: ", "Type", "; meta: ", "ObjectC", @@ -5845,7 +5894,7 @@ "StringC", "; entries: ", "Type", - "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; name: ", + "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; name: ", "StringC", "; type: ", "KeyofC", @@ -5871,7 +5920,13 @@ "UndefinedC", "]>; tags: ", "Type", - "; }>>]>" + "; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; }>>]>" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_rule_exception_item_schema/index.ts", "deprecated": false, @@ -6890,7 +6945,13 @@ "KeyofC", "<{ wildcard: null; }>; value: ", "Type", - "; }>>]>>; id: ", + "; }>>]>>; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; id: ", "Type", "; item_id: ", "Type", @@ -7214,7 +7275,13 @@ "KeyofC", "<{ wildcard: null; }>; value: ", "Type", - "; }>>]>>; id: ", + "; }>>]>>; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; id: ", "Type", "; item_id: ", "Type", @@ -7252,7 +7319,7 @@ "StringC", "; entries: ", "Type", - "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; list_id: ", + "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; list_id: ", "Type", "; name: ", "StringC", @@ -7264,7 +7331,13 @@ "PartialC", "<{ comments: ", "Type", - "<{ comment: string; }[], { comment: string; }[], unknown>; item_id: ", + "<{ comment: string; }[], { comment: string; }[], unknown>; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; item_id: ", "Type", "; meta: ", "ObjectC", @@ -7287,6 +7360,42 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/securitysolution-io-ts-list-types", + "id": "def-common.expireTime", + "type": "Object", + "tags": [], + "label": "expireTime", + "description": [], + "signature": [ + "Type", + "" + ], + "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/expire_time/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-io-ts-list-types", + "id": "def-common.expireTimeOrUndefined", + "type": "Object", + "tags": [], + "label": "expireTimeOrUndefined", + "description": [], + "signature": [ + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>" + ], + "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/expire_time/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/securitysolution-io-ts-list-types", "id": "def-common.exportExceptionDetails", @@ -7458,7 +7567,13 @@ "Type", "; namespace_type: ", "Type", - "<\"single\" | \"agnostic\", \"single\" | \"agnostic\" | undefined, unknown>; }>>" + "<\"single\" | \"agnostic\", \"single\" | \"agnostic\" | undefined, unknown>; include_expired_exceptions: ", + "UnionC", + "<[", + "KeyofC", + "<{ true: null; false: null; }>, ", + "UndefinedC", + "]>; }>>" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.ts", "deprecated": false, @@ -7947,7 +8062,13 @@ "KeyofC", "<{ wildcard: null; }>; value: ", "Type", - "; }>>]>>; id: ", + "; }>>]>>; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; id: ", "Type", "; item_id: ", "Type", @@ -8483,7 +8604,13 @@ "KeyofC", "<{ wildcard: null; }>; value: ", "Type", - "; }>>]>>; id: ", + "; }>>]>>; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; id: ", "Type", "; item_id: ", "Type", @@ -8521,7 +8648,7 @@ "StringC", "; entries: ", "Type", - "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; list_id: ", + "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; list_id: ", "Type", "; name: ", "StringC", @@ -8533,7 +8660,13 @@ "PartialC", "<{ comments: ", "Type", - "<{ comment: string; }[], { comment: string; }[], unknown>; item_id: ", + "<{ comment: string; }[], { comment: string; }[], unknown>; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; item_id: ", "Type", "; meta: ", "ObjectC", @@ -8808,7 +8941,7 @@ "StringC", "; entries: ", "Type", - "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; item_id: ", + "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; item_id: ", "Type", "; list_id: ", "Type", @@ -8848,7 +8981,13 @@ "UndefinedC", "]>; tags: ", "Type", - "; }>>]>" + "; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; }>>]>" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.ts", "deprecated": false, @@ -9848,7 +9987,7 @@ ], "signature": [ "Type", - "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>" + "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/common/non_empty_entries_array/index.ts", "deprecated": false, @@ -10858,7 +10997,7 @@ "StringC", "; entries: ", "Type", - "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; name: ", + "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; name: ", "StringC", "; type: ", "KeyofC", @@ -10888,7 +11027,13 @@ "UndefinedC", "]>; tags: ", "Type", - "; }>>]>" + "; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; }>>]>" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/update_endpoint_list_item_schema/index.ts", "deprecated": false, @@ -10912,7 +11057,7 @@ "StringC", "; entries: ", "Type", - "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; name: ", + "<({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[], unknown>; name: ", "StringC", "; type: ", "KeyofC", @@ -10924,7 +11069,13 @@ "StringC", "; comments: ", "Type", - "<({ comment: string; } & { id?: string | undefined; })[], ({ comment: string; } & { id?: string | undefined; })[], unknown>; id: ", + "<({ comment: string; } & { id?: string | undefined; })[], ({ comment: string; } & { id?: string | undefined; })[], unknown>; expire_time: ", + "UnionC", + "<[", + "Type", + ", ", + "UndefinedC", + "]>; id: ", "Type", "; item_id: ", "UnionC", diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index 910f5acb701299..cdf71ed0d4f9c6 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; -io ts utilities and types to be shared with plugins from the security solution project -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 511 | 1 | 498 | 0 | +| 516 | 1 | 503 | 0 | ## Common diff --git a/api_docs/kbn_securitysolution_io_ts_types.devdocs.json b/api_docs/kbn_securitysolution_io_ts_types.devdocs.json index 36efacff31bf47..5cc2e1b1049d9a 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.devdocs.json +++ b/api_docs/kbn_securitysolution_io_ts_types.devdocs.json @@ -514,7 +514,7 @@ "label": "ImportQuerySchema", "description": [], "signature": [ - "{ overwrite?: boolean | undefined; overwrite_exceptions?: boolean | undefined; as_new_list?: boolean | undefined; }" + "{ overwrite?: boolean | undefined; overwrite_exceptions?: boolean | undefined; overwrite_action_connectors?: boolean | undefined; as_new_list?: boolean | undefined; }" ], "path": "packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.ts", "deprecated": false, @@ -529,7 +529,7 @@ "label": "ImportQuerySchemaDecoded", "description": [], "signature": [ - "Omit<{ overwrite?: boolean | undefined; overwrite_exceptions?: boolean | undefined; as_new_list?: boolean | undefined; }, \"overwrite\" | \"overwrite_exceptions\" | \"as_new_list\"> & { overwrite: boolean; overwrite_exceptions: boolean; as_new_list: boolean; }" + "Omit<{ overwrite?: boolean | undefined; overwrite_exceptions?: boolean | undefined; overwrite_action_connectors?: boolean | undefined; as_new_list?: boolean | undefined; }, \"overwrite\" | \"overwrite_exceptions\" | \"overwrite_action_connectors\" | \"as_new_list\"> & { overwrite: boolean; overwrite_exceptions: boolean; overwrite_action_connectors: boolean; as_new_list: boolean; }" ], "path": "packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.ts", "deprecated": false, @@ -912,6 +912,8 @@ "Type", "; overwrite_exceptions: ", "Type", + "; overwrite_action_connectors: ", + "Type", "; as_new_list: ", "Type", "; }>>" diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index 9a0626f30033a0..4600e75b1d36ab 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; -io ts utilities and types to be shared with plugins from the security solution project -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 7bbcc052575e32..bee142e738c83e 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; -io ts utilities and types to be shared with plugins from the security solution project -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_list_api.devdocs.json b/api_docs/kbn_securitysolution_list_api.devdocs.json index cd8334e742dda8..b4c5635b5b281d 100644 --- a/api_docs/kbn_securitysolution_list_api.devdocs.json +++ b/api_docs/kbn_securitysolution_list_api.devdocs.json @@ -82,7 +82,7 @@ "section": "def-common.AddExceptionListItemProps", "text": "AddExceptionListItemProps" }, - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" ], "path": "packages/kbn-securitysolution-list-api/src/api/index.ts", "deprecated": false, @@ -270,7 +270,7 @@ "section": "def-common.ApiCallByIdProps", "text": "ApiCallByIdProps" }, - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" ], "path": "packages/kbn-securitysolution-list-api/src/api/index.ts", "deprecated": false, @@ -317,7 +317,7 @@ "section": "def-common.DeleteListParams", "text": "DeleteListParams" }, - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }>" ], "path": "packages/kbn-securitysolution-list-api/src/list_api/index.ts", "deprecated": false, @@ -357,10 +357,10 @@ ], "label": "exportExceptionList", "description": [ - "\nFetch an ExceptionList by providing a ExceptionList ID\n" + "\nExport an ExceptionList by providing a ExceptionList ID\n" ], "signature": [ - "({ http, id, listId, namespaceType, signal, }: ", + "({ http, id, includeExpiredExceptions, listId, namespaceType, signal, }: ", { "pluginId": "@kbn/securitysolution-io-ts-list-types", "scope": "common", @@ -379,7 +379,7 @@ "id": "def-common.exportExceptionList.$1", "type": "Object", "tags": [], - "label": "{\n http,\n id,\n listId,\n namespaceType,\n signal,\n}", + "label": "{\n http,\n id,\n includeExpiredExceptions,\n listId,\n namespaceType,\n signal,\n}", "description": [], "signature": [ { @@ -509,7 +509,7 @@ "section": "def-common.ApiCallByIdProps", "text": "ApiCallByIdProps" }, - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" ], "path": "packages/kbn-securitysolution-list-api/src/api/index.ts", "deprecated": false, @@ -556,7 +556,7 @@ "section": "def-common.ApiCallByListIdProps", "text": "ApiCallByListIdProps" }, - ") => Promise<{ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }>" + ") => Promise<{ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }>" ], "path": "packages/kbn-securitysolution-list-api/src/api/index.ts", "deprecated": false, @@ -650,7 +650,7 @@ "section": "def-common.FindListsParams", "text": "FindListsParams" }, - ") => Promise<{ largeLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; smallLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; }>" + ") => Promise<{ largeLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; smallLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; }>" ], "path": "packages/kbn-securitysolution-list-api/src/list_api/index.ts", "deprecated": false, @@ -697,7 +697,7 @@ "section": "def-common.FindListsParams", "text": "FindListsParams" }, - ") => Promise<{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }>" + ") => Promise<{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }>" ], "path": "packages/kbn-securitysolution-list-api/src/list_api/index.ts", "deprecated": false, @@ -862,7 +862,7 @@ "section": "def-common.ImportListParams", "text": "ImportListParams" }, - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }>" ], "path": "packages/kbn-securitysolution-list-api/src/list_api/index.ts", "deprecated": false, @@ -1072,7 +1072,7 @@ "section": "def-common.UpdateExceptionListItemProps", "text": "UpdateExceptionListItemProps" }, - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" ], "path": "packages/kbn-securitysolution-list-api/src/api/index.ts", "deprecated": false, @@ -1471,7 +1471,7 @@ "label": "type", "description": [], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\" | undefined" + "\"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\" | undefined" ], "path": "packages/kbn-securitysolution-list-api/src/list_api/types.ts", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index ed510cafc63b66..4b00af140be54e 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; -security solution list REST API -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index 126f96e2de1734..42c6c99bf8d189 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; -security solution list constants to use across plugins such lists, security_solution, cases, etc... -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_list_hooks.devdocs.json b/api_docs/kbn_securitysolution_list_hooks.devdocs.json index befcfaaecfb139..a1741a54232f05 100644 --- a/api_docs/kbn_securitysolution_list_hooks.devdocs.json +++ b/api_docs/kbn_securitysolution_list_hooks.devdocs.json @@ -29,7 +29,7 @@ "\nThis adds an id to the incoming exception item entries as ReactJS prefers to have\nan id added to them for use as a stable id. Later if we decide to change the data\nmodel to have id's within the array then this code should be removed. If not, then\nthis code should stay as an adapter for ReactJS.\n\nThis does break the type system slightly as we are lying a bit to the type system as we return\nthe same exceptionItem as we have previously but are augmenting the arrays with an id which TypeScript\ndoesn't mind us doing here. However, downstream you will notice that you have an id when the type\ndoes not indicate it. In that case use (ExceptionItem & { id: string }) temporarily if you're using the id. If you're not,\nyou can ignore the id and just use the normal TypeScript with ReactJS.\n" ], "signature": [ - "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -45,7 +45,7 @@ "The exceptionItem to add an id to the threat matches." ], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -68,7 +68,7 @@ "\nThis removes createdAt, createdBy from the exceptionItem if a comment was added to\nthe Exception item, and return the comment message with id to prevent creating the commet\ntwice" ], "signature": [ - "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })) => { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })) => { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -84,7 +84,7 @@ "The exceptionItem to remove createdAt, createdBy from the comments array." ], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -107,7 +107,7 @@ "\nThis removes an id from the exceptionItem entries as ReactJS prefers to have\nan id added to them for use as a stable id. Later if we decide to change the data\nmodel to have id's within the array then this code should be removed. If not, then\nthis code should stay as an adapter for ReactJS.\n" ], "signature": [ - "(exceptionItem: T) => T" + "(exceptionItem: T) => T" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -146,7 +146,7 @@ "\nTransforms the output of rules to compensate for technical debt or UI concerns such as\nReactJS preferences for having ids within arrays if the data is not modeled that way.\n\nIf you add a new transform of the input called \"myNewTransform\" do it\nin the form of:\nflow(addIdToExceptionItemEntries, myNewTransform)(exceptionItem)\n" ], "signature": [ - "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -162,7 +162,7 @@ "The exceptionItem to transform the output of" ], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -183,7 +183,7 @@ "label": "transformNewItemOutput", "description": [], "signature": [ - "(exceptionItem: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) => { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "(exceptionItem: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) => { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -197,7 +197,7 @@ "label": "exceptionItem", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -218,7 +218,7 @@ "\nTransforms the output of exception items to compensate for technical debt or UI concerns such as\nReactJS preferences for having ids within arrays if the data is not modeled that way.\n\nIf you add a new transform of the output called \"myNewTransform\" do it\nin the form of:\nflow(removeIdFromExceptionItemsEntries, myNewTransform)(exceptionItem)\n" ], "signature": [ - "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })) => { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })" + "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })) => { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -234,7 +234,7 @@ "The exceptionItem to transform the output of" ], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })" ], "path": "packages/kbn-securitysolution-list-hooks/src/transforms/index.ts", "deprecated": false, @@ -407,7 +407,7 @@ "section": "def-common.DeleteListParams", "text": "DeleteListParams" }, - ">], { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }>" + ">], { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }>" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_delete_list/index.ts", "deprecated": false, @@ -545,7 +545,7 @@ "section": "def-common.FindListsParams", "text": "FindListsParams" }, - ">], { cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }>" + ">], { cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }>" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_find_lists/index.ts", "deprecated": false, @@ -586,7 +586,7 @@ "section": "def-common.FindListsParams", "text": "FindListsParams" }, - ">], { largeLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; smallLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; }>" + ">], { largeLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; smallLists: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; }>" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_find_lists_by_size/index.ts", "deprecated": false, @@ -627,7 +627,7 @@ "section": "def-common.ImportListParams", "text": "ImportListParams" }, - ">], { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }>" + ">], { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }>" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_import_list/index.ts", "deprecated": false, @@ -851,7 +851,7 @@ "label": "addExceptionListItem", "description": [], "signature": [ - "(arg: { listItem: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }; }) => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" + "(arg: { listItem: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }; }) => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_api/index.ts", "deprecated": false, @@ -876,7 +876,7 @@ "label": "listItem", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_api/index.ts", "deprecated": false, @@ -895,7 +895,7 @@ "label": "updateExceptionListItem", "description": [], "signature": [ - "(arg: { listItem: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }; }) => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" + "(arg: { listItem: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }; }) => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_api/index.ts", "deprecated": false, @@ -920,7 +920,7 @@ "label": "listItem", "description": [], "signature": [ - "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" + "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_api/index.ts", "deprecated": false, @@ -1039,7 +1039,7 @@ "section": "def-common.ApiCallMemoProps", "text": "ApiCallMemoProps" }, - " & { onSuccess: (arg: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => void; }) => Promise" + " & { onSuccess: (arg: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => void; }) => Promise" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_api/index.ts", "deprecated": false, @@ -1060,7 +1060,7 @@ "section": "def-common.ApiCallMemoProps", "text": "ApiCallMemoProps" }, - " & { onSuccess: (arg: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => void; }" + " & { onSuccess: (arg: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }) => void; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_api/index.ts", "deprecated": false, @@ -1423,7 +1423,7 @@ "label": "ReturnPersistExceptionItem", "description": [], "signature": [ - "[PersistReturnExceptionItem, React.Dispatch<({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) | null>]" + "[PersistReturnExceptionItem, React.Dispatch<({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; expire_time?: string | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) | null>]" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_persist_exception_item/index.ts", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index e770d71a7efce6..3249a38a259deb 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; -Security solution list ReactJS hooks -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_list_utils.devdocs.json b/api_docs/kbn_securitysolution_list_utils.devdocs.json index e874763d9e6306..ae9d7b8f6fc72a 100644 --- a/api_docs/kbn_securitysolution_list_utils.devdocs.json +++ b/api_docs/kbn_securitysolution_list_utils.devdocs.json @@ -27,7 +27,7 @@ "label": "addIdToEntries", "description": [], "signature": [ - "(entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]) => ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + "(entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]) => ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" ], "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", "deprecated": false, @@ -41,7 +41,103 @@ "label": "entries", "description": [], "signature": [ - "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.buildShowActiveExceptionsFilter", + "type": "Function", + "tags": [], + "label": "buildShowActiveExceptionsFilter", + "description": [], + "signature": [ + "(savedObjectPrefix: ", + { + "pluginId": "@kbn/securitysolution-list-utils", + "scope": "common", + "docId": "kibKbnSecuritysolutionListUtilsPluginApi", + "section": "def-common.SavedObjectType", + "text": "SavedObjectType" + }, + "[]) => string" + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.buildShowActiveExceptionsFilter.$1", + "type": "Array", + "tags": [], + "label": "savedObjectPrefix", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-list-utils", + "scope": "common", + "docId": "kibKbnSecuritysolutionListUtilsPluginApi", + "section": "def-common.SavedObjectType", + "text": "SavedObjectType" + }, + "[]" + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.buildShowExpiredExceptionsFilter", + "type": "Function", + "tags": [], + "label": "buildShowExpiredExceptionsFilter", + "description": [], + "signature": [ + "(savedObjectPrefix: ", + { + "pluginId": "@kbn/securitysolution-list-utils", + "scope": "common", + "docId": "kibKbnSecuritysolutionListUtilsPluginApi", + "section": "def-common.SavedObjectType", + "text": "SavedObjectType" + }, + "[]) => string" + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.buildShowExpiredExceptionsFilter.$1", + "type": "Array", + "tags": [], + "label": "savedObjectPrefix", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-list-utils", + "scope": "common", + "docId": "kibKbnSecuritysolutionListUtilsPluginApi", + "section": "def-common.SavedObjectType", + "text": "SavedObjectType" + }, + "[]" ], "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", "deprecated": false, @@ -314,7 +410,7 @@ "section": "def-common.FormattedBuilderEntry", "text": "FormattedBuilderEntry" }, - ") => ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; }) & { id?: string | undefined; }" + ") => ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; }) & { id?: string | undefined; }" ], "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", "deprecated": false, @@ -474,7 +570,7 @@ "section": "def-common.FormattedBuilderEntry", "text": "FormattedBuilderEntry" }, - ", newField: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }) => { index: number; updatedEntry: ", + ", newField: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }) => { index: number; updatedEntry: ", { "pluginId": "@kbn/securitysolution-list-utils", "scope": "common", @@ -521,7 +617,7 @@ "- newly selected list" ], "signature": [ - "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }" + "{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }" ], "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", "deprecated": false, @@ -1668,6 +1764,61 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.getMappingConflictsInfo", + "type": "Function", + "tags": [], + "label": "getMappingConflictsInfo", + "description": [], + "signature": [ + "(field: ", + { + "pluginId": "@kbn/securitysolution-list-utils", + "scope": "common", + "docId": "kibKbnSecuritysolutionListUtilsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => ", + { + "pluginId": "@kbn/securitysolution-list-utils", + "scope": "common", + "docId": "kibKbnSecuritysolutionListUtilsPluginApi", + "section": "def-common.FieldConflictsInfo", + "text": "FieldConflictsInfo" + }, + "[] | null" + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.getMappingConflictsInfo.$1", + "type": "Object", + "tags": [], + "label": "field", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-list-utils", + "scope": "common", + "docId": "kibKbnSecuritysolutionListUtilsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + } + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/securitysolution-list-utils", "id": "def-common.getNewExceptionItem", @@ -2108,7 +2259,7 @@ "label": "hasLargeValueList", "description": [], "signature": [ - "(entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]) => boolean" + "(entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]) => boolean" ], "path": "packages/kbn-securitysolution-list-utils/src/has_large_value_list/index.ts", "deprecated": false, @@ -2122,7 +2273,7 @@ "label": "entries", "description": [], "signature": [ - "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" ], "path": "packages/kbn-securitysolution-list-utils/src/has_large_value_list/index.ts", "deprecated": false, @@ -2182,6 +2333,51 @@ } ], "interfaces": [ + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.DataViewField", + "type": "Interface", + "tags": [], + "label": "DataViewField", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-list-utils", + "scope": "common", + "docId": "kibKbnSecuritysolutionListUtilsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + " extends ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.DataViewFieldBase", + "text": "DataViewFieldBase" + } + ], + "path": "packages/kbn-securitysolution-list-utils/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.DataViewField.conflictDescriptions", + "type": "Object", + "tags": [], + "label": "conflictDescriptions", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "packages/kbn-securitysolution-list-utils/src/types/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/securitysolution-list-utils", "id": "def-common.EmptyEntry", @@ -2460,6 +2656,62 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.FieldConflictsInfo", + "type": "Interface", + "tags": [], + "label": "FieldConflictsInfo", + "description": [], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.FieldConflictsInfo.type", + "type": "string", + "tags": [], + "label": "type", + "description": [ + "\nKibana field type" + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.FieldConflictsInfo.totalIndexCount", + "type": "number", + "tags": [], + "label": "totalIndexCount", + "description": [ + "\nTotal count of the indices of this type" + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.FieldConflictsInfo.groupedIndices", + "type": "Array", + "tags": [], + "label": "groupedIndices", + "description": [ + "\nGrouped indices info" + ], + "signature": [ + "{ name: string; count: number; }[]" + ], + "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/securitysolution-list-utils", "id": "def-common.FormattedBuilderEntry", @@ -2545,7 +2797,7 @@ "label": "nested", "description": [], "signature": [ - "\"parent\" | \"child\" | undefined" + "\"child\" | \"parent\" | undefined" ], "path": "packages/kbn-securitysolution-list-utils/src/types/index.ts", "deprecated": false, @@ -2779,7 +3031,7 @@ "label": "BuilderEntry", "description": [], "signature": [ - "(({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; }) & { id?: string | undefined; }) | ", + "(({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; }) & { id?: string | undefined; }) | ", { "pluginId": "@kbn/securitysolution-list-utils", "scope": "common", @@ -2840,7 +3092,7 @@ "label": "CreateExceptionListItemBuilderSchema", "description": [], "signature": [ - "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }, \"entries\" | \"meta\" | \"list_id\" | \"namespace_type\"> & { meta: { temporaryUuid: string; }; entries: ", + "Omit<{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }, \"entries\" | \"meta\" | \"list_id\" | \"namespace_type\"> & { meta: { temporaryUuid: string; }; entries: ", { "pluginId": "@kbn/securitysolution-list-utils", "scope": "common", @@ -2966,7 +3218,7 @@ "label": "ExceptionListItemBuilderSchema", "description": [], "signature": [ - "Omit<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }, \"entries\"> & { entries: ", + "Omit<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }, \"entries\"> & { entries: ", { "pluginId": "@kbn/securitysolution-list-utils", "scope": "common", @@ -3033,7 +3285,7 @@ "label": "ExceptionsBuilderReturnExceptionItem", "description": [], "signature": [ - "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; list_id?: undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })" + "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; expire_time?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; list_id?: undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; expire_time?: string | undefined; })" ], "path": "packages/kbn-securitysolution-list-utils/src/types/index.ts", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index 27b1b383f3441a..caa0d5e2e00418 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; -security solution list utilities -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 194 | 10 | 150 | 0 | +| 206 | 10 | 159 | 0 | ## Common diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index a81f9136d6e346..55ee9049d3558c 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; -security solution rule utilities to use across plugins -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index 1dfa4b77a33255..32efc033ddfb74 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; -security solution t-grid packages will allow sharing components between timelines and security_solution plugin until we transfer all functionality to timelines plugin -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_securitysolution_utils.devdocs.json b/api_docs/kbn_securitysolution_utils.devdocs.json index bef378738fe825..eccd7e3a4d1493 100644 --- a/api_docs/kbn_securitysolution_utils.devdocs.json +++ b/api_docs/kbn_securitysolution_utils.devdocs.json @@ -121,7 +121,7 @@ "label": "type", "description": [], "signature": [ - "\"match\" | \"wildcard\" | \"match_any\"" + "\"wildcard\" | \"match\" | \"match_any\"" ], "path": "packages/kbn-securitysolution-utils/src/path_validations/index.ts", "deprecated": false, @@ -250,7 +250,7 @@ "label": "type", "description": [], "signature": [ - "\"match\" | \"wildcard\" | \"match_any\"" + "\"wildcard\" | \"match\" | \"match_any\"" ], "path": "packages/kbn-securitysolution-utils/src/path_validations/index.ts", "deprecated": false, @@ -510,7 +510,7 @@ "label": "EntryTypes", "description": [], "signature": [ - "\"match\" | \"wildcard\" | \"match_any\"" + "\"wildcard\" | \"match\" | \"match_any\"" ], "path": "packages/kbn-securitysolution-utils/src/path_validations/index.ts", "deprecated": false, @@ -570,7 +570,7 @@ "label": "TrustedAppEntryTypes", "description": [], "signature": [ - "\"match\" | \"wildcard\"" + "\"wildcard\" | \"match\"" ], "path": "packages/kbn-securitysolution-utils/src/path_validations/index.ts", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index 21cab6dca73cd6..af0f8e763b359e 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; -security solution utilities to use across plugins such lists, security_solution, cases, etc... -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_server_http_tools.devdocs.json b/api_docs/kbn_server_http_tools.devdocs.json index 3ddecb62f3d6df..41d32b3c07d59e 100644 --- a/api_docs/kbn_server_http_tools.devdocs.json +++ b/api_docs/kbn_server_http_tools.devdocs.json @@ -955,7 +955,7 @@ "section": "def-common.Type", "text": "Type" }, - "<\"optional\" | \"none\" | \"required\">; }>" + "<\"none\" | \"optional\" | \"required\">; }>" ], "path": "packages/kbn-server-http-tools/src/ssl/ssl_config.ts", "deprecated": false, diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 48cd3e2d2fc06b..e63cbfca53d019 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_server_route_repository.devdocs.json b/api_docs/kbn_server_route_repository.devdocs.json index 650e946e68b7f6..e9b6b60f303189 100644 --- a/api_docs/kbn_server_route_repository.devdocs.json +++ b/api_docs/kbn_server_route_repository.devdocs.json @@ -1,11 +1,27 @@ { "id": "@kbn/server-route-repository", "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { "classes": [], "functions": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.createServerRouteFactory", + "id": "def-common.createServerRouteFactory", "type": "Function", "tags": [], "label": "createServerRouteFactory", @@ -14,25 +30,25 @@ "() => (route: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, ") => Record>" @@ -46,7 +62,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.decodeRequestParams", + "id": "def-common.decodeRequestParams", "type": "Function", "tags": [], "label": "decodeRequestParams", @@ -62,7 +78,7 @@ "children": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.decodeRequestParams.$1", + "id": "def-common.decodeRequestParams.$1", "type": "Object", "tags": [], "label": "params", @@ -77,7 +93,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.decodeRequestParams.$2", + "id": "def-common.decodeRequestParams.$2", "type": "Uncategorized", "tags": [], "label": "paramsRt", @@ -96,7 +112,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.formatRequest", + "id": "def-common.formatRequest", "type": "Function", "tags": [], "label": "formatRequest", @@ -110,7 +126,7 @@ "children": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.formatRequest.$1", + "id": "def-common.formatRequest.$1", "type": "string", "tags": [], "label": "endpoint", @@ -125,7 +141,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.formatRequest.$2", + "id": "def-common.formatRequest.$2", "type": "Object", "tags": [], "label": "pathParams", @@ -144,7 +160,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.parseEndpoint", + "id": "def-common.parseEndpoint", "type": "Function", "tags": [], "label": "parseEndpoint", @@ -158,7 +174,7 @@ "children": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.parseEndpoint.$1", + "id": "def-common.parseEndpoint.$1", "type": "string", "tags": [], "label": "endpoint", @@ -179,7 +195,7 @@ "interfaces": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.RouteState", + "id": "def-common.RouteState", "type": "Interface", "tags": [], "label": "RouteState", @@ -190,7 +206,7 @@ "children": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.RouteState.Unnamed", + "id": "def-common.RouteState.Unnamed", "type": "IndexSignature", "tags": [], "label": "[endpoint: string]: any", @@ -210,7 +226,7 @@ "misc": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.ClientRequestParamsOf", + "id": "def-common.ClientRequestParamsOf", "type": "Type", "tags": [], "label": "ClientRequestParamsOf", @@ -219,9 +235,9 @@ "TServerRouteRepository[TEndpoint] extends ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, " ? TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.RouteParamsRT", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " ? ClientRequestParamsOfType : {} : never" @@ -243,7 +259,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.DecodedRequestParamsOf", + "id": "def-common.DecodedRequestParamsOf", "type": "Type", "tags": [], "label": "DecodedRequestParamsOf", @@ -252,9 +268,9 @@ "TServerRouteRepository[TEndpoint] extends ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, " ? TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.RouteParamsRT", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " ? DecodedRequestParamsOfType : {} : never" @@ -276,7 +292,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.EndpointOf", + "id": "def-common.EndpointOf", "type": "Type", "tags": [], "label": "EndpointOf", @@ -291,7 +307,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.ReturnOf", + "id": "def-common.ReturnOf", "type": "Type", "tags": [], "label": "ReturnOf", @@ -300,9 +316,9 @@ "TServerRouteRepository[TEndpoint] extends ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ClientRequestParamsOf", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions>) => Promise<", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ReturnOf", + "section": "def-common.ReturnOf", "text": "ReturnOf" }, ">" @@ -368,7 +384,7 @@ "children": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.RouteRepositoryClient.$1", + "id": "def-common.RouteRepositoryClient.$1", "type": "Uncategorized", "tags": [], "label": "endpoint", @@ -382,7 +398,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.RouteRepositoryClient.$2", + "id": "def-common.RouteRepositoryClient.$2", "type": "Uncategorized", "tags": [], "label": "args", @@ -392,25 +408,25 @@ "<", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ClientRequestParamsOf", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions> extends never ? [] | [", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ClientRequestParamsOf", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions] : [", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ClientRequestParamsOf", + "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, " & TAdditionalClientOptions]" @@ -424,7 +440,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.ServerRoute", + "id": "def-common.ServerRoute", "type": "Type", "tags": [], "label": "ServerRoute", @@ -433,9 +449,9 @@ "{ endpoint: TEndpoint; params?: TRouteParamsRT | undefined; handler: ({}: TRouteHandlerResources & (TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.RouteParamsRT", + "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, " ? DecodedRequestParamsOfType : {})) => Promise; } & TRouteCreateOptions" @@ -447,7 +463,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.ServerRouteRepository", + "id": "def-common.ServerRouteRepository", "type": "Type", "tags": [], "label": "ServerRouteRepository", @@ -456,17 +472,17 @@ "{ [x: string]: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, ">; }" @@ -480,7 +496,7 @@ "objects": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.routeValidationObject", + "id": "def-common.routeValidationObject", "type": "Object", "tags": [], "label": "routeValidationObject", @@ -491,7 +507,7 @@ "children": [ { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.routeValidationObject.body", + "id": "def-common.routeValidationObject.body", "type": "Object", "tags": [], "label": "body", @@ -514,7 +530,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.routeValidationObject.params", + "id": "def-common.routeValidationObject.params", "type": "Object", "tags": [], "label": "params", @@ -535,7 +551,7 @@ }, { "parentPluginId": "@kbn/server-route-repository", - "id": "def-public.routeValidationObject.query", + "id": "def-common.routeValidationObject.query", "type": "Object", "tags": [], "label": "query", @@ -558,21 +574,5 @@ "initialIsOpen": false } ] - }, - "server": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "common": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] } } \ No newline at end of file diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index c4dc26b1493f1f..cff861f8c3b4ab 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. **Code health stats** @@ -23,17 +23,17 @@ Contact [Owner missing] for questions regarding this plugin. |-------------------|-----------|------------------------|-----------------| | 25 | 0 | 24 | 1 | -## Client +## Common ### Objects - + ### Functions - + ### Interfaces - + ### Consts, variables and types - + diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 238d11b5df36fb..7d5b0ab7d52e60 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index cef5d9155657e6..97ffdae80e991a 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.devdocs.json b/api_docs/kbn_shared_ux_avatar_user_profile_components.devdocs.json index 3d6d19d5367211..3bcad06a1a554c 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.devdocs.json +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.devdocs.json @@ -193,7 +193,7 @@ }, " extends Omit<", "EuiAvatarProps", - ", \"name\" | \"type\" | \"color\" | \"iconColor\" | \"iconType\" | \"iconSize\" | \"initials\" | \"initialsLength\" | \"imageUrl\">" + ", \"type\" | \"name\" | \"color\" | \"iconType\" | \"iconColor\" | \"iconSize\" | \"initials\" | \"initialsLength\" | \"imageUrl\">" ], "path": "packages/shared-ux/avatar/user_profile/impl/user_avatar.tsx", "deprecated": false, diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index 8bbbc0246b2806..172bc06c169006 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components'] --- import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index 731e75801d5e27..b1c4117179d7a9 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index f94e920547e501..8420fe32efc0ba 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen-mocks'] --- import kbnSharedUxButtonExitFullScreenMocksObj from './kbn_shared_ux_button_exit_full_screen_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index d2f8081bd18e69..0db02d3d7ff77e 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_card_no_data.devdocs.json b/api_docs/kbn_shared_ux_card_no_data.devdocs.json index 92a4f6ebfd7c35..54defc33a74ebb 100644 --- a/api_docs/kbn_shared_ux_card_no_data.devdocs.json +++ b/api_docs/kbn_shared_ux_card_no_data.devdocs.json @@ -148,7 +148,7 @@ "signature": [ "Partial> & { button?: React.ReactNode; onClick?: React.MouseEventHandler | undefined; description?: React.ReactNode; category?: string | undefined; canAccessFleet?: boolean | undefined; }" + ", \"description\" | \"button\" | \"onClick\" | \"isDisabled\" | \"layout\">> & { button?: React.ReactNode; onClick?: React.MouseEventHandler | undefined; description?: React.ReactNode; category?: string | undefined; canAccessFleet?: boolean | undefined; }" ], "path": "packages/shared-ux/card/no_data/types/index.d.ts", "deprecated": false, @@ -184,13 +184,13 @@ "\nProps for the `NoDataCard` sevice-connected component." ], "signature": [ - "{ children?: React.ReactNode; description?: React.ReactNode; category?: string | undefined; onError?: React.ReactEventHandler | undefined; hidden?: boolean | undefined; icon?: React.ReactElement<", - "EuiIconProps", - ", string | React.JSXElementConstructor> | null | undefined; id?: string | undefined; image?: string | React.ReactElement> | undefined; className?: string | undefined; title?: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | undefined; onChange?: React.FormEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; placeholder?: string | undefined; security?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; lang?: string | undefined; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: \"inherit\" | Booleanish | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: React.CSSProperties | undefined; tabIndex?: number | undefined; translate?: \"no\" | \"yes\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; prefix?: string | undefined; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"none\" | \"email\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"numeric\" | \"decimal\" | undefined; is?: string | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"date\" | \"location\" | \"time\" | \"page\" | \"false\" | \"true\" | \"step\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"none\" | \"copy\" | \"link\" | \"execute\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"grid\" | \"menu\" | \"false\" | \"true\" | \"dialog\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"false\" | \"true\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-label'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"all\" | \"text\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"other\" | \"ascending\" | \"descending\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; 'data-test-subj'?: string | undefined; css?: ", + "{ prefix?: string | undefined; id?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; children?: React.ReactNode; description?: React.ReactNode; category?: string | undefined; is?: string | undefined; title?: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | undefined; button?: React.ReactNode; footer?: React.ReactNode; slot?: string | undefined; style?: React.CSSProperties | undefined; image?: string | React.ReactElement> | undefined; className?: string | undefined; 'aria-label'?: string | undefined; 'data-test-subj'?: string | undefined; css?: ", "Interpolation", "<", "Theme", - ">; href?: string | undefined; rel?: string | undefined; target?: string | undefined; paddingSize?: \"none\" | \"m\" | \"s\" | \"xs\" | \"l\" | \"xl\" | undefined; button?: React.ReactNode; footer?: React.ReactNode; hasBorder?: boolean | undefined; textAlign?: \"left\" | \"right\" | \"center\" | undefined; titleElement?: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"span\" | undefined; titleSize?: \"s\" | \"xs\" | undefined; betaBadgeProps?: (", + ">; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: Booleanish | \"inherit\" | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; hidden?: boolean | undefined; lang?: string | undefined; placeholder?: string | undefined; spellCheck?: Booleanish | undefined; tabIndex?: number | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; security?: string | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"search\" | \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"page\" | \"date\" | \"time\" | \"true\" | \"false\" | \"step\" | \"location\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"execute\" | \"link\" | \"none\" | \"copy\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"dialog\" | \"menu\" | \"true\" | \"false\" | \"grid\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"text\" | \"additions\" | \"additions removals\" | \"additions text\" | \"all\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"ascending\" | \"descending\" | \"other\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChange?: React.FormEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onError?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; paddingSize?: \"m\" | \"none\" | \"s\" | \"xs\" | \"l\" | \"xl\" | undefined; href?: string | undefined; rel?: string | undefined; target?: string | undefined; icon?: React.ReactElement<", + "EuiIconProps", + ", string | React.JSXElementConstructor> | null | undefined; hasBorder?: boolean | undefined; textAlign?: \"right\" | \"left\" | \"center\" | undefined; titleElement?: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"span\" | undefined; titleSize?: \"s\" | \"xs\" | undefined; betaBadgeProps?: (", "CommonProps", " & ", "DisambiguateSet", @@ -340,7 +340,7 @@ "DisambiguateSet", " & ", "DisambiguateSet", - "<{ tooltipContent: React.ReactNode; title?: string | undefined; }, { title: string; tooltipContent?: React.ReactNode; }> & { title: string; tooltipContent?: React.ReactNode; } & { label: React.ReactNode; }) | undefined; display?: \"warning\" | \"subdued\" | \"primary\" | \"accent\" | \"success\" | \"danger\" | \"transparent\" | \"plain\" | undefined; selectable?: (", + "<{ tooltipContent: React.ReactNode; title?: string | undefined; }, { title: string; tooltipContent?: React.ReactNode; }> & { title: string; tooltipContent?: React.ReactNode; } & { label: React.ReactNode; }) | undefined; display?: \"warning\" | \"success\" | \"plain\" | \"subdued\" | \"primary\" | \"accent\" | \"danger\" | \"transparent\" | undefined; selectable?: (", "DisambiguateSet", "<", "EuiButtonPropsForAnchor", diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index f3821a644324bc..8c3a3924fd18c5 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index f5874e5f5be84f..70d2d2f45bd3fb 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index fe20f4a960a0aa..4dbda76e66af99 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index 15c6ac14b94d0f..b5479e93d8f1ef 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index bb4b37e38ca6fd..a1f054c0921249 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index dc5e5983ecab0c..f184a0459cf85e 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 1af6ca76ecb2ee..5e3798db237578 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 19767a62c5a10b..f4ef6047745a7f 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 66ccc135a23021..676c13ca414294 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index dc3f682e7a1e7b..8b8197b0ac395f 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 937ab78244d308..298a7c7ca889b1 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index c75bee69ce1644..5c11ebbbda753d 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_markdown_mocks.devdocs.json b/api_docs/kbn_shared_ux_markdown_mocks.devdocs.json index 363b2f278531e7..e6fca98d31d643 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.devdocs.json +++ b/api_docs/kbn_shared_ux_markdown_mocks.devdocs.json @@ -433,13 +433,13 @@ "label": "getServices", "description": [], "signature": [ - "() => { children?: React.ReactNode; value?: string | undefined; onError?: React.ReactEventHandler | undefined; hidden?: boolean | undefined; color?: string | undefined; id?: string | undefined; className?: string | undefined; title?: string | undefined; onChange?: ((value: string) => void) | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; placeholder?: string | undefined; security?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; lang?: string | undefined; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: \"inherit\" | Booleanish | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: React.CSSProperties | undefined; tabIndex?: number | undefined; translate?: \"no\" | \"yes\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; prefix?: string | undefined; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"none\" | \"email\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"numeric\" | \"decimal\" | undefined; is?: string | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"date\" | \"location\" | \"time\" | \"page\" | \"false\" | \"true\" | \"step\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"none\" | \"copy\" | \"link\" | \"execute\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"grid\" | \"menu\" | \"false\" | \"true\" | \"dialog\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"false\" | \"true\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-label'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"all\" | \"text\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"other\" | \"ascending\" | \"descending\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; 'data-test-subj'?: string | undefined; css?: ", + "() => { prefix?: string | undefined; value?: string | undefined; id?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; children?: React.ReactNode; errors?: ", + "EuiMarkdownParseError", + "[] | undefined; is?: string | undefined; title?: string | undefined; slot?: string | undefined; style?: React.CSSProperties | undefined; className?: string | undefined; 'aria-label'?: string | undefined; 'data-test-subj'?: string | undefined; css?: ", "Interpolation", "<", "Theme", - ">; height?: number | \"full\" | undefined; readOnly: boolean; errors?: ", - "EuiMarkdownParseError", - "[] | undefined; maxHeight?: number | undefined; autoExpandPreview?: boolean | undefined; parsingPluginList?: ", + ">; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: Booleanish | \"inherit\" | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; hidden?: boolean | undefined; lang?: string | undefined; placeholder?: string | undefined; spellCheck?: Booleanish | undefined; tabIndex?: number | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; color?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; security?: string | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"search\" | \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"page\" | \"date\" | \"time\" | \"true\" | \"false\" | \"step\" | \"location\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"execute\" | \"link\" | \"none\" | \"copy\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"dialog\" | \"menu\" | \"true\" | \"false\" | \"grid\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"text\" | \"additions\" | \"additions removals\" | \"additions text\" | \"all\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"ascending\" | \"descending\" | \"other\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChange?: ((value: string) => void) | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onError?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; height?: number | \"full\" | undefined; readOnly: boolean; maxHeight?: number | undefined; autoExpandPreview?: boolean | undefined; parsingPluginList?: ", "PluggableList", "<", "Settings", diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index a6bdfc03886cf9..5a29d4876ef990 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index ef0c3e5991d9d5..6dfdbebabfd2f4 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index dce9c136dee01c..11ad2bbc3ed6b0 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index d12e9b7bfe5d06..fa43ca9d14810a 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index f1d0999e082106..3ba5e717cf791c 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index a5075908d326e7..ae4880bfdcf3d8 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index 6e1739dca4832b..38b45bf89741b6 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 54ea6ca0d852b4..98791f75058012 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index 31b36dbd0f925c..3f36c76c245743 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index 783cc6539e1c62..fbd31f57a4dcbc 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index f2c4c291a6e1a0..456e00b1e38b76 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index 77080f3d55c462..2187fd966a9dbb 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json b/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json index 280a77207476a1..348accba9641dc 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json @@ -241,7 +241,7 @@ "The background color of the prompt; defaults to `plain`." ], "signature": [ - "\"warning\" | \"subdued\" | \"primary\" | \"accent\" | \"success\" | \"danger\" | \"transparent\" | \"plain\" | undefined" + "\"warning\" | \"success\" | \"plain\" | \"subdued\" | \"primary\" | \"accent\" | \"danger\" | \"transparent\" | undefined" ], "path": "packages/shared-ux/prompt/no_data_views/types/index.d.ts", "deprecated": false, diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index e9253d2f8d8f44..706ff965f03f00 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index c71c34c58322c0..8c3b656c6b6dbf 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 2f3001b45f776e..0aa7056eefc535 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index b52b11f11c36a6..68d5bbedf84b9e 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index b8828d154eeaf9..635e5f060a153d 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index 090facba8c3b45..9e4dbdbfad0e28 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index cb1ed8d3cc7cb1..cc03b53dd4cc86 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 5e46e902682791..6f1c13d5d4f6d9 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 4053a2615f84e5..bd6516f4e91e3f 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; -SLO io-ts schema definition and common models shared between public and server. -Contact [Owner missing] for questions regarding this plugin. + +Contact [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_some_dev_log.devdocs.json b/api_docs/kbn_some_dev_log.devdocs.json index aa82f7d6bcb161..32ec9c850c8818 100644 --- a/api_docs/kbn_some_dev_log.devdocs.json +++ b/api_docs/kbn_some_dev_log.devdocs.json @@ -343,7 +343,7 @@ "\nBasic set of log-level flags, the common levels implemented between\nthe ToolingLog and the kbn_pm logger" ], "signature": [ - "\"info\" | \"debug\" | \"verbose\" | \"quiet\"" + "\"debug\" | \"info\" | \"verbose\" | \"quiet\"" ], "path": "packages/kbn-some-dev-log/src/some_dev_log.ts", "deprecated": false, diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 9d5dbd5af26848..0621fdebcb90ea 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index bc87ab167ef32e..29aa0a99d10052 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 645dde63fee56f..683d07978df361 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index 406e4569dbe0c0..d3f607edf5a24f 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; -Contact Operations for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index c982fe1979f9d1..05d9a6e6f9852c 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; -Contact Kibana Core for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_test.devdocs.json b/api_docs/kbn_test.devdocs.json index b279d8487703ea..ffa757b22dc0d7 100644 --- a/api_docs/kbn_test.devdocs.json +++ b/api_docs/kbn_test.devdocs.json @@ -2056,6 +2056,39 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/test", + "id": "def-common.findTestPluginPaths", + "type": "Function", + "tags": [], + "label": "findTestPluginPaths", + "description": [], + "signature": [ + "(dirs: string | string[]) => string[]" + ], + "path": "packages/kbn-test/src/find_test_plugin_paths.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/test", + "id": "def-common.findTestPluginPaths.$1", + "type": "CompoundType", + "tags": [], + "label": "dirs", + "description": [], + "signature": [ + "string | string[]" + ], + "path": "packages/kbn-test/src/find_test_plugin_paths.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/test", "id": "def-common.getKibanaCliArg", @@ -3271,7 +3304,7 @@ }, " extends Omit<", "ClientOptions", - ", \"node\" | \"nodes\" | \"tls\">" + ", \"nodes\" | \"node\" | \"tls\">" ], "path": "packages/kbn-test/src/es/es_client_for_testing.ts", "deprecated": false, @@ -3450,7 +3483,7 @@ "\nDetermine if a service is avaliable" ], "signature": [ - "{ (serviceName: \"log\" | \"config\" | \"lifecycle\" | \"dockerServers\" | \"esVersion\" | \"dedicatedTaskRunner\"): true; (serviceName: K): serviceName is K; (serviceName: string): serviceName is Extract; }" + "{ (serviceName: \"config\" | \"log\" | \"lifecycle\" | \"dockerServers\" | \"esVersion\" | \"dedicatedTaskRunner\"): true; (serviceName: K): serviceName is K; (serviceName: string): serviceName is Extract; }" ], "path": "packages/kbn-test/src/functional_test_runner/public_types.ts", "deprecated": false, @@ -3464,7 +3497,7 @@ "label": "serviceName", "description": [], "signature": [ - "\"log\" | \"config\" | \"lifecycle\" | \"dockerServers\" | \"esVersion\" | \"dedicatedTaskRunner\"" + "\"config\" | \"log\" | \"lifecycle\" | \"dockerServers\" | \"esVersion\" | \"dedicatedTaskRunner\"" ], "path": "packages/kbn-test/src/functional_test_runner/public_types.ts", "deprecated": false, @@ -3482,7 +3515,7 @@ "label": "hasService", "description": [], "signature": [ - "{ (serviceName: \"log\" | \"config\" | \"lifecycle\" | \"dockerServers\" | \"esVersion\" | \"dedicatedTaskRunner\"): true; (serviceName: K): serviceName is K; (serviceName: string): serviceName is Extract; }" + "{ (serviceName: \"config\" | \"log\" | \"lifecycle\" | \"dockerServers\" | \"esVersion\" | \"dedicatedTaskRunner\"): true; (serviceName: K): serviceName is K; (serviceName: string): serviceName is Extract; }" ], "path": "packages/kbn-test/src/functional_test_runner/public_types.ts", "deprecated": false, @@ -3514,7 +3547,7 @@ "label": "hasService", "description": [], "signature": [ - "{ (serviceName: \"log\" | \"config\" | \"lifecycle\" | \"dockerServers\" | \"esVersion\" | \"dedicatedTaskRunner\"): true; (serviceName: K): serviceName is K; (serviceName: string): serviceName is Extract; }" + "{ (serviceName: \"config\" | \"log\" | \"lifecycle\" | \"dockerServers\" | \"esVersion\" | \"dedicatedTaskRunner\"): true; (serviceName: K): serviceName is K; (serviceName: string): serviceName is Extract; }" ], "path": "packages/kbn-test/src/functional_test_runner/public_types.ts", "deprecated": false, @@ -4970,7 +5003,7 @@ "signature": [ "KbnTestConfig" ], - "path": "packages/kbn-test/src/kbn/kbn_test_config.ts", + "path": "packages/kbn-test/kbn_test_config.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 5dd48e5ab6cd03..5d4db4230040b6 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; -Contact Operations for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 269 | 4 | 225 | 12 | +| 271 | 4 | 227 | 12 | ## Common diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 7b7137653cbe69..c84a1c47e1fc19 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index 1c813eb8023f82..a5a29e529e8ea7 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_tooling_log.devdocs.json b/api_docs/kbn_tooling_log.devdocs.json index 95ebcb510a9560..3608a64f9f3dc5 100644 --- a/api_docs/kbn_tooling_log.devdocs.json +++ b/api_docs/kbn_tooling_log.devdocs.json @@ -603,7 +603,7 @@ "label": "level", "description": [], "signature": [ - "\"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\"" + "\"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\"" ], "path": "packages/kbn-tooling-log/src/tooling_log_collecting_writer.ts", "deprecated": false, @@ -700,7 +700,7 @@ "label": "level", "description": [], "signature": [ - "{ name: \"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\"; flags: { error: boolean; warning: boolean; success: boolean; info: boolean; debug: boolean; silent: boolean; verbose: boolean; }; }" + "{ name: \"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\"; flags: { error: boolean; warning: boolean; success: boolean; debug: boolean; info: boolean; silent: boolean; verbose: boolean; }; }" ], "path": "packages/kbn-tooling-log/src/tooling_log_text_writer.ts", "deprecated": false, @@ -926,7 +926,7 @@ "label": "parseLogLevel", "description": [], "signature": [ - "(name: \"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\") => { name: \"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\"; flags: { error: boolean; warning: boolean; success: boolean; info: boolean; debug: boolean; silent: boolean; verbose: boolean; }; }" + "(name: \"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\") => { name: \"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\"; flags: { error: boolean; warning: boolean; success: boolean; debug: boolean; info: boolean; silent: boolean; verbose: boolean; }; }" ], "path": "packages/kbn-tooling-log/src/log_levels.ts", "deprecated": false, @@ -940,7 +940,7 @@ "label": "name", "description": [], "signature": [ - "\"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\"" + "\"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\"" ], "path": "packages/kbn-tooling-log/src/log_levels.ts", "deprecated": false, @@ -959,7 +959,7 @@ "label": "pickLevelFromFlags", "description": [], "signature": [ - "(flags: Record, options: { default?: \"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\" | undefined; }) => \"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\"" + "(flags: Record, options: { default?: \"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\" | undefined; }) => \"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\"" ], "path": "packages/kbn-tooling-log/src/log_levels.ts", "deprecated": false, @@ -999,7 +999,7 @@ "label": "default", "description": [], "signature": [ - "\"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\" | undefined" + "\"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\" | undefined" ], "path": "packages/kbn-tooling-log/src/log_levels.ts", "deprecated": false, @@ -1036,7 +1036,7 @@ "level/type of message" ], "signature": [ - "\"error\" | \"warning\" | \"success\" | \"write\" | \"info\" | \"debug\" | \"verbose\"" + "\"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"write\" | \"verbose\"" ], "path": "packages/kbn-tooling-log/src/message.ts", "deprecated": false, @@ -1164,7 +1164,7 @@ "\nLog level, messages below this level will be ignored" ], "signature": [ - "\"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\"" + "\"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\"" ], "path": "packages/kbn-tooling-log/src/tooling_log_text_writer.ts", "deprecated": false, @@ -1312,7 +1312,7 @@ "label": "LogLevel", "description": [], "signature": [ - "\"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\"" + "\"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\"" ], "path": "packages/kbn-tooling-log/src/log_levels.ts", "deprecated": false, @@ -1327,7 +1327,7 @@ "label": "ParsedLogLevel", "description": [], "signature": [ - "{ name: \"error\" | \"warning\" | \"success\" | \"info\" | \"debug\" | \"silent\" | \"verbose\"; flags: { error: boolean; warning: boolean; success: boolean; info: boolean; debug: boolean; silent: boolean; verbose: boolean; }; }" + "{ name: \"error\" | \"warning\" | \"success\" | \"debug\" | \"info\" | \"silent\" | \"verbose\"; flags: { error: boolean; warning: boolean; success: boolean; debug: boolean; info: boolean; silent: boolean; verbose: boolean; }; }" ], "path": "packages/kbn-tooling-log/src/log_levels.ts", "deprecated": false, diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 27fc3b3a5eb750..5a0134b6806480 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ts_projects.devdocs.json b/api_docs/kbn_ts_projects.devdocs.json index f8a6588efec9b7..6847c2a76965aa 100644 --- a/api_docs/kbn_ts_projects.devdocs.json +++ b/api_docs/kbn_ts_projects.devdocs.json @@ -198,15 +198,16 @@ }, { "parentPluginId": "@kbn/ts-projects", - "id": "def-common.TsProject.pkgInfo", + "id": "def-common.TsProject.pkg", "type": "Object", "tags": [], - "label": "pkgInfo", + "label": "pkg", "description": [ "the package this tsconfig file is within, if any" ], "signature": [ - "{ id: string; repoRel: string; } | undefined" + "Package", + " | undefined" ], "path": "packages/kbn-ts-projects/ts_project.ts", "deprecated": false, @@ -318,7 +319,9 @@ "type": "string", "tags": [], "label": "name", - "description": [], + "description": [ + "name of this project" + ], "path": "packages/kbn-ts-projects/ts_project.ts", "deprecated": false, "trackAdoption": false @@ -651,7 +654,9 @@ "section": "def-common.TsProject", "text": "TsProject" }, - " & { rootImportReq: string; }" + " & { rootImportReq: string; pkg: ", + "Package", + "; }" ], "path": "packages/kbn-ts-projects/ts_project.ts", "deprecated": false, diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index fddaac9d78cdf8..1dbb0ff239dbb1 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 39 | 0 | 26 | 1 | +| 39 | 0 | 25 | 1 | ## Common diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index ab0bb545d650d2..3558dc45a296a1 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index d272acf61c00f1..b11f83fa96950a 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 76ad429b5bcd17..0fe3654193722d 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 9e29563bbad593..f434286117a224 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_user_profile_components.devdocs.json b/api_docs/kbn_user_profile_components.devdocs.json index 1de3d763090730..f75915d1917f05 100644 --- a/api_docs/kbn_user_profile_components.devdocs.json +++ b/api_docs/kbn_user_profile_components.devdocs.json @@ -421,7 +421,7 @@ }, " extends Omit<", "EuiAvatarProps", - ", \"name\" | \"type\" | \"color\" | \"iconColor\" | \"iconType\" | \"iconSize\" | \"initials\" | \"initialsLength\" | \"imageUrl\">" + ", \"type\" | \"name\" | \"color\" | \"iconType\" | \"iconColor\" | \"iconSize\" | \"initials\" | \"initialsLength\" | \"imageUrl\">" ], "path": "packages/kbn-user-profile-components/src/user_avatar.tsx", "deprecated": false, diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index dc45fe405a7bc8..7ec9258cb47e47 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 66d30de19e6a23..a5975d6f8d9fd6 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_utility_types_jest.devdocs.json b/api_docs/kbn_utility_types_jest.devdocs.json index 70e9e3e42ae4e3..78dfcb9ccd8307 100644 --- a/api_docs/kbn_utility_types_jest.devdocs.json +++ b/api_docs/kbn_utility_types_jest.devdocs.json @@ -30,7 +30,7 @@ "label": "DeeplyMockedKeys", "description": [], "signature": [ - "{ [P in keyof T]: T[P] extends (...args: any[]) => any ? jest.MockInstance, Parameters> : ", + "{ [P in keyof T]: T[P] extends readonly any[] ? readonly ", { "pluginId": "@kbn/utility-types-jest", "scope": "common", @@ -38,7 +38,15 @@ "section": "def-common.DeeplyMockedKeys", "text": "DeeplyMockedKeys" }, - "; } & T" + "[] : T[P] extends (...args: any[]) => any ? jest.MockInstance, Parameters> : T[P] extends object ? ", + { + "pluginId": "@kbn/utility-types-jest", + "scope": "common", + "docId": "kibKbnUtilityTypesJestPluginApi", + "section": "def-common.DeeplyMockedKeys", + "text": "DeeplyMockedKeys" + }, + " : T[P]; } & T" ], "path": "packages/kbn-utility-types-jest/index.ts", "deprecated": false, diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index a518af61425a1a..cc570c2eab828f 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index 68fbef9c585559..367899e3106be2 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 0bd5ee0c7870f1..40a228dcf4a260 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; -Contact [Owner missing] for questions regarding this plugin. +Contact [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index 1a4c19f509b36b..0de45e567e136a 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kibana_react.devdocs.json b/api_docs/kibana_react.devdocs.json index 9d5150e9752265..b948b9645cb0b5 100644 --- a/api_docs/kibana_react.devdocs.json +++ b/api_docs/kibana_react.devdocs.json @@ -2662,7 +2662,7 @@ "label": "color", "description": [], "signature": [ - "\"warning\" | \"primary\" | \"success\" | \"danger\" | undefined" + "\"warning\" | \"success\" | \"primary\" | \"danger\" | undefined" ], "path": "src/plugins/kibana_react/public/notifications/types.ts", "deprecated": false, @@ -3028,7 +3028,7 @@ "signature": [ "Omit<", "EuiPageProps", - ", \"paddingSize\"> & { template?: \"default\" | \"empty\" | \"centeredBody\" | \"centeredContent\" | undefined; paddingSize?: \"none\" | \"m\" | \"s\" | \"l\" | undefined; pageSideBar?: React.ReactNode; pageSideBarProps?: ", + ", \"paddingSize\"> & { template?: \"default\" | \"empty\" | \"centeredBody\" | \"centeredContent\" | undefined; paddingSize?: \"m\" | \"none\" | \"s\" | \"l\" | undefined; pageSideBar?: React.ReactNode; pageSideBarProps?: ", "EuiPageSideBarProps_Deprecated", " | undefined; pageHeader?: ", "EuiPageHeaderProps", @@ -3356,7 +3356,7 @@ "label": "POSITIONS", "description": [], "signature": [ - "(\"none\" | \"left\" | \"right\" | \"center\")[]" + "(\"none\" | \"right\" | \"left\" | \"center\")[]" ], "path": "src/plugins/kibana_react/public/toolbar_button/toolbar_button.tsx", "deprecated": false, @@ -3402,7 +3402,7 @@ "EuiButtonPropsForAnchor", "> & ", "EuiButtonProps", - " & { href?: string | undefined; onClick?: React.MouseEventHandler | undefined; } & React.AnchorHTMLAttributes & { buttonRef?: React.Ref | undefined; })) & { fontWeight?: Weights | undefined; size?: \"m\" | \"s\" | undefined; hasArrow?: boolean | undefined; groupPosition?: \"none\" | \"left\" | \"right\" | \"center\" | undefined; dataTestSubj?: string | undefined; }" + " & { href?: string | undefined; onClick?: React.MouseEventHandler | undefined; } & React.AnchorHTMLAttributes & { buttonRef?: React.Ref | undefined; })) & { fontWeight?: Weights | undefined; size?: \"m\" | \"s\" | undefined; hasArrow?: boolean | undefined; groupPosition?: \"none\" | \"right\" | \"left\" | \"center\" | undefined; dataTestSubj?: string | undefined; }" ], "path": "src/plugins/kibana_react/public/toolbar_button/toolbar_button.tsx", "deprecated": false, diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 2bdfd8872bef4a..da6216c838be7a 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kibana_utils.devdocs.json b/api_docs/kibana_utils.devdocs.json index 064b5001393e84..5aef227d6e93f1 100644 --- a/api_docs/kibana_utils.devdocs.json +++ b/api_docs/kibana_utils.devdocs.json @@ -6962,7 +6962,7 @@ "signature": [ "(history: Pick<", "History", - ", \"location\" | \"replace\">) => void" + ", \"replace\" | \"location\">) => void" ], "path": "src/plugins/kibana_utils/public/plugin.ts", "deprecated": false, @@ -6978,7 +6978,7 @@ "signature": [ "Pick<", "History", - ", \"location\" | \"replace\">" + ", \"replace\" | \"location\">" ], "path": "src/plugins/kibana_utils/public/plugin.ts", "deprecated": false, diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index e60c156dfbc37d..cb5a6d05d3a816 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index 7ee9fdec76330c..fcf7ce7d448a6a 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; -Contact [Security Team](https://github.com/orgs/elastic/teams/security-team) for questions regarding this plugin. +Contact [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/lens.devdocs.json b/api_docs/lens.devdocs.json index ac39b1e6d687a2..b4ed32e8be49ab 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -189,7 +189,7 @@ "label": "getUserMessages", "description": [], "signature": [ - "(locationId: \"banner\" | \"toolbar\" | \"visualization\" | \"embeddableBadge\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionButton\" | (\"banner\" | \"toolbar\" | \"visualization\" | \"embeddableBadge\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionButton\")[] | undefined, filters: ", + "(locationId: \"banner\" | \"toolbar\" | \"embeddableBadge\" | \"visualization\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionButton\" | (\"banner\" | \"toolbar\" | \"embeddableBadge\" | \"visualization\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionButton\")[] | undefined, filters: ", "UserMessageFilters", " | undefined) => ", "UserMessage", @@ -207,7 +207,7 @@ "label": "locationId", "description": [], "signature": [ - "\"banner\" | \"toolbar\" | \"visualization\" | \"embeddableBadge\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionButton\" | (\"banner\" | \"toolbar\" | \"visualization\" | \"embeddableBadge\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionButton\")[] | undefined" + "\"banner\" | \"toolbar\" | \"embeddableBadge\" | \"visualization\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionButton\" | (\"banner\" | \"toolbar\" | \"embeddableBadge\" | \"visualization\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionButton\")[] | undefined" ], "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx", "deprecated": false, @@ -1044,7 +1044,7 @@ "label": "mode", "description": [], "signature": [ - "\"custom\" | \"full\" | \"dataBounds\"" + "\"full\" | \"custom\" | \"dataBounds\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -1286,7 +1286,7 @@ "label": "seriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\"" + "\"area\" | \"line\" | \"bar\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -1450,7 +1450,7 @@ "label": "xScaleType", "description": [], "signature": [ - "\"linear\" | \"time\" | \"ordinal\"" + "\"time\" | \"linear\" | \"ordinal\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -1720,7 +1720,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined) => { error: string; } | Record<\"disabled\" | \"enabled\", { kuery: ", + " | undefined) => { error: string; } | Record<\"enabled\" | \"disabled\", { kuery: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -1888,7 +1888,7 @@ "label": "layerType", "description": [], "signature": [ - "\"data\" | \"metricTrendline\" | \"referenceLine\" | \"annotations\"" + "\"data\" | \"annotations\" | \"metricTrendline\" | \"referenceLine\"" ], "path": "x-pack/plugins/lens/public/visualizations/datatable/visualization.tsx", "deprecated": false, @@ -1917,7 +1917,7 @@ "label": "rowHeight", "description": [], "signature": [ - "\"auto\" | \"custom\" | \"single\" | undefined" + "\"custom\" | \"auto\" | \"single\" | undefined" ], "path": "x-pack/plugins/lens/public/visualizations/datatable/visualization.tsx", "deprecated": false, @@ -1931,7 +1931,7 @@ "label": "headerRowHeight", "description": [], "signature": [ - "\"auto\" | \"custom\" | \"single\" | undefined" + "\"custom\" | \"auto\" | \"single\" | undefined" ], "path": "x-pack/plugins/lens/public/visualizations/datatable/visualization.tsx", "deprecated": false, @@ -2717,7 +2717,7 @@ "label": "autoScaleMetricAlignment", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -2756,7 +2756,7 @@ "label": "layerType", "description": [], "signature": [ - "\"data\" | \"metricTrendline\" | \"referenceLine\" | \"annotations\"" + "\"data\" | \"annotations\" | \"metricTrendline\" | \"referenceLine\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -2848,7 +2848,7 @@ "label": "textAlign", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -2891,7 +2891,7 @@ "\nPosition of the legend relative to the chart" ], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -2939,7 +2939,7 @@ "\nHorizontal Alignment of the legend when it is set inside chart" ], "signature": [ - "\"left\" | \"right\" | undefined" + "\"right\" | \"left\" | undefined" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -3528,7 +3528,7 @@ "\nordinal: Each name is a unique value, but the names are in sorted order, like \"Top values\"\ninterval: Histogram data, like date or number histograms\nratio: Most number data is rendered as a ratio that includes 0" ], "signature": [ - "\"ordinal\" | \"interval\" | \"ratio\" | undefined" + "\"interval\" | \"ordinal\" | \"ratio\" | undefined" ], "path": "x-pack/plugins/lens/public/types.ts", "deprecated": false, @@ -4005,7 +4005,7 @@ "label": "numberDisplay", "description": [], "signature": [ - "\"value\" | \"percent\" | \"hidden\"" + "\"value\" | \"hidden\" | \"percent\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -5717,7 +5717,7 @@ "label": "getRemoveOperation", "description": [], "signature": [ - "((state: T, layerId: string) => \"clear\" | \"remove\") | undefined" + "((state: T, layerId: string) => \"remove\" | \"clear\") | undefined" ], "path": "x-pack/plugins/lens/public/types.ts", "deprecated": false, @@ -7921,7 +7921,7 @@ "label": "seriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" + "\"area\" | \"line\" | \"bar\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" ], "path": "x-pack/plugins/lens/public/visualizations/xy/types.ts", "deprecated": false, @@ -8233,7 +8233,7 @@ "label": "preferredSeriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" + "\"area\" | \"line\" | \"bar\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" ], "path": "x-pack/plugins/lens/public/visualizations/xy/types.ts", "deprecated": false, @@ -8877,7 +8877,7 @@ "label": "AxisExtentMode", "description": [], "signature": [ - "\"custom\" | \"full\" | \"dataBounds\"" + "\"full\" | \"custom\" | \"dataBounds\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -9027,8 +9027,6 @@ "description": [], "signature": [ "(", - "LensByReferenceInput", - " | ", { "pluginId": "lens", "scope": "public", @@ -9036,6 +9034,8 @@ "section": "def-public.TypedLensByValueInput", "text": "TypedLensByValueInput" }, + " | ", + "LensByReferenceInput", ") & { withDefaultActions?: boolean | undefined; extraActions?: ", { "pluginId": "uiActions", @@ -9059,7 +9059,7 @@ "label": "FillStyle", "description": [], "signature": [ - "\"above\" | \"below\" | \"none\"" + "\"none\" | \"above\" | \"below\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -9074,7 +9074,7 @@ "label": "FittingFunction", "description": [], "signature": [ - "\"None\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\" | \"Average\"" + "\"None\" | \"Average\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -9097,7 +9097,7 @@ "section": "def-common.GaugeState", "text": "GaugeState" }, - ", \"metric\" | \"goal\" | \"min\" | \"max\"> & { metricAccessor?: string | undefined; minAccessor?: string | undefined; maxAccessor?: string | undefined; goalAccessor?: string | undefined; } & { layerId: string; layerType: ", + ", \"min\" | \"max\" | \"metric\" | \"goal\"> & { metricAccessor?: string | undefined; minAccessor?: string | undefined; maxAccessor?: string | undefined; goalAccessor?: string | undefined; } & { layerId: string; layerType: ", { "pluginId": "lens", "scope": "common", @@ -9178,7 +9178,7 @@ "label": "IconPosition", "description": [], "signature": [ - "\"above\" | \"below\" | \"auto\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"above\" | \"below\" | \"auto\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -9193,7 +9193,7 @@ "label": "LayerType", "description": [], "signature": [ - "\"data\" | \"metricTrendline\" | \"referenceLine\" | \"annotations\"" + "\"data\" | \"annotations\" | \"metricTrendline\" | \"referenceLine\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -9262,7 +9262,7 @@ "label": "LensSavedObjectAttributes", "description": [], "signature": [ - "{ description?: string | undefined; title: string; state: { datasourceStates: Record; visualization: unknown; query: ", + "{ description?: string | undefined; state: { datasourceStates: Record; visualization: unknown; query: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -9302,7 +9302,7 @@ "section": "def-common.SavedObjectReference", "text": "SavedObjectReference" }, - "[]; visualizationType: string | null; }" + "[]; title: string; visualizationType: string | null; }" ], "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx", "deprecated": false, @@ -9549,7 +9549,7 @@ "label": "SeriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" + "\"area\" | \"line\" | \"bar\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" ], "path": "x-pack/plugins/lens/public/visualizations/xy/types.ts", "deprecated": false, @@ -9752,7 +9752,7 @@ "label": "XScaleType", "description": [], "signature": [ - "\"linear\" | \"time\" | \"ordinal\"" + "\"time\" | \"linear\" | \"ordinal\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -9819,7 +9819,7 @@ "label": "YAxisMode", "description": [], "signature": [ - "\"auto\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"bottom\" | \"auto\"" ], "path": "x-pack/plugins/lens/public/visualizations/xy/types.ts", "deprecated": false, @@ -9834,7 +9834,7 @@ "label": "YScaleType", "description": [], "signature": [ - "\"linear\" | \"log\" | \"time\" | \"sqrt\"" + "\"log\" | \"time\" | \"sqrt\" | \"linear\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -10681,7 +10681,7 @@ "label": "rowHeight", "description": [], "signature": [ - "\"auto\" | \"custom\" | \"single\"" + "\"custom\" | \"auto\" | \"single\"" ], "path": "x-pack/plugins/lens/server/migrations/types.ts", "deprecated": false, @@ -10838,7 +10838,7 @@ "label": "valueLabels", "description": [], "signature": [ - "\"hide\" | \"outside\" | \"inside\"" + "\"outside\" | \"hide\" | \"inside\"" ], "path": "x-pack/plugins/lens/server/migrations/types.ts", "deprecated": false, @@ -11031,7 +11031,7 @@ "section": "def-server.LensDocShape715", "text": "LensDocShape715" }, - ", \"filters\" | \"state\"> & { filters: ", + ", \"state\" | \"filters\"> & { filters: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -11086,7 +11086,7 @@ "section": "def-server.LensDocShape715", "text": "LensDocShape715" }, - ", \"filters\" | \"state\"> & { filters: ", + ", \"state\" | \"filters\"> & { filters: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -11141,7 +11141,7 @@ "section": "def-server.LensDocShape715", "text": "LensDocShape715" }, - ", \"filters\" | \"state\"> & { filters: ", + ", \"state\" | \"filters\"> & { filters: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -11196,7 +11196,7 @@ "section": "def-server.LensDocShape715", "text": "LensDocShape715" }, - ", \"filters\" | \"state\"> & { filters: ", + ", \"state\" | \"filters\"> & { filters: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -11290,7 +11290,7 @@ "label": "OperationTypePost712", "description": [], "signature": [ - "\"range\" | \"min\" | \"max\" | \"filters\" | \"count\" | \"date_histogram\" | \"percentile\" | \"sum\" | \"average\" | \"terms\" | \"median\" | \"cumulative_sum\" | \"moving_average\" | \"counter_rate\" | \"differences\" | \"unique_count\" | \"last_value\"" + "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"cumulative_sum\" | \"date_histogram\" | \"filters\" | \"terms\" | \"percentile\" | \"average\" | \"moving_average\" | \"unique_count\" | \"last_value\" | \"counter_rate\" | \"differences\"" ], "path": "x-pack/plugins/lens/server/migrations/types.ts", "deprecated": false, @@ -11305,7 +11305,7 @@ "label": "OperationTypePre712", "description": [], "signature": [ - "\"range\" | \"min\" | \"max\" | \"filters\" | \"count\" | \"date_histogram\" | \"percentile\" | \"sum\" | \"terms\" | \"avg\" | \"median\" | \"cumulative_sum\" | \"derivative\" | \"moving_average\" | \"counter_rate\" | \"last_value\" | \"cardinality\"" + "\"min\" | \"max\" | \"sum\" | \"avg\" | \"median\" | \"count\" | \"range\" | \"cardinality\" | \"cumulative_sum\" | \"date_histogram\" | \"derivative\" | \"filters\" | \"terms\" | \"percentile\" | \"moving_average\" | \"last_value\" | \"counter_rate\"" ], "path": "x-pack/plugins/lens/server/migrations/types.ts", "deprecated": false, @@ -11822,7 +11822,7 @@ "label": "autoScaleMetricAlignment", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -11861,7 +11861,7 @@ "label": "layerType", "description": [], "signature": [ - "\"data\" | \"metricTrendline\" | \"referenceLine\" | \"annotations\"" + "\"data\" | \"annotations\" | \"metricTrendline\" | \"referenceLine\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -11953,7 +11953,7 @@ "label": "textAlign", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -12233,7 +12233,7 @@ "label": "numberDisplay", "description": [], "signature": [ - "\"value\" | \"percent\" | \"hidden\"" + "\"value\" | \"hidden\" | \"percent\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -12574,7 +12574,7 @@ "label": "LayerType", "description": [], "signature": [ - "\"data\" | \"metricTrendline\" | \"referenceLine\" | \"annotations\"" + "\"data\" | \"annotations\" | \"metricTrendline\" | \"referenceLine\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -12649,7 +12649,7 @@ "label": "NumberDisplayType", "description": [], "signature": [ - "\"value\" | \"percent\" | \"hidden\"" + "\"value\" | \"hidden\" | \"percent\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index faee67a4f3e36d..1825b981306f35 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/license_api_guard.devdocs.json b/api_docs/license_api_guard.devdocs.json index 9ced61d953edc7..b5490397558ef9 100644 --- a/api_docs/license_api_guard.devdocs.json +++ b/api_docs/license_api_guard.devdocs.json @@ -102,13 +102,7 @@ "text": "RequestHandlerContext" }, ", Params, Query, Body>(handler: ", - { - "pluginId": "core", - "scope": "server", - "docId": "kibCorePluginApi", - "section": "def-server.RequestHandler", - "text": "RequestHandler" - }, + "RequestHandler", ") => ", - { - "pluginId": "core", - "scope": "server", - "docId": "kibCorePluginApi", - "section": "def-server.RequestHandler", - "text": "RequestHandler" - }, + "RequestHandler", " Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -698,9 +698,9 @@ "\nThis is the same as \"createListItem\" except it applies specifically to the agnostic endpoint list and will\nauto-call the \"createEndpointList\" for you so that you have the best chance of the agnostic endpoint\nbeing there and existing before the item is inserted into the agnostic endpoint list." ], "signature": [ - "({ comments, description, entries, itemId, meta, name, osTypes, tags, type, }: ", + "({ comments, description, entries, expireTime, itemId, meta, name, osTypes, tags, type, }: ", "CreateEndpointListItemOptions", - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -711,7 +711,7 @@ "id": "def-server.ExceptionListClient.createEndpointListItem.$1", "type": "Object", "tags": [], - "label": "{\n comments,\n description,\n entries,\n itemId,\n meta,\n name,\n osTypes,\n tags,\n type,\n }", + "label": "{\n comments,\n description,\n entries,\n expireTime,\n itemId,\n meta,\n name,\n osTypes,\n tags,\n type,\n }", "description": [], "signature": [ "CreateEndpointListItemOptions" @@ -774,9 +774,9 @@ "\nThis is the same as \"updateExceptionListItem\" except it applies specifically to the endpoint list and will\nauto-call the \"createEndpointList\" for you so that you have the best chance of the endpoint\nbeing there if it did not exist before. If the list did not exist before, then creating it here will still cause a\nreturn of null but at least the list exists again." ], "signature": [ - "({ _version, comments, description, entries, id, itemId, meta, name, osTypes, tags, type, }: ", + "({ _version, comments, description, entries, expireTime, id, itemId, meta, name, osTypes, tags, type, }: ", "UpdateEndpointListItemOptions", - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -787,7 +787,7 @@ "id": "def-server.ExceptionListClient.updateEndpointListItem.$1", "type": "Object", "tags": [], - "label": "{\n _version,\n comments,\n description,\n entries,\n id,\n itemId,\n meta,\n name,\n osTypes,\n tags,\n type,\n }", + "label": "{\n _version,\n comments,\n description,\n entries,\n expireTime,\n id,\n itemId,\n meta,\n name,\n osTypes,\n tags,\n type,\n }", "description": [], "signature": [ "UpdateEndpointListItemOptions" @@ -814,7 +814,7 @@ "signature": [ "({ itemId, id, }: ", "GetEndpointListItemOptions", - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -964,7 +964,7 @@ "\nCreate an exception list item container" ], "signature": [ - "({ comments, description, entries, itemId, listId, meta, name, namespaceType, osTypes, tags, type, }: ", + "({ comments, description, entries, expireTime, itemId, listId, meta, name, namespaceType, osTypes, tags, type, }: ", { "pluginId": "lists", "scope": "server", @@ -972,7 +972,7 @@ "section": "def-server.CreateExceptionListItemOptions", "text": "CreateExceptionListItemOptions" }, - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -983,7 +983,7 @@ "id": "def-server.ExceptionListClient.createExceptionListItem.$1", "type": "Object", "tags": [], - "label": "{\n comments,\n description,\n entries,\n itemId,\n listId,\n meta,\n name,\n namespaceType,\n osTypes,\n tags,\n type,\n }", + "label": "{\n comments,\n description,\n entries,\n expireTime,\n itemId,\n listId,\n meta,\n name,\n namespaceType,\n osTypes,\n tags,\n type,\n }", "description": [], "signature": [ { @@ -1014,7 +1014,7 @@ "\nUpdate an existing exception list item" ], "signature": [ - "({ _version, comments, description, entries, id, itemId, meta, name, namespaceType, osTypes, tags, type, }: ", + "({ _version, comments, description, entries, expireTime, id, itemId, meta, name, namespaceType, osTypes, tags, type, }: ", { "pluginId": "lists", "scope": "server", @@ -1022,7 +1022,7 @@ "section": "def-server.UpdateExceptionListItemOptions", "text": "UpdateExceptionListItemOptions" }, - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -1033,7 +1033,7 @@ "id": "def-server.ExceptionListClient.updateExceptionListItem.$1", "type": "Object", "tags": [], - "label": "{\n _version,\n comments,\n description,\n entries,\n id,\n itemId,\n meta,\n name,\n namespaceType,\n osTypes,\n tags,\n type,\n }", + "label": "{\n _version,\n comments,\n description,\n entries,\n expireTime,\n id,\n itemId,\n meta,\n name,\n namespaceType,\n osTypes,\n tags,\n type,\n }", "description": [], "signature": [ { @@ -1066,7 +1066,7 @@ "signature": [ "({ id, itemId, namespaceType, }: ", "DeleteExceptionListItemOptions", - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -1140,7 +1140,7 @@ "signature": [ "({ id, itemId, }: ", "DeleteEndpointListItemOptions", - ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" + ") => Promise<{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -1176,7 +1176,7 @@ "signature": [ "({ listId, filter, perPage, pit, page, search, searchAfter, sortField, sortOrder, namespaceType, }: ", "FindExceptionListItemOptions", - ") => Promise<({ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }) | null>" + ") => Promise<({ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }) | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -1214,7 +1214,7 @@ "signature": [ "({ listId, filter, perPage, pit, page, search, searchAfter, sortField, sortOrder, namespaceType, }: ", "FindExceptionListsItemOptions", - ") => Promise<({ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }) | null>" + ") => Promise<({ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }) | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -1252,7 +1252,7 @@ "signature": [ "({ perPage, pit, page, searchAfter, sortField, sortOrder, valueListId, }: ", "FindValueListExceptionListsItems", - ") => Promise<({ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }) | null>" + ") => Promise<({ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }) | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -1328,7 +1328,7 @@ "signature": [ "({ filter, perPage, page, pit, search, searchAfter, sortField, sortOrder, }: ", "FindEndpointListItemOptions", - ") => Promise<({ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }) | null>" + ") => Promise<({ data: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; expire_time: string | undefined; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]; page: number; per_page: number; total: number; } & { pit?: string | undefined; }) | null>" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts", "deprecated": false, @@ -1364,7 +1364,7 @@ "\nExport an exception list parent container and it's items" ], "signature": [ - "({ listId, id, namespaceType, }: ", + "({ listId, id, namespaceType, includeExpiredExceptions, }: ", "ExportExceptionListAndItemsOptions", ") => Promise<", { @@ -1385,7 +1385,7 @@ "id": "def-server.ExceptionListClient.exportExceptionListAndItems.$1", "type": "Object", "tags": [], - "label": "{\n listId,\n id,\n namespaceType,\n }", + "label": "{\n listId,\n id,\n namespaceType,\n includeExpiredExceptions,\n }", "description": [], "signature": [ "ExportExceptionListAndItemsOptions" @@ -1814,7 +1814,7 @@ "signature": [ "({ id }: ", "GetListOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; } | null>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -1852,7 +1852,7 @@ "signature": [ "({ id, deserializer, immutable, serializer, name, description, type, meta, version, }: ", "CreateListOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -1890,7 +1890,7 @@ "signature": [ "({ id, deserializer, serializer, name, description, immutable, type, meta, version, }: ", "CreateListIfItDoesNotExistOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2408,7 +2408,7 @@ "signature": [ "({ id }: ", "DeleteListItemOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; } | null>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2446,7 +2446,7 @@ "signature": [ "({ listId, value, type, }: ", "DeleteListItemByValueOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2484,7 +2484,7 @@ "signature": [ "({ id }: ", "DeleteListOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; } | null>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2558,7 +2558,7 @@ "signature": [ "({ deserializer, serializer, type, listId, stream, meta, version, }: ", "ImportListItemsToStreamOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; } | null>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2594,7 +2594,7 @@ "signature": [ "({ listId, value, type, }: ", "GetListItemByValueOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2632,7 +2632,7 @@ "signature": [ "({ id, deserializer, serializer, listId, value, type, meta, }: ", "CreateListItemOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; } | null>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2668,7 +2668,7 @@ "signature": [ "({ _version, id, value, meta, }: ", "UpdateListItemOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; } | null>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2704,7 +2704,7 @@ "signature": [ "({ _version, id, name, description, meta, version, }: ", "UpdateListOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; } | null>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2740,7 +2740,7 @@ "signature": [ "({ id }: ", "GetListItemOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; } | null>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2778,7 +2778,7 @@ "signature": [ "({ type, listId, value, }: ", "GetListItemsByValueOptions", - ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]>" + ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2816,7 +2816,7 @@ "signature": [ "({ type, listId, value, }: ", "SearchListItemByValuesOptions", - ") => Promise<{ items: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]; value: unknown; }[]>" + ") => Promise<{ items: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]; value: unknown; }[]>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2854,7 +2854,7 @@ "signature": [ "({ filter, currentIndexPosition, perPage, page, sortField, sortOrder, searchAfter, runtimeMappings, }: ", "FindListOptions", - ") => Promise<{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }>" + ") => Promise<{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2892,7 +2892,7 @@ "signature": [ "({ listId, filter, currentIndexPosition, perPage, page, runtimeMappings, sortField, sortOrder, searchAfter, }: ", "FindListItemOptions", - ") => Promise<{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]; page: number; per_page: number; total: number; } | null>" + ") => Promise<{ cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]; page: number; per_page: number; total: number; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2928,7 +2928,7 @@ "signature": [ "({ listId, filter, sortField, sortOrder, }: ", "FindAllListItemsOptions", - ") => Promise<{ data: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; updated_at: string; updated_by: string; value: string; }[]; total: number; } | null>" + ") => Promise<{ data: { _version: string | undefined; created_at: string; created_by: string; deserializer: string | undefined; id: string; list_id: string; meta: object | undefined; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; updated_at: string; updated_by: string; value: string; }[]; total: number; } | null>" ], "path": "x-pack/plugins/lists/server/services/lists/list_client.ts", "deprecated": false, @@ -2997,7 +2997,23 @@ "an array with the exception list item entries" ], "signature": [ - "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + ], + "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lists", + "id": "def-server.CreateExceptionListItemOptions.expireTime", + "type": "string", + "tags": [], + "label": "expireTime", + "description": [ + "an optional datetime string with an expiration time" + ], + "signature": [ + "string | undefined" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client_types.ts", "deprecated": false, @@ -3309,7 +3325,23 @@ "item exception entries logic" ], "signature": [ - "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"text\" | \"geo_point\" | \"geo_shape\" | \"date_nanos\" | \"long\" | \"double\" | \"date_range\" | \"ip_range\" | \"shape\" | \"short\" | \"binary\" | \"byte\" | \"float\" | \"half_float\" | \"integer\" | \"double_range\" | \"float_range\" | \"integer_range\" | \"long_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + "({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]" + ], + "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lists", + "id": "def-server.UpdateExceptionListItemOptions.expireTime", + "type": "string", + "tags": [], + "label": "expireTime", + "description": [ + "an optional datetime string with an expiration time" + ], + "signature": [ + "string | undefined" ], "path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client_types.ts", "deprecated": false, @@ -4003,7 +4035,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -4055,9 +4139,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -4267,33 +4339,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -4375,27 +4423,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -4573,9 +4603,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -4753,9 +4807,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -4781,27 +4833,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index e686bf109bfca4..b2199800ff72e9 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; -Contact [Security detections response](https://github.com/orgs/elastic/teams/security-detections-response) for questions regarding this plugin. +Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 206 | 0 | 93 | 51 | +| 208 | 0 | 93 | 51 | ## Client diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 0c224a310a7b8f..aa01d48d381e2c 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 22373cc3e6dd72..a7f2dda676e73e 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; -Contact [GIS](https://github.com/orgs/elastic/teams/kibana-gis) for questions regarding this plugin. +Contact [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index d8744e705d74be..0eeb233c423ae8 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; -Contact [GIS](https://github.com/orgs/elastic/teams/kibana-gis) for questions regarding this plugin. +Contact [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/ml.devdocs.json b/api_docs/ml.devdocs.json index f879c92c8bb5fc..d58430fd0174c9 100644 --- a/api_docs/ml.devdocs.json +++ b/api_docs/ml.devdocs.json @@ -1413,6 +1413,27 @@ "path": "x-pack/plugins/ml/public/application/components/data_grid/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "ml", + "id": "def-public.UseIndexDataReturnType.timeRangeMs", + "type": "Object", + "tags": [], + "label": "timeRangeMs", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ml-date-picker", + "scope": "common", + "docId": "kibKbnMlDatePickerPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined" + ], + "path": "x-pack/plugins/ml/public/application/components/data_grid/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -1609,7 +1630,7 @@ "label": "ML_PAGES", "description": [], "signature": [ - "{ readonly ANOMALY_DETECTION_JOBS_MANAGE: \"jobs\"; readonly ANOMALY_EXPLORER: \"explorer\"; readonly SINGLE_METRIC_VIEWER: \"timeseriesexplorer\"; readonly DATA_FRAME_ANALYTICS_JOBS_MANAGE: \"data_frame_analytics\"; readonly DATA_FRAME_ANALYTICS_SOURCE_SELECTION: \"data_frame_analytics/source_selection\"; readonly DATA_FRAME_ANALYTICS_CREATE_JOB: \"data_frame_analytics/new_job\"; readonly TRAINED_MODELS_MANAGE: \"trained_models\"; readonly TRAINED_MODELS_NODES: \"trained_models/nodes\"; readonly DATA_FRAME_ANALYTICS_EXPLORATION: \"data_frame_analytics/exploration\"; readonly DATA_FRAME_ANALYTICS_MAP: \"data_frame_analytics/map\"; readonly DATA_VISUALIZER: \"datavisualizer\"; readonly DATA_VISUALIZER_INDEX_SELECT: \"datavisualizer_index_select\"; readonly DATA_VISUALIZER_FILE: \"filedatavisualizer\"; readonly DATA_VISUALIZER_INDEX_VIEWER: \"jobs/new_job/datavisualizer\"; readonly ANOMALY_DETECTION_CREATE_JOB: \"jobs/new_job\"; readonly ANOMALY_DETECTION_CREATE_JOB_RECOGNIZER: \"jobs/new_job/recognize\"; readonly ANOMALY_DETECTION_CREATE_JOB_SINGLE_METRIC: \"jobs/new_job/single_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_MULTI_METRIC: \"jobs/new_job/multi_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_MULTI_METRIC: \"jobs/new_job/convert_to_multi_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_ADVANCED: \"jobs/new_job/advanced\"; readonly ANOMALY_DETECTION_CREATE_JOB_POPULATION: \"jobs/new_job/population\"; readonly ANOMALY_DETECTION_CREATE_JOB_CATEGORIZATION: \"jobs/new_job/categorization\"; readonly ANOMALY_DETECTION_CREATE_JOB_RARE: \"jobs/new_job/rare\"; readonly ANOMALY_DETECTION_CREATE_JOB_GEO: \"jobs/new_job/geo\"; readonly ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_ADVANCED: \"jobs/new_job/convert_to_advanced\"; readonly ANOMALY_DETECTION_CREATE_JOB_SELECT_TYPE: \"jobs/new_job/step/job_type\"; readonly ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX: \"jobs/new_job/step/index_or_search\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_LENS: \"jobs/new_job/from_lens\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_MAP: \"jobs/new_job/from_map\"; readonly ANOMALY_DETECTION_MODULES_VIEW_OR_CREATE: \"/modules/check_view_or_create\"; readonly SETTINGS: \"settings\"; readonly CALENDARS_MANAGE: \"settings/calendars_list\"; readonly CALENDARS_NEW: \"settings/calendars_list/new_calendar\"; readonly CALENDARS_EDIT: \"settings/calendars_list/edit_calendar\"; readonly FILTER_LISTS_MANAGE: \"settings/filter_lists\"; readonly FILTER_LISTS_NEW: \"settings/filter_lists/new_filter_list\"; readonly FILTER_LISTS_EDIT: \"settings/filter_lists/edit_filter_list\"; readonly ACCESS_DENIED: \"access-denied\"; readonly OVERVIEW: \"overview\"; readonly NOTIFICATIONS: \"notifications\"; readonly AIOPS: \"aiops\"; readonly AIOPS_EXPLAIN_LOG_RATE_SPIKES: \"aiops/explain_log_rate_spikes\"; readonly AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT: \"aiops/explain_log_rate_spikes_index_select\"; readonly AIOPS_LOG_CATEGORIZATION: \"aiops/log_categorization\"; readonly AIOPS_LOG_CATEGORIZATION_INDEX_SELECT: \"aiops/log_categorization_index_select\"; readonly AIOPS_CHANGE_POINT_DETECTION: \"aiops/change_point_detection\"; readonly AIOPS_CHANGE_POINT_DETECTION_INDEX_SELECT: \"aiops/change_point_detection_index_select\"; }" + "{ readonly ANOMALY_DETECTION_JOBS_MANAGE: \"jobs\"; readonly ANOMALY_EXPLORER: \"explorer\"; readonly SINGLE_METRIC_VIEWER: \"timeseriesexplorer\"; readonly DATA_FRAME_ANALYTICS_JOBS_MANAGE: \"data_frame_analytics\"; readonly DATA_FRAME_ANALYTICS_SOURCE_SELECTION: \"data_frame_analytics/source_selection\"; readonly DATA_FRAME_ANALYTICS_CREATE_JOB: \"data_frame_analytics/new_job\"; readonly TRAINED_MODELS_MANAGE: \"trained_models\"; readonly MEMORY_USAGE: \"memory_usage\"; readonly DATA_FRAME_ANALYTICS_EXPLORATION: \"data_frame_analytics/exploration\"; readonly DATA_FRAME_ANALYTICS_MAP: \"data_frame_analytics/map\"; readonly DATA_VISUALIZER: \"datavisualizer\"; readonly DATA_VISUALIZER_INDEX_SELECT: \"datavisualizer_index_select\"; readonly DATA_VISUALIZER_FILE: \"filedatavisualizer\"; readonly DATA_VISUALIZER_INDEX_VIEWER: \"jobs/new_job/datavisualizer\"; readonly ANOMALY_DETECTION_CREATE_JOB: \"jobs/new_job\"; readonly ANOMALY_DETECTION_CREATE_JOB_RECOGNIZER: \"jobs/new_job/recognize\"; readonly ANOMALY_DETECTION_CREATE_JOB_SINGLE_METRIC: \"jobs/new_job/single_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_MULTI_METRIC: \"jobs/new_job/multi_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_MULTI_METRIC: \"jobs/new_job/convert_to_multi_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_ADVANCED: \"jobs/new_job/advanced\"; readonly ANOMALY_DETECTION_CREATE_JOB_POPULATION: \"jobs/new_job/population\"; readonly ANOMALY_DETECTION_CREATE_JOB_CATEGORIZATION: \"jobs/new_job/categorization\"; readonly ANOMALY_DETECTION_CREATE_JOB_RARE: \"jobs/new_job/rare\"; readonly ANOMALY_DETECTION_CREATE_JOB_GEO: \"jobs/new_job/geo\"; readonly ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_ADVANCED: \"jobs/new_job/convert_to_advanced\"; readonly ANOMALY_DETECTION_CREATE_JOB_SELECT_TYPE: \"jobs/new_job/step/job_type\"; readonly ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX: \"jobs/new_job/step/index_or_search\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_LENS: \"jobs/new_job/from_lens\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_MAP: \"jobs/new_job/from_map\"; readonly ANOMALY_DETECTION_MODULES_VIEW_OR_CREATE: \"modules/check_view_or_create\"; readonly SETTINGS: \"settings\"; readonly CALENDARS_MANAGE: \"settings/calendars_list\"; readonly CALENDARS_NEW: \"settings/calendars_list/new_calendar\"; readonly CALENDARS_EDIT: \"settings/calendars_list/edit_calendar\"; readonly FILTER_LISTS_MANAGE: \"settings/filter_lists\"; readonly FILTER_LISTS_NEW: \"settings/filter_lists/new_filter_list\"; readonly FILTER_LISTS_EDIT: \"settings/filter_lists/edit_filter_list\"; readonly ACCESS_DENIED: \"access-denied\"; readonly OVERVIEW: \"overview\"; readonly NOTIFICATIONS: \"notifications\"; readonly AIOPS: \"aiops\"; readonly AIOPS_EXPLAIN_LOG_RATE_SPIKES: \"aiops/explain_log_rate_spikes\"; readonly AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT: \"aiops/explain_log_rate_spikes_index_select\"; readonly AIOPS_LOG_CATEGORIZATION: \"aiops/log_categorization\"; readonly AIOPS_LOG_CATEGORIZATION_INDEX_SELECT: \"aiops/log_categorization_index_select\"; readonly AIOPS_CHANGE_POINT_DETECTION: \"aiops/change_point_detection\"; readonly AIOPS_CHANGE_POINT_DETECTION_INDEX_SELECT: \"aiops/change_point_detection_index_select\"; }" ], "path": "x-pack/plugins/ml/common/constants/locator.ts", "deprecated": false, diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index ad7af9876ac414..ab3f2ee2b36552 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; This plugin provides access to the machine learning features provided by Elastic. -Contact [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 254 | 9 | 78 | 40 | +| 255 | 9 | 79 | 40 | ## Client diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index d18ed27a52bcbd..fd26294f30a50b 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; -Contact [Stack Monitoring](https://github.com/orgs/elastic/teams/stack-monitoring-ui) for questions regarding this plugin. +Contact [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/monitoring_collection.devdocs.json b/api_docs/monitoring_collection.devdocs.json index 85367a10bd5bc4..79950746cd8e09 100644 --- a/api_docs/monitoring_collection.devdocs.json +++ b/api_docs/monitoring_collection.devdocs.json @@ -130,7 +130,7 @@ "label": "MonitoringCollectionConfig", "description": [], "signature": [ - "{ readonly enabled: boolean; readonly opentelemetry: Readonly<{} & { metrics: Readonly<{} & { otlp: Readonly<{ headers?: Record | undefined; url?: string | undefined; } & { exportIntervalMillis: number; logLevel: string; }>; prometheus: Readonly<{} & { enabled: boolean; }>; }>; }>; }" + "{ readonly enabled: boolean; readonly opentelemetry: Readonly<{} & { metrics: Readonly<{} & { otlp: Readonly<{ url?: string | undefined; headers?: Record | undefined; } & { exportIntervalMillis: number; logLevel: string; }>; prometheus: Readonly<{} & { enabled: boolean; }>; }>; }>; }" ], "path": "x-pack/plugins/monitoring_collection/server/config.ts", "deprecated": false, diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 34ddfbc47e8e24..a0be8cb20a113e 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; -Contact [Stack Monitoring](https://github.com/orgs/elastic/teams/stack-monitoring-ui) for questions regarding this plugin. +Contact [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/navigation.devdocs.json b/api_docs/navigation.devdocs.json index 7e70a907f5608e..0791c0351a0a25 100644 --- a/api_docs/navigation.devdocs.json +++ b/api_docs/navigation.devdocs.json @@ -632,7 +632,7 @@ "label": "iconSide", "description": [], "signature": [ - "\"left\" | \"right\" | undefined" + "\"right\" | \"left\" | undefined" ], "path": "src/plugins/navigation/public/top_nav_menu/top_nav_menu_data.tsx", "deprecated": false, diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index 4b1ecadab6edc4..72e195ba63805b 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index 2e2a366abe4fde..40b7bd10c2351d 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index eb7e189938873a..932412724849ce 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/observability.devdocs.json b/api_docs/observability.devdocs.json index 79bf3acafe827b..26947d3989b12f 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -830,7 +830,7 @@ }, " | undefined; list: () => string[]; }; selectedAlertId?: string | undefined; } & ", "CommonProps", - " & { as?: \"div\" | undefined; } & _EuiFlyoutProps & Omit, HTMLDivElement>, keyof _EuiFlyoutProps> & Omit, HTMLDivElement>, \"key\" | keyof React.HTMLAttributes | \"css\"> & { ref?: React.RefObject | ((instance: HTMLDivElement | null) => void) | null | undefined; }, \"children\" | \"ref\" | \"type\" | \"onError\" | \"hidden\" | \"color\" | \"id\" | \"className\" | \"size\" | \"title\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"placeholder\" | \"security\" | \"key\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"onClose\" | \"data-test-subj\" | \"css\" | \"as\" | \"paddingSize\" | \"focusTrapProps\" | \"ownFocus\" | \"maxWidth\" | \"hideCloseButton\" | \"closeButtonAriaLabel\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\">, \"children\" | \"type\" | \"onError\" | \"hidden\" | \"color\" | \"id\" | \"alert\" | \"className\" | \"size\" | \"title\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"placeholder\" | \"security\" | \"key\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"onClose\" | \"data-test-subj\" | \"css\" | \"as\" | \"paddingSize\" | \"focusTrapProps\" | \"ownFocus\" | \"alerts\" | \"maxWidth\" | \"hideCloseButton\" | \"closeButtonAriaLabel\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"isInApp\" | \"observabilityRuleTypeRegistry\" | \"selectedAlertId\"> & { ref?: React.RefObject | ((instance: HTMLDivElement | null) => void) | null | undefined; }> & { readonly _result: ({ alert, alerts, isInApp, observabilityRuleTypeRegistry, onClose, selectedAlertId, }: AlertsFlyoutProps) => JSX.Element | null; }" + " & { as?: \"div\" | undefined; } & _EuiFlyoutProps & Omit, HTMLDivElement>, keyof _EuiFlyoutProps> & Omit, HTMLDivElement>, \"css\" | \"key\" | keyof React.HTMLAttributes> & { ref?: React.RefObject | ((instance: HTMLDivElement | null) => void) | null | undefined; }, \"type\" | \"prefix\" | \"id\" | \"defaultValue\" | \"children\" | \"ref\" | \"is\" | \"title\" | \"slot\" | \"style\" | \"className\" | \"aria-label\" | \"data-test-subj\" | \"css\" | \"key\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"paddingSize\" | \"size\" | \"onClose\" | \"as\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonAriaLabel\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"focusTrapProps\">, \"type\" | \"prefix\" | \"id\" | \"defaultValue\" | \"alert\" | \"children\" | \"is\" | \"title\" | \"alerts\" | \"slot\" | \"style\" | \"className\" | \"aria-label\" | \"data-test-subj\" | \"css\" | \"key\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"paddingSize\" | \"size\" | \"onClose\" | \"as\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonAriaLabel\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"focusTrapProps\" | \"isInApp\" | \"observabilityRuleTypeRegistry\" | \"selectedAlertId\"> & { ref?: React.RefObject | ((instance: HTMLDivElement | null) => void) | null | undefined; }> & { readonly _result: ({ alert, alerts, isInApp, observabilityRuleTypeRegistry, onClose, selectedAlertId, }: AlertsFlyoutProps) => JSX.Element | null; }" ], "path": "x-pack/plugins/observability/public/index.ts", "deprecated": false, @@ -1054,9 +1054,9 @@ "signature": [ "({ children, ...props }: { children?: React.ReactNode; } & ", "CommonProps", - " & Omit, \"color\"> & { bordered?: boolean | undefined; flush?: boolean | undefined; gutterSize?: \"none\" | \"m\" | \"s\" | undefined; listItems?: ", + " & Omit, \"color\"> & { bordered?: boolean | undefined; flush?: boolean | undefined; gutterSize?: \"m\" | \"none\" | \"s\" | undefined; listItems?: ", "EuiListGroupItemProps", - "[] | undefined; color?: \"subdued\" | \"primary\" | \"text\" | undefined; size?: \"m\" | \"s\" | \"xs\" | \"l\" | undefined; maxWidth?: boolean | ", + "[] | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; size?: \"m\" | \"s\" | \"xs\" | \"l\" | undefined; maxWidth?: boolean | ", "Property", ".MaxWidth | undefined; showToolTips?: boolean | undefined; wrapText?: boolean | undefined; ariaLabelledby?: string | undefined; }) => JSX.Element" ], @@ -1074,9 +1074,9 @@ "signature": [ "{ children?: React.ReactNode; } & ", "CommonProps", - " & Omit, \"color\"> & { bordered?: boolean | undefined; flush?: boolean | undefined; gutterSize?: \"none\" | \"m\" | \"s\" | undefined; listItems?: ", + " & Omit, \"color\"> & { bordered?: boolean | undefined; flush?: boolean | undefined; gutterSize?: \"m\" | \"none\" | \"s\" | undefined; listItems?: ", "EuiListGroupItemProps", - "[] | undefined; color?: \"subdued\" | \"primary\" | \"text\" | undefined; size?: \"m\" | \"s\" | \"xs\" | \"l\" | undefined; maxWidth?: boolean | ", + "[] | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; size?: \"m\" | \"s\" | \"xs\" | \"l\" | undefined; maxWidth?: boolean | ", "Property", ".MaxWidth | undefined; showToolTips?: boolean | undefined; wrapText?: boolean | undefined; ariaLabelledby?: string | undefined; }" ], @@ -2360,7 +2360,7 @@ "label": "unit", "description": [], "signature": [ - "\"M\" | \"w\" | \"d\" | \"h\" | \"m\" | \"Y\"" + "\"m\" | \"M\" | \"w\" | \"d\" | \"h\" | \"Y\"" ], "path": "x-pack/plugins/observability/public/typings/slo/index.ts", "deprecated": false, @@ -2725,7 +2725,7 @@ "label": "align", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", "deprecated": false, @@ -4434,7 +4434,7 @@ "label": "format", "description": [], "signature": [ - "(options: { fields: OutputOf> & Record; formatters: { asDuration: (value: ", + "(options: { fields: OutputOf> & Record; formatters: { asDuration: (value: ", "Maybe", ", { defaultValue, extended }?: FormatterOptions) => string; asPercent: (numerator: ", "Maybe", @@ -4453,7 +4453,7 @@ "label": "options", "description": [], "signature": [ - "{ fields: OutputOf> & Record; formatters: { asDuration: (value: ", + "{ fields: OutputOf> & Record; formatters: { asDuration: (value: ", "Maybe", ", { defaultValue, extended }?: FormatterOptions) => string; asPercent: (numerator: ", "Maybe", @@ -4599,7 +4599,7 @@ "label": "defaultSeriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" + "\"area\" | \"line\" | \"bar\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" ], "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts", "deprecated": false, @@ -4960,7 +4960,7 @@ "label": "dataType", "description": [], "signature": [ - "\"mobile\" | \"apm\" | \"alerts\" | \"synthetics\" | \"ux\" | \"infra_logs\" | \"infra_metrics\"" + "\"alerts\" | \"synthetics\" | \"ux\" | \"infra_logs\" | \"infra_metrics\" | \"apm\" | \"mobile\"" ], "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts", "deprecated": false, @@ -5734,7 +5734,7 @@ "label": "DurationUnit", "description": [], "signature": [ - "\"M\" | \"w\" | \"d\" | \"h\" | \"m\" | \"Y\"" + "\"m\" | \"M\" | \"w\" | \"d\" | \"h\" | \"Y\"" ], "path": "x-pack/plugins/observability/public/typings/slo/index.ts", "deprecated": false, @@ -5801,21 +5801,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "observability", - "id": "def-public.enableNewSyntheticsView", - "type": "string", - "tags": [], - "label": "enableNewSyntheticsView", - "description": [], - "signature": [ - "\"observability:enableNewSyntheticsView\"" - ], - "path": "x-pack/plugins/observability/common/ui_settings_keys.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "observability", "id": "def-public.ENVIRONMENT_ALL", @@ -5957,7 +5942,7 @@ "signature": [ "Pick<", "KibanaPageTemplateProps", - ", \"children\" | \"data-test-subj\" | \"paddingSize\" | \"restrictWidth\" | \"noDataConfig\" | \"pageHeader\" | \"isEmptyState\"> & { showSolutionNav?: boolean | undefined; isPageDataLoaded?: boolean | undefined; pageSectionProps?: ", + ", \"children\" | \"data-test-subj\" | \"paddingSize\" | \"pageHeader\" | \"restrictWidth\" | \"isEmptyState\" | \"noDataConfig\"> & { showSolutionNav?: boolean | undefined; isPageDataLoaded?: boolean | undefined; pageSectionProps?: ", "EuiPageSectionProps", " | undefined; bottomBar?: React.ReactNode; bottomBarProps?: ", "_EuiPageBottomBarProps", @@ -5991,7 +5976,7 @@ "label": "ObservabilityFetchDataPlugins", "description": [], "signature": [ - "\"apm\" | \"synthetics\" | \"ux\" | \"infra_logs\" | \"infra_metrics\"" + "\"synthetics\" | \"ux\" | \"infra_logs\" | \"infra_metrics\" | \"apm\"" ], "path": "x-pack/plugins/observability/public/typings/fetch_overview_data/index.ts", "deprecated": false, @@ -6006,7 +5991,7 @@ "label": "ObservabilityRuleTypeFormatter", "description": [], "signature": [ - "(options: { fields: OutputOf> & Record; formatters: { asDuration: (value: ", + "(options: { fields: OutputOf> & Record; formatters: { asDuration: (value: ", "Maybe", ", { defaultValue, extended }?: FormatterOptions) => string; asPercent: (numerator: ", "Maybe", @@ -6025,7 +6010,7 @@ "label": "options", "description": [], "signature": [ - "{ fields: OutputOf> & Record; formatters: { asDuration: (value: ", + "{ fields: OutputOf> & Record; formatters: { asDuration: (value: ", "Maybe", ", { defaultValue, extended }?: FormatterOptions) => string; asPercent: (numerator: ", "Maybe", @@ -6154,7 +6139,7 @@ "DisambiguateSet", ", Omit, \"href\">> & Omit, \"href\">) | (", "DisambiguateSet", - ", \"href\">, React.ButtonHTMLAttributes> & React.ButtonHTMLAttributes))), \"color\" | \"onClick\" | \"rel\" | \"target\"> & { size?: \"m\" | \"s\" | \"xs\" | \"l\" | undefined; color?: \"subdued\" | \"primary\" | \"text\" | undefined; label: React.ReactNode; isActive?: boolean | undefined; isDisabled?: boolean | undefined; href?: string | undefined; target?: string | undefined; rel?: string | undefined; iconType?: ", + ", \"href\">, React.ButtonHTMLAttributes> & React.ButtonHTMLAttributes))), \"color\" | \"onClick\" | \"rel\" | \"target\"> & { size?: \"m\" | \"s\" | \"xs\" | \"l\" | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; label: React.ReactNode; isActive?: boolean | undefined; isDisabled?: boolean | undefined; href?: string | undefined; target?: string | undefined; rel?: string | undefined; iconType?: ", "IconType", " | undefined; iconProps?: Omit<", "EuiIconProps", @@ -6619,7 +6604,59 @@ "label": "client", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -6671,9 +6708,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -6883,33 +6908,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -6991,27 +6992,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -7189,9 +7172,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -7369,9 +7376,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -7397,27 +7402,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -7904,7 +7889,59 @@ "label": "client", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -7956,9 +7993,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -8149,52 +8174,28 @@ ", options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "ClosePointInTimeResponse", - ", unknown>>; (this: That, params: ", - "ClosePointInTimeRequest", - " | ", - "ClosePointInTimeRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", + "ClosePointInTimeResponse", + ">; (this: That, params: ", + "ClosePointInTimeRequest", " | ", - "CountRequest", - " | undefined, options?: ", + "ClosePointInTimeRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", + "ClosePointInTimeResponse", + ", unknown>>; (this: That, params: ", + "ClosePointInTimeRequest", " | ", - "CountRequest", - " | undefined, options?: ", + "ClosePointInTimeRequest", + ", options?: ", "TransportRequestOptions", " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + "ClosePointInTimeResponse", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -8276,27 +8277,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -8474,9 +8457,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -8654,9 +8661,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -8682,27 +8687,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -9748,17 +9733,17 @@ "{ [x: string]: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, ">; }" @@ -9813,9 +9798,9 @@ "{ \"PUT /api/observability/slos/{id}\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"PUT /api/observability/slos/{id}\", ", @@ -10033,9 +10018,9 @@ "> | undefined; \"GET /api/observability/slos/{id}\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/observability/slos/{id}\", ", @@ -10063,9 +10048,9 @@ "> | undefined; \"GET /api/observability/slos\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/observability/slos\", ", @@ -10111,9 +10096,9 @@ "> | undefined; \"POST /internal/observability/slos/_historical_summary\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/observability/slos/_historical_summary\", ", @@ -10143,9 +10128,9 @@ "> | undefined; \"POST /api/observability/slos/{id}/enable\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/observability/slos/{id}/enable\", ", @@ -10173,9 +10158,9 @@ "> | undefined; \"POST /api/observability/slos/{id}/disable\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/observability/slos/{id}/disable\", ", @@ -10203,9 +10188,9 @@ "> | undefined; \"DELETE /api/observability/slos/{id}\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"DELETE /api/observability/slos/{id}\", ", @@ -10233,9 +10218,9 @@ "> | undefined; \"POST /api/observability/slos\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/observability/slos\", ", @@ -10453,9 +10438,9 @@ "> | undefined; \"GET /api/observability/rules/alerts/dynamic_index_pattern\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/observability/rules/alerts/dynamic_index_pattern\", ", @@ -10487,9 +10472,9 @@ ">; }[TEndpoint] extends ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "; alertDetails: Readonly<{} & { metrics: Readonly<{} & { enabled: boolean; }>; apm: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; uptime: Readonly<{} & { enabled: boolean; }>; }>; }>; readonly annotations: Readonly<{} & { enabled: boolean; index: string; }>; }" + "{ readonly annotations: Readonly<{} & { enabled: boolean; index: string; }>; readonly unsafe: Readonly<{} & { slo: Readonly<{} & { enabled: boolean; }>; alertDetails: Readonly<{} & { uptime: Readonly<{} & { enabled: boolean; }>; apm: Readonly<{} & { enabled: boolean; }>; metrics: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; }>; }>; }" ], "path": "x-pack/plugins/observability/server/index.ts", "deprecated": false, @@ -10527,9 +10512,9 @@ "{ \"PUT /api/observability/slos/{id}\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"PUT /api/observability/slos/{id}\", ", @@ -10747,9 +10732,9 @@ "> | undefined; \"GET /api/observability/slos/{id}\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/observability/slos/{id}\", ", @@ -10777,9 +10762,9 @@ "> | undefined; \"GET /api/observability/slos\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/observability/slos\", ", @@ -10825,9 +10810,9 @@ "> | undefined; \"POST /internal/observability/slos/_historical_summary\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /internal/observability/slos/_historical_summary\", ", @@ -10857,9 +10842,9 @@ "> | undefined; \"POST /api/observability/slos/{id}/enable\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/observability/slos/{id}/enable\", ", @@ -10887,9 +10872,9 @@ "> | undefined; \"POST /api/observability/slos/{id}/disable\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/observability/slos/{id}/disable\", ", @@ -10917,9 +10902,9 @@ "> | undefined; \"DELETE /api/observability/slos/{id}\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"DELETE /api/observability/slos/{id}\", ", @@ -10947,9 +10932,9 @@ "> | undefined; \"POST /api/observability/slos\"?: ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"POST /api/observability/slos\", ", @@ -11167,9 +11152,9 @@ "> | undefined; \"GET /api/observability/rules/alerts/dynamic_index_pattern\": ", { "pluginId": "@kbn/server-route-repository", - "scope": "public", + "scope": "common", "docId": "kibKbnServerRouteRepositoryPluginApi", - "section": "def-public.ServerRoute", + "section": "def-common.ServerRoute", "text": "ServerRoute" }, "<\"GET /api/observability/rules/alerts/dynamic_index_pattern\", ", @@ -11213,138 +11198,34 @@ "label": "ScopedAnnotationsClient", "description": [], "signature": [ - "{ readonly index: string; create: (createParams: { annotation: { type: string; }; '@timestamp': string; message: string; } & { tags?: string[] | undefined; service?: { name?: string | undefined; environment?: string | undefined; version?: string | undefined; } | undefined; }) => Promise<{ _id: string; _index: string; _source: ", - "Annotation", - "; }>; getById: (getByIdParams: { id: string; }) => Promise<", - "GetResponse", - ">; delete: (deleteParams: { id: string; }) => Promise<", - "WriteResponseBase", - ">; }" - ], - "path": "x-pack/plugins/observability/server/lib/annotations/bootstrap_annotations.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], - "objects": [ - { - "parentPluginId": "observability", - "id": "def-server.uiSettings", - "type": "Object", - "tags": [], - "label": "uiSettings", - "description": [ - "\nuiSettings definitions for Observability." - ], - "path": "x-pack/plugins/observability/server/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "observability", - "id": "def-server.uiSettings.enableNewSyntheticsView", - "type": "Object", - "tags": [], - "label": "[enableNewSyntheticsView]", - "description": [], - "path": "x-pack/plugins/observability/server/ui_settings.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "observability", - "id": "def-server.uiSettings.enableNewSyntheticsView.category", - "type": "Array", - "tags": [], - "label": "category", - "description": [], - "signature": [ - "string[]" - ], - "path": "x-pack/plugins/observability/server/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observability", - "id": "def-server.uiSettings.enableNewSyntheticsView.name", - "type": "Any", - "tags": [], - "label": "name", - "description": [], - "signature": [ - "any" - ], - "path": "x-pack/plugins/observability/server/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observability", - "id": "def-server.uiSettings.enableNewSyntheticsView.value", - "type": "boolean", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "false" - ], - "path": "x-pack/plugins/observability/server/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observability", - "id": "def-server.uiSettings.enableNewSyntheticsView.description", - "type": "Any", - "tags": [], - "label": "description", - "description": [], - "signature": [ - "any" - ], - "path": "x-pack/plugins/observability/server/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observability", - "id": "def-server.uiSettings.enableNewSyntheticsView.schema", - "type": "Object", - "tags": [], - "label": "schema", - "description": [], - "signature": [ - { - "pluginId": "@kbn/config-schema", - "scope": "common", - "docId": "kibKbnConfigSchemaPluginApi", - "section": "def-common.Type", - "text": "Type" - }, - "" - ], - "path": "x-pack/plugins/observability/server/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "observability", - "id": "def-server.uiSettings.enableNewSyntheticsView.requiresPageReload", - "type": "boolean", - "tags": [], - "label": "requiresPageReload", - "description": [], - "signature": [ - "true" - ], - "path": "x-pack/plugins/observability/server/ui_settings.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, + "{ readonly index: string; create: (createParams: { annotation: { type: string; }; '@timestamp': string; message: string; } & { tags?: string[] | undefined; service?: { name?: string | undefined; environment?: string | undefined; version?: string | undefined; } | undefined; }) => Promise<{ _id: string; _index: string; _source: ", + "Annotation", + "; }>; getById: (getByIdParams: { id: string; }) => Promise<", + "GetResponse", + ">; delete: (deleteParams: { id: string; }) => Promise<", + "WriteResponseBase", + ">; }" + ], + "path": "x-pack/plugins/observability/server/lib/annotations/bootstrap_annotations.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "observability", + "id": "def-server.uiSettings", + "type": "Object", + "tags": [], + "label": "uiSettings", + "description": [ + "\nuiSettings definitions for Observability." + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "observability", "id": "def-server.uiSettings.enableInspectEsQueries", @@ -12976,6 +12857,214 @@ } ] }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableServiceMetrics", + "type": "Object", + "tags": [], + "label": "[apmEnableServiceMetrics]", + "description": [], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableServiceMetrics.category", + "type": "Array", + "tags": [], + "label": "category", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableServiceMetrics.name", + "type": "Any", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableServiceMetrics.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "true" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableServiceMetrics.description", + "type": "Any", + "tags": [], + "label": "description", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableServiceMetrics.schema", + "type": "Object", + "tags": [], + "label": "schema", + "description": [], + "signature": [ + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableServiceMetrics.requiresPageReload", + "type": "boolean", + "tags": [], + "label": "requiresPageReload", + "description": [], + "signature": [ + "true" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableContinuousRollups", + "type": "Object", + "tags": [], + "label": "[apmEnableContinuousRollups]", + "description": [], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableContinuousRollups.category", + "type": "Array", + "tags": [], + "label": "category", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableContinuousRollups.name", + "type": "Any", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableContinuousRollups.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "true" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableContinuousRollups.description", + "type": "Any", + "tags": [], + "label": "description", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableContinuousRollups.schema", + "type": "Object", + "tags": [], + "label": "schema", + "description": [], + "signature": [ + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableContinuousRollups.requiresPageReload", + "type": "boolean", + "tags": [], + "label": "requiresPageReload", + "description": [], + "signature": [ + "true" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "observability", "id": "def-server.uiSettings.enableCriticalPath", @@ -13238,7 +13327,7 @@ "label": "ObservabilityPluginSetup", "description": [], "signature": [ - "{ getAlertDetailsConfig(): Readonly<{} & { metrics: Readonly<{} & { enabled: boolean; }>; apm: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; uptime: Readonly<{} & { enabled: boolean; }>; }>; getScopedAnnotationsClient: (requestContext: ", + "{ getAlertDetailsConfig(): Readonly<{} & { uptime: Readonly<{} & { enabled: boolean; }>; apm: Readonly<{} & { enabled: boolean; }>; metrics: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; }>; getScopedAnnotationsClient: (requestContext: ", { "pluginId": "@kbn/core-http-request-handler-context-server", "scope": "common", @@ -13612,6 +13701,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observability", + "id": "def-common.apmEnableContinuousRollups", + "type": "string", + "tags": [], + "label": "apmEnableContinuousRollups", + "description": [], + "signature": [ + "\"observability:apmEnableContinuousRollups\"" + ], + "path": "x-pack/plugins/observability/common/ui_settings_keys.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "observability", + "id": "def-common.apmEnableServiceMetrics", + "type": "string", + "tags": [], + "label": "apmEnableServiceMetrics", + "description": [], + "signature": [ + "\"observability:apmEnableServiceMetrics\"" + ], + "path": "x-pack/plugins/observability/common/ui_settings_keys.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observability", "id": "def-common.apmLabsButton", @@ -13932,21 +14051,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "observability", - "id": "def-common.enableNewSyntheticsView", - "type": "string", - "tags": [], - "label": "enableNewSyntheticsView", - "description": [], - "signature": [ - "\"observability:enableNewSyntheticsView\"" - ], - "path": "x-pack/plugins/observability/common/ui_settings_keys.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "observability", "id": "def-common.maxSuggestions", @@ -14210,7 +14314,7 @@ "label": "TimeUnitChar", "description": [], "signature": [ - "\"d\" | \"h\" | \"m\" | \"s\"" + "\"m\" | \"s\" | \"d\" | \"h\"" ], "path": "x-pack/plugins/observability/common/utils/formatters/duration.ts", "deprecated": false, diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index a77bf8f57e8a5d..e0d7b8085e7de4 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; -Contact [Observability UI](https://github.com/orgs/elastic/teams/observability-ui) for questions regarding this plugin. +Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 607 | 41 | 601 | 32 | +| 614 | 43 | 608 | 32 | ## Client diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index f9292e024df144..cef70e4d96b0d7 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; -Contact [Security asset management](https://github.com/orgs/elastic/teams/security-asset-management) for questions regarding this plugin. +Contact [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index 9b1dca4b7d7b5d..d9ac9d6f3fdfe3 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -15,512 +15,514 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Count | Plugins or Packages with a
public API | Number of teams | |--------------|----------|------------------------| -| 568 | 467 | 44 | +| 572 | 469 | 40 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 70179 | 527 | 59384 | 1217 | +| 67438 | 512 | 58435 | 1221 | ## Plugin Directory | Plugin name           | Maintaining team | Description | API Cnt | Any Cnt | Missing
comments | Missing
exports | |--------------|----------------|-----------|--------------|----------|---------------|--------| -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 256 | 8 | 251 | 24 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 36 | 1 | 32 | 2 | -| | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 12 | 0 | 1 | 2 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 471 | 1 | 461 | 39 | -| | [APM UI](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 42 | 0 | 42 | 64 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | -| | [ResponseOps](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 87 | 0 | 71 | 28 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 270 | 16 | 255 | 9 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 41 | 0 | 11 | 0 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | Chat available on Elastic Cloud deployments for quicker assistance. | 1 | 0 | 0 | 0 | -| | [Platform Onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | Static migration page where self-managed users can see text/copy about migrating to Elastic Cloud | 8 | 1 | 8 | 1 | -| | [Cloud Native Integrations](https://github.com/orgs/elastic/teams/sec-cloudnative-integrations) | Defend for Containers | 2 | 0 | 2 | 0 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/@elastic/kibana-core) | Provides the necessary APIs to implement A/B testing scenarios, fetching the variations in configuration and reporting back metrics to track conversion rates of the experiments. | 12 | 0 | 0 | 0 | -| cloudFullStory | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers FullStory as a shipper for telemetry. | 0 | 0 | 0 | 0 | -| cloudGainsight | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers Gainsight as a shipper for telemetry. | 0 | 0 | 0 | 0 | -| cloudLinks | [Kibana Core](https://github.com/orgs/elastic/teams/@kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | -| | [Cloud Security Posture](https://github.com/orgs/elastic/teams/cloud-posture-security) | The cloud security posture plugin | 17 | 0 | 2 | 2 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 13 | 0 | 13 | 1 | -| | [@elastic/kibana-global-experience](https://github.com/orgs/elastic/teams/@elastic/kibana-global-experience) | Content management app | 5 | 0 | 5 | 0 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 268 | 0 | 264 | 9 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2845 | 17 | 1029 | 0 | -| crossClusterReplication | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | -| customBranding | [global-experience](https://github.com/orgs/elastic/teams/kibana-global-experience) | Enables customization of Kibana | 0 | 0 | 0 | 0 | -| | [Fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 107 | 0 | 88 | 1 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 171 | 0 | 163 | 10 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 54 | 0 | 51 | 0 | -| | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3276 | 119 | 2578 | 27 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 16 | 0 | 7 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Reusable data view field editor across Kibana | 72 | 0 | 33 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Data view management app | 2 | 0 | 2 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 1020 | 0 | 231 | 2 | -| | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index. | 28 | 3 | 24 | 1 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 10 | 0 | 8 | 2 | -| | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 107 | 0 | 88 | 7 | -| | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 37 | 0 | 35 | 2 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds embeddables service to Kibana | 532 | 8 | 430 | 4 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Extends embeddable plugin with more functionality | 14 | 0 | 14 | 0 | -| | [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides encryption and decryption utilities for saved objects containing sensitive information. | 51 | 0 | 44 | 0 | -| | [Enterprise Search](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Adds dashboards for discovering and managing Enterprise Search products. | 9 | 0 | 9 | 0 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 114 | 3 | 110 | 5 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | The Event Annotation service contains expressions for event annotations | 172 | 30 | 172 | 3 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 116 | 0 | 116 | 11 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'error' renderer to expressions | 17 | 0 | 15 | 2 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 58 | 0 | 58 | 2 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart. | 111 | 14 | 107 | 2 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'image' function and renderer to expressions | 26 | 0 | 26 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds a `metric` renderer and function to the expression plugin. The renderer will display the `legacy metric` chart. | 51 | 0 | 51 | 2 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'metric' function and renderer to expressions | 32 | 0 | 27 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds a `metric` renderer and function to the expression plugin. The renderer will display the `metric` chart. | 63 | 0 | 63 | 2 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Partition Visualization plugin adds a `partitionVis` renderer and `pieVis`, `mosaicVis`, `treemapVis`, `waffleVis` functions to the expression plugin. The renderer will display the `pie`, `waffle`, `treemap` and `mosaic` charts. | 72 | 0 | 72 | 2 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'repeatImage' function and renderer to expressions | 32 | 0 | 32 | 0 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'revealImage' function and renderer to expressions | 14 | 0 | 14 | 3 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'shape' function and renderer to expressions | 148 | 0 | 146 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Tagcloud plugin adds a `tagcloud` renderer and function to the expression plugin. The renderer will display the `Wordcloud` chart. | 7 | 0 | 7 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart. | 171 | 0 | 161 | 13 | -| | [Visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds expression runtime to Kibana | 2205 | 74 | 1746 | 5 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 236 | 0 | 100 | 2 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Index pattern fields and ambiguous values formatters | 288 | 26 | 249 | 3 | -| | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 62 | 0 | 62 | 2 | -| | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/team:AppServicesUx) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 254 | 1 | 45 | 5 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/@elastic/appex-sharedux) | Simple UI for managing files in Kibana | 2 | 1 | 2 | 0 | -| | [Fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1068 | 3 | 963 | 26 | -| ftrApis | [Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 68 | 0 | 14 | 5 | -| globalSearchBar | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | -| globalSearchProviders | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | -| graph | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 0 | 0 | 0 | 0 | -| grokdebugger | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | -| | [Journey Onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | Guided onboarding framework | 56 | 0 | 55 | 0 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 143 | 0 | 104 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/@elastic/appex-sharedux) | Image embeddable | 3 | 0 | 3 | 1 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 4 | 0 | 4 | 0 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 177 | 0 | 172 | 3 | -| | [Logs and Metrics UI](https://github.com/orgs/elastic/teams/logs-metrics-ui) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 43 | 0 | 40 | 9 | -| ingestPipelines | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | -| inputControlVis | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Input Control visualization to Kibana | 0 | 0 | 0 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 123 | 2 | 96 | 4 | -| | [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides UI and APIs for the interactive setup mode. | 28 | 0 | 18 | 0 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 179 | 1 | 149 | 5 | -| kibanaUsageCollection | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 0 | 0 | 0 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 609 | 3 | 416 | 9 | -| | [Security Team](https://github.com/orgs/elastic/teams/security-team) | - | 3 | 0 | 3 | 1 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 691 | 0 | 596 | 52 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 8 | 0 | 8 | 0 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 3 | 0 | 3 | 0 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 | -| | [Security detections response](https://github.com/orgs/elastic/teams/security-detections-response) | - | 206 | 0 | 93 | 51 | -| logstash | [Logstash](https://github.com/orgs/elastic/teams/logstash) | - | 0 | 0 | 0 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 41 | 0 | 41 | 6 | -| | [GIS](https://github.com/orgs/elastic/teams/kibana-gis) | - | 267 | 0 | 266 | 27 | -| | [GIS](https://github.com/orgs/elastic/teams/kibana-gis) | - | 67 | 0 | 67 | 0 | -| | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 254 | 9 | 78 | 40 | -| | [Stack Monitoring](https://github.com/orgs/elastic/teams/stack-monitoring-ui) | - | 15 | 3 | 13 | 1 | -| | [Stack Monitoring](https://github.com/orgs/elastic/teams/stack-monitoring-ui) | - | 9 | 0 | 9 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 34 | 0 | 34 | 2 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 2 | 0 | 2 | 1 | -| | [Observability UI](https://github.com/orgs/elastic/teams/observability-ui) | - | 607 | 41 | 601 | 32 | -| | [Security asset management](https://github.com/orgs/elastic/teams/security-asset-management) | - | 24 | 0 | 24 | 7 | -| painlessLab | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 217 | 7 | 161 | 11 | -| | [profiling](https://github.com/orgs/elastic/teams/profiling-ui) | - | 15 | 2 | 15 | 0 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 4 | 0 | 4 | 0 | -| | [Kibana Reporting Services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 36 | 0 | 16 | 0 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 21 | 0 | 21 | 0 | -| | [RAC](https://github.com/orgs/elastic/teams/rac) | - | 251 | 0 | 223 | 11 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 24 | 0 | 19 | 2 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 196 | 2 | 155 | 5 | -| | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 16 | 0 | 16 | 0 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 154 | 0 | 140 | 2 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 79 | 0 | 73 | 3 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 100 | 0 | 52 | 1 | -| | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the definition and helper methods around saved searches, used by discover and visualizations. | 45 | 0 | 45 | 1 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 32 | 0 | 13 | 0 | -| | [Kibana Reporting Services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Kibana Screenshotting Plugin | 27 | 0 | 8 | 4 | -| searchprofiler | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | -| | [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 269 | 0 | 89 | 0 | -| | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 113 | 0 | 73 | 28 | -| | [Security Team](https://github.com/orgs/elastic/teams/security-team) | - | 7 | 0 | 7 | 1 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds URL Service and sharing capabilities to Kibana | 118 | 0 | 59 | 10 | -| | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 22 | 1 | 22 | 1 | -| | [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides the Spaces feature, which allows saved objects to be organized into meaningful categories. | 261 | 0 | 65 | 0 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 12 | 0 | 12 | 2 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 4 | 0 | 4 | 0 | -| synthetics | [Uptime](https://github.com/orgs/elastic/teams/uptime) | This plugin visualizes data from Synthetics and Heartbeat, and integrates with other Observability solutions. | 0 | 0 | 0 | 0 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 83 | 0 | 41 | 7 | -| | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 44 | 0 | 1 | 0 | -| | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 31 | 0 | 26 | 6 | -| | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 1 | 0 | 1 | 0 | -| | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 5 | 0 | 0 | 0 | -| | [Protections Experience Team](https://github.com/orgs/elastic/teams/protections-experience) | Elastic threat intelligence helps you see if you are open to or have been subject to current or historical known threats | 35 | 0 | 14 | 5 | -| | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 257 | 1 | 214 | 20 | -| | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | -| translations | [Kibana Localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 590 | 11 | 561 | 53 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds UI Actions service to Kibana | 134 | 2 | 92 | 9 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Extends UI Actions plugin with more functionality | 206 | 0 | 140 | 9 | -| | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 267 | 0 | 242 | 7 | -| | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display. | 63 | 0 | 16 | 1 | -| | [Visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 134 | 2 | 99 | 20 | -| upgradeAssistant | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | -| urlDrilldown | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds drilldown implementations to Kibana | 0 | 0 | 0 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 12 | 0 | 12 | 0 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 58 | 0 | 15 | 1 | -| | [Uptime](https://github.com/orgs/elastic/teams/uptime) | - | 2 | 0 | 2 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | The default editor used in most aggregation-based visualizations. | 59 | 0 | 52 | 3 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the gauge chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting. | 7 | 0 | 7 | 2 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the heatmap implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy heatmap charts library advanced setting. | 3 | 0 | 3 | 2 | -| visTypeMarkdown | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds a markdown visualization type | 0 | 0 | 0 | 0 | -| visTypeMetric | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the Metric aggregation-based visualization. | 0 | 0 | 0 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the pie chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting. | 11 | 0 | 11 | 1 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the datatable aggregation-based visualization. | 12 | 0 | 12 | 0 | -| visTypeTagcloud | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the tagcloud visualization. It is based on elastic-charts wordcloud. | 0 | 0 | 0 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the timelion visualization. Also contains the backend for both timelion app and timelion visualization. | 2 | 0 | 2 | 2 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the TSVB visualization. TSVB has its one editor, works with index patterns and index strings and contains 6 types of charts: timeseries, topN, table. markdown, metric and gauge. | 10 | 1 | 10 | 3 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the vega visualization. Is the elastic version of vega and vega-lite libraries. | 2 | 0 | 2 | 0 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the vislib visualizations. These are the classical area/line/bar, gauge/goal and heatmap charts. We want to replace them with elastic-charts. | 26 | 0 | 25 | 1 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the new xy-axis chart using the elastic-charts library, which will eventually replace the vislib xy-axis charts including bar, area, and line. | 53 | 0 | 50 | 5 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the shared architecture among all the legacy visualizations, e.g. the visualization type registry or the visualization embeddable. | 800 | 12 | 770 | 18 | -| watcher | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 256 | 8 | 251 | 24 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 36 | 1 | 32 | 2 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 12 | 0 | 1 | 2 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 476 | 1 | 466 | 39 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 42 | 0 | 42 | 65 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 87 | 0 | 71 | 28 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 270 | 16 | 255 | 9 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 41 | 0 | 11 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Chat available on Elastic Cloud deployments for quicker assistance. | 1 | 0 | 0 | 0 | +| | [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | Static migration page where self-managed users can see text/copy about migrating to Elastic Cloud | 8 | 1 | 8 | 1 | +| | [@elastic/sec-cloudnative-integrations](https://github.com/orgs/elastic/teams/sec-cloudnative-integrations) | Defend for Containers | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Provides the necessary APIs to implement A/B testing scenarios, fetching the variations in configuration and reporting back metrics to track conversion rates of the experiments. | 12 | 0 | 0 | 0 | +| cloudFullStory | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers FullStory as a shipper for telemetry. | 0 | 0 | 0 | 0 | +| cloudGainsight | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers Gainsight as a shipper for telemetry. | 0 | 0 | 0 | 0 | +| cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | +| | [@elastic/kibana-global-experience](https://github.com/orgs/elastic/teams/kibana-global-experience) | Content management app | 22 | 0 | 22 | 1 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 270 | 0 | 266 | 9 | +| crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | +| customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | +| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 107 | 0 | 88 | 1 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 172 | 0 | 164 | 10 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 54 | 0 | 51 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3276 | 119 | 2578 | 27 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 16 | 0 | 7 | 0 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Reusable data view field editor across Kibana | 72 | 0 | 33 | 0 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data view management app | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 1020 | 0 | 231 | 2 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index. | 28 | 3 | 24 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 10 | 0 | 8 | 2 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 107 | 0 | 88 | 7 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 37 | 0 | 35 | 2 | +| | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | APIs used to assess the quality of data in Elasticsearch indexes | 2 | 0 | 0 | 0 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 532 | 8 | 430 | 4 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Extends embeddable plugin with more functionality | 14 | 0 | 14 | 0 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides encryption and decryption utilities for saved objects containing sensitive information. | 51 | 0 | 44 | 0 | +| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Adds dashboards for discovering and managing Enterprise Search products. | 9 | 0 | 9 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 114 | 3 | 110 | 5 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | The Event Annotation service contains expressions for event annotations | 172 | 30 | 172 | 3 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 116 | 0 | 116 | 11 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'error' renderer to expressions | 17 | 0 | 15 | 2 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 58 | 0 | 58 | 2 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart. | 111 | 14 | 107 | 2 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'image' function and renderer to expressions | 26 | 0 | 26 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds a `metric` renderer and function to the expression plugin. The renderer will display the `legacy metric` chart. | 51 | 0 | 51 | 2 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'metric' function and renderer to expressions | 32 | 0 | 27 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds a `metric` renderer and function to the expression plugin. The renderer will display the `metric` chart. | 63 | 0 | 63 | 2 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Partition Visualization plugin adds a `partitionVis` renderer and `pieVis`, `mosaicVis`, `treemapVis`, `waffleVis` functions to the expression plugin. The renderer will display the `pie`, `waffle`, `treemap` and `mosaic` charts. | 72 | 0 | 72 | 2 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'repeatImage' function and renderer to expressions | 32 | 0 | 32 | 0 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'revealImage' function and renderer to expressions | 14 | 0 | 14 | 3 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'shape' function and renderer to expressions | 148 | 0 | 146 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Tagcloud plugin adds a `tagcloud` renderer and function to the expression plugin. The renderer will display the `Wordcloud` chart. | 7 | 0 | 7 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart. | 171 | 0 | 161 | 13 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds expression runtime to Kibana | 2205 | 74 | 1746 | 5 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 236 | 0 | 100 | 2 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Index pattern fields and ambiguous values formatters | 288 | 26 | 249 | 3 | +| | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 62 | 0 | 62 | 2 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 254 | 1 | 45 | 5 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Simple UI for managing files in Kibana | 2 | 1 | 2 | 0 | +| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1069 | 3 | 964 | 26 | +| ftrApis | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 68 | 0 | 14 | 5 | +| globalSearchBar | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | +| globalSearchProviders | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | +| graph | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 0 | 0 | 0 | 0 | +| grokdebugger | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | +| | [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | Guided onboarding framework | 56 | 0 | 55 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 143 | 0 | 104 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Image embeddable | 3 | 0 | 3 | 1 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 177 | 0 | 172 | 3 | +| | [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 43 | 0 | 40 | 9 | +| ingestPipelines | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | +| inputControlVis | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Input Control visualization to Kibana | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 123 | 2 | 96 | 4 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides UI and APIs for the interactive setup mode. | 28 | 0 | 18 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 179 | 1 | 149 | 5 | +| kibanaUsageCollection | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 609 | 3 | 416 | 9 | +| | [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) | - | 3 | 0 | 3 | 1 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 691 | 0 | 596 | 52 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 8 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 208 | 0 | 93 | 51 | +| logstash | [@elastic/logstash](https://github.com/orgs/elastic/teams/logstash) | - | 0 | 0 | 0 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 41 | 0 | 41 | 6 | +| | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 267 | 0 | 266 | 27 | +| | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 67 | 0 | 67 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 255 | 9 | 79 | 40 | +| | [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) | - | 15 | 3 | 13 | 1 | +| | [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) | - | 9 | 0 | 9 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 34 | 0 | 34 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | +| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 614 | 43 | 608 | 32 | +| | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 24 | 0 | 24 | 7 | +| painlessLab | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 217 | 7 | 161 | 11 | +| | [@elastic/profiling-ui](https://github.com/orgs/elastic/teams/profiling-ui) | - | 15 | 2 | 15 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 36 | 0 | 16 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 21 | 0 | 21 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 252 | 0 | 224 | 12 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 24 | 0 | 19 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 196 | 2 | 155 | 5 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 16 | 0 | 16 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 154 | 0 | 140 | 2 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 79 | 0 | 73 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 100 | 0 | 52 | 1 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the definition and helper methods around saved searches, used by discover and visualizations. | 45 | 0 | 45 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 13 | 0 | +| | [@elastic/kibana-reporting-services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Kibana Screenshotting Plugin | 27 | 0 | 8 | 4 | +| searchprofiler | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 269 | 0 | 89 | 0 | +| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 117 | 0 | 77 | 28 | +| | [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) | - | 7 | 0 | 7 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds URL Service and sharing capabilities to Kibana | 118 | 0 | 59 | 10 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 22 | 1 | 22 | 1 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides the Spaces feature, which allows saved objects to be organized into meaningful categories. | 261 | 0 | 65 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 12 | 0 | 12 | 2 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 4 | 0 | 4 | 0 | +| synthetics | [@elastic/uptime](https://github.com/orgs/elastic/teams/uptime) | This plugin visualizes data from Synthetics and Heartbeat, and integrates with other Observability solutions. | 0 | 0 | 0 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 83 | 0 | 41 | 7 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 44 | 0 | 1 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 31 | 0 | 26 | 6 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 1 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 0 | 0 | +| | [@elastic/protections-experience](https://github.com/orgs/elastic/teams/protections-experience) | Elastic threat intelligence helps you see if you are open to or have been subject to current or historical known threats | 35 | 0 | 14 | 5 | +| | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 257 | 1 | 214 | 20 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | +| translations | [@elastic/kibana-localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 591 | 11 | 562 | 53 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 134 | 2 | 92 | 9 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Extends UI Actions plugin with more functionality | 206 | 0 | 140 | 9 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 267 | 0 | 242 | 7 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display. | 61 | 0 | 23 | 1 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 134 | 2 | 99 | 20 | +| upgradeAssistant | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | +| urlDrilldown | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds drilldown implementations to Kibana | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 12 | 0 | 12 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 58 | 0 | 15 | 1 | +| | [@elastic/uptime](https://github.com/orgs/elastic/teams/uptime) | - | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | The default editor used in most aggregation-based visualizations. | 59 | 0 | 52 | 3 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the gauge chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting. | 7 | 0 | 7 | 2 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the heatmap implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy heatmap charts library advanced setting. | 3 | 0 | 3 | 2 | +| visTypeMarkdown | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds a markdown visualization type | 0 | 0 | 0 | 0 | +| visTypeMetric | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the Metric aggregation-based visualization. | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the pie chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting. | 11 | 0 | 11 | 1 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the datatable aggregation-based visualization. | 12 | 0 | 12 | 0 | +| visTypeTagcloud | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the tagcloud visualization. It is based on elastic-charts wordcloud. | 0 | 0 | 0 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the timelion visualization. Also contains the backend for both timelion app and timelion visualization. | 2 | 0 | 2 | 2 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the TSVB visualization. TSVB has its one editor, works with index patterns and index strings and contains 6 types of charts: timeseries, topN, table. markdown, metric and gauge. | 10 | 1 | 10 | 3 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Registers the vega visualization. Is the elastic version of vega and vega-lite libraries. | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the vislib visualizations. These are the classical area/line/bar, gauge/goal and heatmap charts. We want to replace them with elastic-charts. | 26 | 0 | 25 | 1 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the new xy-axis chart using the elastic-charts library, which will eventually replace the vislib xy-axis charts including bar, area, and line. | 53 | 0 | 50 | 5 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains the shared architecture among all the legacy visualizations, e.g. the visualization type registry or the visualization embeddable. | 800 | 12 | 770 | 18 | +| watcher | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | ## Package Directory | Package name           | Maintaining team | Description | API Cnt | Any Cnt | Missing
comments | Missing
exports | |--------------|----------------|-----------|--------------|----------|---------------|--------| -| | [Owner missing] | - | 11 | 5 | 11 | 0 | -| | Machine Learning UI | React components for AIOps related efforts. | 6 | 0 | 6 | 0 | -| | Machine Learning UI | Static utilities for AIOps related efforts. | 53 | 0 | 22 | 0 | -| | [Owner missing] | Alerts components and hooks | 9 | 1 | 9 | 0 | -| | Kibana Core | Kibana Analytics tool | 73 | 0 | 73 | 2 | -| | Kibana Core | - | 98 | 0 | 0 | 0 | -| | Kibana Core | - | 19 | 0 | 0 | 0 | -| | Kibana Core | - | 23 | 0 | 0 | 0 | -| | Kibana Core | - | 19 | 0 | 0 | 0 | -| | Kibana Core | - | 21 | 0 | 0 | 0 | -| | Kibana Core | - | 18 | 0 | 2 | 0 | -| | [Owner missing] | - | 17 | 0 | 17 | 0 | -| | [Owner missing] | Elastic APM trace data generator | 27 | 0 | 27 | 3 | -| | [Owner missing] | Elastic APM trace data generator | 152 | 0 | 152 | 16 | -| | [Owner missing] | - | 11 | 0 | 11 | 0 | -| | [Owner missing] | - | 10 | 0 | 10 | 0 | -| | [Owner missing] | - | 19 | 0 | 17 | 0 | -| | [Owner missing] | Uniform components for displaying UI actions in data cells | 20 | 0 | 14 | 3 | -| | [Owner missing] | - | 76 | 0 | 76 | 0 | -| | [Owner missing] | - | 7 | 0 | 2 | 0 | -| | [Owner missing] | - | 3 | 0 | 3 | 0 | -| | [Owner missing] | - | 62 | 0 | 17 | 1 | -| | [Owner missing] | - | 2 | 0 | 2 | 0 | -| | [Owner missing] | - | 2 | 0 | 2 | 1 | -| | [Owner missing] | - | 37 | 0 | 36 | 0 | -| | [Owner missing] | - | 106 | 0 | 80 | 1 | -| | Kibana Core | - | 73 | 0 | 44 | 9 | -| | Kibana Core | - | 24 | 0 | 24 | 0 | -| | Kibana Core | - | 129 | 3 | 127 | 17 | -| | [Owner missing] | - | 6 | 0 | 4 | 4 | -| | [Owner missing] | - | 20 | 0 | 13 | 5 | -| | Kibana Core | - | 4 | 0 | 0 | 0 | -| | Kibana Core | - | 7 | 0 | 7 | 1 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 3 | 0 | 0 | 0 | -| | Kibana Core | - | 7 | 0 | 7 | 0 | -| | Kibana Core | - | 5 | 0 | 5 | 0 | -| | Kibana Core | - | 103 | 0 | 27 | 0 | -| | Kibana Core | - | 18 | 0 | 15 | 3 | -| | Kibana Core | - | 12 | 0 | 12 | 0 | -| | Kibana Core | - | 8 | 0 | 1 | 0 | -| | Kibana Core | - | 20 | 0 | 19 | 0 | -| | Kibana Core | - | 2 | 0 | 2 | 0 | -| | Kibana Core | - | 8 | 0 | 8 | 1 | -| | Kibana Core | - | 3 | 0 | 3 | 0 | -| | Kibana Core | - | 12 | 0 | 3 | 0 | -| | Kibana Core | - | 7 | 0 | 7 | 2 | -| | Kibana Core | - | 3 | 0 | 3 | 0 | -| | Kibana Core | - | 3 | 0 | 3 | 0 | -| | Kibana Core | - | 5 | 0 | 0 | 0 | -| | Kibana Core | - | 16 | 0 | 7 | 0 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 120 | 0 | 46 | 0 | -| | Kibana Core | - | 3 | 0 | 3 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | [Owner missing] | - | 8 | 0 | 8 | 0 | -| | [Owner missing] | - | 5 | 0 | 5 | 0 | -| | [Owner missing] | - | 4 | 0 | 4 | 0 | -| | [Owner missing] | - | 6 | 0 | 1 | 0 | -| | [Owner missing] | - | 11 | 0 | 11 | 0 | -| | [Owner missing] | - | 6 | 0 | 6 | 1 | -| | [Owner missing] | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 9 | 0 | 3 | 0 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 17 | 0 | 9 | 0 | -| | Kibana Core | - | 16 | 0 | 13 | 0 | -| | Kibana Core | - | 4 | 0 | 3 | 0 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 5 | 0 | 2 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 16 | 0 | 14 | 1 | -| | Kibana Core | - | 38 | 1 | 34 | 0 | -| | Kibana Core | - | 103 | 0 | 53 | 0 | -| | Kibana Core | - | 37 | 0 | 33 | 3 | -| | Kibana Core | - | 15 | 1 | 15 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 1 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 10 | 0 | 2 | 1 | -| | Kibana Core | - | 6 | 0 | 6 | 2 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 1 | 0 | 1 | 0 | -| | Kibana Core | - | 9 | 0 | 8 | 0 | -| | Kibana Core | - | 9 | 0 | 9 | 1 | -| | Kibana Core | - | 5 | 0 | 5 | 0 | -| | Kibana Core | - | 9 | 0 | 2 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 109 | 4 | 35 | 0 | -| | Kibana Core | - | 10 | 0 | 10 | 1 | -| | Kibana Core | - | 16 | 0 | 16 | 0 | -| | Kibana Core | - | 4 | 0 | 0 | 0 | -| | Kibana Core | - | 10 | 1 | 10 | 0 | -| | Kibana Core | - | 14 | 0 | 11 | 0 | -| | [Owner missing] | - | 22 | 0 | 7 | 0 | -| | [Owner missing] | - | 9 | 0 | 9 | 3 | -| | Kibana Core | - | 7 | 0 | 7 | 0 | -| | Kibana Core | - | 25 | 5 | 25 | 1 | -| | Kibana Core | - | 7 | 0 | 7 | 1 | -| | Kibana Core | - | 403 | 1 | 160 | 0 | -| | Kibana Core | - | 54 | 0 | 48 | 6 | -| | Kibana Core | - | 41 | 0 | 40 | 0 | -| | Kibana Core | - | 4 | 0 | 2 | 0 | -| | Kibana Core | - | 3 | 0 | 3 | 0 | -| | Kibana Core | - | 3 | 0 | 1 | 0 | -| | Kibana Core | - | 8 | 0 | 8 | 2 | -| | Kibana Core | - | 3 | 0 | 3 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 2 | 0 | 2 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 30 | 0 | 0 | 0 | -| | Kibana Core | - | 5 | 0 | 5 | 0 | -| | Kibana Core | - | 33 | 0 | 0 | 0 | -| | Kibana Core | - | 9 | 0 | 9 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 38 | 0 | 31 | 0 | -| | Kibana Core | - | 56 | 0 | 30 | 0 | -| | Kibana Core | - | 9 | 0 | 5 | 2 | -| | Kibana Core | - | 13 | 0 | 13 | 0 | -| | Kibana Core | - | 29 | 0 | 25 | 0 | -| | Kibana Core | - | 11 | 1 | 11 | 0 | -| | Kibana Core | - | 54 | 0 | 8 | 0 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 11 | 0 | 11 | 0 | -| | Kibana Core | - | 6 | 0 | 0 | 0 | -| | Kibana Core | - | 5 | 0 | 0 | 0 | -| | Kibana Core | - | 7 | 0 | 6 | 1 | -| | Kibana Core | - | 5 | 0 | 5 | 0 | -| | Kibana Core | - | 35 | 4 | 23 | 0 | -| | Kibana Core | - | 32 | 0 | 11 | 2 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 63 | 0 | 37 | 0 | -| | Kibana Core | - | 1 | 0 | 1 | 1 | -| | Kibana Core | - | 3 | 0 | 3 | 0 | -| | Kibana Core | - | 15 | 0 | 11 | 0 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 58 | 0 | 26 | 0 | -| | Kibana Core | - | 5 | 0 | 5 | 0 | -| | Kibana Core | - | 5 | 0 | 0 | 0 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 2 | 0 | 2 | 0 | -| | Kibana Core | - | 2 | 0 | 2 | 1 | -| | Kibana Core | - | 4 | 0 | 4 | 1 | -| | Kibana Core | - | 23 | 1 | 22 | 0 | -| | Kibana Core | - | 107 | 1 | 0 | 0 | -| | Kibana Core | - | 313 | 1 | 0 | 1 | -| | Kibana Core | - | 75 | 0 | 54 | 1 | -| | Kibana Core | - | 11 | 0 | 11 | 0 | -| | Kibana Core | - | 37 | 0 | 31 | 6 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 2 | 0 | 1 | 0 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 7 | 0 | 7 | 0 | -| | Kibana Core | - | 67 | 0 | 39 | 0 | -| | Kibana Core | - | 25 | 0 | 23 | 0 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 112 | 0 | 79 | 45 | -| | Kibana Core | - | 12 | 0 | 12 | 0 | -| | Kibana Core | - | 329 | 0 | 96 | 1 | -| | Kibana Core | - | 69 | 0 | 69 | 4 | -| | Kibana Core | - | 14 | 0 | 14 | 0 | -| | Kibana Core | - | 108 | 1 | 84 | 0 | -| | Kibana Core | - | 12 | 0 | 2 | 0 | -| | Kibana Core | - | 19 | 0 | 18 | 0 | -| | Kibana Core | - | 20 | 0 | 3 | 0 | -| | Kibana Core | - | 22 | 0 | 22 | 1 | -| | Kibana Core | - | 4 | 0 | 4 | 0 | -| | Kibana Core | - | 11 | 0 | 11 | 0 | -| | Kibana Core | - | 5 | 0 | 5 | 0 | -| | Kibana Core | - | 54 | 1 | 48 | 0 | -| | Kibana Core | - | 13 | 0 | 12 | 0 | -| | [Owner missing] | - | 9 | 0 | 9 | 0 | -| | Kibana Core | - | 6 | 0 | 4 | 0 | -| | Kibana Core | - | 2 | 0 | 1 | 0 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 30 | 1 | 18 | 0 | -| | Kibana Core | - | 11 | 1 | 11 | 3 | -| | Kibana Core | - | 8 | 0 | 8 | 0 | -| | Kibana Core | - | 24 | 0 | 3 | 0 | -| | Kibana Core | - | 32 | 1 | 16 | 0 | -| | Kibana Core | - | 18 | 1 | 17 | 3 | -| | Kibana Core | - | 6 | 0 | 6 | 0 | -| | Kibana Core | - | 153 | 0 | 142 | 0 | -| | Kibana Core | - | 8 | 0 | 8 | 2 | -| | Kibana Core | - | 7 | 0 | 7 | 0 | -| | [Owner missing] | - | 13 | 0 | 7 | 0 | -| | [Owner missing] | - | 10 | 0 | 10 | 0 | -| | [Owner missing] | - | 2 | 0 | 2 | 0 | -| | [Owner missing] | elasticsearch datemath parser, used in kibana | 44 | 0 | 43 | 0 | -| | [Owner missing] | - | 9 | 1 | 9 | 0 | -| | [Owner missing] | - | 101 | 0 | 85 | 0 | -| | [Owner missing] | - | 15 | 0 | 9 | 0 | -| | [Owner missing] | - | 27 | 2 | 24 | 0 | -| | [Owner missing] | - | 68 | 0 | 68 | 2 | -| | [Owner missing] | - | 1 | 0 | 1 | 0 | -| | [Owner missing] | - | 19 | 0 | 11 | 0 | -| | Kibana Core | - | 35102 | 0 | 34695 | 0 | -| | [Owner missing] | - | 4 | 0 | 4 | 0 | -| | [Owner missing] | - | 27 | 0 | 14 | 1 | -| | Kibana Core | - | 7 | 0 | 3 | 0 | -| | [Owner missing] | - | 250 | 1 | 192 | 15 | -| | Kibana Core | - | 12 | 0 | 12 | 0 | -| | [Owner missing] | - | 2 | 0 | 1 | 0 | -| | [Owner missing] | - | 20 | 0 | 16 | 0 | -| | [Owner missing] | - | 2 | 0 | 0 | 0 | -| | [Owner missing] | - | 29 | 0 | 29 | 1 | -| | [Owner missing] | - | 1 | 0 | 0 | 0 | -| | [Owner missing] | - | 6 | 0 | 0 | 0 | -| | [Owner missing] | - | 52 | 0 | 50 | 2 | -| | [Owner missing] | - | 21 | 1 | 14 | 0 | -| | [Owner missing] | - | 3 | 0 | 3 | 0 | -| | Kibana Core | - | 1 | 0 | 1 | 0 | -| | [Owner missing] | - | 32 | 0 | 22 | 0 | -| | [Owner missing] | - | 8 | 0 | 2 | 2 | -| | Kibana Core | - | 51 | 0 | 48 | 0 | -| | Kibana Core | - | 61 | 0 | 1 | 0 | -| | [Owner missing] | - | 47 | 0 | 39 | 0 | -| | Visualizations | - | 52 | 12 | 43 | 0 | -| | [Owner missing] | - | 24 | 0 | 24 | 3 | -| | [Owner missing] | - | 13 | 0 | 13 | 0 | -| | [Owner missing] | - | 67 | 0 | 62 | 5 | -| | [Owner missing] | - | 32 | 2 | 28 | 0 | -| | [Owner missing] | - | 108 | 0 | 107 | 0 | -| | [Owner missing] | - | 7 | 0 | 5 | 0 | -| | Kibana Core | - | 27 | 0 | 1 | 2 | -| | Kibana Core | - | 8 | 0 | 8 | 0 | -| | [Owner missing] | - | 6 | 0 | 1 | 1 | -| | [Owner missing] | - | 534 | 1 | 1 | 0 | -| | Machine Learning UI | This package includes utility functions related to creating elasticsearch aggregation queries, data manipulation and verification. | 83 | 2 | 59 | 0 | -| | [Owner missing] | - | 49 | 0 | 4 | 0 | -| | [Owner missing] | - | 2 | 0 | 0 | 0 | -| | Machine Learning UI | A type guard to check record like object structures. | 3 | 0 | 2 | 0 | -| | Machine Learning UI | Utilities to combine url state management with local storage. | 5 | 0 | 3 | 0 | -| | Machine Learning UI | TypeScript-aware utility functions to get/set attributes from objects. | 8 | 2 | 8 | 0 | -| | [Owner missing] | - | 10 | 0 | 0 | 0 | -| | Machine Learning UI | Creates a deterministic number based hash out of a string. | 2 | 0 | 1 | 0 | -| | Machine Learning UI | Url state management utilities. | 31 | 1 | 24 | 1 | -| | [Owner missing] | - | 71 | 0 | 69 | 3 | -| | [Owner missing] | - | 45 | 0 | 45 | 10 | -| | [Owner missing] | - | 51 | 5 | 34 | 0 | -| | [Owner missing] | io ts utilities and types to be shared with plugins from the osquery project | 62 | 0 | 62 | 0 | -| | [Owner missing] | A library to convert APM traces into JSON format for performance testing. | 3 | 0 | 3 | 1 | -| | [Owner missing] | - | 1 | 0 | 1 | 0 | -| | [Owner missing] | Just some helpers for kibana plugin devs. | 1 | 0 | 1 | 0 | -| | [Owner missing] | - | 21 | 0 | 10 | 0 | -| | [Owner missing] | - | 18 | 0 | 18 | 0 | -| | [Owner missing] | - | 40 | 0 | 38 | 5 | -| | [Owner missing] | - | 13 | 0 | 9 | 0 | -| | [Owner missing] | - | 6 | 0 | 6 | 1 | -| | [Owner missing] | - | 13 | 2 | 8 | 0 | -| | [Owner missing] | - | 100 | 0 | 97 | 0 | -| | [Owner missing] | Security Solution auto complete | 56 | 1 | 41 | 1 | -| | [Owner missing] | - | 341 | 1 | 337 | 32 | -| | [Owner missing] | security solution elastic search utilities to use across plugins such lists, security_solution, cases, etc... | 67 | 0 | 61 | 1 | -| | [Owner missing] | - | 104 | 0 | 93 | 1 | -| | [Owner missing] | Security Solution utilities for React hooks | 15 | 0 | 7 | 0 | -| | [Owner missing] | io ts utilities and types to be shared with plugins from the security solution project | 138 | 0 | 119 | 0 | -| | [Owner missing] | io ts utilities and types to be shared with plugins from the security solution project | 511 | 1 | 498 | 0 | -| | [Owner missing] | io ts utilities and types to be shared with plugins from the security solution project | 65 | 0 | 36 | 0 | -| | [Owner missing] | io ts utilities and types to be shared with plugins from the security solution project | 28 | 0 | 21 | 0 | -| | [Owner missing] | security solution list REST API | 67 | 0 | 64 | 0 | -| | [Owner missing] | security solution list constants to use across plugins such lists, security_solution, cases, etc... | 35 | 0 | 23 | 0 | -| | [Owner missing] | Security solution list ReactJS hooks | 60 | 0 | 47 | 0 | -| | [Owner missing] | security solution list utilities | 194 | 10 | 150 | 0 | -| | [Owner missing] | security solution rule utilities to use across plugins | 26 | 0 | 23 | 0 | -| | [Owner missing] | security solution t-grid packages will allow sharing components between timelines and security_solution plugin until we transfer all functionality to timelines plugin | 120 | 0 | 116 | 0 | -| | [Owner missing] | security solution utilities to use across plugins such lists, security_solution, cases, etc... | 31 | 2 | 29 | 0 | -| | Kibana Core | - | 53 | 0 | 50 | 1 | -| | [Owner missing] | - | 25 | 0 | 24 | 1 | -| | [Owner missing] | - | 2 | 0 | 2 | 0 | -| | [Owner missing] | - | 3 | 0 | 2 | 2 | -| | [Owner missing] | - | 40 | 0 | 3 | 0 | -| | [Owner missing] | - | 8 | 0 | 4 | 0 | -| | [Owner missing] | - | 13 | 0 | 9 | 0 | -| | [Owner missing] | - | 25 | 0 | 8 | 0 | -| | [Owner missing] | - | 10 | 0 | 4 | 0 | -| | [Owner missing] | - | 32 | 0 | 28 | 0 | -| | [Owner missing] | - | 5 | 0 | 4 | 0 | -| | [Owner missing] | - | 3 | 0 | 2 | 0 | -| | [Owner missing] | - | 2 | 0 | 2 | 0 | -| | [Owner missing] | - | 1 | 0 | 1 | 0 | -| | [Owner missing] | - | 13 | 0 | 6 | 0 | -| | [Owner missing] | - | 7 | 0 | 7 | 1 | -| | [Owner missing] | - | 17 | 0 | 15 | 0 | -| | [Owner missing] | - | 17 | 0 | 9 | 0 | -| | [Owner missing] | - | 10 | 0 | 9 | 0 | -| | [Owner missing] | - | 2 | 0 | 2 | 1 | -| | [Owner missing] | - | 32 | 0 | 31 | 0 | -| | [Owner missing] | - | 14 | 0 | 5 | 1 | -| | [Owner missing] | - | 17 | 0 | 17 | 0 | -| | [Owner missing] | - | 8 | 0 | 3 | 0 | -| | [Owner missing] | - | 25 | 0 | 24 | 0 | -| | [Owner missing] | - | 11 | 0 | 6 | 0 | -| | [Owner missing] | - | 43 | 5 | 43 | 2 | -| | [Owner missing] | - | 13 | 0 | 5 | 0 | -| | [Owner missing] | - | 11 | 0 | 9 | 0 | -| | [Owner missing] | - | 24 | 0 | 24 | 0 | -| | [Owner missing] | - | 27 | 0 | 26 | 0 | -| | [Owner missing] | - | 5 | 0 | 3 | 1 | -| | [Owner missing] | - | 25 | 0 | 10 | 0 | -| | [Owner missing] | - | 17 | 0 | 16 | 0 | -| | [Owner missing] | - | 2 | 0 | 1 | 0 | -| | [Owner missing] | - | 2 | 0 | 1 | 0 | -| | [Owner missing] | - | 1 | 0 | 1 | 0 | -| | [Owner missing] | - | 2 | 0 | 0 | 0 | -| | [Owner missing] | - | 15 | 0 | 4 | 0 | -| | [Owner missing] | - | 9 | 0 | 3 | 0 | -| | [Owner missing] | SLO io-ts schema definition and common models shared between public and server. | 75 | 0 | 75 | 0 | -| | [Owner missing] | - | 20 | 0 | 12 | 0 | -| | Kibana Core | - | 97 | 1 | 64 | 1 | -| | [Owner missing] | - | 4 | 0 | 2 | 0 | -| | Operations | - | 41 | 2 | 21 | 0 | -| | Kibana Core | - | 2 | 0 | 2 | 0 | -| | Operations | - | 269 | 4 | 225 | 12 | -| | [Owner missing] | - | 135 | 5 | 103 | 2 | -| | [Owner missing] | - | 2 | 0 | 1 | 0 | -| | [Owner missing] | - | 72 | 0 | 55 | 0 | -| | [Owner missing] | - | 39 | 0 | 26 | 1 | -| | [Owner missing] | - | 86 | 0 | 86 | 1 | -| | [Owner missing] | - | 18 | 0 | 8 | 0 | -| | [Owner missing] | - | 45 | 0 | 36 | 0 | -| | [Owner missing] | - | 7 | 0 | 6 | 0 | -| | [Owner missing] | - | 58 | 0 | 5 | 0 | -| | [Owner missing] | - | 35 | 0 | 15 | 1 | -| | [Owner missing] | - | 2 | 0 | 2 | 0 | -| | [Owner missing] | - | 24 | 0 | 14 | 0 | -| | [Owner missing] | - | 6 | 0 | 2 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 11 | 5 | 11 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 6 | 0 | 6 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 53 | 0 | 22 | 0 | +| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 9 | 1 | 9 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 5 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 73 | 0 | 73 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 98 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 23 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 21 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 18 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 27 | 0 | 27 | 3 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 152 | 0 | 152 | 16 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 11 | 0 | 11 | 0 | +| | [@elastic/kibana-qa](https://github.com/orgs/elastic/teams/kibana-qa) | - | 10 | 0 | 10 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 19 | 0 | 17 | 0 | +| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 20 | 0 | 14 | 3 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 76 | 0 | 76 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 7 | 0 | 2 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 62 | 0 | 17 | 1 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 2 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 37 | 0 | 36 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 106 | 0 | 80 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 73 | 0 | 44 | 9 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 24 | 0 | 24 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 129 | 3 | 127 | 17 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 4 | 4 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 20 | 0 | 13 | 5 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 103 | 0 | 27 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 18 | 0 | 15 | 3 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 1 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 20 | 0 | 19 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 16 | 0 | 7 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 120 | 0 | 46 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 8 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 5 | 0 | 5 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 4 | 0 | 4 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 1 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 11 | 0 | 11 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 9 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 16 | 0 | 13 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 16 | 0 | 14 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 38 | 1 | 34 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 103 | 0 | 53 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 37 | 0 | 33 | 3 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 15 | 1 | 15 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 10 | 0 | 2 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 1 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 8 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 109 | 4 | 35 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 10 | 0 | 10 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 16 | 0 | 16 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 10 | 1 | 10 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 14 | 0 | 11 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 22 | 0 | 7 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 3 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 25 | 5 | 25 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 403 | 1 | 160 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 55 | 0 | 49 | 6 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 41 | 0 | 40 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 1 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 30 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 33 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 38 | 0 | 31 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 56 | 0 | 30 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 5 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 13 | 0 | 13 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 29 | 0 | 25 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 1 | 11 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 54 | 0 | 8 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 0 | 11 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 6 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35 | 4 | 23 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 32 | 0 | 11 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 63 | 0 | 37 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 1 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 15 | 0 | 11 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 58 | 0 | 26 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 2 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 23 | 1 | 22 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 107 | 1 | 0 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 313 | 1 | 0 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 75 | 0 | 54 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 0 | 11 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 37 | 0 | 31 | 6 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 1 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 67 | 0 | 39 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 25 | 0 | 23 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 112 | 0 | 79 | 45 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 358 | 0 | 104 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 69 | 0 | 69 | 4 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 14 | 0 | 14 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 108 | 1 | 84 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 2 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 18 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 20 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 22 | 0 | 22 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 0 | 11 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 54 | 1 | 48 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 15 | 0 | 14 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 1 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 30 | 1 | 18 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 1 | 11 | 3 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 24 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 32 | 1 | 16 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 18 | 1 | 17 | 3 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 153 | 0 | 142 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 13 | 0 | 7 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 10 | 0 | 10 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 44 | 0 | 43 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 9 | 1 | 9 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 101 | 0 | 85 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 15 | 0 | 9 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 27 | 2 | 24 | 0 | +| | [@elastic/kibana-docs](https://github.com/orgs/elastic/teams/kibana-docs) | - | 68 | 0 | 68 | 2 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 11 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35102 | 0 | 34695 | 0 | +| | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 9 | 0 | 1 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 27 | 0 | 14 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 3 | 0 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 250 | 1 | 192 | 15 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 16 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 0 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 29 | 0 | 29 | 1 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 0 | 0 | +| | [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | - | 52 | 0 | 50 | 2 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 10 | 1 | 4 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 1 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 22 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 2 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 51 | 0 | 48 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 61 | 0 | 1 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 47 | 0 | 40 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 52 | 12 | 43 | 0 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 24 | 0 | 24 | 3 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 0 | 13 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 67 | 0 | 62 | 5 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 41 | 2 | 35 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 108 | 0 | 107 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 7 | 0 | 5 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 27 | 0 | 1 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 1 | 1 | +| | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 534 | 1 | 1 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 83 | 2 | 59 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 50 | 0 | 4 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 2 | 0 | 0 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 3 | 0 | 2 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 5 | 0 | 3 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 8 | 2 | 8 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 10 | 0 | 0 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 2 | 0 | 1 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 31 | 1 | 24 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 71 | 0 | 69 | 3 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 45 | 0 | 45 | 10 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 51 | 5 | 34 | 0 | +| | [@elastic/security-asset-management](https://github.com/orgs/elastic/teams/security-asset-management) | - | 62 | 0 | 62 | 0 | +| | [@elastic/kibana-performance-testing](https://github.com/orgs/elastic/teams/kibana-performance-testing) | - | 3 | 0 | 3 | 1 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 21 | 0 | 10 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 18 | 0 | 18 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 40 | 0 | 38 | 5 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 0 | 9 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 6 | 1 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 2 | 8 | 0 | +| | [@elastic/security-detections-response](https://github.com/orgs/elastic/teams/security-detections-response) | - | 100 | 0 | 97 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 56 | 1 | 41 | 1 | +| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 341 | 1 | 337 | 32 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 67 | 0 | 61 | 1 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 104 | 0 | 93 | 1 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 15 | 0 | 7 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 138 | 0 | 119 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 516 | 1 | 503 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 65 | 0 | 36 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 28 | 0 | 21 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 67 | 0 | 64 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 35 | 0 | 23 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 60 | 0 | 47 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 206 | 10 | 159 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 26 | 0 | 23 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 120 | 0 | 116 | 0 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 31 | 2 | 29 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 53 | 0 | 50 | 1 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 25 | 0 | 24 | 1 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 2 | 0 | 2 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 2 | 2 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 40 | 0 | 3 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 4 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 13 | 0 | 9 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 25 | 0 | 8 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 4 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 28 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 5 | 0 | 4 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 2 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 1 | 0 | 1 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 13 | 0 | 6 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 7 | 0 | 7 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 17 | 0 | 15 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 17 | 0 | 9 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 9 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 31 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 14 | 0 | 5 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 17 | 0 | 17 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 3 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 25 | 0 | 24 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 11 | 0 | 6 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 43 | 5 | 43 | 2 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 13 | 0 | 5 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 11 | 0 | 9 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 24 | 0 | 24 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 27 | 0 | 26 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 5 | 0 | 3 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 25 | 0 | 10 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 17 | 0 | 16 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 1 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 1 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 1 | 0 | 1 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 0 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 15 | 0 | 4 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 3 | 0 | +| | [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) | - | 75 | 0 | 75 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 20 | 0 | 12 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 97 | 1 | 64 | 1 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 2 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 41 | 2 | 21 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 271 | 4 | 227 | 12 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 135 | 5 | 103 | 2 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 72 | 0 | 55 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 39 | 0 | 25 | 1 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 86 | 0 | 86 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 18 | 0 | 8 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 45 | 0 | 36 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 7 | 0 | 6 | 0 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 58 | 0 | 5 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35 | 0 | 15 | 1 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 2 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 24 | 0 | 14 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 2 | 0 | diff --git a/api_docs/presentation_util.devdocs.json b/api_docs/presentation_util.devdocs.json index b7e84de216bb5b..af1a636532a0d8 100644 --- a/api_docs/presentation_util.devdocs.json +++ b/api_docs/presentation_util.devdocs.json @@ -1451,7 +1451,7 @@ "section": "def-public.ExpressionInputProps", "text": "ExpressionInputProps" }, - " extends Pick, \"className\" | \"style\">" + " extends Pick, \"style\" | \"className\">" ], "path": "src/plugins/presentation_util/public/components/types.ts", "deprecated": false, @@ -2008,7 +2008,7 @@ "label": "getProjects", "description": [], "signature": [ - "(solutions?: (\"dashboard\" | \"canvas\" | \"presentation\")[] | undefined) => Record<\"labs:dashboard:deferBelowFold\" | \"labs:dashboard:dashboardControls\" | \"labs:canvas:byValueEmbeddable\", ", + "(solutions?: (\"canvas\" | \"presentation\" | \"dashboard\")[] | undefined) => Record<\"labs:dashboard:deferBelowFold\" | \"labs:dashboard:dashboardControls\" | \"labs:canvas:byValueEmbeddable\", ", { "pluginId": "presentationUtil", "scope": "common", @@ -2030,7 +2030,7 @@ "label": "solutions", "description": [], "signature": [ - "(\"dashboard\" | \"canvas\" | \"presentation\")[] | undefined" + "(\"canvas\" | \"presentation\" | \"dashboard\")[] | undefined" ], "path": "src/plugins/presentation_util/public/services/labs/types.ts", "deprecated": false, @@ -3509,7 +3509,7 @@ "label": "solutions", "description": [], "signature": [ - "(\"dashboard\" | \"canvas\" | \"presentation\")[]" + "(\"canvas\" | \"presentation\" | \"dashboard\")[]" ], "path": "src/plugins/presentation_util/common/labs.ts", "deprecated": false, @@ -3688,7 +3688,7 @@ "label": "SolutionName", "description": [], "signature": [ - "\"dashboard\" | \"canvas\" | \"presentation\"" + "\"canvas\" | \"presentation\" | \"dashboard\"" ], "path": "src/plugins/presentation_util/common/labs.ts", "deprecated": false, diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index e0f33aeecc3f3a..0ce272912261a7 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). -Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. +Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/profiling.devdocs.json b/api_docs/profiling.devdocs.json index 035a78aebe58cd..75713ac26cd9b0 100644 --- a/api_docs/profiling.devdocs.json +++ b/api_docs/profiling.devdocs.json @@ -22,7 +22,7 @@ "label": "ProfilingConfig", "description": [], "signature": [ - "{ readonly elasticsearch?: Readonly<{} & { username: string; password: string; hosts: string; }> | undefined; readonly enabled: boolean; }" + "{ readonly elasticsearch?: Readonly<{} & { username: string; hosts: string; password: string; }> | undefined; readonly enabled: boolean; }" ], "path": "x-pack/plugins/profiling/server/index.ts", "deprecated": false, @@ -104,7 +104,7 @@ "label": "getRoutePaths", "description": [], "signature": [ - "() => { TopN: string; TopNContainers: string; TopNDeployments: string; TopNFunctions: string; TopNHosts: string; TopNThreads: string; TopNTraces: string; Flamechart: string; CacheExecutables: string; CacheStackFrames: string; }" + "() => { TopN: string; TopNContainers: string; TopNDeployments: string; TopNFunctions: string; TopNHosts: string; TopNThreads: string; TopNTraces: string; Flamechart: string; CacheExecutables: string; CacheStackFrames: string; HasSetupESResources: string; HasSetupDataCollection: string; SetupDataCollectionInstructions: string; }" ], "path": "x-pack/plugins/profiling/common/index.ts", "deprecated": false, diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index ad17cf27e84de7..8436c1709fd7a2 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; -Contact [profiling](https://github.com/orgs/elastic/teams/profiling-ui) for questions regarding this plugin. +Contact [@elastic/profiling-ui](https://github.com/orgs/elastic/teams/profiling-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index b669510b5220dc..3fca7bde8dc821 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; -Contact [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index ad7205239f2ed3..8a92185166d9a1 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. -Contact [Kibana Reporting Services](https://github.com/orgs/elastic/teams/kibana-reporting-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index 977d2cb46bcdc2..db5781ec3bd6d1 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; -Contact [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json index 9f933a7c7b86bc..da4b094669d4ef 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -63,7 +63,7 @@ "label": "get", "description": [], "signature": [ - "({ id, index }: GetAlertParams) => Promise> | undefined>" + "({ id, index }: GetAlertParams) => Promise> | undefined>" ], "path": "x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts", "deprecated": false, @@ -243,7 +243,7 @@ "SortOptions", "[] | undefined; search_after?: (string | number)[] | undefined; }) => Promise<", "SearchResponse", - ">, Record>, Record>>" ], @@ -1256,7 +1256,7 @@ "label": "reason", "description": [], "signature": [ - "\"error\" | \"config\"" + "\"config\" | \"error\"" ], "path": "x-pack/plugins/rule_registry/server/rule_data_plugin_service/errors.ts", "deprecated": false, @@ -1341,7 +1341,7 @@ "label": "resourceType", "description": [], "signature": [ - "\"namespace\" | \"index\"" + "\"index\" | \"namespace\"" ], "path": "x-pack/plugins/rule_registry/server/rule_data_plugin_service/errors.ts", "deprecated": false, @@ -1801,9 +1801,9 @@ "section": "def-server.GetSummarizedAlertsFnOpts", "text": "GetSummarizedAlertsFnOpts" }, - ") => Promise<{ new: { count: number; data: {}[]; }; ongoing: { count: number; data: {}[]; }; recovered: { count: number; data: {}[]; }; }>; name: string; validate?: { params?: ", + ") => Promise<{ new: { count: number; data: {}[]; }; ongoing: { count: number; data: {}[]; }; recovered: { count: number; data: {}[]; }; }>; id: string; name: string; validate?: { params?: ", "RuleTypeParamsValidator", - " | undefined; } | undefined; id: string; cancelAlertsOnRuleTimeout?: boolean | undefined; alerts?: ", + " | undefined; } | undefined; cancelAlertsOnRuleTimeout?: boolean | undefined; alerts?: ", "IRuleTypeAlerts", " | undefined; actionGroups: ", { @@ -2075,7 +2075,7 @@ "\nID of the Kibana feature associated with the index.\nUsed by alerts-as-data RBAC.\n\nNote from @dhurley14\nThe purpose of the `feature` param is to force the user to update\nthe data structure which contains the mapping of consumers to alerts\nas data indices. The idea is it is typed such that it forces the\nuser to go to the code and modify it. At least until a better system\nis put in place or we move the alerts as data client out of rule registry.\n" ], "signature": [ - "\"infrastructure\" | \"apm\" | \"siem\" | \"logs\" | \"uptime\" | \"observability\"" + "\"uptime\" | \"siem\" | \"apm\" | \"logs\" | \"infrastructure\" | \"observability\"" ], "path": "x-pack/plugins/rule_registry/server/rule_data_plugin_service/index_options.ts", "deprecated": false, @@ -2475,7 +2475,7 @@ "signature": [ "> & OutputOf>>>(request: TSearchRequest) => Promise<", + ", TAlertDoc = Partial> & OutputOf>>>(request: TSearchRequest) => Promise<", { "pluginId": "@kbn/es-types", "scope": "common", @@ -3112,7 +3112,7 @@ "label": "getAlertByAlertUuid", "description": [], "signature": [ - "(alertUuid: string) => Promise> & OutputOf>> | null> | null" + "(alertUuid: string) => Promise> & OutputOf>> | null> | null" ], "path": "x-pack/plugins/rule_registry/server/utils/create_lifecycle_executor.ts", "deprecated": false, @@ -4505,7 +4505,7 @@ "label": "parseTechnicalFields", "description": [], "signature": [ - "(input: unknown, partial?: boolean) => OutputOf>" + "(input: unknown, partial?: boolean) => OutputOf>" ], "path": "x-pack/plugins/rule_registry/common/parse_technical_fields.ts", "deprecated": false, @@ -4782,6 +4782,55 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "ruleRegistry", + "id": "def-common.RuleRegistrySearchResponse", + "type": "Interface", + "tags": [], + "label": "RuleRegistrySearchResponse", + "description": [], + "signature": [ + { + "pluginId": "ruleRegistry", + "scope": "common", + "docId": "kibRuleRegistryPluginApi", + "section": "def-common.RuleRegistrySearchResponse", + "text": "RuleRegistrySearchResponse" + }, + " extends ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IEsSearchResponse", + "text": "IEsSearchResponse" + }, + "<", + "EcsFieldsResponse", + ">" + ], + "path": "x-pack/plugins/rule_registry/common/search_strategy/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "ruleRegistry", + "id": "def-common.RuleRegistrySearchResponse.inspect", + "type": "Object", + "tags": [], + "label": "inspect", + "description": [], + "signature": [ + "RuleRegistryInspect", + " | undefined" + ], + "path": "x-pack/plugins/rule_registry/common/search_strategy/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -4832,7 +4881,7 @@ "label": "ParsedTechnicalFields", "description": [], "signature": [ - "{ readonly '@timestamp': string; readonly \"kibana.alert.rule.rule_type_id\": string; readonly \"kibana.alert.rule.consumer\": string; readonly \"kibana.alert.rule.producer\": string; readonly \"kibana.space_ids\": string[]; readonly \"kibana.alert.uuid\": string; readonly \"kibana.alert.instance.id\": string; readonly \"kibana.alert.status\": string; readonly \"kibana.alert.rule.category\": string; readonly \"kibana.alert.rule.uuid\": string; readonly \"kibana.alert.rule.name\": string; readonly tags?: string[] | undefined; readonly 'event.action'?: string | undefined; readonly \"kibana.alert.rule.execution.uuid\"?: string | undefined; readonly \"kibana.alert.rule.parameters\"?: { [key: string]: unknown; } | undefined; readonly \"kibana.alert.start\"?: string | undefined; readonly \"kibana.alert.time_range\"?: unknown; readonly \"kibana.alert.end\"?: string | undefined; readonly \"kibana.alert.duration.us\"?: number | undefined; readonly \"kibana.alert.severity\"?: string | undefined; readonly \"kibana.alert.flapping\"?: boolean | undefined; readonly \"kibana.version\"?: string | undefined; readonly \"ecs.version\"?: string | undefined; readonly \"kibana.alert.risk_score\"?: number | undefined; readonly \"kibana.alert.workflow_status\"?: string | undefined; readonly \"kibana.alert.workflow_user\"?: string | undefined; readonly \"kibana.alert.workflow_reason\"?: string | undefined; readonly \"kibana.alert.system_status\"?: string | undefined; readonly \"kibana.alert.action_group\"?: string | undefined; readonly \"kibana.alert.reason\"?: string | undefined; readonly \"kibana.alert.case_ids\"?: string[] | undefined; readonly \"kibana.alert.rule.author\"?: string | undefined; readonly \"kibana.alert.rule.created_at\"?: string | undefined; readonly \"kibana.alert.rule.created_by\"?: string | undefined; readonly \"kibana.alert.rule.description\"?: string | undefined; readonly \"kibana.alert.rule.enabled\"?: string | undefined; readonly \"kibana.alert.rule.from\"?: string | undefined; readonly \"kibana.alert.rule.interval\"?: string | undefined; readonly \"kibana.alert.rule.license\"?: string | undefined; readonly \"kibana.alert.rule.note\"?: string | undefined; readonly \"kibana.alert.rule.references\"?: string[] | undefined; readonly \"kibana.alert.rule.rule_id\"?: string | undefined; readonly \"kibana.alert.rule.rule_name_override\"?: string | undefined; readonly \"kibana.alert.rule.tags\"?: string[] | undefined; readonly \"kibana.alert.rule.to\"?: string | undefined; readonly \"kibana.alert.rule.type\"?: string | undefined; readonly \"kibana.alert.rule.updated_at\"?: string | undefined; readonly \"kibana.alert.rule.updated_by\"?: string | undefined; readonly \"kibana.alert.rule.version\"?: string | undefined; readonly \"kibana.alert.suppression.terms.field\"?: string[] | undefined; readonly \"kibana.alert.suppression.terms.value\"?: string[] | undefined; readonly \"kibana.alert.suppression.start\"?: string | undefined; readonly \"kibana.alert.suppression.end\"?: string | undefined; readonly \"kibana.alert.suppression.docs_count\"?: number | undefined; readonly 'event.kind'?: string | undefined; }" + "{ readonly '@timestamp': string; readonly \"kibana.alert.rule.rule_type_id\": string; readonly \"kibana.alert.rule.consumer\": string; readonly \"kibana.alert.rule.producer\": string; readonly \"kibana.space_ids\": string[]; readonly \"kibana.alert.uuid\": string; readonly \"kibana.alert.instance.id\": string; readonly \"kibana.alert.status\": string; readonly \"kibana.alert.rule.category\": string; readonly \"kibana.alert.rule.uuid\": string; readonly \"kibana.alert.rule.name\": string; readonly 'event.action'?: string | undefined; readonly tags?: string[] | undefined; readonly \"kibana.alert.rule.execution.uuid\"?: string | undefined; readonly \"kibana.alert.rule.parameters\"?: { [key: string]: unknown; } | undefined; readonly \"kibana.alert.start\"?: string | undefined; readonly \"kibana.alert.time_range\"?: unknown; readonly \"kibana.alert.end\"?: string | undefined; readonly \"kibana.alert.duration.us\"?: number | undefined; readonly \"kibana.alert.severity\"?: string | undefined; readonly \"kibana.alert.flapping\"?: boolean | undefined; readonly \"kibana.version\"?: string | undefined; readonly \"ecs.version\"?: string | undefined; readonly \"kibana.alert.risk_score\"?: number | undefined; readonly \"kibana.alert.workflow_status\"?: string | undefined; readonly \"kibana.alert.workflow_user\"?: string | undefined; readonly \"kibana.alert.workflow_reason\"?: string | undefined; readonly \"kibana.alert.system_status\"?: string | undefined; readonly \"kibana.alert.action_group\"?: string | undefined; readonly \"kibana.alert.reason\"?: string | undefined; readonly \"kibana.alert.case_ids\"?: string[] | undefined; readonly \"kibana.alert.rule.author\"?: string | undefined; readonly \"kibana.alert.rule.created_at\"?: string | undefined; readonly \"kibana.alert.rule.created_by\"?: string | undefined; readonly \"kibana.alert.rule.description\"?: string | undefined; readonly \"kibana.alert.rule.enabled\"?: string | undefined; readonly \"kibana.alert.rule.from\"?: string | undefined; readonly \"kibana.alert.rule.interval\"?: string | undefined; readonly \"kibana.alert.rule.license\"?: string | undefined; readonly \"kibana.alert.rule.note\"?: string | undefined; readonly \"kibana.alert.rule.references\"?: string[] | undefined; readonly \"kibana.alert.rule.rule_id\"?: string | undefined; readonly \"kibana.alert.rule.rule_name_override\"?: string | undefined; readonly \"kibana.alert.rule.tags\"?: string[] | undefined; readonly \"kibana.alert.rule.to\"?: string | undefined; readonly \"kibana.alert.rule.type\"?: string | undefined; readonly \"kibana.alert.rule.updated_at\"?: string | undefined; readonly \"kibana.alert.rule.updated_by\"?: string | undefined; readonly \"kibana.alert.rule.version\"?: string | undefined; readonly \"kibana.alert.suppression.terms.field\"?: string[] | undefined; readonly \"kibana.alert.suppression.terms.value\"?: string[] | undefined; readonly \"kibana.alert.suppression.start\"?: string | undefined; readonly \"kibana.alert.suppression.end\"?: string | undefined; readonly \"kibana.alert.suppression.docs_count\"?: number | undefined; readonly 'event.kind'?: string | undefined; }" ], "path": "x-pack/plugins/rule_registry/common/parse_technical_fields.ts", "deprecated": false, @@ -4882,34 +4931,6 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false - }, - { - "parentPluginId": "ruleRegistry", - "id": "def-common.RuleRegistrySearchResponse", - "type": "Type", - "tags": [], - "label": "RuleRegistrySearchResponse", - "description": [], - "signature": [ - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.IKibanaSearchResponse", - "text": "IKibanaSearchResponse" - }, - "<", - "SearchResponse", - "<", - "EcsFieldsResponse", - ", Record>>" - ], - "path": "x-pack/plugins/rule_registry/common/search_strategy/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index e4b94c6021bc49..c602a2ac3769c5 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; -Contact [RAC](https://github.com/orgs/elastic/teams/rac) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 251 | 0 | 223 | 11 | +| 252 | 0 | 224 | 12 | ## Server diff --git a/api_docs/runtime_fields.devdocs.json b/api_docs/runtime_fields.devdocs.json index 58b3e44189559c..18dcf0da938c6b 100644 --- a/api_docs/runtime_fields.devdocs.json +++ b/api_docs/runtime_fields.devdocs.json @@ -348,7 +348,7 @@ "label": "type", "description": [], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\"" ], "path": "x-pack/plugins/runtime_fields/public/types.ts", "deprecated": false, @@ -383,7 +383,7 @@ "description": [], "signature": [ "ComboBoxOption", - "<\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"long\" | \"double\">[]" + "<\"boolean\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\">[]" ], "path": "x-pack/plugins/runtime_fields/public/constants.ts", "deprecated": false, @@ -398,7 +398,7 @@ "label": "RuntimeType", "description": [], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\"" ], "path": "x-pack/plugins/runtime_fields/public/types.ts", "deprecated": false, diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index c0b249b3f20e90..72b8bc491bad8a 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/saved_objects.devdocs.json b/api_docs/saved_objects.devdocs.json index 6a616ff9a150a0..594d2fc7d11ccc 100644 --- a/api_docs/saved_objects.devdocs.json +++ b/api_docs/saved_objects.devdocs.json @@ -793,7 +793,7 @@ }, ">, \"id\" | \"title\" | \"getDisplayName\" | \"lastSavedTitle\" | \"copyOnSave\" | \"getEsType\">, isTitleDuplicateConfirmed: boolean, onTitleDuplicate: (() => void) | undefined, services: Pick<", "SavedObjectKibanaServices", - ", \"savedObjectsClient\" | \"overlays\">) => Promise" + ", \"overlays\" | \"savedObjectsClient\">) => Promise" ], "path": "src/plugins/saved_objects/public/saved_object/helpers/check_for_duplicate_title.ts", "deprecated": false, @@ -870,7 +870,7 @@ "signature": [ "Pick<", "SavedObjectKibanaServices", - ", \"savedObjectsClient\" | \"overlays\">" + ", \"overlays\" | \"savedObjectsClient\">" ], "path": "src/plugins/saved_objects/public/saved_object/helpers/check_for_duplicate_title.ts", "deprecated": false, diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 46068214afbc8f..9af6dfde9f1256 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index 5c922368d20fed..705613eb031e1f 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/saved_objects_management.devdocs.json b/api_docs/saved_objects_management.devdocs.json index e32c8da33aef00..a6df92789fef9a 100644 --- a/api_docs/saved_objects_management.devdocs.json +++ b/api_docs/saved_objects_management.devdocs.json @@ -294,7 +294,9 @@ "label": "euiColumn", "description": [], "signature": [ - "{ children?: React.ReactNode; name: React.ReactNode; description?: string | undefined; scope?: string | undefined; onError?: React.ReactEventHandler | undefined; render?: ((value: any, record: ", + "{ prefix?: string | undefined; scope?: string | undefined; id?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; name: React.ReactNode; children?: React.ReactNode; description?: string | undefined; is?: string | undefined; title?: string | undefined; abbr?: string | undefined; footer?: string | React.ReactElement> | ((props: ", + "EuiTableFooterProps", + "<", { "pluginId": "savedObjectsManagement", "scope": "public", @@ -302,7 +304,11 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - ") => React.ReactNode) | undefined; hidden?: boolean | undefined; color?: string | undefined; id?: string | undefined; className?: string | undefined; title?: string | undefined; onChange?: React.FormEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; placeholder?: string | undefined; width?: string | undefined; security?: string | undefined; field: (string & {}) | keyof ", + ">) => React.ReactNode) | undefined; slot?: string | undefined; style?: React.CSSProperties | undefined; className?: string | undefined; 'aria-label'?: string | undefined; 'data-test-subj'?: string | undefined; css?: ", + "Interpolation", + "<", + "Theme", + ">; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: Booleanish | \"inherit\" | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; hidden?: boolean | undefined; lang?: string | undefined; placeholder?: string | undefined; spellCheck?: Booleanish | undefined; tabIndex?: number | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; color?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; security?: string | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"search\" | \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"page\" | \"date\" | \"time\" | \"true\" | \"false\" | \"step\" | \"location\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"execute\" | \"link\" | \"none\" | \"copy\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"dialog\" | \"menu\" | \"true\" | \"false\" | \"grid\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"text\" | \"additions\" | \"additions removals\" | \"additions text\" | \"all\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"ascending\" | \"descending\" | \"other\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChange?: React.FormEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onError?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; field: (string & {}) | keyof ", { "pluginId": "savedObjectsManagement", "scope": "public", @@ -310,15 +316,7 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - "; headers?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; lang?: string | undefined; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: \"inherit\" | Booleanish | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: React.CSSProperties | undefined; tabIndex?: number | undefined; translate?: \"no\" | \"yes\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; prefix?: string | undefined; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"none\" | \"email\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"numeric\" | \"decimal\" | undefined; is?: string | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"date\" | \"location\" | \"time\" | \"page\" | \"false\" | \"true\" | \"step\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"none\" | \"copy\" | \"link\" | \"execute\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"grid\" | \"menu\" | \"false\" | \"true\" | \"dialog\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"false\" | \"true\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-label'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"all\" | \"text\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"other\" | \"ascending\" | \"descending\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; 'data-test-subj'?: string | undefined; css?: ", - "Interpolation", - "<", - "Theme", - ">; height?: string | number | undefined; readOnly?: boolean | undefined; align?: ", - "HorizontalAlignment", - " | undefined; abbr?: string | undefined; footer?: string | React.ReactElement> | ((props: ", - "EuiTableFooterProps", - "<", + "; width?: string | undefined; headers?: string | undefined; height?: string | number | undefined; readOnly?: boolean | undefined; render?: ((value: any, record: ", { "pluginId": "savedObjectsManagement", "scope": "public", @@ -326,7 +324,9 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - ">) => React.ReactNode) | undefined; colSpan?: number | undefined; rowSpan?: number | undefined; valign?: \"top\" | \"bottom\" | \"middle\" | \"baseline\" | undefined; dataType?: ", + ") => React.ReactNode) | undefined; align?: ", + "HorizontalAlignment", + " | undefined; colSpan?: number | undefined; rowSpan?: number | undefined; valign?: \"top\" | \"bottom\" | \"middle\" | \"baseline\" | undefined; dataType?: ", "EuiTableDataType", " | undefined; isExpander?: boolean | undefined; textOnly?: boolean | undefined; truncateText?: boolean | undefined; mobileOptions?: (Omit<", "EuiTableRowCellMobileOptionsShape", @@ -739,7 +739,7 @@ "label": "namespaceType", "description": [], "signature": [ - "\"single\" | \"multiple\" | \"multiple-isolated\" | \"agnostic\"" + "\"single\" | \"multiple\" | \"agnostic\" | \"multiple-isolated\"" ], "path": "src/plugins/saved_objects_management/common/types/v1.ts", "deprecated": false, @@ -920,7 +920,7 @@ "label": "relationship", "description": [], "signature": [ - "\"parent\" | \"child\"" + "\"child\" | \"parent\"" ], "path": "src/plugins/saved_objects_management/common/types/v1.ts", "deprecated": false, @@ -2203,7 +2203,7 @@ "label": "relationship", "description": [], "signature": [ - "\"parent\" | \"child\"" + "\"child\" | \"parent\"" ], "path": "src/plugins/saved_objects_management/common/types/v1.ts", "deprecated": false, @@ -2253,7 +2253,7 @@ "label": "namespaceType", "description": [], "signature": [ - "\"single\" | \"multiple\" | \"multiple-isolated\" | \"agnostic\"" + "\"single\" | \"multiple\" | \"agnostic\" | \"multiple-isolated\"" ], "path": "src/plugins/saved_objects_management/common/types/v1.ts", "deprecated": false, @@ -2434,7 +2434,7 @@ "label": "relationship", "description": [], "signature": [ - "\"parent\" | \"child\"" + "\"child\" | \"parent\"" ], "path": "src/plugins/saved_objects_management/common/types/v1.ts", "deprecated": false, @@ -2636,7 +2636,7 @@ "label": "SavedObjectRelationKind", "description": [], "signature": [ - "\"parent\" | \"child\"" + "\"child\" | \"parent\"" ], "path": "src/plugins/saved_objects_management/common/types/v1.ts", "deprecated": false, diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index 86d4ee0d533bd6..6ac097931bf560 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/saved_objects_tagging.devdocs.json b/api_docs/saved_objects_tagging.devdocs.json index d5236cb492edd6..510e34a445e1e8 100644 --- a/api_docs/saved_objects_tagging.devdocs.json +++ b/api_docs/saved_objects_tagging.devdocs.json @@ -1266,7 +1266,7 @@ "label": "errors", "description": [], "signature": [ - "{ name?: string | undefined; description?: string | undefined; color?: string | undefined; id?: string | undefined; }" + "{ id?: string | undefined; name?: string | undefined; description?: string | undefined; color?: string | undefined; }" ], "path": "x-pack/plugins/saved_objects_tagging/common/validation.ts", "deprecated": false, diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 46a93a4f073295..3e350c2cd90cc8 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/saved_objects_tagging_oss.devdocs.json b/api_docs/saved_objects_tagging_oss.devdocs.json index ee8c84bcf2b509..1808b8d68351c9 100644 --- a/api_docs/saved_objects_tagging_oss.devdocs.json +++ b/api_docs/saved_objects_tagging_oss.devdocs.json @@ -1369,7 +1369,7 @@ "section": "def-common.Tag", "text": "Tag" }, - " | { type: \"__create_option__\"; }>, \"options\" | \"selectedOptions\" | \"append\" | \"prepend\" | \"fullWidth\" | \"compressed\" | \"async\" | \"isClearable\" | \"singleSelection\" | \"sortMatchesBy\"> & Partial, \"options\" | \"prepend\" | \"append\" | \"selectedOptions\" | \"fullWidth\" | \"compressed\" | \"async\" | \"isClearable\" | \"singleSelection\" | \"sortMatchesBy\"> & Partial Promise<", + "SearchResponse", + ">>; history: ", "SearchRequest", "[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: >>>; fetch: (options?: ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSourceSearchOptions", - "text": "SearchSourceSearchOptions" - }, - ") => Promise<", - "SearchResponse", - ">>; onRequestStart: (handler: (searchSource: ", + ">>>>; onRequestStart: (handler: (searchSource: ", { "pluginId": "data", "scope": "common", diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 428e6ec3fa28ff..4530aa518729f1 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; This plugin contains the definition and helper methods around saved searches, used by discover and visualizations. -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 645333392e113e..1617043e8b03c4 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 4d2f4c94bafb8b..d6c4ccc55cbe42 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; Kibana Screenshotting Plugin -Contact [Kibana Reporting Services](https://github.com/orgs/elastic/teams/kibana-reporting-services) for questions regarding this plugin. +Contact [@elastic/kibana-reporting-services](https://github.com/orgs/elastic/teams/kibana-reporting-services) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/security.devdocs.json b/api_docs/security.devdocs.json index 8ead0fb04ff88c..00517ce1e9aae9 100644 --- a/api_docs/security.devdocs.json +++ b/api_docs/security.devdocs.json @@ -1889,15 +1889,7 @@ "label": "apiKeys", "description": [], "signature": [ - "{ validate: (apiKeyPrams: ", - { - "pluginId": "security", - "scope": "server", - "docId": "kibSecurityPluginApi", - "section": "def-server.ValidateAPIKeyParams", - "text": "ValidateAPIKeyParams" - }, - ") => Promise; create: (request: ", + "{ create: (request: ", { "pluginId": "@kbn/core-http-server", "scope": "common", @@ -1921,7 +1913,15 @@ "section": "def-server.CreateAPIKeyResult", "text": "CreateAPIKeyResult" }, - " | null>; areAPIKeysEnabled: () => Promise; invalidate: (request: ", + " | null>; validate: (apiKeyPrams: ", + { + "pluginId": "security", + "scope": "server", + "docId": "kibSecurityPluginApi", + "section": "def-server.ValidateAPIKeyParams", + "text": "ValidateAPIKeyParams" + }, + ") => Promise; areAPIKeysEnabled: () => Promise; invalidate: (request: ", { "pluginId": "@kbn/core-http-server", "scope": "common", diff --git a/api_docs/security.mdx b/api_docs/security.mdx index ef22e385eaa01e..d42dd6e0ef2b6b 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. -Contact [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. +Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index 8d2f84311053b7..037917ccefd0a7 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -1357,7 +1357,7 @@ "id": "def-server.AppClient.Unnamed.$1", "type": "string", "tags": [], - "label": "_spaceId", + "label": "spaceId", "description": [], "signature": [ "string" @@ -1387,6 +1387,36 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "securitySolution", + "id": "def-server.AppClient.Unnamed.$3", + "type": "string", + "tags": [], + "label": "kibanaVersion", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/security_solution/server/client/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "securitySolution", + "id": "def-server.AppClient.Unnamed.$4", + "type": "string", + "tags": [], + "label": "kibanaBranch", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/security_solution/server/client/client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -1454,6 +1484,38 @@ "trackAdoption": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "securitySolution", + "id": "def-server.AppClient.getKibanaVersion", + "type": "Function", + "tags": [], + "label": "getKibanaVersion", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/security_solution/server/client/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "securitySolution", + "id": "def-server.AppClient.getKibanaBranch", + "type": "Function", + "tags": [], + "label": "getKibanaBranch", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/security_solution/server/client/client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 4864037345cc83..15f1bae9af02e2 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; -Contact [Security solution](https://github.com/orgs/elastic/teams/security-solution) for questions regarding this plugin. +Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 113 | 0 | 73 | 28 | +| 117 | 0 | 77 | 28 | ## Client diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 9108594417e0a6..243c35feb063df 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; -Contact [Security Team](https://github.com/orgs/elastic/teams/security-team) for questions regarding this plugin. +Contact [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 11cadec0dc13fb..7a4ef96bf45212 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; Adds URL Service and sharing capabilities to Kibana -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 26792eec177868..12272ab51b9b0e 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; -Contact [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) for questions regarding this plugin. +Contact [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index 298a16ca075c7d..67bf4a1a7044b7 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; This plugin provides the Spaces feature, which allows saved objects to be organized into meaningful categories. -Contact [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. +Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index b2bf482b11838e..e1b1e6c0a1da2e 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; -Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 2388475fe361ed..18d368365f5dcc 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; -Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index b259e89d91270f..edfc1a714c3ffa 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; -Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/telemetry.devdocs.json b/api_docs/telemetry.devdocs.json index 5749144af5150b..ce31c34065ea52 100644 --- a/api_docs/telemetry.devdocs.json +++ b/api_docs/telemetry.devdocs.json @@ -119,7 +119,7 @@ "Should the telemetry payloads be sent from the server or the browser?" ], "signature": [ - "\"browser\" | \"server\"" + "\"server\" | \"browser\"" ], "path": "src/plugins/telemetry/public/plugin.ts", "deprecated": false, @@ -617,7 +617,7 @@ "When the data comes from a matching index-pattern, the name of the pattern" ], "signature": [ - "\"search\" | \"apm\" | \"logstash\" | \"enterprise-search\" | \"app-search\" | \"magento2\" | \"magento\" | \"shopify\" | \"wordpress\" | \"drupal\" | \"joomla\" | \"sharepoint\" | \"squarespace\" | \"sitecore\" | \"weebly\" | \"acquia\" | \"filebeat\" | \"metricbeat\" | \"functionbeat\" | \"heartbeat\" | \"fluentd\" | \"telegraf\" | \"prometheusbeat\" | \"fluentbit\" | \"nginx\" | \"apache\" | \"endgame\" | \"logs-endpoint\" | \"metrics-endpoint\" | \"siem-signals\" | \"auditbeat\" | \"winlogbeat\" | \"packetbeat\" | \"tomcat\" | \"artifactory\" | \"aruba\" | \"barracuda\" | \"bluecoat\" | \"arcsight\" | \"checkpoint\" | \"cisco\" | \"citrix\" | \"cyberark\" | \"cylance\" | \"fireeye\" | \"fortinet\" | \"infoblox\" | \"kaspersky\" | \"mcafee\" | \"paloaltonetworks\" | \"rsa\" | \"snort\" | \"sonicwall\" | \"sophos\" | \"squid\" | \"symantec\" | \"tippingpoint\" | \"trendmicro\" | \"tripwire\" | \"zscaler\" | \"zeek\" | \"sigma_doc\" | \"ecs-corelight\" | \"suricata\" | \"wazuh\" | \"meow\" | \"host_risk_score\" | \"user_risk_score\" | undefined" + "\"search\" | \"apm\" | \"logstash\" | \"metricbeat\" | \"enterprise-search\" | \"app-search\" | \"magento2\" | \"magento\" | \"shopify\" | \"wordpress\" | \"drupal\" | \"joomla\" | \"sharepoint\" | \"squarespace\" | \"sitecore\" | \"weebly\" | \"acquia\" | \"filebeat\" | \"functionbeat\" | \"heartbeat\" | \"fluentd\" | \"telegraf\" | \"prometheusbeat\" | \"fluentbit\" | \"nginx\" | \"apache\" | \"endgame\" | \"logs-endpoint\" | \"metrics-endpoint\" | \"siem-signals\" | \"auditbeat\" | \"winlogbeat\" | \"packetbeat\" | \"tomcat\" | \"artifactory\" | \"aruba\" | \"barracuda\" | \"bluecoat\" | \"arcsight\" | \"checkpoint\" | \"cisco\" | \"citrix\" | \"cyberark\" | \"cylance\" | \"fireeye\" | \"fortinet\" | \"infoblox\" | \"kaspersky\" | \"mcafee\" | \"paloaltonetworks\" | \"rsa\" | \"snort\" | \"sonicwall\" | \"sophos\" | \"squid\" | \"symantec\" | \"tippingpoint\" | \"trendmicro\" | \"tripwire\" | \"zscaler\" | \"zeek\" | \"sigma_doc\" | \"ecs-corelight\" | \"suricata\" | \"wazuh\" | \"meow\" | \"host_risk_score\" | \"user_risk_score\" | undefined" ], "path": "src/plugins/telemetry/server/telemetry_collection/get_data_telemetry/get_data_telemetry.ts", "deprecated": false, diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 1e1a91c6c12ec1..8b9049ca29161b 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; -Contact [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/telemetry_collection_manager.devdocs.json b/api_docs/telemetry_collection_manager.devdocs.json index 4bb7baef375b37..d8070080a2028d 100644 --- a/api_docs/telemetry_collection_manager.devdocs.json +++ b/api_docs/telemetry_collection_manager.devdocs.json @@ -76,7 +76,59 @@ "label": "esClient", "description": [], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -128,9 +180,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -340,33 +380,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -448,27 +464,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -646,9 +644,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -826,9 +848,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -854,27 +874,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index 5b5e457298f136..3501ad0c8825ed 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; -Contact [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index 73709696fa8d31..1150ed5db13145 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; -Contact [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index c9e42ef31ed4b4..443d4e36e64575 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; -Contact [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index 1dffe24f7d50ae..f795f1a5d4ab3a 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; Elastic threat intelligence helps you see if you are open to or have been subject to current or historical known threats -Contact [Protections Experience Team](https://github.com/orgs/elastic/teams/protections-experience) for questions regarding this plugin. +Contact [@elastic/protections-experience](https://github.com/orgs/elastic/teams/protections-experience) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/timelines.devdocs.json b/api_docs/timelines.devdocs.json index a0b03b6f182b48..e42e600471a656 100644 --- a/api_docs/timelines.devdocs.json +++ b/api_docs/timelines.devdocs.json @@ -923,7 +923,7 @@ "EuiButtonIconPropsForAnchor", ", ", "EuiButtonIconPropsForButton", - "> & { type?: \"reset\" | \"button\" | \"submit\" | undefined; } & ", + "> & { type?: \"button\" | \"reset\" | \"submit\" | undefined; } & ", "EuiButtonIconProps", " & { onClick?: React.MouseEventHandler | undefined; } & React.ButtonHTMLAttributes & { buttonRef?: React.Ref | undefined; }) | (", "DisambiguateSet", @@ -2388,7 +2388,7 @@ "label": "value", "description": [], "signature": [ - "string | number | (string | number)[]" + "string | number | boolean | (string | number | boolean)[]" ], "path": "x-pack/plugins/timelines/common/types/timeline/data_provider/index.ts", "deprecated": false, @@ -2402,7 +2402,7 @@ "label": "displayValue", "description": [], "signature": [ - "string | number | undefined" + "string | number | boolean | undefined" ], "path": "x-pack/plugins/timelines/common/types/timeline/data_provider/index.ts", "deprecated": false, @@ -2996,7 +2996,7 @@ "label": "language", "description": [], "signature": [ - "\"eql\" | \"lucene\" | \"kuery\"" + "\"kuery\" | \"eql\" | \"lucene\"" ], "path": "x-pack/plugins/timelines/common/search_strategy/timeline/events/all/index.ts", "deprecated": false, @@ -4060,7 +4060,7 @@ "signature": [ "Pick<", "EuiDataGridColumn", - ", \"schema\" | \"id\" | \"actions\" | \"display\" | \"defaultSortDirection\" | \"displayAsText\" | \"initialWidth\" | \"isSortable\"> & { aggregatable?: boolean | undefined; dataTableCellActions?: ", + ", \"id\" | \"actions\" | \"schema\" | \"display\" | \"defaultSortDirection\" | \"displayAsText\" | \"initialWidth\" | \"isSortable\"> & { aggregatable?: boolean | undefined; dataTableCellActions?: ", "DataTableCellAction", "[] | undefined; category?: string | undefined; columnHeaderType: ", "ColumnHeaderType", @@ -4087,7 +4087,7 @@ "label": "DataProvidersAnd", "description": [], "signature": [ - "{ name: string; type?: ", + "{ type?: ", { "pluginId": "timelines", "scope": "common", @@ -4095,7 +4095,7 @@ "section": "def-common.DataProviderType", "text": "DataProviderType" }, - " | undefined; id: string; enabled: boolean; excluded: boolean; kqlQuery: string; queryMatch: ", + " | undefined; id: string; name: string; enabled: boolean; excluded: boolean; kqlQuery: string; queryMatch: ", { "pluginId": "timelines", "scope": "common", @@ -4155,7 +4155,7 @@ "label": "EntityType", "description": [], "signature": [ - "\"sessions\" | \"alerts\" | \"events\"" + "\"alerts\" | \"events\" | \"sessions\"" ], "path": "x-pack/plugins/timelines/common/search_strategy/timeline/events/index.ts", "deprecated": false, @@ -4261,7 +4261,7 @@ "label": "TimelineKpiStrategyRequest", "description": [], "signature": [ - "{ params?: ", + "{ id?: string | undefined; params?: ", { "pluginId": "data", "scope": "common", @@ -4269,7 +4269,7 @@ "section": "def-common.ISearchRequestParams", "text": "ISearchRequestParams" }, - " | undefined; id?: string | undefined; timerange?: ", + " | undefined; timerange?: ", { "pluginId": "timelines", "scope": "common", diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 49f74345c8c2aa..bbcb015d682875 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; -Contact [Security solution](https://github.com/orgs/elastic/teams/security-solution) for questions regarding this plugin. +Contact [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 96cbde843c10ff..d8fa7902786e72 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. -Contact [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. +Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index c0dfde4f934d2a..4d406dbab5260d 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -2280,7 +2280,7 @@ }, "; connector: Pick<", "ActionConnectorWithoutId", - ", Record>, \"name\" | \"config\" | \"secrets\">; id: string; }) => Promise<", + ", Record>, \"config\" | \"secrets\" | \"name\">; id: string; }) => Promise<", { "pluginId": "triggersActionsUi", "scope": "public", @@ -2333,7 +2333,7 @@ "label": "connector", "description": [], "signature": [ - "{ name: string; config: Record; secrets: Record; }" + "{ config: Record; secrets: Record; name: string; }" ], "path": "x-pack/plugins/triggers_actions_ui/public/application/lib/action_connector_api/update.ts", "deprecated": false, @@ -3365,7 +3365,7 @@ "description": [], "signature": [ "BasicFields", - " & { tags?: string[] | undefined; kibana?: string[] | undefined; \"@timestamp\"?: string[] | undefined; \"event.action\"?: string[] | undefined; \"kibana.alert.rule.rule_type_id\"?: string[] | undefined; \"kibana.alert.rule.consumer\"?: string[] | undefined; \"kibana.alert.rule.execution.uuid\"?: string[] | undefined; \"kibana.alert\"?: string[] | undefined; \"kibana.alert.rule\"?: string[] | undefined; \"kibana.alert.rule.parameters\"?: string[] | undefined; \"kibana.alert.rule.producer\"?: string[] | undefined; \"kibana.space_ids\"?: string[] | undefined; \"kibana.alert.uuid\"?: string[] | undefined; \"kibana.alert.instance.id\"?: string[] | undefined; \"kibana.alert.start\"?: string[] | undefined; \"kibana.alert.time_range\"?: string[] | undefined; \"kibana.alert.end\"?: string[] | undefined; \"kibana.alert.duration.us\"?: string[] | undefined; \"kibana.alert.severity\"?: string[] | undefined; \"kibana.alert.status\"?: string[] | undefined; \"kibana.alert.flapping\"?: string[] | undefined; \"kibana.version\"?: string[] | undefined; \"ecs.version\"?: string[] | undefined; \"kibana.alert.risk_score\"?: string[] | undefined; \"kibana.alert.workflow_status\"?: string[] | undefined; \"kibana.alert.workflow_user\"?: string[] | undefined; \"kibana.alert.workflow_reason\"?: string[] | undefined; \"kibana.alert.system_status\"?: string[] | undefined; \"kibana.alert.action_group\"?: string[] | undefined; \"kibana.alert.reason\"?: string[] | undefined; \"kibana.alert.case_ids\"?: string[] | undefined; \"kibana.alert.rule.author\"?: string[] | undefined; \"kibana.alert.rule.category\"?: string[] | undefined; \"kibana.alert.rule.uuid\"?: string[] | undefined; \"kibana.alert.rule.created_at\"?: string[] | undefined; \"kibana.alert.rule.created_by\"?: string[] | undefined; \"kibana.alert.rule.description\"?: string[] | undefined; \"kibana.alert.rule.enabled\"?: string[] | undefined; \"kibana.alert.rule.from\"?: string[] | undefined; \"kibana.alert.rule.interval\"?: string[] | undefined; \"kibana.alert.rule.license\"?: string[] | undefined; \"kibana.alert.rule.name\"?: string[] | undefined; \"kibana.alert.rule.note\"?: string[] | undefined; \"kibana.alert.rule.references\"?: string[] | undefined; \"kibana.alert.rule.rule_id\"?: string[] | undefined; \"kibana.alert.rule.rule_name_override\"?: string[] | undefined; \"kibana.alert.rule.tags\"?: string[] | undefined; \"kibana.alert.rule.to\"?: string[] | undefined; \"kibana.alert.rule.type\"?: string[] | undefined; \"kibana.alert.rule.updated_at\"?: string[] | undefined; \"kibana.alert.rule.updated_by\"?: string[] | undefined; \"kibana.alert.rule.version\"?: string[] | undefined; \"kibana.alert.suppression.terms\"?: string[] | undefined; \"kibana.alert.suppression.terms.field\"?: string[] | undefined; \"kibana.alert.suppression.terms.value\"?: string[] | undefined; \"kibana.alert.suppression.start\"?: string[] | undefined; \"kibana.alert.suppression.end\"?: string[] | undefined; \"kibana.alert.suppression.docs_count\"?: string[] | undefined; \"event.kind\"?: string[] | undefined; \"event.module\"?: string[] | undefined; \"kibana.alert.evaluation.threshold\"?: string[] | undefined; \"kibana.alert.evaluation.value\"?: string[] | undefined; \"kibana.alert.building_block_type\"?: string[] | undefined; \"kibana.alert.rule.exceptions_list\"?: string[] | undefined; \"kibana.alert.rule.namespace\"?: string[] | undefined; \"kibana.alert.rule.threat.framework\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.id\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.name\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.reference\"?: string[] | undefined; } & { [x: string]: unknown[]; }" + " & { \"@timestamp\"?: string[] | undefined; \"event.action\"?: string[] | undefined; tags?: string[] | undefined; kibana?: string[] | undefined; \"kibana.alert.rule.rule_type_id\"?: string[] | undefined; \"kibana.alert.rule.consumer\"?: string[] | undefined; \"kibana.alert.rule.execution.uuid\"?: string[] | undefined; \"kibana.alert\"?: string[] | undefined; \"kibana.alert.rule\"?: string[] | undefined; \"kibana.alert.rule.parameters\"?: string[] | undefined; \"kibana.alert.rule.producer\"?: string[] | undefined; \"kibana.space_ids\"?: string[] | undefined; \"kibana.alert.uuid\"?: string[] | undefined; \"kibana.alert.instance.id\"?: string[] | undefined; \"kibana.alert.start\"?: string[] | undefined; \"kibana.alert.time_range\"?: string[] | undefined; \"kibana.alert.end\"?: string[] | undefined; \"kibana.alert.duration.us\"?: string[] | undefined; \"kibana.alert.severity\"?: string[] | undefined; \"kibana.alert.status\"?: string[] | undefined; \"kibana.alert.flapping\"?: string[] | undefined; \"kibana.version\"?: string[] | undefined; \"ecs.version\"?: string[] | undefined; \"kibana.alert.risk_score\"?: string[] | undefined; \"kibana.alert.workflow_status\"?: string[] | undefined; \"kibana.alert.workflow_user\"?: string[] | undefined; \"kibana.alert.workflow_reason\"?: string[] | undefined; \"kibana.alert.system_status\"?: string[] | undefined; \"kibana.alert.action_group\"?: string[] | undefined; \"kibana.alert.reason\"?: string[] | undefined; \"kibana.alert.case_ids\"?: string[] | undefined; \"kibana.alert.rule.author\"?: string[] | undefined; \"kibana.alert.rule.category\"?: string[] | undefined; \"kibana.alert.rule.uuid\"?: string[] | undefined; \"kibana.alert.rule.created_at\"?: string[] | undefined; \"kibana.alert.rule.created_by\"?: string[] | undefined; \"kibana.alert.rule.description\"?: string[] | undefined; \"kibana.alert.rule.enabled\"?: string[] | undefined; \"kibana.alert.rule.from\"?: string[] | undefined; \"kibana.alert.rule.interval\"?: string[] | undefined; \"kibana.alert.rule.license\"?: string[] | undefined; \"kibana.alert.rule.name\"?: string[] | undefined; \"kibana.alert.rule.note\"?: string[] | undefined; \"kibana.alert.rule.references\"?: string[] | undefined; \"kibana.alert.rule.rule_id\"?: string[] | undefined; \"kibana.alert.rule.rule_name_override\"?: string[] | undefined; \"kibana.alert.rule.tags\"?: string[] | undefined; \"kibana.alert.rule.to\"?: string[] | undefined; \"kibana.alert.rule.type\"?: string[] | undefined; \"kibana.alert.rule.updated_at\"?: string[] | undefined; \"kibana.alert.rule.updated_by\"?: string[] | undefined; \"kibana.alert.rule.version\"?: string[] | undefined; \"kibana.alert.suppression.terms\"?: string[] | undefined; \"kibana.alert.suppression.terms.field\"?: string[] | undefined; \"kibana.alert.suppression.terms.value\"?: string[] | undefined; \"kibana.alert.suppression.start\"?: string[] | undefined; \"kibana.alert.suppression.end\"?: string[] | undefined; \"kibana.alert.suppression.docs_count\"?: string[] | undefined; \"event.kind\"?: string[] | undefined; \"event.module\"?: string[] | undefined; \"kibana.alert.evaluation.threshold\"?: string[] | undefined; \"kibana.alert.evaluation.value\"?: string[] | undefined; \"kibana.alert.building_block_type\"?: string[] | undefined; \"kibana.alert.rule.exceptions_list\"?: string[] | undefined; \"kibana.alert.rule.namespace\"?: string[] | undefined; \"kibana.alert.rule.threat.framework\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.id\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.name\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.reference\"?: string[] | undefined; } & { [x: string]: unknown[]; }" ], "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", "deprecated": false, @@ -3786,6 +3786,20 @@ "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.AlertsTableProps.showInspectButton", + "type": "CompoundType", + "tags": [], + "label": "showInspectButton", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -4089,7 +4103,7 @@ "tags": [], "label": "AlertSummaryTimeRange", "description": [], - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/alert_summary/types.ts", + "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4100,7 +4114,7 @@ "tags": [], "label": "utcFrom", "description": [], - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/alert_summary/types.ts", + "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/types.ts", "deprecated": false, "trackAdoption": false }, @@ -4111,7 +4125,7 @@ "tags": [], "label": "utcTo", "description": [], - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/alert_summary/types.ts", + "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/types.ts", "deprecated": false, "trackAdoption": false }, @@ -4122,7 +4136,7 @@ "tags": [], "label": "fixedInterval", "description": [], - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/alert_summary/types.ts", + "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/types.ts", "deprecated": false, "trackAdoption": false }, @@ -4136,7 +4150,7 @@ "signature": [ "string | JSX.Element | undefined" ], - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/alert_summary/types.ts", + "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/types.ts", "deprecated": false, "trackAdoption": false }, @@ -4150,7 +4164,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/alert_summary/types.ts", + "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/types.ts", "deprecated": false, "trackAdoption": false } @@ -5211,7 +5225,7 @@ "section": "def-common.RuleType", "text": "RuleType" }, - ", \"name\" | \"id\" | \"actionGroups\" | \"defaultActionGroupId\" | \"recoveryActionGroup\" | \"producer\" | \"minimumLicenseRequired\" | \"defaultScheduleInterval\" | \"ruleTaskTimeout\" | \"doesSetRecoveryContext\">" + ", \"id\" | \"name\" | \"actionGroups\" | \"defaultActionGroupId\" | \"recoveryActionGroup\" | \"producer\" | \"minimumLicenseRequired\" | \"defaultScheduleInterval\" | \"ruleTaskTimeout\" | \"doesSetRecoveryContext\">" ], "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", "deprecated": false, @@ -5623,7 +5637,7 @@ "label": "setRuleProperty", "description": [], "signature": [ - "(key: Prop, value: ", + "(key: Prop, value: ", "SanitizedRule", "[Prop] | null) => void" ], @@ -6718,7 +6732,7 @@ "UserConfiguredActionConnector", ", \"config\" | \"secrets\" | \"actionTypeId\" | \"isDeprecated\"> & Partial, \"name\" | \"id\">>" + ", \"id\" | \"name\">>" ], "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/types.ts", "deprecated": false, @@ -6839,7 +6853,7 @@ "label": "RuleStatus", "description": [], "signature": [ - "\"disabled\" | \"enabled\" | \"snoozed\"" + "\"enabled\" | \"disabled\" | \"snoozed\"" ], "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", "deprecated": false, @@ -8547,9 +8561,9 @@ "description": [], "signature": [ "(props: ", - "RulesListNotifyBadgeProps", + "RulesListNotifyBadgePropsWithApi", ") => React.ReactElement<", - "RulesListNotifyBadgeProps", + "RulesListNotifyBadgePropsWithApi", ", string | React.JSXElementConstructor>" ], "path": "x-pack/plugins/triggers_actions_ui/public/plugin.ts", @@ -8564,7 +8578,7 @@ "label": "props", "description": [], "signature": [ - "RulesListNotifyBadgeProps" + "RulesListNotifyBadgePropsWithApi" ], "path": "x-pack/plugins/triggers_actions_ui/public/plugin.ts", "deprecated": false, diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index e2e4d6530c92f1..413dde43aea536 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; -Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. +Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 590 | 11 | 561 | 53 | +| 591 | 11 | 562 | 53 | ## Client diff --git a/api_docs/ui_actions.devdocs.json b/api_docs/ui_actions.devdocs.json index 5900d4aad0f68a..249617aedc8080 100644 --- a/api_docs/ui_actions.devdocs.json +++ b/api_docs/ui_actions.devdocs.json @@ -2552,7 +2552,7 @@ "label": "UiActionsStart", "description": [], "signature": [ - "{ readonly clear: () => void; readonly addTriggerAction: (triggerId: string, action: ", + "{ readonly addTriggerAction: (triggerId: string, action: ", { "pluginId": "uiActions", "scope": "public", @@ -2610,7 +2610,7 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly fork: () => ", + "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 807748e58ecd91..51862d2472f3a8 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; Adds UI Actions service to Kibana -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index 763363e200c187..f44bc12f4a0939 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; Extends UI Actions plugin with more functionality -Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/unified_field_list.devdocs.json b/api_docs/unified_field_list.devdocs.json index a12ef194b88f59..b85dd7329e49ff 100644 --- a/api_docs/unified_field_list.devdocs.json +++ b/api_docs/unified_field_list.devdocs.json @@ -3398,7 +3398,7 @@ "section": "def-common.FieldFormatsRegistry", "text": "FieldFormatsRegistry" }, - ", \"init\" | \"register\"> & { deserialize: ", + ", \"register\" | \"init\"> & { deserialize: ", { "pluginId": "fieldFormats", "scope": "common", @@ -3643,7 +3643,7 @@ "label": "type", "description": [], "signature": [ - "\"normal\" | \"other\" | undefined" + "\"other\" | \"normal\" | undefined" ], "path": "src/plugins/unified_field_list/public/components/field_stats/field_top_values_bucket.tsx", "deprecated": false, @@ -3802,7 +3802,7 @@ "label": "uiActions", "description": [], "signature": [ - "{ readonly clear: () => void; readonly addTriggerAction: (triggerId: string, action: ", + "{ readonly addTriggerAction: (triggerId: string, action: ", { "pluginId": "uiActions", "scope": "public", @@ -3860,7 +3860,7 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly fork: () => ", + "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", @@ -4792,7 +4792,7 @@ "section": "def-common.DataViewField", "text": "DataViewField" }, - "; dataView: ", + "; originatingApp: string; dataView: ", { "pluginId": "dataViews", "scope": "common", @@ -4800,7 +4800,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "; originatingApp: string; uiActions: ", + "; uiActions: ", { "pluginId": "uiActions", "scope": "public", diff --git a/api_docs/unified_field_list.mdx b/api_docs/unified_field_list.mdx index 6f7a154c7cf84c..af1e457cfdee3e 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; Contains functionality for the field list which can be integrated into apps -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/unified_histogram.devdocs.json b/api_docs/unified_histogram.devdocs.json index a5555275c7b58e..585494aff11ce5 100644 --- a/api_docs/unified_histogram.devdocs.json +++ b/api_docs/unified_histogram.devdocs.json @@ -5,1104 +5,1044 @@ "functions": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayout", + "id": "def-public.getBreakdownField", "type": "Function", "tags": [], - "label": "UnifiedHistogramLayout", + "label": "getBreakdownField", "description": [ - "\nA resizable layout component with two panels that renders a histogram with a hits\ncounter in the top panel, and a main display (data table, etc.) in the bottom panel.\nIf all context props are left undefined, the layout will render in a single panel\nmode including only the main display." + "\nGet the breakdown field from local storage" ], "signature": [ - "React.ForwardRefExoticComponent<", + "(storage: ", { - "pluginId": "unifiedHistogram", + "pluginId": "kibanaUtils", "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramLayoutProps", - "text": "UnifiedHistogramLayoutProps" + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" }, - " & React.RefAttributes<{}>>" + ", localStorageKeyPrefix: string) => string | undefined" ], - "path": "src/plugins/unified_histogram/public/layout/index.tsx", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, "trackAdoption": false, - "returnComment": [], "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayout.$1", - "type": "Uncategorized", + "id": "def-public.getBreakdownField.$1", + "type": "Object", "tags": [], - "label": "props", + "label": "storage", "description": [], "signature": [ - "P" + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } ], - "path": "node_modules/@types/react/index.d.ts", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.getBreakdownField.$2", + "type": "string", + "tags": [], + "label": "localStorageKeyPrefix", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], + "returnComment": [], "initialIsOpen": false - } - ], - "interfaces": [ + }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramBreakdownContext", - "type": "Interface", + "id": "def-public.getChartHidden", + "type": "Function", "tags": [], - "label": "UnifiedHistogramBreakdownContext", + "label": "getChartHidden", "description": [ - "\nContext object for the histogram breakdown" + "\nGet the chart hidden state from local storage" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "signature": [ + "(storage: ", + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + }, + ", localStorageKeyPrefix: string) => boolean | undefined" + ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramBreakdownContext.field", + "id": "def-public.getChartHidden.$1", "type": "Object", "tags": [], - "label": "field", - "description": [ - "\nThe field used for the breakdown" - ], + "label": "storage", + "description": [], "signature": [ { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - " | undefined" + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.getChartHidden.$2", + "type": "string", + "tags": [], + "label": "localStorageKeyPrefix", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], + "returnComment": [], "initialIsOpen": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramChartContext", - "type": "Interface", + "id": "def-public.getTopPanelHeight", + "type": "Function", "tags": [], - "label": "UnifiedHistogramChartContext", + "label": "getTopPanelHeight", "description": [ - "\nContext object for the chart" + "\nGet the top panel height from local storage" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "signature": [ + "(storage: ", + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + }, + ", localStorageKeyPrefix: string) => number | undefined" + ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramChartContext.hidden", - "type": "CompoundType", - "tags": [], - "label": "hidden", - "description": [ - "\nControls whether or not the chart is hidden" - ], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/unified_histogram/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramChartContext.timeInterval", - "type": "string", + "id": "def-public.getTopPanelHeight.$1", + "type": "Object", "tags": [], - "label": "timeInterval", - "description": [ - "\nControls the time interval of the chart" - ], + "label": "storage", + "description": [], "signature": [ - "string | undefined" + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramChartContext.title", + "id": "def-public.getTopPanelHeight.$2", "type": "string", "tags": [], - "label": "title", - "description": [ - "\nThe chart title -- sets the title property on the Lens chart input" - ], + "label": "localStorageKeyPrefix", + "description": [], "signature": [ - "string | undefined" + "string" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true } ], + "returnComment": [], "initialIsOpen": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramChartLoadEvent", - "type": "Interface", + "id": "def-public.setBreakdownField", + "type": "Function", "tags": [], - "label": "UnifiedHistogramChartLoadEvent", + "label": "setBreakdownField", "description": [ - "\nEmitted when the histogram loading status changes" + "\nSet the breakdown field in local storage" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "signature": [ + "(storage: ", + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + }, + ", localStorageKeyPrefix: string, breakdownField: string | undefined) => false | void" + ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramChartLoadEvent.adapters", + "id": "def-public.setBreakdownField.$1", "type": "Object", "tags": [], - "label": "adapters", - "description": [ - "\nInspector adapters for the request" - ], + "label": "storage", + "description": [], "signature": [ - "{ requests?: ", - { - "pluginId": "inspector", - "scope": "common", - "docId": "kibInspectorPluginApi", - "section": "def-common.RequestAdapter", - "text": "RequestAdapter" - }, - " | undefined; tables?: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.TablesAdapter", - "text": "TablesAdapter" - }, - " | undefined; expression?: ", { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionsInspectorAdapter", - "text": "ExpressionsInspectorAdapter" - }, - " | undefined; }" + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.setBreakdownField.$2", + "type": "string", + "tags": [], + "label": "localStorageKeyPrefix", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.setBreakdownField.$3", + "type": "string", + "tags": [], + "label": "breakdownField", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], + "returnComment": [], "initialIsOpen": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramHitsContext", - "type": "Interface", + "id": "def-public.setChartHidden", + "type": "Function", "tags": [], - "label": "UnifiedHistogramHitsContext", + "label": "setChartHidden", "description": [ - "\nContext object for the hits count" + "\nSet the chart hidden state in local storage" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "signature": [ + "(storage: ", + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + }, + ", localStorageKeyPrefix: string, chartHidden: boolean | undefined) => false | void" + ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramHitsContext.status", - "type": "CompoundType", + "id": "def-public.setChartHidden.$1", + "type": "Object", "tags": [], - "label": "status", - "description": [ - "\nThe fetch status of the hits count request" - ], + "label": "storage", + "description": [], "signature": [ { - "pluginId": "unifiedHistogram", + "pluginId": "kibanaUtils", "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramFetchStatus", - "text": "UnifiedHistogramFetchStatus" - }, - " | undefined" + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramHitsContext.total", - "type": "number", + "id": "def-public.setChartHidden.$2", + "type": "string", "tags": [], - "label": "total", - "description": [ - "\nThe total number of hits" + "label": "localStorageKeyPrefix", + "description": [], + "signature": [ + "string" ], + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.setChartHidden.$3", + "type": "CompoundType", + "tags": [], + "label": "chartHidden", + "description": [], "signature": [ - "number | undefined" + "boolean | undefined" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": false } ], + "returnComment": [], "initialIsOpen": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps", - "type": "Interface", + "id": "def-public.setTopPanelHeight", + "type": "Function", "tags": [], - "label": "UnifiedHistogramLayoutProps", - "description": [], + "label": "setTopPanelHeight", + "description": [ + "\nSet the top panel height in local storage" + ], "signature": [ + "(storage: ", { - "pluginId": "unifiedHistogram", + "pluginId": "kibanaUtils", "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramLayoutProps", - "text": "UnifiedHistogramLayoutProps" + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" }, - " extends { children?: React.ReactNode; }" + ", localStorageKeyPrefix: string, topPanelHeight: number | undefined) => false | void" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.className", - "type": "string", + "id": "def-public.setTopPanelHeight.$1", + "type": "Object", "tags": [], - "label": "className", - "description": [ - "\nOptional class name to add to the layout container" - ], + "label": "storage", + "description": [], "signature": [ - "string | undefined" + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.services", - "type": "Object", + "id": "def-public.setTopPanelHeight.$2", + "type": "string", "tags": [], - "label": "services", - "description": [ - "\nRequired services" - ], + "label": "localStorageKeyPrefix", + "description": [], "signature": [ - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramServices", - "text": "UnifiedHistogramServices" - } + "string" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": true }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.dataView", - "type": "Object", + "id": "def-public.setTopPanelHeight.$3", + "type": "number", "tags": [], - "label": "dataView", - "description": [ - "\nThe current data view" - ], + "label": "topPanelHeight", + "description": [], "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - } + "number | undefined" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.UnifiedHistogramContainer", + "type": "Function", + "tags": [], + "label": "UnifiedHistogramContainer", + "description": [ + "\nA resizable layout component with two panels that renders a histogram with a hits\ncounter in the top panel, and a main display (data table, etc.) in the bottom panel.\nIf all context props are left undefined, the layout will render in a single panel\nmode including only the main display." + ], + "signature": [ + "React.ForwardRefExoticComponent, \"children\" | \"className\" | \"css\" | \"key\" | \"resizeRef\" | \"appendHitsCounter\"> & React.RefAttributes<{}>>" + ], + "path": "src/plugins/unified_histogram/public/container/index.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.filters", - "type": "Array", + "id": "def-public.UnifiedHistogramContainer.$1", + "type": "Uncategorized", "tags": [], - "label": "filters", - "description": [ - "\nThe current filters" - ], + "label": "props", + "description": [], "signature": [ - { - "pluginId": "@kbn/es-query", - "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.Filter", - "text": "Filter" - }, - "[] | undefined" + "P" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "node_modules/@types/react/index.d.ts", "deprecated": false, "trackAdoption": false - }, + } + ], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.UnifiedHistogramChartLoadEvent", + "type": "Interface", + "tags": [], + "label": "UnifiedHistogramChartLoadEvent", + "description": [ + "\nEmitted when the histogram loading status changes" + ], + "path": "src/plugins/unified_histogram/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.timeRange", + "id": "def-public.UnifiedHistogramChartLoadEvent.adapters", "type": "Object", "tags": [], - "label": "timeRange", + "label": "adapters", "description": [ - "\nThe current time range" + "\nInspector adapters for the request" ], "signature": [ + "{ requests?: ", { - "pluginId": "@kbn/es-query", + "pluginId": "inspector", "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.TimeRange", - "text": "TimeRange" + "docId": "kibInspectorPluginApi", + "section": "def-common.RequestAdapter", + "text": "RequestAdapter" }, - " | undefined" + " | undefined; tables?: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.TablesAdapter", + "text": "TablesAdapter" + }, + " | undefined; expression?: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionsInspectorAdapter", + "text": "ExpressionsInspectorAdapter" + }, + " | undefined; }" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, "trackAdoption": false - }, + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.UnifiedHistogramServices", + "type": "Interface", + "tags": [], + "label": "UnifiedHistogramServices", + "description": [ + "\nThe services required by the Unified Histogram components" + ], + "path": "src/plugins/unified_histogram/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.request", + "id": "def-public.UnifiedHistogramServices.data", "type": "Object", "tags": [], - "label": "request", - "description": [ - "\nContext object for requests made by unified histogram components -- optional" - ], + "label": "data", + "description": [], "signature": [ { - "pluginId": "unifiedHistogram", + "pluginId": "data", "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramRequestContext", - "text": "UnifiedHistogramRequestContext" - }, - " | undefined" + "docId": "kibDataPluginApi", + "section": "def-public.DataPublicPluginStart", + "text": "DataPublicPluginStart" + } ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.hits", + "id": "def-public.UnifiedHistogramServices.theme", "type": "Object", "tags": [], - "label": "hits", - "description": [ - "\nContext object for the hits count -- leave undefined to hide the hits count" - ], + "label": "theme", + "description": [], "signature": [ - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramHitsContext", - "text": "UnifiedHistogramHitsContext" - }, - " | undefined" + "{ readonly chartsDefaultTheme: ", + "RecursivePartial", + "<", + "Theme", + ">; readonly chartsDefaultBaseTheme: ", + "Theme", + "; chartsTheme$: ", + "Observable", + "<", + "RecursivePartial", + "<", + "Theme", + ">>; chartsBaseTheme$: ", + "Observable", + "<", + "Theme", + ">; readonly darkModeEnabled$: ", + "Observable", + "; useDarkMode: () => boolean; useChartsTheme: () => ", + "RecursivePartial", + "<", + "Theme", + ">; useChartsBaseTheme: () => ", + "Theme", + "; }" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.chart", + "id": "def-public.UnifiedHistogramServices.uiActions", "type": "Object", "tags": [], - "label": "chart", - "description": [ - "\nContext object for the chart -- leave undefined to hide the chart" - ], + "label": "uiActions", + "description": [], "signature": [ + "{ readonly addTriggerAction: (triggerId: string, action: ", { - "pluginId": "unifiedHistogram", + "pluginId": "uiActions", "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramChartContext", - "text": "UnifiedHistogramChartContext" + "docId": "kibUiActionsPluginApi", + "section": "def-public.ActionDefinition", + "text": "ActionDefinition" }, - " | undefined" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.breakdown", - "type": "Object", - "tags": [], - "label": "breakdown", - "description": [ - "\nContext object for the breakdown -- leave undefined to hide the breakdown" - ], - "signature": [ + ") => void; readonly attachAction: (triggerId: string, actionId: string) => void; readonly detachAction: (triggerId: string, actionId: string) => void; readonly registerAction: (definition: ", { - "pluginId": "unifiedHistogram", + "pluginId": "uiActions", "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramBreakdownContext", - "text": "UnifiedHistogramBreakdownContext" + "docId": "kibUiActionsPluginApi", + "section": "def-public.ActionDefinition", + "text": "ActionDefinition" }, - " | undefined" + ") => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + "; readonly registerTrigger: (trigger: ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Trigger", + "text": "Trigger" + }, + ") => void; readonly unregisterAction: (actionId: string) => void; readonly getTrigger: (triggerId: string) => ", + "TriggerContract", + "; readonly hasAction: (actionId: string) => boolean; readonly getAction: (id: string) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + "; readonly getTriggerActions: (triggerId: string) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + "[]; readonly getTriggerCompatibleActions: (triggerId: string, context: object) => Promise<", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.UiActionsService", + "text": "UiActionsService" + }, + "; }" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.resizeRef", + "id": "def-public.UnifiedHistogramServices.uiSettings", "type": "Object", "tags": [], - "label": "resizeRef", - "description": [ - "\nRef to the element wrapping the layout which will be used for resize calculations" - ], + "label": "uiSettings", + "description": [], "signature": [ - "React.RefObject" + { + "pluginId": "@kbn/core-ui-settings-browser", + "scope": "common", + "docId": "kibKbnCoreUiSettingsBrowserPluginApi", + "section": "def-common.IUiSettingsClient", + "text": "IUiSettingsClient" + } ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.topPanelHeight", - "type": "number", + "id": "def-public.UnifiedHistogramServices.fieldFormats", + "type": "CompoundType", "tags": [], - "label": "topPanelHeight", - "description": [ - "\nCurrent top panel height -- leave undefined to use the default" - ], + "label": "fieldFormats", + "description": [], "signature": [ - "number | undefined" + "Omit<", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormatsRegistry", + "text": "FieldFormatsRegistry" + }, + ", \"register\" | \"init\"> & { deserialize: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FormatFactory", + "text": "FormatFactory" + }, + "; }" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.appendHitsCounter", + "id": "def-public.UnifiedHistogramServices.lens", "type": "Object", "tags": [], - "label": "appendHitsCounter", - "description": [ - "\nAppend a custom element to the right of the hits count" - ], + "label": "lens", + "description": [], "signature": [ - "React.ReactElement> | undefined" + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.LensPublicStart", + "text": "LensPublicStart" + } ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.disableAutoFetching", - "type": "CompoundType", + "id": "def-public.UnifiedHistogramServices.storage", + "type": "Object", "tags": [], - "label": "disableAutoFetching", - "description": [ - "\nDisable automatic refetching based on props changes, and instead wait for a `refetch` message" - ], + "label": "storage", + "description": [], "signature": [ - "boolean | undefined" + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, "trackAdoption": false - }, + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.UnifiedHistogramState", + "type": "Interface", + "tags": [], + "label": "UnifiedHistogramState", + "description": [ + "\nThe current state of the container" + ], + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.disableTriggers", - "type": "CompoundType", + "id": "def-public.UnifiedHistogramState.breakdownField", + "type": "string", "tags": [], - "label": "disableTriggers", + "label": "breakdownField", "description": [ - "\nDisable triggers for the Lens embeddable" + "\nThe current field used for the breakdown" ], "signature": [ - "boolean | undefined" + "string | undefined" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.disabledActions", - "type": "Array", + "id": "def-public.UnifiedHistogramState.chartHidden", + "type": "boolean", "tags": [], - "label": "disabledActions", + "label": "chartHidden", "description": [ - "\nDisabled action IDs for the Lens embeddable" - ], - "signature": [ - "string[] | undefined" + "\nWhether or not the chart is hidden" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.input$", + "id": "def-public.UnifiedHistogramState.dataView", "type": "Object", "tags": [], - "label": "input$", + "label": "dataView", "description": [ - "\nInput observable" + "\nThe current data view" ], "signature": [ - "UnifiedHistogramInput", - "$ | undefined" + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + } ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onTopPanelHeightChange", - "type": "Function", + "id": "def-public.UnifiedHistogramState.filters", + "type": "Array", "tags": [], - "label": "onTopPanelHeightChange", + "label": "filters", "description": [ - "\nCallback to update the topPanelHeight prop when a resize is triggered" + "\nThe current filters" ], "signature": [ - "((topPanelHeight: number | undefined) => void) | undefined" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onTopPanelHeightChange.$1", - "type": "number", - "tags": [], - "label": "topPanelHeight", - "description": [], - "signature": [ - "number | undefined" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[]" ], - "returnComment": [] + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onEditVisualization", - "type": "Function", + "id": "def-public.UnifiedHistogramState.lensRequestAdapter", + "type": "Object", "tags": [], - "label": "onEditVisualization", + "label": "lensRequestAdapter", "description": [ - "\nCallback to invoke when the user clicks the edit visualization button -- leave undefined to hide the button" + "\nThe current Lens request adapter" ], "signature": [ - "((lensAttributes: LensAttributes<\"lnsXY\", ", - { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.XYState", - "text": "XYState" - }, - "> | LensAttributes<\"lnsPie\", ", - { - "pluginId": "lens", - "scope": "common", - "docId": "kibLensPluginApi", - "section": "def-common.PieVisualizationState", - "text": "PieVisualizationState" - }, - "> | LensAttributes<\"lnsDatatable\", ", - { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.DatatableVisualizationState", - "text": "DatatableVisualizationState" - }, - "> | LensAttributes<\"lnsLegacyMetric\", ", { - "pluginId": "lens", + "pluginId": "inspector", "scope": "common", - "docId": "kibLensPluginApi", - "section": "def-common.LegacyMetricState", - "text": "LegacyMetricState" - }, - "> | LensAttributes<\"lnsMetric\", ", - "MetricVisualizationState", - "> | LensAttributes<\"lnsHeatmap\", ", - { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.HeatmapVisualizationState", - "text": "HeatmapVisualizationState" - }, - "> | LensAttributes<\"lnsGauge\", ", - { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.GaugeVisualizationState", - "text": "GaugeVisualizationState" + "docId": "kibInspectorPluginApi", + "section": "def-common.RequestAdapter", + "text": "RequestAdapter" }, - "> | LensAttributes) => void) | undefined" + " | undefined" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onEditVisualization.$1", - "type": "CompoundType", - "tags": [], - "label": "lensAttributes", - "description": [], - "signature": [ - "LensAttributes<\"lnsXY\", ", - { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.XYState", - "text": "XYState" - }, - "> | LensAttributes<\"lnsPie\", ", - { - "pluginId": "lens", - "scope": "common", - "docId": "kibLensPluginApi", - "section": "def-common.PieVisualizationState", - "text": "PieVisualizationState" - }, - "> | LensAttributes<\"lnsDatatable\", ", - { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.DatatableVisualizationState", - "text": "DatatableVisualizationState" - }, - "> | LensAttributes<\"lnsLegacyMetric\", ", - { - "pluginId": "lens", - "scope": "common", - "docId": "kibLensPluginApi", - "section": "def-common.LegacyMetricState", - "text": "LegacyMetricState" - }, - "> | LensAttributes<\"lnsMetric\", ", - "MetricVisualizationState", - "> | LensAttributes<\"lnsHeatmap\", ", - { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.HeatmapVisualizationState", - "text": "HeatmapVisualizationState" - }, - "> | LensAttributes<\"lnsGauge\", ", - { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.GaugeVisualizationState", - "text": "GaugeVisualizationState" - }, - "> | LensAttributes" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] + "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onChartHiddenChange", - "type": "Function", + "id": "def-public.UnifiedHistogramState.query", + "type": "CompoundType", "tags": [], - "label": "onChartHiddenChange", + "label": "query", "description": [ - "\nCallback to hide or show the chart -- should set {@link UnifiedHistogramChartContext.hidden} to chartHidden" + "\nThe current query" ], "signature": [ - "((chartHidden: boolean) => void) | undefined" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onChartHiddenChange.$1", - "type": "boolean", - "tags": [], - "label": "chartHidden", - "description": [], - "signature": [ - "boolean" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" } ], - "returnComment": [] + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onTimeIntervalChange", - "type": "Function", + "id": "def-public.UnifiedHistogramState.requestAdapter", + "type": "Object", "tags": [], - "label": "onTimeIntervalChange", + "label": "requestAdapter", "description": [ - "\nCallback to update the time interval -- should set {@link UnifiedHistogramChartContext.timeInterval} to timeInterval" + "\nThe current request adapter used for non-Lens requests" ], "signature": [ - "((timeInterval: string) => void) | undefined" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onTimeIntervalChange.$1", - "type": "string", - "tags": [], - "label": "timeInterval", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.RequestAdapter", + "text": "RequestAdapter" + }, + " | undefined" ], - "returnComment": [] + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onBreakdownFieldChange", - "type": "Function", + "id": "def-public.UnifiedHistogramState.searchSessionId", + "type": "string", "tags": [], - "label": "onBreakdownFieldChange", + "label": "searchSessionId", "description": [ - "\nCallback to update the breakdown field -- should set {@link UnifiedHistogramBreakdownContext.field} to breakdownField" + "\nThe current search session ID" ], "signature": [ - "((breakdownField: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - " | undefined) => void) | undefined" + "string | undefined" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onBreakdownFieldChange.$1", - "type": "Object", - "tags": [], - "label": "breakdownField", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - " | undefined" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] + "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onTotalHitsChange", - "type": "Function", + "id": "def-public.UnifiedHistogramState.timeInterval", + "type": "string", "tags": [], - "label": "onTotalHitsChange", + "label": "timeInterval", "description": [ - "\nCallback to update the total hits -- should set {@link UnifiedHistogramHitsContext.status} to status\nand {@link UnifiedHistogramHitsContext.total} to result" - ], - "signature": [ - "((status: ", - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramFetchStatus", - "text": "UnifiedHistogramFetchStatus" - }, - ", result?: number | Error | undefined) => void) | undefined" + "\nThe current time interval of the chart" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onTotalHitsChange.$1", - "type": "Enum", - "tags": [], - "label": "status", - "description": [], - "signature": [ - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramFetchStatus", - "text": "UnifiedHistogramFetchStatus" - } - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onTotalHitsChange.$2", - "type": "CompoundType", - "tags": [], - "label": "result", - "description": [], - "signature": [ - "number | Error | undefined" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] + "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onChartLoad", - "type": "Function", + "id": "def-public.UnifiedHistogramState.timeRange", + "type": "Object", "tags": [], - "label": "onChartLoad", + "label": "timeRange", "description": [ - "\nCalled when the histogram loading status changes" - ], - "signature": [ - "((event: ", - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramChartLoadEvent", - "text": "UnifiedHistogramChartLoadEvent" - }, - ") => void) | undefined" - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onChartLoad.$1", - "type": "Object", - "tags": [], - "label": "event", - "description": [], - "signature": [ - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramChartLoadEvent", - "text": "UnifiedHistogramChartLoadEvent" - } - ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } + "\nThe current time range" ], - "returnComment": [] + "signature": [ + "{ from: string; to: string; mode?: \"absolute\" | \"relative\" | undefined; }" + ], + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onFilter", - "type": "Function", + "id": "def-public.UnifiedHistogramState.topPanelHeight", + "type": "number", "tags": [], - "label": "onFilter", + "label": "topPanelHeight", "description": [ - "\nCallback to pass to the Lens embeddable to handle filter changes" + "\nThe current top panel height" ], "signature": [ - "((data: { data: { table: Pick<", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Datatable", - "text": "Datatable" - }, - ", \"rows\" | \"columns\">; column: number; row: number; value: any; }[]; timeFieldName?: string | undefined; negate?: boolean | undefined; } | { data: { table: Pick<", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Datatable", - "text": "Datatable" - }, - ", \"rows\" | \"columns\">; column: number; value: any[]; }; timeFieldName?: string | undefined; negate?: boolean | undefined; }) => void) | undefined" + "number | undefined" ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramLayoutProps.onBrushEnd", - "type": "Function", + "id": "def-public.UnifiedHistogramState.totalHitsStatus", + "type": "Enum", "tags": [], - "label": "onBrushEnd", + "label": "totalHitsStatus", "description": [ - "\nCallback to pass to the Lens embeddable to handle brush events" + "\nThe current fetch status of the hits count request" ], "signature": [ - "((data: { table: ", { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Datatable", - "text": "Datatable" - }, - "; column: number; range: number[]; timeFieldName?: string | undefined; }) => void) | undefined" + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramFetchStatus", + "text": "UnifiedHistogramFetchStatus" + } ], - "path": "src/plugins/unified_histogram/public/layout/layout.tsx", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramRefetchMessage", - "type": "Interface", - "tags": [], - "label": "UnifiedHistogramRefetchMessage", - "description": [ - "\nMessage to refetch the chart and total hits" - ], - "path": "src/plugins/unified_histogram/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramRefetchMessage.type", - "type": "string", + "id": "def-public.UnifiedHistogramState.totalHitsResult", + "type": "CompoundType", "tags": [], - "label": "type", - "description": [], + "label": "totalHitsResult", + "description": [ + "\nThe current result of the hits count request" + ], "signature": [ - "\"refetch\"" + "number | Error | undefined" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false } @@ -1111,53 +1051,84 @@ }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramRequestContext", + "id": "def-public.UnifiedHistogramStateOptions", "type": "Interface", "tags": [], - "label": "UnifiedHistogramRequestContext", + "label": "UnifiedHistogramStateOptions", "description": [ - "\nContext object for requests made by unified histogram components" + "\nThe options used to initialize the comntainer state" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramRequestContext.searchSessionId", + "id": "def-public.UnifiedHistogramStateOptions.services", + "type": "Object", + "tags": [], + "label": "services", + "description": [ + "\nThe services required by the Unified Histogram components" + ], + "signature": [ + { + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramServices", + "text": "UnifiedHistogramServices" + } + ], + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.UnifiedHistogramStateOptions.localStorageKeyPrefix", "type": "string", "tags": [], - "label": "searchSessionId", + "label": "localStorageKeyPrefix", "description": [ - "\nCurrent search session ID" + "\nThe prefix for the keys used in local storage -- leave undefined to avoid using local storage" ], "signature": [ "string | undefined" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramRequestContext.adapter", - "type": "Object", + "id": "def-public.UnifiedHistogramStateOptions.initialState", + "type": "CompoundType", "tags": [], - "label": "adapter", + "label": "initialState", "description": [ - "\nThe adapter to use for requests (does not apply to Lens requests)" + "\nThe initial state of the container" ], "signature": [ + "Partial<", { - "pluginId": "inspector", - "scope": "common", - "docId": "kibInspectorPluginApi", - "section": "def-common.RequestAdapter", - "text": "RequestAdapter" + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramState", + "text": "UnifiedHistogramState" }, - " | undefined" + "> & Pick<", + { + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramState", + "text": "UnifiedHistogramState" + }, + ", \"dataView\">" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, "trackAdoption": false } @@ -1166,144 +1137,80 @@ }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramServices", + "id": "def-public.UnifiedHistogramUninitializedApi", "type": "Interface", "tags": [], - "label": "UnifiedHistogramServices", + "label": "UnifiedHistogramUninitializedApi", "description": [ - "\nThe services required by the unified histogram components" + "\nThe uninitialized API exposed by the container" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramServices.data", - "type": "Object", + "id": "def-public.UnifiedHistogramUninitializedApi.initialized", + "type": "boolean", "tags": [], - "label": "data", - "description": [], - "signature": [ - { - "pluginId": "data", - "scope": "public", - "docId": "kibDataPluginApi", - "section": "def-public.DataPublicPluginStart", - "text": "DataPublicPluginStart" - } + "label": "initialized", + "description": [ + "\nWhether the container has been initialized" ], - "path": "src/plugins/unified_histogram/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramServices.theme", - "type": "Object", - "tags": [], - "label": "theme", - "description": [], "signature": [ - "{ readonly chartsDefaultTheme: ", - "RecursivePartial", - "<", - "Theme", - ">; readonly chartsDefaultBaseTheme: ", - "Theme", - "; chartsTheme$: ", - "Observable", - "<", - "RecursivePartial", - "<", - "Theme", - ">>; chartsBaseTheme$: ", - "Observable", - "<", - "Theme", - ">; readonly darkModeEnabled$: ", - "Observable", - "; useDarkMode: () => boolean; useChartsTheme: () => ", - "RecursivePartial", - "<", - "Theme", - ">; useChartsBaseTheme: () => ", - "Theme", - "; }" + "false" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramServices.uiSettings", - "type": "Object", + "id": "def-public.UnifiedHistogramUninitializedApi.initialize", + "type": "Function", "tags": [], - "label": "uiSettings", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-ui-settings-browser", - "scope": "common", - "docId": "kibKbnCoreUiSettingsBrowserPluginApi", - "section": "def-common.IUiSettingsClient", - "text": "IUiSettingsClient" - } + "label": "initialize", + "description": [ + "\nInitialize the container" ], - "path": "src/plugins/unified_histogram/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramServices.fieldFormats", - "type": "CompoundType", - "tags": [], - "label": "fieldFormats", - "description": [], "signature": [ - "Omit<", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormatsRegistry", - "text": "FieldFormatsRegistry" - }, - ", \"init\" | \"register\"> & { deserialize: ", + "(options: ", { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FormatFactory", - "text": "FormatFactory" + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramInitializeOptions", + "text": "UnifiedHistogramInitializeOptions" }, - "; }" + ") => void" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramServices.lens", - "type": "Object", - "tags": [], - "label": "lens", - "description": [], - "signature": [ + "trackAdoption": false, + "children": [ { - "pluginId": "lens", - "scope": "public", - "docId": "kibLensPluginApi", - "section": "def-public.LensPublicStart", - "text": "LensPublicStart" + "parentPluginId": "unifiedHistogram", + "id": "def-public.UnifiedHistogramUninitializedApi.initialize.$1", + "type": "CompoundType", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramInitializeOptions", + "text": "UnifiedHistogramInitializeOptions" + } + ], + "path": "src/plugins/unified_histogram/public/container/container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], - "path": "src/plugins/unified_histogram/public/types.ts", - "deprecated": false, - "trackAdoption": false + "returnComment": [] } ], "initialIsOpen": false @@ -1317,7 +1224,7 @@ "tags": [], "label": "UnifiedHistogramFetchStatus", "description": [ - "\nThe fetch status of a unified histogram request" + "\nThe fetch status of a Unified Histogram request" ], "path": "src/plugins/unified_histogram/public/types.ts", "deprecated": false, @@ -1332,7 +1239,9 @@ "type": "Type", "tags": [], "label": "UnifiedHistogramAdapters", - "description": [], + "description": [ + "\nThe adapters passed up from Lens" + ], "signature": [ "{ requests?: ", { @@ -1367,49 +1276,91 @@ }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramInput$", + "id": "def-public.UnifiedHistogramApi", "type": "Type", "tags": [], - "label": "UnifiedHistogramInput$", + "label": "UnifiedHistogramApi", "description": [ - "\nUnified histogram input observable" + "\nThe API exposed by the container" ], "signature": [ - "Subject", - "<", { "pluginId": "unifiedHistogram", "scope": "public", "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramRefetchMessage", - "text": "UnifiedHistogramRefetchMessage" + "section": "def-public.UnifiedHistogramUninitializedApi", + "text": "UnifiedHistogramUninitializedApi" }, - ">" + " | ", + { + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramInitializedApi", + "text": "UnifiedHistogramInitializedApi" + } ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/container.tsx", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.UnifiedHistogramContainerProps", + "type": "Type", + "tags": [], + "label": "UnifiedHistogramContainerProps", + "description": [ + "\nThe props exposed by the container" + ], + "signature": [ + "{ children?: React.ReactNode; className?: string | undefined; resizeRef: React.RefObject; appendHitsCounter?: React.ReactElement> | undefined; }" + ], + "path": "src/plugins/unified_histogram/public/container/container.tsx", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "unifiedHistogram", + "id": "def-public.UnifiedHistogramInitializedApi", + "type": "Type", + "tags": [], + "label": "UnifiedHistogramInitializedApi", + "description": [ + "\nThe initialized API exposed by the container" + ], + "signature": [ + "{ initialized: true; refetch: () => void; } & Pick<", + "UnifiedHistogramStateService", + ", \"state$\" | \"setChartHidden\" | \"setTopPanelHeight\" | \"setBreakdownField\" | \"setTimeInterval\" | \"setRequestParams\" | \"setTotalHits\">" + ], + "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, "trackAdoption": false, "initialIsOpen": false }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramInputMessage", + "id": "def-public.UnifiedHistogramInitializeOptions", "type": "Type", "tags": [], - "label": "UnifiedHistogramInputMessage", + "label": "UnifiedHistogramInitializeOptions", "description": [ - "\nUnified histogram input message" + "\nThe options used to initialize the container" ], "signature": [ { "pluginId": "unifiedHistogram", "scope": "public", "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramRefetchMessage", - "text": "UnifiedHistogramRefetchMessage" - } + "section": "def-public.UnifiedHistogramStateOptions", + "text": "UnifiedHistogramStateOptions" + }, + " & Omit" ], - "path": "src/plugins/unified_histogram/public/types.ts", + "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index 0584a881ef4d63..c86401ad8ca9d9 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display. -Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. +Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 63 | 0 | 16 | 1 | +| 61 | 0 | 23 | 1 | ## Client diff --git a/api_docs/unified_search.devdocs.json b/api_docs/unified_search.devdocs.json index 548b3ef9d857d1..fb9811aaea2062 100644 --- a/api_docs/unified_search.devdocs.json +++ b/api_docs/unified_search.devdocs.json @@ -359,7 +359,7 @@ "label": "props", "description": [], "signature": [ - "{ query?: ", + "{ placeholder?: string | undefined; query?: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -367,7 +367,9 @@ "section": "def-common.Query", "text": "Query" }, - " | QT | undefined; dataTestSubj?: string | undefined; filters?: ", + " | QT | undefined; refreshInterval?: number | undefined; iconType?: ", + "IconType", + " | undefined; filters?: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -375,9 +377,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined; placeholder?: string | undefined; refreshInterval?: number | undefined; iconType?: ", - "IconType", - " | undefined; indexPatterns?: ", + "[] | undefined; dataTestSubj?: string | undefined; indexPatterns?: ", { "pluginId": "dataViews", "scope": "common", @@ -469,7 +469,7 @@ }, " | undefined; textBasedLanguageModeErrors?: Error[] | undefined; onTextBasedSavedAndExit?: (({ onSave }: ", "OnSaveTextLanguageQueryProps", - ") => void) | undefined; showSubmitButton?: boolean | undefined; submitButtonStyle?: \"auto\" | \"full\" | \"iconOnly\" | undefined; suggestionsSize?: ", + ") => void) | undefined; showSubmitButton?: boolean | undefined; submitButtonStyle?: \"full\" | \"auto\" | \"iconOnly\" | undefined; suggestionsSize?: ", "SuggestionsListSize", " | undefined; isScreenshotMode?: boolean | undefined; onFiltersUpdated?: ((filters: ", { @@ -2184,7 +2184,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; valueSuggestions: Readonly<{} & { timeout: moment.Duration; enabled: boolean; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>" + "; valueSuggestions: Readonly<{} & { enabled: boolean; timeout: moment.Duration; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>" ], "path": "src/plugins/unified_search/server/plugin.ts", "deprecated": false, @@ -2276,9 +2276,9 @@ }, ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: ", "ByteSizeValueUnit", - " | undefined) => string; }>; }>; }>; }; create: ; valueSuggestions: Readonly<{} & { timeout: moment.Duration; enabled: boolean; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>() => ", + " | undefined) => string; }>; }>; }>; }; create: ; valueSuggestions: Readonly<{} & { enabled: boolean; timeout: moment.Duration; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>() => ", "Observable", - "; get: ; valueSuggestions: Readonly<{} & { timeout: moment.Duration; enabled: boolean; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>() => T; }; }; }" + "; get: ; valueSuggestions: Readonly<{} & { enabled: boolean; timeout: moment.Duration; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>() => T; }; }; }" ], "path": "src/plugins/unified_search/server/plugin.ts", "deprecated": false, @@ -2509,9 +2509,9 @@ }, ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: ", "ByteSizeValueUnit", - " | undefined) => string; }>; }>; }>; }; create: ; valueSuggestions: Readonly<{} & { timeout: moment.Duration; enabled: boolean; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>() => ", + " | undefined) => string; }>; }>; }>; }; create: ; valueSuggestions: Readonly<{} & { enabled: boolean; timeout: moment.Duration; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>() => ", "Observable", - "; get: ; valueSuggestions: Readonly<{} & { timeout: moment.Duration; enabled: boolean; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>() => T; }; }" + "; get: ; valueSuggestions: Readonly<{} & { enabled: boolean; timeout: moment.Duration; tiers: string[]; terminateAfter: moment.Duration; }>; }>; }>>() => T; }; }" ], "path": "src/plugins/unified_search/server/plugin.ts", "deprecated": false, diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index ae2ce4418fe103..696c4df1f8b4da 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. -Contact [Visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index 9c5bfde3ca1605..7b199daf55c4ad 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. -Contact [Visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 8c9218fe7bc616..0a6d8d84fb1612 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/usage_collection.devdocs.json b/api_docs/usage_collection.devdocs.json index 1c0052d9351c74..2cfbf801d371e3 100644 --- a/api_docs/usage_collection.devdocs.json +++ b/api_docs/usage_collection.devdocs.json @@ -345,7 +345,59 @@ "\nRequest-scoped Elasticsearch client" ], "signature": [ - "{ name: string | symbol; get: { (this: That, params: ", + "{ create: { (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "CreateRequest", + " | ", + "CreateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; update: { (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "UpdateResponse", + ">; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "UpdateResponse", + ", unknown>>; (this: That, params: ", + "UpdateRequest", + " | ", + "UpdateRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "UpdateResponse", + ">; }; get: { (this: That, params: ", "GetRequest", " | ", "GetRequest", @@ -397,9 +449,7 @@ "TransportRequestOptions", " | undefined): Promise<", "WriteResponseBase", - ">; }; cluster: ", - "default", - "; eql: ", + ">; }; helpers: ", "default", "; search: { >; }; create: { (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + ">; }; name: string | symbol; monitoring: ", + "default", + "; count: { (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ">; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "CreateRequest", - " | ", - "CreateRequest", - ", options?: ", + "CountResponse", + ", unknown>>; (this: That, params?: ", + "CountRequest", + " | ", + "CountRequest", + " | undefined, options?: ", "TransportRequestOptions", " | undefined): Promise<", - "WriteResponseBase", - ">; }; monitoring: ", - "default", - "; security: ", - "default", - "; index: { (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + "CountResponse", + ">; }; exists: { (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "WriteResponseBase", - ">; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + " | undefined): Promise; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "WriteResponseBase", - ", unknown>>; (this: That, params: ", - "IndexRequest", - " | ", - "IndexRequest", - ", options?: ", + ">; (this: That, params: ", + "ExistsRequest", + " | ", + "ExistsRequest", + ", options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "WriteResponseBase", - ">; }; update: { (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; }; security: ", + "default", + "; ping: { (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "UpdateResponse", - ">; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + " | undefined): Promise; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptionsWithMeta", " | undefined): Promise<", "TransportResult", - "<", - "UpdateResponse", - ", unknown>>; (this: That, params: ", - "UpdateRequest", - " | ", - "UpdateRequest", - ", options?: ", + ">; (this: That, params?: ", + "PingRequest", + " | ", + "PingRequest", + " | undefined, options?: ", "TransportRequestOptions", - " | undefined): Promise<", - "UpdateResponse", - ">; }; asyncSearch: ", + " | undefined): Promise; }; nodes: ", "default", - "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", + "; indices: ", "default", - "; helpers: ", + "; [kAsyncSearch]: symbol | null; [kAutoscaling]: symbol | null; [kCat]: symbol | null; [kCcr]: symbol | null; [kCluster]: symbol | null; [kDanglingIndices]: symbol | null; [kEnrich]: symbol | null; [kEql]: symbol | null; [kFeatures]: symbol | null; [kFleet]: symbol | null; [kGraph]: symbol | null; [kIlm]: symbol | null; [kIndices]: symbol | null; [kIngest]: symbol | null; [kLicense]: symbol | null; [kLogstash]: symbol | null; [kMigration]: symbol | null; [kMl]: symbol | null; [kMonitoring]: symbol | null; [kNodes]: symbol | null; [kRollup]: symbol | null; [kSearchableSnapshots]: symbol | null; [kSecurity]: symbol | null; [kShutdown]: symbol | null; [kSlm]: symbol | null; [kSnapshot]: symbol | null; [kSql]: symbol | null; [kSsl]: symbol | null; [kTasks]: symbol | null; [kTextStructure]: symbol | null; [kTransform]: symbol | null; [kWatcher]: symbol | null; [kXpack]: symbol | null; transport: ", "default", "; child: (opts: ", "ClientOptions", ") => ", "default", + "; asyncSearch: ", + "default", "; autoscaling: ", "default", "; bulk: { (this: That, params: ", @@ -609,33 +649,9 @@ "TransportRequestOptions", " | undefined): Promise<", "ClosePointInTimeResponse", - ">; }; count: { (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise<", - "CountResponse", - ">; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - "<", - "CountResponse", - ", unknown>>; (this: That, params?: ", - "CountRequest", - " | ", - "CountRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise<", - "CountResponse", - ">; }; danglingIndices: ", + ">; }; cluster: ", + "default", + "; danglingIndices: ", "default", "; deleteByQuery: { (this: That, params: ", "DeleteByQueryRequest", @@ -717,27 +733,9 @@ "AcknowledgedResponseBase", ">; }; enrich: ", "default", - "; exists: { (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params: ", - "ExistsRequest", - " | ", - "ExistsRequest", - ", options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; existsSource: { (this: That, params: ", + "; eql: ", + "default", + "; existsSource: { (this: That, params: ", "ExistsSourceRequest", " | ", "ExistsSourceRequest", @@ -915,9 +913,33 @@ "default", "; ilm: ", "default", - "; indices: ", - "default", - "; info: { (this: That, params?: ", + "; index: { (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithOutMeta", + " | undefined): Promise<", + "WriteResponseBase", + ">; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptionsWithMeta", + " | undefined): Promise<", + "TransportResult", + "<", + "WriteResponseBase", + ", unknown>>; (this: That, params: ", + "IndexRequest", + " | ", + "IndexRequest", + ", options?: ", + "TransportRequestOptions", + " | undefined): Promise<", + "WriteResponseBase", + ">; }; info: { (this: That, params?: ", "InfoRequest", " | ", "InfoRequest", @@ -1095,9 +1117,7 @@ "TransportRequestOptions", " | undefined): Promise<", "MtermvectorsResponse", - ">; }; nodes: ", - "default", - "; openPointInTime: { (this: That, params: ", + ">; }; openPointInTime: { (this: That, params: ", "OpenPointInTimeRequest", " | ", "OpenPointInTimeRequest", @@ -1123,27 +1143,7 @@ "TransportRequestOptions", " | undefined): Promise<", "OpenPointInTimeResponse", - ">; }; ping: { (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithOutMeta", - " | undefined): Promise; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptionsWithMeta", - " | undefined): Promise<", - "TransportResult", - ">; (this: That, params?: ", - "PingRequest", - " | ", - "PingRequest", - " | undefined, options?: ", - "TransportRequestOptions", - " | undefined): Promise; }; putScript: { (this: That, params: ", + ">; }; putScript: { (this: That, params: ", "PutScriptRequest", " | ", "PutScriptRequest", @@ -1904,7 +1904,7 @@ "\nPossible type values in the schema" ], "signature": [ - "\"boolean\" | \"date\" | \"keyword\" | \"text\" | \"long\" | \"double\" | \"short\" | \"byte\" | \"float\" | \"integer\"" + "\"boolean\" | \"keyword\" | \"text\" | \"date\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"double\"" ], "path": "packages/analytics/client/src/schema/types.ts", "deprecated": false, diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index b7a6bfb2351a5f..b8c1df917e4525 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; -Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index f1525d92c8b3be..aeef2a67946c4b 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; -Contact [Uptime](https://github.com/orgs/elastic/teams/uptime) for questions regarding this plugin. +Contact [@elastic/uptime](https://github.com/orgs/elastic/teams/uptime) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_default_editor.devdocs.json b/api_docs/vis_default_editor.devdocs.json index 95a54f8628f992..642b44406b3cdc 100644 --- a/api_docs/vis_default_editor.devdocs.json +++ b/api_docs/vis_default_editor.devdocs.json @@ -325,7 +325,7 @@ "section": "def-public.DefaultEditorSize", "text": "DefaultEditorSize" }, - ") => 15 | 30 | 50" + ") => 50 | 30 | 15" ], "path": "src/plugins/vis_default_editor/public/editor_size.ts", "deprecated": false, diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index ea0faa7f2d8fcb..c3502c7353208d 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; The default editor used in most aggregation-based visualizations. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index 794f376d146b49..9930a56bd215db 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; Contains the gauge chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index 50f066641d4c49..7770d0f3e83304 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; Contains the heatmap implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy heatmap charts library advanced setting. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index 42024a5dd50595..7071fb3d24df6a 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; Contains the pie chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index ffbe9f763bb511..158807dd36ed93 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; Registers the datatable aggregation-based visualization. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 93fb35c35748be..f4f26ac22e1544 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; Registers the timelion visualization. Also contains the backend for both timelion app and timelion visualization. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index f8282c310fad28..67cb9a798572a9 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; Registers the TSVB visualization. TSVB has its one editor, works with index patterns and index strings and contains 6 types of charts: timeseries, topN, table. markdown, metric and gauge. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index 713f69371f5439..0a21bcaafb60bb 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; Registers the vega visualization. Is the elastic version of vega and vega-lite libraries. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_vislib.devdocs.json b/api_docs/vis_type_vislib.devdocs.json index 780de832a2be4b..75bcffa4c871c2 100644 --- a/api_docs/vis_type_vislib.devdocs.json +++ b/api_docs/vis_type_vislib.devdocs.json @@ -40,7 +40,7 @@ "label": "type", "description": [], "signature": [ - "\"metric\" | \"goal\" | \"gauge\" | \"heatmap\"" + "\"metric\" | \"goal\" | \"heatmap\" | \"gauge\"" ], "path": "src/plugins/vis_types/vislib/public/types.ts", "deprecated": false, @@ -289,7 +289,7 @@ "label": "legendPosition", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/vis_types/vislib/public/types.ts", "deprecated": false, @@ -359,7 +359,7 @@ "label": "VislibChartType", "description": [], "signature": [ - "\"metric\" | \"goal\" | \"gauge\" | \"heatmap\"" + "\"metric\" | \"goal\" | \"heatmap\" | \"gauge\"" ], "path": "src/plugins/vis_types/vislib/public/types.ts", "deprecated": false, diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index 261d9ffd9826e5..dfe7bd4df1ff30 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; Contains the vislib visualizations. These are the classical area/line/bar, gauge/goal and heatmap charts. We want to replace them with elastic-charts. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/vis_type_xy.devdocs.json b/api_docs/vis_type_xy.devdocs.json index a5f6c00f3d34ae..d8365a2b6aa756 100644 --- a/api_docs/vis_type_xy.devdocs.json +++ b/api_docs/vis_type_xy.devdocs.json @@ -132,7 +132,7 @@ "label": "position", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/vis_types/xy/public/types/param.ts", "deprecated": false, diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index abc70d94f5702d..5550941a6c350a 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; Contains the new xy-axis chart using the elastic-charts library, which will eventually replace the vislib xy-axis charts including bar, area, and line. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/visualizations.devdocs.json b/api_docs/visualizations.devdocs.json index 38da839544f5dd..b987bb993d0c0c 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -202,7 +202,7 @@ "label": "stage", "description": [], "signature": [ - "\"beta\" | \"experimental\" | \"production\"" + "\"experimental\" | \"beta\" | \"production\"" ], "path": "src/plugins/visualizations/public/vis_types/base_vis_type.ts", "deprecated": false, @@ -4500,7 +4500,7 @@ "label": "stage", "description": [], "signature": [ - "\"beta\" | \"experimental\" | \"production\"" + "\"experimental\" | \"beta\" | \"production\"" ], "path": "src/plugins/visualizations/public/vis_types/vis_type_alias_registry.ts", "deprecated": false, @@ -4966,7 +4966,7 @@ "\nDescribes the visualization stage" ], "signature": [ - "\"beta\" | \"experimental\" | \"production\" | undefined" + "\"experimental\" | \"beta\" | \"production\" | undefined" ], "path": "src/plugins/visualizations/public/vis_types/types.ts", "deprecated": false, @@ -5545,7 +5545,7 @@ "label": "stage", "description": [], "signature": [ - "\"beta\" | \"experimental\" | \"production\"" + "\"experimental\" | \"beta\" | \"production\"" ], "path": "src/plugins/visualizations/public/vis_types/vis_type_alias_registry.ts", "deprecated": false, @@ -6236,7 +6236,7 @@ "label": "VisualizationStage", "description": [], "signature": [ - "\"beta\" | \"experimental\" | \"production\"" + "\"experimental\" | \"beta\" | \"production\"" ], "path": "src/plugins/visualizations/public/vis_types/vis_type_alias_registry.ts", "deprecated": false, @@ -6296,15 +6296,7 @@ "label": "VisualizeEmbeddableContract", "description": [], "signature": [ - "{ readonly type: \"visualization\"; render: (domNode: HTMLElement) => Promise; readonly id: string; getExplicitInput: () => ", - { - "pluginId": "visualizations", - "scope": "public", - "docId": "kibVisualizationsPluginApi", - "section": "def-public.VisualizeInput", - "text": "VisualizeInput" - }, - "; getDescription: () => string; reload: () => Promise; destroy: () => void; readonly parent?: ", + "{ readonly type: \"visualization\"; readonly id: string; readonly parent?: ", { "pluginId": "embeddable", "scope": "public", @@ -6328,7 +6320,15 @@ "section": "def-public.ContainerOutput", "text": "ContainerOutput" }, - "> | undefined; getQuery: () => Promise<", + "> | undefined; getExplicitInput: () => ", + { + "pluginId": "visualizations", + "scope": "public", + "docId": "kibVisualizationsPluginApi", + "section": "def-public.VisualizeInput", + "text": "VisualizeInput" + }, + "; getDescription: () => string; reload: () => Promise; destroy: () => void; getQuery: () => Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6352,7 +6352,7 @@ "section": "def-public.VisualizeInput", "text": "VisualizeInput" }, - ">) => void; reportsEmbeddableLoad: () => boolean; getVis: () => ", + ">) => void; render: (domNode: HTMLElement) => Promise; reportsEmbeddableLoad: () => boolean; getVis: () => ", { "pluginId": "visualizations", "scope": "public", @@ -6565,55 +6565,7 @@ "label": "VisualizeEmbeddableFactoryContract", "description": [], "signature": [ - "{ readonly type: \"visualization\"; inject: (_state: ", - { - "pluginId": "embeddable", - "scope": "common", - "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableStateWithType", - "text": "EmbeddableStateWithType" - }, - ", references: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[]) => ", - { - "pluginId": "embeddable", - "scope": "common", - "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableStateWithType", - "text": "EmbeddableStateWithType" - }, - "; extract: (_state: ", - { - "pluginId": "embeddable", - "scope": "common", - "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableStateWithType", - "text": "EmbeddableStateWithType" - }, - ") => { state: ", - { - "pluginId": "embeddable", - "scope": "common", - "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableStateWithType", - "text": "EmbeddableStateWithType" - }, - "; references: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[]; }; create: (input: ", + "{ create: (input: ", { "pluginId": "visualizations", "scope": "public", @@ -6679,7 +6631,55 @@ }, " | ", "DisabledLabEmbeddable", - " | undefined>; isEditable: () => Promise; getDisplayName: () => any; createFromSavedObject: (savedObjectId: string, input: Partial<", + " | undefined>; readonly type: \"visualization\"; inject: (_state: ", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableStateWithType", + "text": "EmbeddableStateWithType" + }, + ", references: ", + { + "pluginId": "@kbn/core-saved-objects-common", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsCommonPluginApi", + "section": "def-common.SavedObjectReference", + "text": "SavedObjectReference" + }, + "[]) => ", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableStateWithType", + "text": "EmbeddableStateWithType" + }, + "; extract: (_state: ", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableStateWithType", + "text": "EmbeddableStateWithType" + }, + ") => { state: ", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableStateWithType", + "text": "EmbeddableStateWithType" + }, + "; references: ", + { + "pluginId": "@kbn/core-saved-objects-common", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsCommonPluginApi", + "section": "def-common.SavedObjectReference", + "text": "SavedObjectReference" + }, + "[]; }; isEditable: () => Promise; getDisplayName: () => any; createFromSavedObject: (savedObjectId: string, input: Partial<", { "pluginId": "visualizations", "scope": "public", @@ -8355,7 +8355,7 @@ "label": "mode", "description": [], "signature": [ - "\"custom\" | \"full\" | \"dataBounds\"" + "\"full\" | \"custom\" | \"dataBounds\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -8496,7 +8496,7 @@ "label": "dataType", "description": [], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"date\" | \"document\" | \"ip\" | \"geo_point\" | \"geo_shape\" | \"murmur3\" | \"histogram\"" + "\"string\" | \"number\" | \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"date\" | \"murmur3\" | \"histogram\" | \"document\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/columns.ts", "deprecated": false, @@ -8686,7 +8686,7 @@ "label": "summaryRow", "description": [], "signature": [ - "\"min\" | \"none\" | \"max\" | \"count\" | \"sum\" | \"avg\" | undefined" + "\"min\" | \"max\" | \"sum\" | \"avg\" | \"none\" | \"count\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -8700,7 +8700,7 @@ "label": "alignment", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -9842,7 +9842,7 @@ "label": "position", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -10118,7 +10118,7 @@ "label": "position", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -10160,7 +10160,7 @@ "label": "horizontalAlignment", "description": [], "signature": [ - "\"left\" | \"right\" | undefined" + "\"right\" | \"left\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -10761,7 +10761,7 @@ "label": "layerType", "description": [], "signature": [ - "\"data\" | \"referenceLine\" | \"annotations\"" + "\"data\" | \"annotations\" | \"referenceLine\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -10831,7 +10831,7 @@ "label": "numberDisplay", "description": [], "signature": [ - "\"value\" | \"percent\" | \"hidden\"" + "\"value\" | \"hidden\" | \"percent\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -11231,7 +11231,7 @@ "label": "type", "description": [], "signature": [ - "\"range\" | \"histogram\"" + "\"histogram\" | \"range\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/params.ts", "deprecated": false, @@ -11607,7 +11607,7 @@ "label": "direction", "description": [], "signature": [ - "\"none\" | \"asc\" | \"desc\"" + "\"asc\" | \"desc\" | \"none\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -11747,7 +11747,7 @@ "label": "rowHeight", "description": [], "signature": [ - "\"auto\" | \"custom\" | \"single\" | undefined" + "\"custom\" | \"auto\" | \"single\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -11761,7 +11761,7 @@ "label": "headerRowHeight", "description": [], "signature": [ - "\"auto\" | \"custom\" | \"single\" | undefined" + "\"custom\" | \"auto\" | \"single\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -12335,7 +12335,7 @@ "label": "fittingFunction", "description": [], "signature": [ - "\"None\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\" | \"Average\" | undefined" + "\"None\" | \"Average\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -12503,7 +12503,7 @@ "label": "yLeftScale", "description": [], "signature": [ - "\"linear\" | \"log\" | \"time\" | \"sqrt\" | undefined" + "\"log\" | \"time\" | \"sqrt\" | \"linear\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -12517,7 +12517,7 @@ "label": "yRightScale", "description": [], "signature": [ - "\"linear\" | \"log\" | \"time\" | \"sqrt\" | undefined" + "\"log\" | \"time\" | \"sqrt\" | \"linear\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -12745,7 +12745,7 @@ "label": "seriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" + "\"area\" | \"line\" | \"bar\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -12857,7 +12857,7 @@ "label": "xScaleType", "description": [], "signature": [ - "\"linear\" | \"time\" | \"ordinal\" | undefined" + "\"time\" | \"linear\" | \"ordinal\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -13075,7 +13075,7 @@ "label": "iconPosition", "description": [], "signature": [ - "\"above\" | \"below\" | \"auto\" | \"left\" | \"right\" | undefined" + "\"right\" | \"left\" | \"above\" | \"below\" | \"auto\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -13782,7 +13782,7 @@ "label": "DataType", "description": [], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"date\" | \"document\" | \"ip\" | \"geo_point\" | \"geo_shape\" | \"murmur3\" | \"histogram\"" + "\"string\" | \"number\" | \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"date\" | \"murmur3\" | \"histogram\" | \"document\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/common.ts", "deprecated": false, @@ -14008,7 +14008,7 @@ "label": "FillType", "description": [], "signature": [ - "\"above\" | \"below\" | \"none\"" + "\"none\" | \"above\" | \"below\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14083,7 +14083,7 @@ "label": "GaugeCentralMajorMode", "description": [], "signature": [ - "\"none\" | \"auto\" | \"custom\"" + "\"none\" | \"custom\" | \"auto\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14113,7 +14113,7 @@ "label": "GaugeLabelMajorMode", "description": [], "signature": [ - "\"none\" | \"auto\" | \"custom\"" + "\"none\" | \"custom\" | \"auto\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14128,7 +14128,7 @@ "label": "GaugeShape", "description": [], "signature": [ - "\"horizontalBullet\" | \"verticalBullet\" | \"arc\" | \"circle\"" + "\"arc\" | \"circle\" | \"horizontalBullet\" | \"verticalBullet\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14143,7 +14143,7 @@ "label": "GaugeTicksPosition", "description": [], "signature": [ - "\"auto\" | \"hidden\" | \"bands\"" + "\"hidden\" | \"auto\" | \"bands\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14286,7 +14286,7 @@ "label": "LayerType", "description": [], "signature": [ - "\"data\" | \"referenceLine\" | \"annotations\"" + "\"data\" | \"annotations\" | \"referenceLine\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14514,7 +14514,7 @@ "label": "NumberDisplayType", "description": [], "signature": [ - "\"value\" | \"percent\" | \"hidden\"" + "\"value\" | \"hidden\" | \"percent\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14529,7 +14529,7 @@ "label": "Operation", "description": [], "signature": [ - "\"range\" | \"min\" | \"max\" | \"filters\" | \"count\" | \"date_histogram\" | \"percentile\" | \"sum\" | \"average\" | \"terms\" | \"median\" | \"cumulative_sum\" | \"moving_average\" | \"counter_rate\" | \"differences\" | \"formula\" | \"static_value\" | \"standard_deviation\" | \"unique_count\" | \"percentile_rank\" | \"last_value\" | \"normalize_by_unit\"" + "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"cumulative_sum\" | \"date_histogram\" | \"filters\" | \"terms\" | \"percentile\" | \"average\" | \"moving_average\" | \"unique_count\" | \"standard_deviation\" | \"percentile_rank\" | \"last_value\" | \"counter_rate\" | \"differences\" | \"formula\" | \"static_value\" | \"normalize_by_unit\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/operations.ts", "deprecated": false, @@ -14559,7 +14559,7 @@ "label": "OperationWithSourceField", "description": [], "signature": [ - "\"range\" | \"min\" | \"max\" | \"filters\" | \"count\" | \"date_histogram\" | \"percentile\" | \"sum\" | \"average\" | \"terms\" | \"median\" | \"standard_deviation\" | \"unique_count\" | \"percentile_rank\" | \"last_value\"" + "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"date_histogram\" | \"filters\" | \"terms\" | \"percentile\" | \"average\" | \"unique_count\" | \"standard_deviation\" | \"percentile_rank\" | \"last_value\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/operations.ts", "deprecated": false, @@ -14767,7 +14767,7 @@ "label": "RangeMode", "description": [], "signature": [ - "\"range\" | \"histogram\"" + "\"histogram\" | \"range\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/params.ts", "deprecated": false, @@ -14828,7 +14828,7 @@ "label": "SeriesType", "description": [], "signature": [ - "\"bar\" | \"line\" | \"area\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" + "\"area\" | \"line\" | \"bar\" | \"bar_stacked\" | \"area_stacked\" | \"bar_horizontal\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"area_percentage_stacked\" | \"bar_horizontal_percentage_stacked\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -15049,7 +15049,7 @@ "label": "TimeScaleUnit", "description": [], "signature": [ - "\"d\" | \"h\" | \"m\" | \"s\"" + "\"m\" | \"s\" | \"d\" | \"h\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/common.ts", "deprecated": false, @@ -15116,7 +15116,7 @@ "label": "YAxisMode", "description": [], "signature": [ - "\"auto\" | \"bottom\" | \"left\" | \"right\"" + "\"right\" | \"left\" | \"bottom\" | \"auto\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 53dc8f9854f28e..6cceb9bcfe2c52 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-02-06 +date: 2023-02-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; Contains the shared architecture among all the legacy visualizations, e.g. the visualization type registry or the visualization embeddable. -Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. **Code health stats** diff --git a/config/README.md b/config/README.md new file mode 100644 index 00000000000000..b5cad71cb0813e --- /dev/null +++ b/config/README.md @@ -0,0 +1,13 @@ +as work on serverless picks up we will add config values to these files that +define how Kibana will run in "serverless" modes. To start Kibana locally with +this configuration, pass `--serverless={mode}` or run `yarn serverless-{mode}` + +valid modes are currently: `es`, `oblt`, and `security` + +configuration is applied in the following order, later values override + 1. kibana.yml + 2. serverless.yml + 3. serverless.{mode}.yml + 4. kibana.dev.yml + 5. serverless.dev.yml + 6. serverless.{mode}.dev.yml diff --git a/config/kibana.serverless.yml b/config/kibana.serverless.yml deleted file mode 100644 index e5c235f1ab8725..00000000000000 --- a/config/kibana.serverless.yml +++ /dev/null @@ -1,9 +0,0 @@ -# as work on serverless picks up we will add config values to this file that -# define how Kibana will run in "serverless" mode. To start Kibana locally with -# this configuration, pass `--serverless` or run `yarn start-serverless` - -# configuration is applied in the following order, later values override -# 1. kibana.yml -# 2. kibana.serverless.yml (when --serverless is passed) -# 3. kibana.dev.yml -# 4. kibana.serverless.dev.yml (when --serverless is passed) diff --git a/config/serverless.es.yml b/config/serverless.es.yml new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/config/serverless.oblt.yml b/config/serverless.oblt.yml new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/config/serverless.security.yml b/config/serverless.security.yml new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/config/serverless.yml b/config/serverless.yml new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/dev_docs/api_welcome.mdx b/dev_docs/api_welcome.mdx index 43fac7407989d1..4295c4453ea53e 100644 --- a/dev_docs/api_welcome.mdx +++ b/dev_docs/api_welcome.mdx @@ -67,7 +67,7 @@ If that isn't the case, please file an issue, it could be a bug with the system. We are [aware of some performance issues](https://github.com/elastic/elastic-docs/issues/274) with deeply nested, or large APIs. In the short term, the best thing you can do is avoid deeply nested API items. Use interfaces rather than inlined objects. Also consider -adding `serviceFolders` in your kibana.json. This will automatically split your docs up based on which APIs are defined within the service folders. +adding `serviceFolders` in your kibana.jsonc. This will automatically split your docs up based on which APIs are defined within the service folders. They will get built into a doc with an id of `kib${PluginName}${ServiceName}PluginApi`. The data plugin does this, so you can [check that out as an example](https://github.com/elastic/kibana/blob/main/src/plugins/data/kibana.json#L13). diff --git a/dev_docs/operations/operations_landing.mdx b/dev_docs/operations/operations_landing.mdx index 702313906c9e24..37a240a599d2e6 100644 --- a/dev_docs/operations/operations_landing.mdx +++ b/dev_docs/operations/operations_landing.mdx @@ -36,7 +36,6 @@ layout: landing { pageId: "kibDevDocsOpsKbnPm" }, { pageId: "kibDevDocsOpsOptimizer" }, { pageId: "kibDevDocsOpsBabelPreset" }, - { pageId: "kibDevDocsOpsBabelPluginPackageImports" }, { pageId: "kibDevDocsOpsUiSharedDepsNpm" }, { pageId: "kibDevDocsOpsUiSharedDepsSrc" }, { pageId: "kibDevDocsOpsPluginDiscovery" }, diff --git a/docs/api-generated/rules/rule-apis-passthru.asciidoc b/docs/api-generated/rules/rule-apis-passthru.asciidoc index 0626e0e43a8bda..12515fba838ee2 100644 --- a/docs/api-generated/rules/rule-apis-passthru.asciidoc +++ b/docs/api-generated/rules/rule-apis-passthru.asciidoc @@ -119,6 +119,7 @@ Any modifications made to this file will be overwritten. "muted_alert_ids" : [ "muted_alert_ids", "muted_alert_ids" ], "rule_type_id" : "monitoring_alert_cluster_health", "tags" : [ "tags", "tags" ], + "running" : true, "api_key_owner" : "elastic", "schedule" : { "interval" : "1m" @@ -141,12 +142,24 @@ Any modifications made to this file will be overwritten. "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" }, { "id" : "9dca3e00-74f5-11ed-9801-35303b735aef", "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" } ], "consumer" : "alerts" @@ -402,6 +415,7 @@ Any modifications made to this file will be overwritten. "muted_alert_ids" : [ "muted_alert_ids", "muted_alert_ids" ], "rule_type_id" : "monitoring_alert_cluster_health", "tags" : [ "tags", "tags" ], + "running" : true, "api_key_owner" : "elastic", "schedule" : { "interval" : "1m" @@ -424,12 +438,24 @@ Any modifications made to this file will be overwritten. "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" }, { "id" : "9dca3e00-74f5-11ed-9801-35303b735aef", "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" } ], "consumer" : "alerts" @@ -455,6 +481,7 @@ Any modifications made to this file will be overwritten. "muted_alert_ids" : [ "muted_alert_ids", "muted_alert_ids" ], "rule_type_id" : "monitoring_alert_cluster_health", "tags" : [ "tags", "tags" ], + "running" : true, "api_key_owner" : "elastic", "schedule" : { "interval" : "1m" @@ -477,12 +504,24 @@ Any modifications made to this file will be overwritten. "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" }, { "id" : "9dca3e00-74f5-11ed-9801-35303b735aef", "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" } ], "consumer" : "alerts" @@ -638,6 +677,7 @@ Any modifications made to this file will be overwritten. "muted_alert_ids" : [ "muted_alert_ids", "muted_alert_ids" ], "rule_type_id" : "monitoring_alert_cluster_health", "tags" : [ "tags", "tags" ], + "running" : true, "api_key_owner" : "elastic", "schedule" : { "interval" : "1m" @@ -660,12 +700,24 @@ Any modifications made to this file will be overwritten. "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" }, { "id" : "9dca3e00-74f5-11ed-9801-35303b735aef", "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" } ], "consumer" : "alerts" @@ -1983,6 +2035,7 @@ Any modifications made to this file will be overwritten. "muted_alert_ids" : [ "muted_alert_ids", "muted_alert_ids" ], "rule_type_id" : "monitoring_alert_cluster_health", "tags" : [ "tags", "tags" ], + "running" : true, "api_key_owner" : "elastic", "schedule" : { "interval" : "1m" @@ -2005,12 +2058,24 @@ Any modifications made to this file will be overwritten. "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" }, { "id" : "9dca3e00-74f5-11ed-9801-35303b735aef", "params" : { "key" : "" }, + "connector_type_id" : ".server-log", + "frequency" : { + "summary" : true, + "throttle" : "10m", + "notify_when" : "onActiveAlert" + }, "group" : "default" } ], "consumer" : "alerts" @@ -2049,6 +2114,7 @@ Any modifications made to this file will be overwritten.
  • Legacy_update_alert_request_properties_actions_inner -
  • Legacy_update_alert_request_properties_schedule -
  • actions_inner -
  • +
  • actions_inner_frequency -
  • alert_response_properties - Legacy alert response properties
  • alert_response_properties_executionStatus -
  • alert_response_properties_schedule -
  • @@ -2177,11 +2243,22 @@ Any modifications made to this file will be overwritten.

    actions_inner - Up

    -
    group (optional)
    String The group name for the actions. If you don't need to group actions, set to default.
    +
    connector_type_id (optional)
    String The type of connector. This property appears in responses but cannot be set in requests.
    +
    frequency (optional)
    +
    group (optional)
    String The group name for the actions. If you don't need to group actions, set to default.
    id (optional)
    String The identifier for the connector saved object.
    params (optional)
    map[String, oas_any_type_not_mapped] The parameters for the action, which are sent to the connector. The params are handled as Mustache templates and passed a default set of context.
    +
    +

    actions_inner_frequency - Up

    +
    The parameters that affect how often actions are generated. NOTE: You cannot specify these parameters when notify_when or throttle are defined at the rule level.
    +
    +
    notify_when
    +
    summary
    Boolean Indicates whether the action is a summary.
    +
    throttle (optional)
    String The throttle interval, which defines how often an alert generates repeated actions. It is applicable only if notify_when is set to onThrottleInterval. It is specified in seconds, minutes, hours, or days.
    +
    +

    alert_response_properties - Legacy alert response properties Up

    @@ -2230,7 +2307,7 @@ Any modifications made to this file will be overwritten.
    consumer
    String The name of the application or feature that owns the rule. For example: alerts, apm, discover, infrastructure, logs, metrics, ml, monitoring, securitySolution, siem, stackAlerts, or uptime.
    enabled (optional)
    Boolean Indicates whether you want to run the rule on an interval basis after it is created.
    name
    String The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.
    -
    notify_when
    +
    notify_when (optional)
    params
    map[String, oas_any_type_not_mapped] The parameters for the rule.
    rule_type_id
    String The ID of the rule type that you want to call when the rule is scheduled to run. For example, .es-query, .index-threshold, logs.alert.document.count, monitoring_alert_cluster_health, siem.thresholdRule, or xpack.ml.anomaly_detection_alert.
    schedule
    @@ -2537,9 +2614,10 @@ Any modifications made to this file will be overwritten.
    mute_all
    name
    String The name of the rule.
    next_run (optional)
    Date format: date-time
    -
    notify_when
    +
    notify_when (optional)
    params
    map[String, oas_any_type_not_mapped] The parameters for the rule.
    rule_type_id
    String The identifier for the type of rule. For example, .es-query, .index-threshold, logs.alert.document.count, monitoring_alert_cluster_health, siem.thresholdRule, or xpack.ml.anomaly_detection_alert.
    +
    running (optional)
    Boolean Indicates whether the rule is running.
    schedule
    scheduled_task_id (optional)
    tags
    array[String] The tags for the rule.
    @@ -2590,7 +2668,7 @@ Any modifications made to this file will be overwritten.
    actions (optional)
    name
    String The name of the rule.
    -
    notify_when
    +
    notify_when (optional)
    params
    map[String, oas_any_type_not_mapped] The parameters for the rule.
    schedule
    tags (optional)
    array[String] The tags for the rule.
    diff --git a/docs/api/saved-objects.asciidoc b/docs/api/saved-objects.asciidoc index 8a598fec9c47aa..c2f630c91cdb8d 100644 --- a/docs/api/saved-objects.asciidoc +++ b/docs/api/saved-objects.asciidoc @@ -7,6 +7,7 @@ WARNING: Do not write documents directly to the `.kibana` index. When you write to the `.kibana` index, the data becomes corrupted and permanently breaks future {kib} versions. The following saved objects APIs are available: + * <> to retrieve sets of saved objects that you want to import into {kib} * <> to create sets of {kib} saved objects from a file created by the export API @@ -43,7 +44,6 @@ include::saved-objects/export.asciidoc[] include::saved-objects/import.asciidoc[] include::saved-objects/resolve_import_errors.asciidoc[] include::saved-objects/rotate_encryption_key.asciidoc[] - include::saved-objects/get.asciidoc[] include::saved-objects/bulk_get.asciidoc[] include::saved-objects/find.asciidoc[] diff --git a/docs/api/saved-objects/bulk_create.asciidoc b/docs/api/saved-objects/bulk_create.asciidoc index dcb402ee1a1dc4..9639a70d4387b8 100644 --- a/docs/api/saved-objects/bulk_create.asciidoc +++ b/docs/api/saved-objects/bulk_create.asciidoc @@ -4,7 +4,9 @@ Bulk create saved objects ++++ -experimental[] Create multiple {kib} saved objects. +deprecated::[8.7.0, To be removed in an upcoming version] + +Create multiple {kib} saved objects. [[saved-objects-api-bulk-create-request]] ==== Request diff --git a/docs/api/saved-objects/bulk_delete.asciidoc b/docs/api/saved-objects/bulk_delete.asciidoc index d08c5874477bcd..9a06cb7ea9f9de 100644 --- a/docs/api/saved-objects/bulk_delete.asciidoc +++ b/docs/api/saved-objects/bulk_delete.asciidoc @@ -4,7 +4,9 @@ Bulk delete objects ++++ -experimental[] Remove multiple {kib} saved objects. +deprecated::[8.7.0, To be removed in an upcoming version] + +Remove multiple {kib} saved objects. WARNING: Once you delete a saved object, _it cannot be recovered_. diff --git a/docs/api/saved-objects/bulk_get.asciidoc b/docs/api/saved-objects/bulk_get.asciidoc index bec503eb18fe65..78e1a1e60ca25b 100644 --- a/docs/api/saved-objects/bulk_get.asciidoc +++ b/docs/api/saved-objects/bulk_get.asciidoc @@ -4,7 +4,9 @@ Bulk get objects ++++ -experimental[] Retrieve multiple {kib} saved objects by ID. +deprecated::[8.7.0, To be removed in an upcoming version] + +Retrieve multiple {kib} saved objects by ID. [[saved-objects-api-bulk-get-request]] ==== Request diff --git a/docs/api/saved-objects/bulk_resolve.asciidoc b/docs/api/saved-objects/bulk_resolve.asciidoc index 0779b30a308ea5..637e268f49cbfb 100644 --- a/docs/api/saved-objects/bulk_resolve.asciidoc +++ b/docs/api/saved-objects/bulk_resolve.asciidoc @@ -4,7 +4,9 @@ Bulk resolve objects ++++ -experimental[] Retrieve multiple {kib} saved objects by ID, using any legacy URL aliases if they exist. +deprecated::[8.7.0, To be removed in an upcoming version] + +Retrieve multiple {kib} saved objects by ID, using any legacy URL aliases if they exist. Under certain circumstances, when Kibana is upgraded, saved object migrations may necessitate regenerating some object IDs to enable new features. When an object's ID is regenerated, a legacy URL alias is created for that object, preserving its old ID. In such a scenario, that diff --git a/docs/api/saved-objects/bulk_update.asciidoc b/docs/api/saved-objects/bulk_update.asciidoc index 28695b55cd2989..529f9bbb406aa7 100644 --- a/docs/api/saved-objects/bulk_update.asciidoc +++ b/docs/api/saved-objects/bulk_update.asciidoc @@ -4,7 +4,9 @@ Bulk update objects ++++ -experimental[] Update the attributes for multiple existing {kib} saved objects. +deprecated::[8.7.0, To be removed in an upcoming version] + +Update the attributes for multiple existing {kib} saved objects. [[saved-objects-api-bulk-update-request]] ==== Request diff --git a/docs/api/saved-objects/create.asciidoc b/docs/api/saved-objects/create.asciidoc index 73339946ea0c01..e955cbf61693c6 100644 --- a/docs/api/saved-objects/create.asciidoc +++ b/docs/api/saved-objects/create.asciidoc @@ -4,7 +4,9 @@ Create saved objects ++++ -experimental[] Create {kib} saved objects. +deprecated::[8.7.0, To be removed in an upcoming version] + +Create {kib} saved objects. [[saved-objects-api-create-request]] ==== Request diff --git a/docs/api/saved-objects/delete.asciidoc b/docs/api/saved-objects/delete.asciidoc index 6cc31b6563aa3c..d0830a8002eb6b 100644 --- a/docs/api/saved-objects/delete.asciidoc +++ b/docs/api/saved-objects/delete.asciidoc @@ -4,7 +4,9 @@ Delete object ++++ -experimental[] Remove {kib} saved objects. +deprecated::[8.7.0, To be removed in an upcoming version] + +Remove {kib} saved objects. WARNING: Once you delete a saved object, _it cannot be recovered_. diff --git a/docs/api/saved-objects/find.asciidoc b/docs/api/saved-objects/find.asciidoc index 275bd1c21f9edf..12955c807c299c 100644 --- a/docs/api/saved-objects/find.asciidoc +++ b/docs/api/saved-objects/find.asciidoc @@ -4,7 +4,9 @@ Find objects ++++ -experimental[] Retrieve a paginated set of {kib} saved objects by various conditions. +deprecated::[8.7.0, To be removed in an upcoming version] + +Retrieve a paginated set of {kib} saved objects by various conditions. [[saved-objects-api-find-request]] ==== Request diff --git a/docs/api/saved-objects/get.asciidoc b/docs/api/saved-objects/get.asciidoc index 3f4b6037cd806d..7f375994d98ded 100644 --- a/docs/api/saved-objects/get.asciidoc +++ b/docs/api/saved-objects/get.asciidoc @@ -4,7 +4,9 @@ Get object ++++ -experimental[] Retrieve a single {kib} saved object by ID. +deprecated::[8.7.0, To be removed in an upcoming version] + +Retrieve a single {kib} saved object by ID. [[saved-objects-api-get-request]] ==== Request diff --git a/docs/api/saved-objects/resolve.asciidoc b/docs/api/saved-objects/resolve.asciidoc index 785ae54b4134ad..9fec2b1724f775 100644 --- a/docs/api/saved-objects/resolve.asciidoc +++ b/docs/api/saved-objects/resolve.asciidoc @@ -4,7 +4,9 @@ Resolve object ++++ -experimental[] Retrieve a single {kib} saved object by ID, using any legacy URL alias if it exists. +deprecated::[8.7.0, To be removed in an upcoming version] + +Retrieve a single {kib} saved object by ID, using any legacy URL alias if it exists. Under certain circumstances, when Kibana is upgraded, saved object migrations may necessitate regenerating some object IDs to enable new features. When an object's ID is regenerated, a legacy URL alias is created for that object, preserving its old ID. In such a scenario, that diff --git a/docs/api/saved-objects/update.asciidoc b/docs/api/saved-objects/update.asciidoc index 0559c49625fee7..bc99e264db122d 100644 --- a/docs/api/saved-objects/update.asciidoc +++ b/docs/api/saved-objects/update.asciidoc @@ -4,7 +4,9 @@ Update object ++++ -experimental[] Update the attributes for existing {kib} saved objects. +deprecated::[8.7.0, To be removed in an upcoming version] + +Update the attributes for existing {kib} saved objects. [[saved-objects-api-update-request]] ==== Request diff --git a/docs/api/spaces-management/post.asciidoc b/docs/api/spaces-management/post.asciidoc index 28d60caa0d3335..035fe897da2512 100644 --- a/docs/api/spaces-management/post.asciidoc +++ b/docs/api/spaces-management/post.asciidoc @@ -15,7 +15,7 @@ experimental[] Create a {kib} space. ==== Request body `id`:: - (Required, string) The space ID that is part of the Kibana URL when inside the space. You are unable to change the ID with the update operation. + (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. diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index 2408866ced99ad..3cdca29fcb49dd 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -333,7 +333,8 @@ In general this plugin provides: |{kib-repo}blob/{branch}/src/plugins/unified_histogram/README.md[unifiedHistogram] -|The unifiedHistogram plugin provides UI components to create a layout including a resizable histogram and a main display. +|Unified Histogram is a UX Building Block including a layout with a resizable histogram and a main display. +It manages its own state and data fetching, and can easily be dropped into pages with minimal setup. |{kib-repo}blob/{branch}/src/plugins/unified_search/README.md[unifiedSearch] @@ -502,6 +503,10 @@ This plugin is currently under active development; do not use. |Contains the enhancements to the OSS discover app. +|{kib-repo}blob/{branch}/x-pack/plugins/ecs_data_quality_dashboard/README.md[ecsDataQualityDashboard] +|This plugin implements (server) APIs used to render the content of the Data Quality dashboard. + + |<> |Enhances Embeddables by registering a custom factory provider. The enhanced factory provider adds dynamic actions to every embeddables state, in order to support drilldowns. diff --git a/docs/management/connectors/action-types/index.asciidoc b/docs/management/connectors/action-types/index.asciidoc index 87751a10328b7c..0cc306765f077b 100644 --- a/docs/management/connectors/action-types/index.asciidoc +++ b/docs/management/connectors/action-types/index.asciidoc @@ -1,104 +1,107 @@ -[role="xpack"] [[index-action-type]] -=== Index connector and action +== Index connector and action ++++ Index ++++ -The index connector will index a document into {es}. See also the -{ref}/indices-create-index.html[create index API]. +An index connector indexes a document into {es}. + +You can create index connectors in {kib} or by using the +<>. Alternatively, you can use the <>. +If you are running {kib} on-prem, you can also create more preconfigured index +connectors. [float] [[index-connector-configuration]] -==== Connector configuration - -Index connectors have the following configuration properties. - -Name:: -The name of the connector. The name is used to identify a connector in the -management UI connector listing, or in the connector list when configuring an -action. +=== Connector configuration -Index:: -The {es} index to be written to. +Index connectors must have a name and an {es} index. You can optionally set the +{ref}/docs-refresh.html[refresh] policy and the time field, which contains the +details about when each alert condition was detected. -Refresh:: -Setting for the {ref}/docs-refresh.html[refresh] policy for the write request. +[float] +[[define-index-ui]] +=== Create connectors in {kib} -Execution time field:: -This field will be automatically set to the time the alert condition was -detected. +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/index-connector.png[Index connector] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. [float] -[[Preconfigured-index-configuration]] -==== Preconfigured connector type +[[preconfigured-index-configuration]] +=== Create preconfigured connectors + +If you are running {kib} on-prem, you can define connectors by +adding `xpack.actions.preconfigured` settings to your `kibana.yml` file. +For example: [source,text] -- - my-index: - name: preconfigured-index-connector-type - actionTypeId: .index - config: - index: .kibana - refresh: true - executionTimeField: somedate +xpack.actions.preconfigured: + my-index: + name: preconfigured-index-connector-type + actionTypeId: .index + config: + index: .kibana + refresh: true <1> + executionTimeField: my-field -- +<1> By default, the {ref}/docs-refresh.html[refresh] policy is `false`. -Config defines information for the connector type. +For more information, go to <>. -`index`:: -A string that corresponds to *Index*. - -`refresh`:: -A boolean that corresponds to *Refresh*. Defaults to `false`. +[float] +[[preconfigured-connector-alert-history]] +==== Preconfigured alert history {es} index connector -`executionTimeField`:: -A string that corresponds to *Execution time field*. +preview::[] +{kib} offers a preconfigured index connector to facilitate indexing active alert +data into {es}. -[float] -[[define-index-ui]] -==== Define connector in {stack-manage-app} +To use this connector, set +<> to `true`. -Define Index connector properties. +When you subsequently create rules, you can use the +`Alert history Elasticsearch index (preconfigured)` connector. [role="screenshot"] -image::management/connectors/images/index-connector.png[Index connector] - -Test Index action parameters. +image::images/pre-configured-alert-history-connector.png[Select pre-configured alert history connectors] -[role="screenshot"] -image::management/connectors/images/index-params-test.png[Index params test] +Documents are indexed using a preconfigured schema that captures the +<> available for the rule. +By default, these documents are indexed into the `kibana-alert-history-default` +index, but you can specify a different index. Index names must start with +`kibana-alert-history-` to take advantage of the preconfigured alert history +index template. +[IMPORTANT] +==== +* To write documents to the preconfigured index, you must have `all` or `write` +privileges to the `kibana-alert-history-*` indices. Refer to +<> for more information. +* The `kibana-alert-history-*` indices are not configured to use ILM so they must +be maintained manually. If the index size grows large, consider using the +{ref}/docs-delete-by-query.html[delete by query] API to clean up older documents +in the index. +==== [float] [[index-action-configuration]] -==== Action configuration - -Index actions have the following properties. +=== Test connectors -Document:: -The document to index in JSON format. +You can test connectors with the <> or +as you're creating or editing the connector in {kib}. For example: +[role="screenshot"] +image::management/connectors/images/index-params-test.png[Index params test] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. -[float] -[[index-action-example]] -==== Example - -Example of the index document for Index Threshold rule: - -[source,text] --------------------------------------------------- -{ - "rule_id": "{{rule.id}}", - "rule_name": "{{rule.name}}", - "alert_id": "{{alert.id}}", - "context_message": "{{context.message}}" -} --------------------------------------------------- - -Example of creating a test index using the API. +Index connector actions contain a document in JSON format. For example, if you +have an index with the following properties: [source,text] -------------------------------------------------- @@ -118,51 +121,14 @@ PUT test } -------------------------------------------------- +Your test document could contain the following properties and variables: -[float] -[[preconfigured-connector-alert-history]] -=== Alert history {es} index connector - -experimental[] {kib} offers a preconfigured index connector to facilitate indexing active alert data into {es}. - -[WARNING] -================================================== -This functionality is in technical preview and may be changed or removed -completely in a future release. -================================================== - -To use this connector, set the -<> -configuration to `true`. - -```js - xpack.actions.preconfiguredAlertHistoryEsIndex: true -``` - -When creating a new rule, add an <> and select -the `Alert history Elasticsearch index (preconfigured)` connector. - -[role="screenshot"] -image::images/pre-configured-alert-history-connector.png[Select pre-configured alert history connectors] - -Documents are indexed using a preconfigured schema that captures the -<> available for the rule. -By default, these documents are indexed into the `kibana-alert-history-default` -index, but you can specify a different index. Index names must start with -`kibana-alert-history-` to take advantage of the preconfigured alert history -index template. - -[IMPORTANT] -============================================== -To write documents to the preconfigured index, you must have `all` or `write` -privileges to the `kibana-alert-history-*` indices. Refer to -<> for more information. -============================================== - -[NOTE] -================================================== -The `kibana-alert-history-*` indices are not configured to use ILM so they must -be maintained manually. If the index size grows large, consider using the -{ref}/docs-delete-by-query.html[delete by query] API to clean up older documents -in the index. -================================================== +[source,text] +-------------------------------------------------- +{ + "rule_id": "{{rule.id}}", + "rule_name": "{{rule.name}}", + "alert_id": "{{alert.id}}", + "context_message": "{{context.message}}" +} +-------------------------------------------------- diff --git a/docs/management/connectors/action-types/server-log.asciidoc b/docs/management/connectors/action-types/server-log.asciidoc index dca6eee379b52b..a7568acfdf3db6 100644 --- a/docs/management/connectors/action-types/server-log.asciidoc +++ b/docs/management/connectors/action-types/server-log.asciidoc @@ -6,9 +6,9 @@ A server log connector writes an entry to the {kib} server log. -You can create a server log connector in {kib} or by using the +You can create a server log connectors in {kib} or by using the <>. If you are running {kib} -on-prem, you can also create a preconfigured server log connector. +on-prem, you can also create preconfigured server log connectors. [float] [[server-log-connector-configuration]] @@ -18,9 +18,9 @@ Server log connectors do not have any configuration properties other than a name [float] [[define-serverlog-ui]] -=== Create a connector in {kib} +=== Create connectors in {kib} -You can create a server log connector in *{stack-manage-app} > {connectors-ui}* +You can create connectors in *{stack-manage-app} > {connectors-ui}* or as needed when you're creating a rule. For example: [role="screenshot"] @@ -29,11 +29,10 @@ image::management/connectors/images/serverlog-connector.png[Server log connector [float] [[preconfigured-server-log-configuration]] -=== Create a preconfigured connector +=== Create preconfigured connectors -If you are running {kib} on-prem, you can define a server log connector by -adding `xpack.actions.preconfigured` settings to your `kibana.yml` file. -For example: +If you are running {kib} on-prem, you can define connectors by adding +`xpack.actions.preconfigured` settings to your `kibana.yml` file. For example: [source,text] -- @@ -47,18 +46,15 @@ For more information, go to <>. [float] [[server-log-action-configuration]] -=== Test the connector +=== Test connectors -You can test your server log connector with the -<> or as you're creating or editing -the connector in {kib}. For example: +You can test connectors with the <> or +as you're creating or editing the connector in {kib}. For example: [role="screenshot"] image::management/connectors/images/serverlog-params-test.png[Server log connector test] // NOTE: This is an autogenerated screenshot. Do not edit it directly. -Server log actions have the following properties: - -Message:: The message to log. -Level:: The log level of the message: `trace`, `debug`, `info`, `warn`, `error` or `fatal`. Defaults to `info`. +Server log connector actions contain a message and a log level, which defaults to `info`. Valid log level values are `trace`, `debug`, `info`, `warn`, `error`, +and `fatal`. diff --git a/docs/management/connectors/images/index-connector.png b/docs/management/connectors/images/index-connector.png index b3a81a7c0e7618..438aac772c409b 100644 Binary files a/docs/management/connectors/images/index-connector.png and b/docs/management/connectors/images/index-connector.png differ diff --git a/docs/management/connectors/images/index-params-test.png b/docs/management/connectors/images/index-params-test.png index ba31214eac41d5..706fcc47258f51 100644 Binary files a/docs/management/connectors/images/index-params-test.png and b/docs/management/connectors/images/index-params-test.png differ diff --git a/docs/management/connectors/index.asciidoc b/docs/management/connectors/index.asciidoc index 7a3f8f9cb927cd..513b4b99d45627 100644 --- a/docs/management/connectors/index.asciidoc +++ b/docs/management/connectors/index.asciidoc @@ -1,6 +1,6 @@ include::action-types/email.asciidoc[] include::action-types/resilient.asciidoc[] -include::action-types/index.asciidoc[] +include::action-types/index.asciidoc[leveloffset=+1] include::action-types/jira.asciidoc[] include::action-types/teams.asciidoc[] include::action-types/opsgenie.asciidoc[] diff --git a/docs/management/saved-objects/saved-object-ids.asciidoc b/docs/management/saved-objects/saved-object-ids.asciidoc index 0f6a2a74c23449..97ab0daa953436 100644 --- a/docs/management/saved-objects/saved-object-ids.asciidoc +++ b/docs/management/saved-objects/saved-object-ids.asciidoc @@ -77,6 +77,8 @@ be broken. For more information, refer to {kibana-ref-all}/8.0/release-notes-8.0 If you are using the saved objects APIs directly, you should be aware of these changes: +WARNING: Some of the saved objects APIs are deprecated in 8.7.0. For more information, refer to the <> + * When using the <> or <> API, you may encounter <> that **cannot** be overridden using the `overwrite: true` option. This can occur if there is already a saved object with this ID in a _different_ space, or if there is a legacy URL alias for this diff --git a/docs/osquery/exported-fields-reference.asciidoc b/docs/osquery/exported-fields-reference.asciidoc index c27b6e67a40622..fc16ec3e0d9d03 100644 --- a/docs/osquery/exported-fields-reference.asciidoc +++ b/docs/osquery/exported-fields-reference.asciidoc @@ -82,7 +82,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *activity* - keyword, number.long -* _unified_log.activity_ - the activity ID associate with the entry. +* _unified_log.activity_ - the activity ID associate with the entry *actual* - keyword, number.long @@ -101,7 +101,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _arp_cache.address_ - IPv4 address target * _dns_resolvers.address_ - Resolver IP/IPv6 address * _etc_hosts.address_ - IP address mapping -* _fbsd_kmods.address_ - Kernel module address * _interface_addresses.address_ - Specific address for interface * _kernel_modules.address_ - Kernel module address * _listening_ports.address_ - Specific address for bind @@ -187,7 +186,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _deb_packages.arch_ - Package architecture * _docker_version.arch_ - Hardware architecture * _os_version.arch_ - OS Architecture -* _pkg_packages.arch_ - Architecture(s) supported * _rpm_packages.arch_ - Architecture(s) supported * _seccomp_events.arch_ - Information about the CPU architecture * _signature.arch_ - If applicable, the arch of the signed code @@ -247,6 +245,42 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _chassis_info.audible_alarm_ - If TRUE, the frame is equipped with an audible alarm. +*audit_account_logon* - keyword, number.long + +* _security_profile_info.audit_account_logon_ - Determines whether the operating system MUST audit each time this computer validates the credentials of an account + +*audit_account_manage* - keyword, number.long + +* _security_profile_info.audit_account_manage_ - Determines whether the operating system MUST audit each event of account management on a computer + +*audit_ds_access* - keyword, number.long + +* _security_profile_info.audit_ds_access_ - Determines whether the operating system MUST audit each instance of user attempts to access an Active Directory object that has its own system access control list (SACL) specified + +*audit_logon_events* - keyword, number.long + +* _security_profile_info.audit_logon_events_ - Determines whether the operating system MUST audit each instance of a user attempt to log on or log off this computer + +*audit_object_access* - keyword, number.long + +* _security_profile_info.audit_object_access_ - Determines whether the operating system MUST audit each instance of user attempts to access a non-Active Directory object that has its own SACL specified + +*audit_policy_change* - keyword, number.long + +* _security_profile_info.audit_policy_change_ - Determines whether the operating system MUST audit each instance of user attempts to change user rights assignment policy, audit policy, account policy, or trust policy + +*audit_privilege_use* - keyword, number.long + +* _security_profile_info.audit_privilege_use_ - Determines whether the operating system MUST audit each instance of user attempts to exercise a user right + +*audit_process_tracking* - keyword, number.long + +* _security_profile_info.audit_process_tracking_ - Determines whether the operating system MUST audit process-related events + +*audit_system_events* - keyword, number.long + +* _security_profile_info.audit_system_events_ - Determines whether the operating system MUST audit System Change, System Startup, System Shutdown, Authentication Component Load, and Loss or Excess of Security events + *auid* - keyword * _process_events.auid_ - Audit User ID at process start @@ -625,7 +659,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _ntfs_journal_events.category_ - The category that the event originated from * _power_sensors.category_ - The sensor category: currents, voltage, wattage * _system_extensions.category_ - System extension category -* _unified_log.category_ - The category of the os_log_t used +* _unified_log.category_ - the category of the os_log_t used * _yara_events.category_ - The category of the file *cdhash* - keyword, text.text @@ -731,6 +765,10 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _wmi_filter_consumer_binding.class_ - The name of the class. * _wmi_script_event_consumers.class_ - The name of the class. +*clear_text_password* - keyword, number.long + +* _security_profile_info.clear_text_password_ - Determines whether passwords MUST be stored by using reversible encryption + *client_app_id* - keyword, text.text * _windows_update_history.client_app_id_ - Identifier of the client application that processed an update @@ -767,6 +805,10 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _os_version.codename_ - OS version codename +*codesigning_flags* - keyword, text.text + +* _es_process_events.codesigning_flags_ - Codesigning flags matching one of these options, in a comma separated list: NOT_VALID, ADHOC, NOT_RUNTIME, INSTALLER. See kern/cs_blobs.h in XNU for descriptions. + *collect_cross_processes* - keyword, number.long * _carbon_black_info.collect_cross_processes_ - If the sensor is configured to cross process events @@ -848,7 +890,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _authorized_keys.comment_ - Optional comment * _docker_image_history.comment_ - Instruction comment * _etc_protocols.comment_ - Comment with protocol description -* _etc_services.comment_ - Optional comment for a service +* _etc_services.comment_ - Optional comment for a service. * _groups.comment_ - Remarks or comments associated with the group * _keychain_items.comment_ - Optional keychain comment @@ -1092,7 +1134,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _docker_image_history.created_ - Time of creation as UNIX time * _docker_images.created_ - Time of creation as UNIX time * _docker_networks.created_ - Time of creation as UNIX time -* _keychain_items.created_ - Data item was created +* _keychain_items.created_ - Date item was created *created_at* - keyword, text.text @@ -1590,6 +1632,14 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _processes.elevated_token_ - Process uses elevated token yes=1, no=0 +*enable_admin_account* - keyword, number.long + +* _security_profile_info.enable_admin_account_ - Determines whether the Administrator account on the local computer is enabled + +*enable_guest_account* - keyword, number.long + +* _security_profile_info.enable_guest_account_ - Determines whether the Guest account on the local computer is enabled + *enable_ipv6* - keyword, number.long * _docker_networks.enable_ipv6_ - 1 if IPv6 is enabled on this network. 0 otherwise @@ -1949,7 +1999,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *firmware_type* - keyword, text.text -* _platform_info.firmware_type_ - The type of firmware (Uefi, Bios, Unknown). +* _platform_info.firmware_type_ - The type of firmware (uefi, bios, iboot, openfirmware, unknown). *firmware_version* - keyword, text.text @@ -1972,10 +2022,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _pipes.flags_ - The flags indicating whether this pipe connection is a server or client end, and if the pipe for sending messages or bytes * _routes.flags_ - Flags to describe route -*flatsize* - keyword, number.long - -* _pkg_packages.flatsize_ - Package size in bytes - *folder_id* - keyword, text.text * _ycloud_instance_metadata.folder_id_ - Folder identifier for the VM @@ -1984,6 +2030,10 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _systemd_units.following_ - The name of another unit that this unit follows in state +*force_logoff_when_expire* - keyword, number.long + +* _security_profile_info.force_logoff_when_expire_ - Determines whether SMB client sessions with the SMB server will be forcibly disconnected when the client's logon hours expire + *forced* - keyword, number.long * _preferences.forced_ - 1 if the value is forced/managed, else 0 @@ -2250,7 +2300,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *hostname* - keyword, text.text -* _curl_certificate.hostname_ - Hostname to CURL (domain[:port], for example, osquery.io) +* _curl_certificate.hostname_ - Hostname to CURL (domain[:port], e.g. osquery.io) * _system_info.hostname_ - Network hostname including domain * _ycloud_instance_metadata.hostname_ - Hostname of the VM @@ -2626,7 +2676,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *is_active* - keyword, number.long -* _running_apps.is_active_ - 1 if the application is in focus, 0 otherwise +* _running_apps.is_active_ - (DEPRECATED) *is_hidden* - keyword, number.long @@ -2949,6 +2999,10 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _shared_memory.locked_ - 1 if segment is locked else 0 +*lockout_bad_count* - keyword, number.long + +* _security_profile_info.lockout_bad_count_ - Number of failed logon attempts after which a user account MUST be locked out + *log_file_disk_quota_mb* - keyword, number.long * _carbon_black_info.log_file_disk_quota_mb_ - Event file disk quota in MB @@ -2997,10 +3051,18 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _logon_sessions.logon_time_ - The time the session owner logged on. +*logon_to_change_password* - keyword, number.long + +* _security_profile_info.logon_to_change_password_ - Determines if logon session is required to change the password + *logon_type* - keyword, text.text * _logon_sessions.logon_type_ - The logon method. +*lsa_anonymous_name_lookup* - keyword, number.long + +* _security_profile_info.lsa_anonymous_name_lookup_ - Determines if an anonymous user is allowed to query the local LSA policy + *mac* - keyword, text.text * _arp_cache.mac_ - MAC address of broadcasted address @@ -3110,7 +3172,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *max_rows* - keyword, number.long -* _unified_log.max_rows_ - The max number of rows returned (defaults to 100). +* _unified_log.max_rows_ - the max number of rows returned (defaults to 100) *max_speed* - keyword, number.long @@ -3124,6 +3186,10 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _shared_resources.maximum_allowed_ - Limit on the maximum number of users allowed to use this resource concurrently. The value is only valid if the AllowMaximum property is set to FALSE. +*maximum_password_age* - keyword, number.long + +* _security_profile_info.maximum_password_age_ - Determines the maximum number of days that a password can be used before the client requires the user to change it + *md5* - keyword, text.text * _acpi_tables.md5_ - MD5 hash of table content @@ -3240,7 +3306,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _lxd_cluster_members.message_ - Message from the node (Online/Offline) * _selinux_events.message_ - Message * _syslog_events.message_ - The syslog message -* _unified_log.message_ - Composed message +* _unified_log.message_ - composed message * _user_events.message_ - Message from the event *metadata_endpoint* - keyword, text.text @@ -3297,6 +3363,14 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _memory_devices.min_voltage_ - Minimum operating voltage of device in millivolts +*minimum_password_age* - keyword, number.long + +* _security_profile_info.minimum_password_age_ - Determines the minimum number of days that a password must be used before the user can change it + +*minimum_password_length* - keyword, number.long + +* _security_profile_info.minimum_password_length_ - Determines the least number of characters that can make up a password for a user account + *minimum_system_version* - keyword, text.text * _apps.minimum_system_version_ - Minimum version of macOS required for the app to run @@ -3459,7 +3533,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _etc_protocols.name_ - Protocol name * _etc_services.name_ - Service name * _fan_speed_sensors.name_ - Fan name -* _fbsd_kmods.name_ - Module name * _firefox_addons.name_ - Addon display name * _homebrew_packages.name_ - Package name * _ie_extensions.name_ - Extension display name @@ -3491,7 +3564,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _package_install_history.name_ - Package display name * _physical_disk_performance.name_ - Name of the physical disk * _pipes.name_ - Name of the pipe -* _pkg_packages.name_ - Package name * _power_sensors.name_ - Name of power source * _processes.name_ - The process path or shorthand argv[0] * _programs.name_ - Commonly used product name. @@ -3529,7 +3601,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *native* - keyword, number.long * _browser_plugins.native_ - Plugin requires native execution -* _firefox_addons.native_ - 1 If the addon includes binary components else 0 *net_namespace* - keyword, text.text @@ -3561,6 +3632,14 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _docker_container_stats.network_tx_bytes_ - Total network bytes transmitted +*new_administrator_name* - keyword, text.text + +* _security_profile_info.new_administrator_name_ - Determines the name of the Administrator account on the local computer + +*new_guest_name* - keyword, text.text + +* _security_profile_info.new_guest_name_ - Determines the name of the Guest account on the local computer + *next_run_time* - keyword, number.long * _scheduled_tasks.next_run_time_ - Timestamp the task is scheduled to run next @@ -3916,6 +3995,14 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _wifi_networks.passpoint_ - 1 if Passpoint is supported, 0 otherwise +*password_complexity* - keyword, number.long + +* _security_profile_info.password_complexity_ - Determines whether passwords must meet a series of strong-password guidelines + +*password_history_size* - keyword, number.long + +* _security_profile_info.password_history_size_ - Number of unique new passwords that must be associated with a user account before an old password can be reused + *password_last_set_time* - keyword, number.double * _account_policy_data.password_last_set_time_ - The time the password was last changed @@ -4150,10 +4237,10 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _processes.pid_ - Process (or thread) ID * _running_apps.pid_ - The pid of the application * _seccomp_events.pid_ - Process ID -* _services.pid_ - The Process ID of the service +* _services.pid_ - the Process ID of the service * _shared_memory.pid_ - Process ID to last use the segment * _socket_events.pid_ - Process (or thread) ID -* _unified_log.pid_ - The pid of the process that made the entry +* _unified_log.pid_ - the pid of the process that made the entry * _user_events.pid_ - Process (or thread) ID * _windows_crashes.pid_ - Process ID of the crashed process * _windows_eventlog.pid_ - Process ID which emitted the event record @@ -4327,7 +4414,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *process* - keyword, text.text * _alf_explicit_auths.process_ - Process name explicitly allowed -* _unified_log.process_ - The name of the process that made the entry +* _unified_log.process_ - the name of the process that made the entry *process_being_tapped* - keyword, number.long @@ -4560,7 +4647,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *refs* - keyword, number.long -* _fbsd_kmods.refs_ - Module reverse dependencies * _kernel_extensions.refs_ - Reference count *region* - keyword, text.text @@ -4875,7 +4961,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *sender* - keyword, text.text * _asl.sender_ - Sender's identification string. Default is process name. -* _unified_log.sender_ - The name of the binary image that made the entry +* _unified_log.sender_ - the name of the binary image that made the entry *sensor_backend_server* - keyword, text.text @@ -5101,7 +5187,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _device_file.size_ - Size of file in bytes * _disk_events.size_ - Size of partition in bytes * _docker_image_history.size_ - Size of instruction in bytes -* _fbsd_kmods.size_ - Size of module content * _file.size_ - Size of file in bytes * _file_events.size_ - Size of file in bytes * _kernel_extensions.size_ - Bytes of wired memory used by extension @@ -5337,7 +5422,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *storage* - keyword, number.long -* _unified_log.storage_ - The storage category for the entry. +* _unified_log.storage_ - the storage category for the entry *storage_driver* - keyword, text.text @@ -5416,7 +5501,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *subsystem* - keyword, text.text * _system_controls.subsystem_ - Subsystem ID, control type -* _unified_log.subsystem_ - The subsystem of the os_log_t used +* _unified_log.subsystem_ - the subsystem of the os_log_t used *subsystem_model* - keyword, text.text @@ -5585,7 +5670,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _bpf_process_events.tid_ - Thread ID * _bpf_socket_events.tid_ - Thread ID -* _unified_log.tid_ - The tid of the thread that made the entry +* _unified_log.tid_ - the tid of the thread that made the entry * _windows_crashes.tid_ - Thread ID of the crashed thread * _windows_eventlog.tid_ - Thread ID which emitted the event record @@ -5637,7 +5722,7 @@ For more information about osquery tables, see the https://osquery.io/schema[osq *timestamp* - keyword, text.text * _time.timestamp_ - Current timestamp (log format) in UTC -* _unified_log.timestamp_ - Unix timestamp associated with the entry +* _unified_log.timestamp_ - unix timestamp associated with the entry * _windows_eventlog.timestamp_ - Timestamp to selectively filter the events *timestamp_ms* - keyword, number.long @@ -6078,7 +6163,6 @@ For more information about osquery tables, see the https://osquery.io/schema[osq * _osquery_packs.version_ - Minimum osquery version that this query will run on * _package_install_history.version_ - Package display version * _package_receipts.version_ - Installed package version -* _pkg_packages.version_ - Package version * _platform_info.version_ - Platform code version * _portage_keywords.version_ - The version which are affected by the use flags, empty means all * _portage_packages.version_ - The version which are affected by the use flags, empty means all diff --git a/docs/setup/settings.asciidoc b/docs/setup/settings.asciidoc index 3914dfabaf137a..3c45338c4da902 100644 --- a/docs/setup/settings.asciidoc +++ b/docs/setup/settings.asciidoc @@ -26,11 +26,11 @@ Set to `false` to disable Console. *Default: `true`* Add sources for the https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src[Content Security Policy `script-src` directive]. `csp.disableUnsafeEval`:: -experimental[] Set this to `true` to remove the https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#unsafe_eval_expressions[`unsafe-eval`] source expression from the `script-src` directive. *Default: `false`* +deprecated:[8.7.0,Use `csp.script_src: ['unsafe-eval']` instead if you wish to enable `unsafe-eval`. This config option will have no effect in a future version.] Set this to `false` to add the https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#unsafe_eval_expressions[`unsafe-eval`] source expression to the `script-src` directive. *Default: `true`* + -By enabling `csp.disableUnsafeEval`, Kibana will use a custom version of the Handlebars template library. +When `csp.disableUnsafeEval` is set to `true`, Kibana will use a custom version of the Handlebars template library. Handlebars is used in various locations in the Kibana frontend where custom templates can be supplied by the user when for instance setting up a visualisation. -If you experience any issues rendering Handlebars templates after turning on `csp.disableUnsafeEval`, please revert this setting to `false` and https://github.com/elastic/kibana/issues/new/choose[open an issue] in the Kibana GitHub repository. +If you experience any issues rendering Handlebars templates, please set this setting to `false` and https://github.com/elastic/kibana/issues/new/choose[open an issue] in the Kibana GitHub repository. `csp.worker_src`:: Add sources for the https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src[Content Security Policy `worker-src` directive]. diff --git a/examples/bfetch_explorer/kibana.json b/examples/bfetch_explorer/kibana.json deleted file mode 100644 index 0eda11670034c9..00000000000000 --- a/examples/bfetch_explorer/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "bfetchExplorer", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": true, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "requiredPlugins": ["bfetch", "developerExamples"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/examples/bfetch_explorer/kibana.jsonc b/examples/bfetch_explorer/kibana.jsonc new file mode 100644 index 00000000000000..dbcd5c34963551 --- /dev/null +++ b/examples/bfetch_explorer/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/bfetch-explorer-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "bfetchExplorer", + "server": true, + "browser": true, + "requiredPlugins": [ + "bfetch", + "developerExamples" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/examples/controls_example/kibana.json b/examples/controls_example/kibana.json deleted file mode 100644 index 605714954967d4..00000000000000 --- a/examples/controls_example/kibana.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "controlsExample", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "version": "1.0.0", - "kibanaVersion": "kibana", - "ui": true, - "requiredPlugins": [ - "controls", - "data", - "developerExamples", - "embeddable", - "navigation", - "presentationUtil" - ] -} diff --git a/examples/controls_example/kibana.jsonc b/examples/controls_example/kibana.jsonc new file mode 100644 index 00000000000000..2a6907e130d2e3 --- /dev/null +++ b/examples/controls_example/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/controls-example-plugin", + "owner": "@elastic/kibana-presentation", + "plugin": { + "id": "controlsExample", + "server": false, + "browser": true, + "requiredPlugins": [ + "controls", + "data", + "developerExamples", + "embeddable", + "navigation", + "presentationUtil" + ] + } +} diff --git a/examples/dashboard_embeddable_examples/kibana.json b/examples/dashboard_embeddable_examples/kibana.json deleted file mode 100644 index ba0c4a84836e77..00000000000000 --- a/examples/dashboard_embeddable_examples/kibana.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "dashboardEmbeddableExamples", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": false, - "ui": true, - "requiredPlugins": [ - "embeddable", - "embeddableExamples", - "dashboard", - "developerExamples", - "kibanaReact" - ], - "owner": { - "name": "Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Example app that shows how to embed a dashboard in an application", - "optionalPlugins": [] -} diff --git a/examples/dashboard_embeddable_examples/kibana.jsonc b/examples/dashboard_embeddable_examples/kibana.jsonc new file mode 100644 index 00000000000000..9498c710596309 --- /dev/null +++ b/examples/dashboard_embeddable_examples/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/dashboard-embeddable-examples-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Example app that shows how to embed a dashboard in an application", + "plugin": { + "id": "dashboardEmbeddableExamples", + "server": false, + "browser": true, + "requiredPlugins": [ + "embeddable", + "embeddableExamples", + "dashboard", + "developerExamples", + "kibanaReact" + ] + } +} diff --git a/examples/data_view_field_editor_example/kibana.json b/examples/data_view_field_editor_example/kibana.json deleted file mode 100644 index 8d079d10fbc729..00000000000000 --- a/examples/data_view_field_editor_example/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "dataViewFieldEditorExample", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": false, - "ui": true, - "requiredPlugins": ["data", "dataViewFieldEditor", "developerExamples"], - "optionalPlugins": [], - "requiredBundles": [], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Data view field editor example app" -} diff --git a/examples/data_view_field_editor_example/kibana.jsonc b/examples/data_view_field_editor_example/kibana.jsonc new file mode 100644 index 00000000000000..7ca538fd509e05 --- /dev/null +++ b/examples/data_view_field_editor_example/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/data-view-field-editor-example-plugin", + "owner": "@elastic/kibana-app-services", + "description": "Data view field editor example app", + "plugin": { + "id": "dataViewFieldEditorExample", + "server": false, + "browser": true, + "requiredPlugins": [ + "data", + "dataViewFieldEditor", + "developerExamples" + ] + } +} diff --git a/examples/developer_examples/kibana.json b/examples/developer_examples/kibana.json deleted file mode 100644 index a744b53137dc76..00000000000000 --- a/examples/developer_examples/kibana.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "developerExamples", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "kibanaVersion": "kibana", - "version": "0.0.1", - "ui": true -} diff --git a/examples/developer_examples/kibana.jsonc b/examples/developer_examples/kibana.jsonc new file mode 100644 index 00000000000000..8a6a8068418aa0 --- /dev/null +++ b/examples/developer_examples/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/developer-examples-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "developerExamples", + "server": false, + "browser": true + } +} diff --git a/examples/embeddable_examples/kibana.json b/examples/embeddable_examples/kibana.json deleted file mode 100644 index 103857804b5d4a..00000000000000 --- a/examples/embeddable_examples/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "embeddableExamples", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": true, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example app that shows how to register custom embeddables", - "requiredPlugins": ["embeddable", "uiActions", "savedObjects", "dashboard", "kibanaUtils"], - "optionalPlugins": [], - "extraPublicDirs": ["public/todo", "public/hello_world", "public/todo/todo_ref_embeddable"], - "requiredBundles": ["kibanaReact"] -} diff --git a/examples/embeddable_examples/kibana.jsonc b/examples/embeddable_examples/kibana.jsonc new file mode 100644 index 00000000000000..afc3fbc2706eef --- /dev/null +++ b/examples/embeddable_examples/kibana.jsonc @@ -0,0 +1,26 @@ +{ + "type": "plugin", + "id": "@kbn/embeddable-examples-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Example app that shows how to register custom embeddables", + "plugin": { + "id": "embeddableExamples", + "server": true, + "browser": true, + "requiredPlugins": [ + "embeddable", + "uiActions", + "savedObjects", + "dashboard", + "kibanaUtils" + ], + "requiredBundles": [ + "kibanaReact" + ], + "extraPublicDirs": [ + "public/todo", + "public/hello_world", + "public/todo/todo_ref_embeddable" + ] + } +} diff --git a/examples/embeddable_explorer/kibana.json b/examples/embeddable_explorer/kibana.json deleted file mode 100644 index 6ca12eb2e2a30b..00000000000000 --- a/examples/embeddable_explorer/kibana.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "id": "embeddableExplorer", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example app that relies on registered functionality in the embeddable_examples plugin", - "requiredPlugins": [ - "uiActions", - "inspector", - "embeddable", - "embeddableExamples", - "developerExamples", - "dashboard", - "kibanaReact", - "savedObjects" - ], - "optionalPlugins": [] -} diff --git a/examples/embeddable_explorer/kibana.jsonc b/examples/embeddable_explorer/kibana.jsonc new file mode 100644 index 00000000000000..1c00e25d7f4285 --- /dev/null +++ b/examples/embeddable_explorer/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/embeddable-explorer-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Example app that relies on registered functionality in the embeddable_examples plugin", + "plugin": { + "id": "embeddableExplorer", + "server": false, + "browser": true, + "requiredPlugins": [ + "uiActions", + "inspector", + "embeddable", + "embeddableExamples", + "developerExamples", + "dashboard", + "kibanaReact", + "savedObjects" + ] + } +} diff --git a/examples/expressions_explorer/kibana.json b/examples/expressions_explorer/kibana.json deleted file mode 100644 index dea706d024941b..00000000000000 --- a/examples/expressions_explorer/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "expressionsExplorer", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "requiredPlugins": ["expressions", "inspector", "uiActions", "developerExamples"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/examples/expressions_explorer/kibana.jsonc b/examples/expressions_explorer/kibana.jsonc new file mode 100644 index 00000000000000..b389593c161d6e --- /dev/null +++ b/examples/expressions_explorer/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/expressions-explorer-plugin", + "owner": "@elastic/kibana-app-services", + "plugin": { + "id": "expressionsExplorer", + "server": false, + "browser": true, + "requiredPlugins": [ + "expressions", + "inspector", + "uiActions", + "developerExamples" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/examples/field_formats_example/kibana.json b/examples/field_formats_example/kibana.json deleted file mode 100644 index e3bca1b2fcb9ee..00000000000000 --- a/examples/field_formats_example/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "fieldFormatsExample", - "version": "1.0.0", - "kibanaVersion": "kibana", - "ui": true, - "server": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "A plugin that demonstrates field formats usage", - "requiredPlugins": ["developerExamples", "fieldFormats", "dataViewFieldEditor", "data"] -} diff --git a/examples/field_formats_example/kibana.jsonc b/examples/field_formats_example/kibana.jsonc new file mode 100644 index 00000000000000..9d85483fb4a8fc --- /dev/null +++ b/examples/field_formats_example/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/field-formats-example-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "A plugin that demonstrates field formats usage", + "plugin": { + "id": "fieldFormatsExample", + "server": true, + "browser": true, + "requiredPlugins": [ + "developerExamples", + "fieldFormats", + "dataViewFieldEditor", + "data" + ] + } +} diff --git a/examples/files_example/kibana.json b/examples/files_example/kibana.json deleted file mode 100644 index b9cc4027a43f45..00000000000000 --- a/examples/files_example/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "filesExample", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "kibana-app-services", - "githubTeam": "kibana-app-services" - }, - "description": "Example plugin integrating with files plugin", - "server": true, - "ui": true, - "requiredPlugins": ["files", "developerExamples"], - "optionalPlugins": [] -} diff --git a/examples/files_example/kibana.jsonc b/examples/files_example/kibana.jsonc new file mode 100644 index 00000000000000..973fd48e9f3e0c --- /dev/null +++ b/examples/files_example/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/files-example-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Example plugin integrating with files plugin", + "plugin": { + "id": "filesExample", + "server": true, + "browser": true, + "requiredPlugins": [ + "files", + "developerExamples" + ] + } +} diff --git a/examples/guided_onboarding_example/kibana.json b/examples/guided_onboarding_example/kibana.json deleted file mode 100755 index 57466230ca5e76..00000000000000 --- a/examples/guided_onboarding_example/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "guidedOnboardingExample", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "platform-onboarding", - "githubTeam": "platform-onboarding" - }, - "description": "Example plugin to consume guidedOnboarding", - "server": true, - "ui": true, - "requiredPlugins": ["navigation", "guidedOnboarding"], - "optionalPlugins": [] -} diff --git a/examples/guided_onboarding_example/kibana.jsonc b/examples/guided_onboarding_example/kibana.jsonc new file mode 100644 index 00000000000000..e0fe519a29ff3b --- /dev/null +++ b/examples/guided_onboarding_example/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/guided-onboarding-example-plugin", + "owner": "@elastic/platform-onboarding", + "description": "Example plugin to consume guidedOnboarding", + "plugin": { + "id": "guidedOnboardingExample", + "server": true, + "browser": true, + "requiredPlugins": [ + "navigation", + "guidedOnboarding" + ] + } +} diff --git a/examples/hello_world/kibana.json b/examples/hello_world/kibana.json deleted file mode 100644 index d3de28c2cbd7a6..00000000000000 --- a/examples/hello_world/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "helloWorld", - "version": "1.0.0", - "kibanaVersion": "kibana", - "ui": true, - "owner": { - "name": "Kibana core", - "githubTeam": "kibana-core" - }, - "description": "A plugin which registers a very simple hello world application.", - "requiredPlugins": ["developerExamples"] -} diff --git a/examples/hello_world/kibana.jsonc b/examples/hello_world/kibana.jsonc new file mode 100644 index 00000000000000..4253084c38fac3 --- /dev/null +++ b/examples/hello_world/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/hello-world-plugin", + "owner": "@elastic/kibana-core", + "description": "A plugin which registers a very simple hello world application.", + "plugin": { + "id": "helloWorld", + "server": false, + "browser": true, + "requiredPlugins": [ + "developerExamples" + ] + } +} diff --git a/examples/locator_examples/kibana.json b/examples/locator_examples/kibana.json deleted file mode 100644 index a288bf5608c53f..00000000000000 --- a/examples/locator_examples/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "locatorExamples", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example app that registers custom URL locators", - "requiredPlugins": ["share"], - "optionalPlugins": [], - "extraPublicDirs": ["public/locator"] -} diff --git a/examples/locator_examples/kibana.jsonc b/examples/locator_examples/kibana.jsonc new file mode 100644 index 00000000000000..55d414be65dbc3 --- /dev/null +++ b/examples/locator_examples/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/locator-examples-plugin", + "owner": "@elastic/kibana-app-services", + "description": "Example app that registers custom URL locators", + "plugin": { + "id": "locatorExamples", + "server": false, + "browser": true, + "requiredPlugins": [ + "share" + ], + "extraPublicDirs": [ + "public/locator" + ] + } +} diff --git a/examples/locator_explorer/kibana.json b/examples/locator_explorer/kibana.json deleted file mode 100644 index 7f00461ccf7741..00000000000000 --- a/examples/locator_explorer/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "locatorExplorer", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example app that shows how to use custom URL locators", - "requiredPlugins": ["share", "locatorExamples", "developerExamples"], - "optionalPlugins": [] -} diff --git a/examples/locator_explorer/kibana.jsonc b/examples/locator_explorer/kibana.jsonc new file mode 100644 index 00000000000000..0abf95d63440cc --- /dev/null +++ b/examples/locator_explorer/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/locator-explorer-plugin", + "owner": "@elastic/kibana-app-services", + "description": "Example app that shows how to use custom URL locators", + "plugin": { + "id": "locatorExplorer", + "server": false, + "browser": true, + "requiredPlugins": [ + "share", + "locatorExamples", + "developerExamples" + ] + } +} diff --git a/examples/partial_results_example/kibana.json b/examples/partial_results_example/kibana.json deleted file mode 100644 index 1fe46e55d4039f..00000000000000 --- a/examples/partial_results_example/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "paertialResultsExample", - "version": "0.1.0", - "kibanaVersion": "kibana", - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "A plugin demonstrating partial results in the expressions plugin", - "requiredPlugins": ["developerExamples", "expressions"] -} diff --git a/examples/partial_results_example/kibana.jsonc b/examples/partial_results_example/kibana.jsonc new file mode 100644 index 00000000000000..a050cd491936cf --- /dev/null +++ b/examples/partial_results_example/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/paertial-results-example-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "A plugin demonstrating partial results in the expressions plugin", + "plugin": { + "id": "paertialResultsExample", + "server": false, + "browser": true, + "requiredPlugins": [ + "developerExamples", + "expressions" + ] + } +} diff --git a/examples/preboot_example/kibana.json b/examples/preboot_example/kibana.json deleted file mode 100644 index 39bdfc5447dd50..00000000000000 --- a/examples/preboot_example/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "prebootExample", - "kibanaVersion": "kibana", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "description": "The example of the `preboot` plugin.", - "version": "8.0.0", - "configPath": ["prebootExample"], - "type": "preboot", - "server": true, - "ui": true, - "requiredPlugins": [], - "requiredBundles": [] -} diff --git a/examples/preboot_example/kibana.jsonc b/examples/preboot_example/kibana.jsonc new file mode 100644 index 00000000000000..41b388e239dc31 --- /dev/null +++ b/examples/preboot_example/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/preboot-example-plugin", + "owner": [ + "@elastic/kibana-security", + "@elastic/kibana-core" + ], + "description": "The example of the `preboot` plugin.", + "plugin": { + "id": "prebootExample", + "type": "preboot", + "server": true, + "browser": true, + "configPath": [ + "prebootExample" + ] + } +} diff --git a/examples/response_stream/kibana.json b/examples/response_stream/kibana.json deleted file mode 100644 index 070c90b1c1ebd2..00000000000000 --- a/examples/response_stream/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "responseStream", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": true, - "ui": true, - "owner": { - "name": "ML UI", - "githubTeam": "ml-ui" - }, - "requiredPlugins": ["developerExamples"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/examples/response_stream/kibana.jsonc b/examples/response_stream/kibana.jsonc new file mode 100644 index 00000000000000..340e1f7c0a657b --- /dev/null +++ b/examples/response_stream/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/response-stream-plugin", + "owner": "@elastic/ml-ui", + "plugin": { + "id": "responseStream", + "server": true, + "browser": true, + "requiredPlugins": [ + "developerExamples" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/examples/routing_example/kibana.json b/examples/routing_example/kibana.json deleted file mode 100644 index a2e55901d80b2f..00000000000000 --- a/examples/routing_example/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "routingExample", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": true, - "ui": true, - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "description": "A simple example of how to use core's routing services", - "requiredPlugins": ["developerExamples"], - "optionalPlugins": [] -} diff --git a/examples/routing_example/kibana.jsonc b/examples/routing_example/kibana.jsonc new file mode 100644 index 00000000000000..46018a4f59f186 --- /dev/null +++ b/examples/routing_example/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/routing-example-plugin", + "owner": "@elastic/kibana-core", + "description": "A simple example of how to use core's routing services", + "plugin": { + "id": "routingExample", + "server": true, + "browser": true, + "requiredPlugins": [ + "developerExamples" + ] + } +} diff --git a/examples/screenshot_mode_example/kibana.json b/examples/screenshot_mode_example/kibana.json deleted file mode 100644 index 66acfe0c931d5e..00000000000000 --- a/examples/screenshot_mode_example/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "screenshotModeExample", - "kibanaVersion": "kibana", - "version": "1.0.0", - "server": true, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example plugin of how to use screenshotMode plugin services", - "requiredPlugins": ["navigation", "screenshotMode", "usageCollection", "developerExamples"], - "optionalPlugins": [] -} diff --git a/examples/screenshot_mode_example/kibana.jsonc b/examples/screenshot_mode_example/kibana.jsonc new file mode 100644 index 00000000000000..086d2e2b37359d --- /dev/null +++ b/examples/screenshot_mode_example/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/screenshot-mode-example-plugin", + "owner": "@elastic/kibana-app-services", + "description": "Example plugin of how to use screenshotMode plugin services", + "plugin": { + "id": "screenshotModeExample", + "server": true, + "browser": true, + "requiredPlugins": [ + "navigation", + "screenshotMode", + "usageCollection", + "developerExamples" + ] + } +} diff --git a/examples/search_examples/kibana.json b/examples/search_examples/kibana.json deleted file mode 100644 index ac6f51727974b1..00000000000000 --- a/examples/search_examples/kibana.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "searchExamples", - "kibanaVersion": "kibana", - "version": "0.0.1", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example plugin of how to use data plugin search services", - "server": true, - "ui": true, - "requiredPlugins": ["navigation", "data", "developerExamples", "inspector", "kibanaUtils", "share", "unifiedSearch"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Examples for using the data plugin search service. Includes examples for searching using the high level search source, or low-level search services, as well as integrating with search sessions." -} diff --git a/examples/search_examples/kibana.jsonc b/examples/search_examples/kibana.jsonc new file mode 100644 index 00000000000000..8fc8c271ee5217 --- /dev/null +++ b/examples/search_examples/kibana.jsonc @@ -0,0 +1,23 @@ +{ + "type": "plugin", + "id": "@kbn/search-examples-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "Examples for using the data plugin search service. Includes examples for searching using the high level search source, or low-level search services, as well as integrating with search sessions.", + "plugin": { + "id": "searchExamples", + "server": true, + "browser": true, + "requiredPlugins": [ + "navigation", + "data", + "developerExamples", + "inspector", + "kibanaUtils", + "share", + "unifiedSearch" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/examples/share_examples/kibana.json b/examples/share_examples/kibana.json deleted file mode 100644 index ac2157ad97b28b..00000000000000 --- a/examples/share_examples/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "shareExamples", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Small demos of share plugin usage", - "requiredPlugins": ["share"], - "optionalPlugins": [] -} diff --git a/examples/share_examples/kibana.jsonc b/examples/share_examples/kibana.jsonc new file mode 100644 index 00000000000000..77d022524d3225 --- /dev/null +++ b/examples/share_examples/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/share-examples-plugin", + "owner": "@elastic/kibana-app-services", + "description": "Small demos of share plugin usage", + "plugin": { + "id": "shareExamples", + "server": false, + "browser": true, + "requiredPlugins": [ + "share" + ] + } +} diff --git a/examples/state_containers_examples/kibana.json b/examples/state_containers_examples/kibana.json deleted file mode 100644 index 780732ab930c4f..00000000000000 --- a/examples/state_containers_examples/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "stateContainersExamples", - "kibanaVersion": "kibana", - "version": "0.0.1", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example plugin of how to use kibanaUtils services", - "server": false, - "ui": true, - "requiredPlugins": ["navigation", "data", "developerExamples"], - "optionalPlugins": [], - "requiredBundles": ["kibanaUtils"] -} diff --git a/examples/state_containers_examples/kibana.jsonc b/examples/state_containers_examples/kibana.jsonc new file mode 100644 index 00000000000000..b1c2c34856ba07 --- /dev/null +++ b/examples/state_containers_examples/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/state-containers-examples-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Example plugin of how to use kibanaUtils services", + "plugin": { + "id": "stateContainersExamples", + "server": false, + "browser": true, + "requiredPlugins": [ + "navigation", + "data", + "developerExamples" + ], + "requiredBundles": [ + "kibanaUtils" + ] + } +} diff --git a/examples/ui_action_examples/kibana.json b/examples/ui_action_examples/kibana.json deleted file mode 100644 index 717414fc513bd3..00000000000000 --- a/examples/ui_action_examples/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "uiActionsExamples", - "kibanaVersion": "kibana", - "version": "0.0.1", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example plugin of how to register custom uiActions", - "server": false, - "ui": true, - "requiredPlugins": ["uiActions"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/examples/ui_action_examples/kibana.jsonc b/examples/ui_action_examples/kibana.jsonc new file mode 100644 index 00000000000000..3de8e301bae2e3 --- /dev/null +++ b/examples/ui_action_examples/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/ui-actions-examples-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Example plugin of how to register custom uiActions", + "plugin": { + "id": "uiActionsExamples", + "server": false, + "browser": true, + "requiredPlugins": [ + "uiActions" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/examples/ui_actions_explorer/kibana.json b/examples/ui_actions_explorer/kibana.json deleted file mode 100644 index 7d853a6042febe..00000000000000 --- a/examples/ui_actions_explorer/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "uiActionsExplorer", - "kibanaVersion": "kibana", - "version": "0.0.1", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Example plugin of how to use uiActions plugin services", - "server": false, - "ui": true, - "requiredPlugins": ["uiActions", "uiActionsExamples", "developerExamples"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/examples/ui_actions_explorer/kibana.jsonc b/examples/ui_actions_explorer/kibana.jsonc new file mode 100644 index 00000000000000..e6c2c188c2f976 --- /dev/null +++ b/examples/ui_actions_explorer/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/ui-actions-explorer-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Example plugin of how to use uiActions plugin services", + "plugin": { + "id": "uiActionsExplorer", + "server": false, + "browser": true, + "requiredPlugins": [ + "uiActions", + "uiActionsExamples", + "developerExamples" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/examples/user_profile_examples/kibana.json b/examples/user_profile_examples/kibana.json deleted file mode 100644 index c808302fe65a73..00000000000000 --- a/examples/user_profile_examples/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "userProfileExamples", - "kibanaVersion": "kibana", - "version": "0.0.1", - "server": true, - "ui": true, - "owner": { - "name": "Kibana Platform Security", - "githubTeam": "kibana-security" - }, - "description": "Demo of how to implement a suggest user functionality", - "requiredPlugins": ["developerExamples", "security", "spaces"], - "optionalPlugins": [] -} diff --git a/examples/user_profile_examples/kibana.jsonc b/examples/user_profile_examples/kibana.jsonc new file mode 100644 index 00000000000000..1a8c7dace2cef0 --- /dev/null +++ b/examples/user_profile_examples/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/user-profile-examples-plugin", + "owner": "@elastic/kibana-security", + "description": "Demo of how to implement a suggest user functionality", + "plugin": { + "id": "userProfileExamples", + "server": true, + "browser": true, + "requiredPlugins": [ + "developerExamples", + "security", + "spaces" + ] + } +} diff --git a/fleet_packages.json b/fleet_packages.json index fcb628f52610f1..0f148d6899bbcd 100644 --- a/fleet_packages.json +++ b/fleet_packages.json @@ -20,16 +20,16 @@ [ { "name": "apm", - "version": "8.7.0-preview-1675078021", + "version": "8.8.0-preview-1675842740", "forceAlignStackVersion": true }, { "name": "elastic_agent", - "version": "1.5.0" + "version": "1.5.1" }, { "name": "endpoint", - "version": "8.7.0-next" + "version": "8.7.0" }, { "name": "fleet_server", diff --git a/kbn_pm/src/cli.mjs b/kbn_pm/src/cli.mjs index 376369cd983326..34404f8b0ab570 100644 --- a/kbn_pm/src/cli.mjs +++ b/kbn_pm/src/cli.mjs @@ -23,7 +23,7 @@ import { Log } from './lib/log.mjs'; import External from './lib/external_packages.js'; const start = Date.now(); -const args = new Args(process.argv.slice(2), process.env.CI ? ['--quiet'] : []); +const args = new Args(process.argv.slice(2), []); const log = new Log(args.getLoggingLevel()); const cmdName = args.getCommandName(); diff --git a/kbn_pm/src/commands/bootstrap/bootstrap_command.mjs b/kbn_pm/src/commands/bootstrap/bootstrap_command.mjs index 0c3731cafe35b5..d473e293cd2c54 100644 --- a/kbn_pm/src/commands/bootstrap/bootstrap_command.mjs +++ b/kbn_pm/src/commands/bootstrap/bootstrap_command.mjs @@ -62,7 +62,7 @@ export const command = { const forceInstall = args.getBooleanValue('force-install') ?? (await haveNodeModulesBeenManuallyDeleted()); - const [{ packages, plugins, tsConfigsPaths }] = await Promise.all([ + const [{ packageManifestPaths, tsConfigRepoRels }] = await Promise.all([ // discover the location of packages, plugins, etc await time('discovery', discovery), @@ -78,16 +78,22 @@ export const command = { ]); // generate the package map and package.json file, if necessary - await Promise.all([ + const [packages] = await Promise.all([ time('regenerate package map', async () => { - await regeneratePackageMap(packages, plugins, log); + return await regeneratePackageMap(log, packageManifestPaths); }), time('regenerate tsconfig map', async () => { - await regenerateTsconfigPaths(tsConfigsPaths, log); + await regenerateTsconfigPaths(tsConfigRepoRels, log); }), + ]); + + await Promise.all([ time('update package json', async () => { await updatePackageJson(packages, log); }), + time('regenerate tsconfig.base.json', async () => { + await regenerateBaseTsconfig(packages, log); + }), ]); // Bootstrap process for Bazel packages @@ -111,9 +117,6 @@ export const command = { }); await Promise.all([ - time('regenerate tsconfig.base.json', async () => { - await regenerateBaseTsconfig(); - }), time('sort package json', async () => { await sortPackageJson(log); }), diff --git a/kbn_pm/src/commands/bootstrap/discovery.mjs b/kbn_pm/src/commands/bootstrap/discovery.mjs index fad8a283700175..0baf594f436400 100644 --- a/kbn_pm/src/commands/bootstrap/discovery.mjs +++ b/kbn_pm/src/commands/bootstrap/discovery.mjs @@ -7,83 +7,37 @@ */ import Path from 'path'; -import Fs from 'fs'; -import ChildProcess from 'child_process'; -import { promisify } from 'util'; +import External from '../../lib/external_packages.js'; import { REPO_ROOT } from '../../lib/paths.mjs'; -const execAsync = promisify(ChildProcess.execFile); export async function discovery() { - const { getPluginSearchPaths, simpleKibanaPlatformPluginDiscovery } = await import( - // eslint-disable-next-line @kbn/imports/uniform_imports - '../../../../packages/kbn-plugin-discovery/index.js' - ); - - const { Package } = await import( - // we need to run this before we install node modules, so it can't rely on @kbn/* imports - // eslint-disable-next-line @kbn/imports/uniform_imports - '../../../../packages/kbn-repo-packages/index.js' - ); - - const proc = await execAsync('git', ['ls-files', '-comt', '--exclude-standard'], { - cwd: REPO_ROOT, - encoding: 'utf8', - maxBuffer: Infinity, - }); - - const paths = new Map(); - /** @type {Map>} */ - const filesByName = new Map(); - - for (const raw of proc.stdout.split('\n')) { - const line = raw.trim(); - if (!line) { + const { getRepoRels } = External['@kbn/repo-packages'](); + + /** @type {string[]} */ + const tsConfigRepoRels = []; + /** @type {string[]} */ + const packageManifestPaths = []; + for (const repoRel of await getRepoRels(REPO_ROOT, [ + 'tsconfig.json', + '**/tsconfig.json', + '**/kibana.jsonc', + ])) { + if (repoRel === 'tsconfig.json' || repoRel.endsWith('/tsconfig.json')) { + tsConfigRepoRels.push(repoRel); continue; } - const repoRel = line.slice(2); // trim the single char status and separating space from the line - const name = repoRel.split('/').pop(); - if (name !== 'kibana.jsonc' && name !== 'tsconfig.json') { + if (repoRel.endsWith('/kibana.jsonc')) { + packageManifestPaths.push(Path.resolve(REPO_ROOT, repoRel)); continue; } - const existingPath = paths.get(repoRel); - const path = existingPath ?? Path.resolve(REPO_ROOT, repoRel); - if (!existingPath) { - paths.set(repoRel, path); - } - - let files = filesByName.get(name); - if (!files) { - files = new Set(); - filesByName.set(name, files); - } - - if (line.startsWith('C ')) { - // this line indicates that the previous path is changed in the working - // tree, so we need to determine if it was deleted and remove it if so - if (!Fs.existsSync(path)) { - files.delete(path); - } - } else { - files.add(path); - } + throw new Error(`unexpected repo rel: ${repoRel}`); } return { - plugins: simpleKibanaPlatformPluginDiscovery( - getPluginSearchPaths({ - rootDir: REPO_ROOT, - examples: true, - oss: false, - testPlugins: true, - }), - [] - ), - tsConfigsPaths: Array.from(filesByName.get('tsconfig.json') ?? new Set()), - packages: Array.from(filesByName.get('kibana.jsonc') ?? new Set()) - .map((path) => Package.fromManifest(REPO_ROOT, path)) - .sort((a, b) => a.id.localeCompare(b.id)), + tsConfigRepoRels, + packageManifestPaths, }; } diff --git a/kbn_pm/src/commands/bootstrap/regenerate_base_tsconfig.mjs b/kbn_pm/src/commands/bootstrap/regenerate_base_tsconfig.mjs index 3b0d8fdcbc0602..a0ae7170ab53ef 100644 --- a/kbn_pm/src/commands/bootstrap/regenerate_base_tsconfig.mjs +++ b/kbn_pm/src/commands/bootstrap/regenerate_base_tsconfig.mjs @@ -10,27 +10,30 @@ import Path from 'path'; import Fsp from 'fs/promises'; import { REPO_ROOT } from '../../lib/paths.mjs'; -import External from '../../lib/external_packages.js'; -export async function regenerateBaseTsconfig() { - const pkgMap = External['@kbn/repo-packages']().readPackageMap(); +/** + * @param {import('@kbn/repo-packages').Package[]} packages + * @param {import('@kbn/some-dev-log').SomeDevLog} log + */ +export async function regenerateBaseTsconfig(packages, log) { const tsconfigPath = Path.resolve(REPO_ROOT, 'tsconfig.base.json'); - const lines = (await Fsp.readFile(tsconfigPath, 'utf-8')).split('\n'); + const current = await Fsp.readFile(tsconfigPath, 'utf8'); + const lines = current.split('\n'); const start = lines.findIndex((l) => l.trim() === '// START AUTOMATED PACKAGE LISTING'); const end = lines.findIndex((l) => l.trim() === '// END AUTOMATED PACKAGE LISTING'); - const current = await Fsp.readFile(tsconfigPath, 'utf8'); const updated = [ ...lines.slice(0, start + 1), - ...Array.from(pkgMap.entries()).flatMap(([moduleId, repoRelPath]) => [ - ` "${moduleId}": ["${repoRelPath}"],`, - ` "${moduleId}/*": ["${repoRelPath}/*"],`, + ...packages.flatMap((p) => [ + ` "${p.id}": ["${p.normalizedRepoRelativeDir}"],`, + ` "${p.id}/*": ["${p.normalizedRepoRelativeDir}/*"],`, ]), ...lines.slice(end), ].join('\n'); if (updated !== current) { await Fsp.writeFile(tsconfigPath, updated); + log.warning('updated tsconfig.base.json'); } } diff --git a/kbn_pm/src/commands/bootstrap/regenerate_package_map.mjs b/kbn_pm/src/commands/bootstrap/regenerate_package_map.mjs index 167f14fc8b9516..285dba13b0fe2b 100644 --- a/kbn_pm/src/commands/bootstrap/regenerate_package_map.mjs +++ b/kbn_pm/src/commands/bootstrap/regenerate_package_map.mjs @@ -6,46 +6,19 @@ * Side Public License, v 1. */ -import Path from 'path'; -import Fs from 'fs'; -import Fsp from 'fs/promises'; - -import { convertPluginIdToPackageId } from '../../lib/plugins.mjs'; -import { normalizePath } from '../../lib/normalize_path.mjs'; +import External from '../../lib/external_packages.js'; import { REPO_ROOT } from '../../lib/paths.mjs'; /** - * - * @param {import('@kbn/repo-packages').Package[]} packages - * @param {import('@kbn/plugin-discovery').KibanaPlatformPlugin[]} plugins * @param {import('@kbn/some-dev-log').SomeDevLog} log + * @param {string[]} packageManifestPaths */ -export async function regeneratePackageMap(packages, plugins, log) { - const path = Path.resolve(REPO_ROOT, 'packages/kbn-repo-packages/package-map.json'); - const existingContent = Fs.existsSync(path) ? await Fsp.readFile(path, 'utf8') : undefined; - - /** @type {Array<[string, string]>} */ - const entries = [['@kbn/core', 'src/core']]; - - for (const pkg of packages) { - entries.push([pkg.manifest.id, pkg.normalizedRepoRelativeDir]); - } +export async function regeneratePackageMap(log, packageManifestPaths) { + const { updatePackageMap, getPackages } = External['@kbn/repo-packages'](); - for (const plugin of plugins) { - entries.push([ - convertPluginIdToPackageId(plugin.manifest.id), - normalizePath(Path.relative(REPO_ROOT, plugin.directory)), - ]); - } - - const content = JSON.stringify( - entries.sort((a, b) => a[0].localeCompare(b[0])), - null, - 2 - ); - - if (content !== existingContent) { - await Fsp.writeFile(path, content); + if (updatePackageMap(REPO_ROOT, packageManifestPaths)) { log.warning('updated package map'); } + + return getPackages(REPO_ROOT); } diff --git a/kbn_pm/src/commands/bootstrap/regenerate_tsconfig_paths.mjs b/kbn_pm/src/commands/bootstrap/regenerate_tsconfig_paths.mjs index 20d97e52097455..06e32a50729196 100644 --- a/kbn_pm/src/commands/bootstrap/regenerate_tsconfig_paths.mjs +++ b/kbn_pm/src/commands/bootstrap/regenerate_tsconfig_paths.mjs @@ -13,16 +13,14 @@ import Fsp from 'fs/promises'; import { REPO_ROOT } from '../../lib/paths.mjs'; /** - * @param {string[]} tsconfigPaths + * @param {string[]} tsConfigRepoRels * @param {import('@kbn/some-dev-log').SomeDevLog} log */ -export async function regenerateTsconfigPaths(tsconfigPaths, log) { +export async function regenerateTsconfigPaths(tsConfigRepoRels, log) { const path = Path.resolve(REPO_ROOT, 'packages/kbn-ts-projects/config-paths.json'); const existingContent = Fs.existsSync(path) ? await Fsp.readFile(path, 'utf8') : undefined; - const entries = [...tsconfigPaths] - .map((abs) => Path.relative(REPO_ROOT, abs)) - .sort((a, b) => a.localeCompare(b)); + const entries = Array.from(tsConfigRepoRels).sort((a, b) => a.localeCompare(b)); const content = JSON.stringify(entries, null, 2); if (content !== existingContent) { diff --git a/kbn_pm/src/commands/bootstrap/update_package_json.mjs b/kbn_pm/src/commands/bootstrap/update_package_json.mjs index 7b54a32a49631f..9886954009e355 100644 --- a/kbn_pm/src/commands/bootstrap/update_package_json.mjs +++ b/kbn_pm/src/commands/bootstrap/update_package_json.mjs @@ -64,7 +64,7 @@ export async function updatePackageJson(pkgs, log) { new Map(Object.entries(pkgJson.dependencies).filter(([k]) => k.startsWith('@kbn/'))), new Map( pkgs - .filter((p) => !p.isDevOnly) + .filter((p) => !p.isDevOnly()) .map((p) => [p.manifest.id, `link:${p.normalizedRepoRelativeDir}`]) ) ); @@ -74,7 +74,7 @@ export async function updatePackageJson(pkgs, log) { new Map(Object.entries(pkgJson.devDependencies).filter(([k]) => k.startsWith('@kbn/'))), new Map( pkgs - .filter((p) => p.isDevOnly) + .filter((p) => p.isDevOnly()) .map((p) => [p.manifest.id, `link:${p.normalizedRepoRelativeDir}`]) ) ); diff --git a/kbn_pm/src/commands/bootstrap/validate_package_json.mjs b/kbn_pm/src/commands/bootstrap/validate_package_json.mjs deleted file mode 100644 index 8a88898dcf3105..00000000000000 --- a/kbn_pm/src/commands/bootstrap/validate_package_json.mjs +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { createCliError } from '../../lib/cli_error.mjs'; - -/** - * @param {import('@kbn/repo-info').KibanaPackageJson} pkgJson - * @param {import('@kbn/some-dev-log').SomeDevLog} log - */ -export async function validatePackageJson(pkgJson, log) { - const failures = false; - - const typesInProd = Object.keys(pkgJson.dependencies).filter((id) => id.startsWith('@types/')); - if (typesInProd.length) { - const list = typesInProd.map((id) => ` - ${id}`).join('\n'); - log.error( - `The following @types/* packages are listed in dependencies but should be in the devDependencies:\n${list}` - ); - } - - if (failures) { - throw createCliError('failed to validate package.json, check for errors above'); - } -} diff --git a/kbn_pm/src/lib/external_packages.js b/kbn_pm/src/lib/external_packages.js index c50522bb82da34..6fdcd3c0951e9f 100644 --- a/kbn_pm/src/lib/external_packages.js +++ b/kbn_pm/src/lib/external_packages.js @@ -6,9 +6,11 @@ * Side Public License, v 1. */ module.exports = { + /** @returns {import('@kbn/repo-packages')} */ ['@kbn/repo-packages']() { - require('@kbn/babel-register').install(); - return require('@kbn/repo-packages'); + // we need to load this package before we install node modules so we can't use @kbn/* imports here + // eslint-disable-next-line import/no-dynamic-require + return require('../../../' + 'packages/kbn-repo-packages'); }, ['@kbn/ci-stats-reporter']() { @@ -30,24 +32,4 @@ module.exports = { require('@kbn/babel-register').install(); return require('@kbn/get-repo-files'); }, - - ['@kbn/repo-info']() { - require('@kbn/babel-register').install(); - return require('@kbn/repo-info'); - }, - - ['@kbn/ts-projects']() { - require('@kbn/babel-register').install(); - return require('@kbn/ts-projects'); - }, - - /** - * @param {string} absPath - * @returns {unknown} - */ - reqAbs(absPath) { - require('@kbn/babel-register').install(); - // eslint-disable-next-line import/no-dynamic-require - return require(absPath); - }, }; diff --git a/kbn_pm/tsconfig.json b/kbn_pm/tsconfig.json index 78c739c82b0606..8680fa52a45e7a 100644 --- a/kbn_pm/tsconfig.json +++ b/kbn_pm/tsconfig.json @@ -21,7 +21,8 @@ "@kbn/sort-package-json", { "path": "../src/dev/tsconfig.json" }, "@kbn/ci-stats-reporter", - "@kbn/ts-projects", - "@kbn/repo-packages" + "@kbn/repo-packages", + "@kbn/some-dev-log", + "@kbn/bazel-runner" ] } diff --git a/nav-kibana-dev.docnav.json b/nav-kibana-dev.docnav.json index 683722674a6314..490718262a8160 100644 --- a/nav-kibana-dev.docnav.json +++ b/nav-kibana-dev.docnav.json @@ -175,6 +175,9 @@ { "label": "Contributors Newsletters", "items": [ + { + "id": "kibJanuary2023ContributorNewsletter" + }, { "id": "kibNovember2022ContributorNewsletter" }, @@ -258,9 +261,6 @@ { "id": "kibDevDocsDeprecationsByApi" }, - { - "id": "kibCorePluginApi" - }, { "id": "kibFieldFormatsPluginApi" }, diff --git a/package.json b/package.json index 4bf40ce60754f1..2373249c3a9a78 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "dashboarding" ], "private": true, - "version": "8.7.0", + "version": "8.8.0", "branch": "main", "types": "./kibana.d.ts", "tsdocMetadata": "./build/tsdoc-metadata.json", @@ -54,9 +54,11 @@ "lint:es": "node scripts/eslint", "lint:style": "node scripts/stylelint", "makelogs": "node scripts/makelogs", + "serverless-es": "node scripts/kibana --dev --serverless=es", + "serverless-oblt": "node scripts/kibana --dev --serverless=oblt", + "serverless-security": "node scripts/kibana --dev --serverless=security", "spec_to_console": "node scripts/spec_to_console", "start": "node scripts/kibana --dev", - "start-serverless": "node scripts/kibana --dev --serverless", "storybook": "node scripts/storybook", "test:ftr": "node scripts/functional_tests", "test:ftr:runner": "node scripts/functional_test_runner", @@ -109,9 +111,11 @@ "@elastic/filesaver": "1.1.2", "@elastic/node-crypto": "1.2.1", "@elastic/numeral": "^2.5.1", - "@elastic/react-search-ui": "^1.14.0", + "@elastic/react-search-ui": "^1.19.0", "@elastic/request-crypto": "2.0.1", - "@elastic/search-ui-app-search-connector": "^1.14.0", + "@elastic/search-ui": "^1.19.0", + "@elastic/search-ui-app-search-connector": "^1.19.0", + "@elastic/search-ui-engines-connector": "^1.19.0", "@emotion/cache": "^11.10.3", "@emotion/css": "^11.10.0", "@emotion/react": "^11.10.4", @@ -127,23 +131,57 @@ "@hapi/hoek": "^9.2.1", "@hapi/inert": "^6.0.4", "@hapi/wreck": "^17.1.0", + "@kbn/aad-fixtures-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/aad", "@kbn/ace": "link:packages/kbn-ace", + "@kbn/actions-plugin": "link:x-pack/plugins/actions", + "@kbn/actions-simulators-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/actions_simulators", + "@kbn/advanced-settings-plugin": "link:src/plugins/advanced_settings", "@kbn/aiops-components": "link:x-pack/packages/ml/aiops_components", + "@kbn/aiops-plugin": "link:x-pack/plugins/aiops", "@kbn/aiops-utils": "link:x-pack/packages/ml/aiops_utils", + "@kbn/alerting-api-integration-test-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/alerts", + "@kbn/alerting-example-plugin": "link:x-pack/examples/alerting_example", + "@kbn/alerting-fixture-plugin": "link:x-pack/test/functional_with_es_ssl/plugins/alerts", + "@kbn/alerting-plugin": "link:x-pack/plugins/alerting", "@kbn/alerts": "link:packages/kbn-alerts", + "@kbn/alerts-restricted-fixtures-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/alerts_restricted", + "@kbn/alerts-ui-shared": "link:packages/kbn-alerts-ui-shared", "@kbn/analytics": "link:packages/kbn-analytics", "@kbn/analytics-client": "link:packages/analytics/client", + "@kbn/analytics-ftr-helpers-plugin": "link:test/analytics/plugins/analytics_ftr_helpers", + "@kbn/analytics-plugin-a-plugin": "link:test/analytics/plugins/analytics_plugin_a", "@kbn/analytics-shippers-elastic-v3-browser": "link:packages/analytics/shippers/elastic_v3/browser", "@kbn/analytics-shippers-elastic-v3-common": "link:packages/analytics/shippers/elastic_v3/common", "@kbn/analytics-shippers-elastic-v3-server": "link:packages/analytics/shippers/elastic_v3/server", "@kbn/analytics-shippers-fullstory": "link:packages/analytics/shippers/fullstory", "@kbn/analytics-shippers-gainsight": "link:packages/analytics/shippers/gainsight", "@kbn/apm-config-loader": "link:packages/kbn-apm-config-loader", + "@kbn/apm-plugin": "link:x-pack/plugins/apm", "@kbn/apm-utils": "link:packages/kbn-apm-utils", + "@kbn/app-link-test-plugin": "link:test/plugin_functional/plugins/app_link_test", + "@kbn/application-usage-test-plugin": "link:x-pack/test/usage_collection/plugins/application_usage_test", + "@kbn/audit-log-plugin": "link:x-pack/test/security_api_integration/plugins/audit_log", + "@kbn/banners-plugin": "link:x-pack/plugins/banners", + "@kbn/bfetch-explorer-plugin": "link:examples/bfetch_explorer", + "@kbn/bfetch-plugin": "link:src/plugins/bfetch", + "@kbn/canvas-plugin": "link:x-pack/plugins/canvas", + "@kbn/cases-api-integration-test-plugin": "link:x-pack/test/cases_api_integration/common/plugins/cases", "@kbn/cases-components": "link:packages/kbn-cases-components", + "@kbn/cases-plugin": "link:x-pack/plugins/cases", "@kbn/cell-actions": "link:packages/kbn-cell-actions", "@kbn/chart-expressions-common": "link:src/plugins/chart_expressions/common", "@kbn/chart-icons": "link:packages/kbn-chart-icons", + "@kbn/charts-plugin": "link:src/plugins/charts", + "@kbn/cloud-chat-plugin": "link:x-pack/plugins/cloud_integrations/cloud_chat", + "@kbn/cloud-data-migration-plugin": "link:x-pack/plugins/cloud_integrations/cloud_data_migration", + "@kbn/cloud-defend-plugin": "link:x-pack/plugins/cloud_defend", + "@kbn/cloud-experiments-plugin": "link:x-pack/plugins/cloud_integrations/cloud_experiments", + "@kbn/cloud-full-story-plugin": "link:x-pack/plugins/cloud_integrations/cloud_full_story", + "@kbn/cloud-gainsight-plugin": "link:x-pack/plugins/cloud_integrations/cloud_gain_sight", + "@kbn/cloud-integration-saml-provider-plugin": "link:x-pack/test/cloud_integration/plugins/saml_provider", + "@kbn/cloud-links-plugin": "link:x-pack/plugins/cloud_integrations/cloud_links", + "@kbn/cloud-plugin": "link:x-pack/plugins/cloud", + "@kbn/cloud-security-posture-plugin": "link:x-pack/plugins/cloud_security_posture", "@kbn/code-editor": "link:packages/shared-ux/code_editor/impl", "@kbn/code-editor-mocks": "link:packages/shared-ux/code_editor/mocks", "@kbn/code-editor-types": "link:packages/shared-ux/code_editor/types", @@ -151,12 +189,18 @@ "@kbn/config": "link:packages/kbn-config", "@kbn/config-mocks": "link:packages/kbn-config-mocks", "@kbn/config-schema": "link:packages/kbn-config-schema", + "@kbn/console-plugin": "link:src/plugins/console", "@kbn/content-management-content-editor": "link:packages/content-management/content_editor", + "@kbn/content-management-plugin": "link:src/plugins/content_management", "@kbn/content-management-table-list": "link:packages/content-management/table_list", + "@kbn/controls-example-plugin": "link:examples/controls_example", + "@kbn/controls-plugin": "link:src/plugins/controls", + "@kbn/core": "link:src/core", "@kbn/core-analytics-browser": "link:packages/core/analytics/core-analytics-browser", "@kbn/core-analytics-browser-internal": "link:packages/core/analytics/core-analytics-browser-internal", "@kbn/core-analytics-server": "link:packages/core/analytics/core-analytics-server", "@kbn/core-analytics-server-internal": "link:packages/core/analytics/core-analytics-server-internal", + "@kbn/core-app-status-plugin": "link:test/plugin_functional/plugins/core_app_status", "@kbn/core-application-browser": "link:packages/core/application/core-application-browser", "@kbn/core-application-browser-internal": "link:packages/core/application/core-application-browser-internal", "@kbn/core-application-common": "link:packages/core/application/core-application-common", @@ -200,10 +244,12 @@ "@kbn/core-execution-context-server-internal": "link:packages/core/execution-context/core-execution-context-server-internal", "@kbn/core-fatal-errors-browser": "link:packages/core/fatal-errors/core-fatal-errors-browser", "@kbn/core-fatal-errors-browser-internal": "link:packages/core/fatal-errors/core-fatal-errors-browser-internal", + "@kbn/core-history-block-plugin": "link:test/plugin_functional/plugins/core_history_block", "@kbn/core-http-browser": "link:packages/core/http/core-http-browser", "@kbn/core-http-browser-internal": "link:packages/core/http/core-http-browser-internal", "@kbn/core-http-common": "link:packages/core/http/core-http-common", "@kbn/core-http-context-server-internal": "link:packages/core/http/core-http-context-server-internal", + "@kbn/core-http-plugin": "link:test/plugin_functional/plugins/core_http", "@kbn/core-http-request-handler-context-server": "link:packages/core/http/core-http-request-handler-context-server", "@kbn/core-http-request-handler-context-server-internal": "link:packages/core/http/core-http-request-handler-context-server-internal", "@kbn/core-http-resources-server": "link:packages/core/http/core-http-resources-server", @@ -237,6 +283,17 @@ "@kbn/core-notifications-browser-internal": "link:packages/core/notifications/core-notifications-browser-internal", "@kbn/core-overlays-browser": "link:packages/core/overlays/core-overlays-browser", "@kbn/core-overlays-browser-internal": "link:packages/core/overlays/core-overlays-browser-internal", + "@kbn/core-plugin-a-plugin": "link:test/plugin_functional/plugins/core_plugin_a", + "@kbn/core-plugin-appleave-plugin": "link:test/plugin_functional/plugins/core_plugin_appleave", + "@kbn/core-plugin-b-plugin": "link:test/plugin_functional/plugins/core_plugin_b", + "@kbn/core-plugin-chromeless-plugin": "link:test/plugin_functional/plugins/core_plugin_chromeless", + "@kbn/core-plugin-deep-links-plugin": "link:test/plugin_functional/plugins/core_plugin_deep_links", + "@kbn/core-plugin-deprecations-plugin": "link:test/plugin_functional/plugins/core_plugin_deprecations", + "@kbn/core-plugin-execution-context-plugin": "link:test/plugin_functional/plugins/core_plugin_execution_context", + "@kbn/core-plugin-helpmenu-plugin": "link:test/plugin_functional/plugins/core_plugin_helpmenu", + "@kbn/core-plugin-initializer-context-plugin": "link:test/node_roles_functional/plugins/core_plugin_initializer_context", + "@kbn/core-plugin-route-timeouts-plugin": "link:test/plugin_functional/plugins/core_plugin_route_timeouts", + "@kbn/core-plugin-static-assets-plugin": "link:test/plugin_functional/plugins/core_plugin_static_assets", "@kbn/core-plugins-base-server-internal": "link:packages/core/plugins/core-plugins-base-server-internal", "@kbn/core-plugins-browser": "link:packages/core/plugins/core-plugins-browser", "@kbn/core-plugins-browser-internal": "link:packages/core/plugins/core-plugins-browser-internal", @@ -244,6 +301,7 @@ "@kbn/core-plugins-server-internal": "link:packages/core/plugins/core-plugins-server-internal", "@kbn/core-preboot-server": "link:packages/core/preboot/core-preboot-server", "@kbn/core-preboot-server-internal": "link:packages/core/preboot/core-preboot-server-internal", + "@kbn/core-provider-plugin": "link:test/plugin_functional/plugins/core_provider_plugin", "@kbn/core-rendering-browser-internal": "link:packages/core/rendering/core-rendering-browser-internal", "@kbn/core-rendering-server-internal": "link:packages/core/rendering/core-rendering-server-internal", "@kbn/core-root-browser-internal": "link:packages/core/root/core-root-browser-internal", @@ -278,50 +336,207 @@ "@kbn/core-usage-data-base-server-internal": "link:packages/core/usage-data/core-usage-data-base-server-internal", "@kbn/core-usage-data-server": "link:packages/core/usage-data/core-usage-data-server", "@kbn/core-usage-data-server-internal": "link:packages/core/usage-data/core-usage-data-server-internal", + "@kbn/cross-cluster-replication-plugin": "link:x-pack/plugins/cross_cluster_replication", "@kbn/crypto": "link:packages/kbn-crypto", "@kbn/crypto-browser": "link:packages/kbn-crypto-browser", + "@kbn/custom-branding-plugin": "link:x-pack/plugins/custom_branding", + "@kbn/custom-integrations-plugin": "link:src/plugins/custom_integrations", + "@kbn/dashboard-embeddable-examples-plugin": "link:examples/dashboard_embeddable_examples", + "@kbn/dashboard-enhanced-plugin": "link:x-pack/plugins/dashboard_enhanced", + "@kbn/dashboard-plugin": "link:src/plugins/dashboard", + "@kbn/data-plugin": "link:src/plugins/data", + "@kbn/data-search-plugin": "link:test/plugin_functional/plugins/data_search", + "@kbn/data-view-editor-plugin": "link:src/plugins/data_view_editor", + "@kbn/data-view-field-editor-example-plugin": "link:examples/data_view_field_editor_example", + "@kbn/data-view-field-editor-plugin": "link:src/plugins/data_view_field_editor", + "@kbn/data-view-management-plugin": "link:src/plugins/data_view_management", + "@kbn/data-views-plugin": "link:src/plugins/data_views", + "@kbn/data-visualizer-plugin": "link:x-pack/plugins/data_visualizer", "@kbn/datemath": "link:packages/kbn-datemath", + "@kbn/dev-tools-plugin": "link:src/plugins/dev_tools", + "@kbn/developer-examples-plugin": "link:examples/developer_examples", + "@kbn/discover-enhanced-plugin": "link:x-pack/plugins/discover_enhanced", + "@kbn/discover-plugin": "link:src/plugins/discover", "@kbn/doc-links": "link:packages/kbn-doc-links", "@kbn/ebt-tools": "link:packages/kbn-ebt-tools", "@kbn/ecs": "link:packages/kbn-ecs", + "@kbn/ecs-data-quality-dashboard": "link:x-pack/packages/kbn-ecs-data-quality-dashboard", + "@kbn/ecs-data-quality-dashboard-plugin": "link:x-pack/plugins/ecs_data_quality_dashboard", + "@kbn/elasticsearch-client-plugin": "link:test/plugin_functional/plugins/elasticsearch_client_plugin", + "@kbn/elasticsearch-client-xpack-plugin": "link:x-pack/test/plugin_api_integration/plugins/elasticsearch_client", + "@kbn/embeddable-enhanced-plugin": "link:x-pack/plugins/embeddable_enhanced", + "@kbn/embeddable-examples-plugin": "link:examples/embeddable_examples", + "@kbn/embeddable-explorer-plugin": "link:examples/embeddable_explorer", + "@kbn/embeddable-plugin": "link:src/plugins/embeddable", + "@kbn/embedded-lens-example-plugin": "link:x-pack/examples/embedded_lens_example", + "@kbn/encrypted-saved-objects-plugin": "link:x-pack/plugins/encrypted_saved_objects", + "@kbn/enterprise-search-plugin": "link:x-pack/plugins/enterprise_search", "@kbn/es-errors": "link:packages/kbn-es-errors", "@kbn/es-query": "link:packages/kbn-es-query", "@kbn/es-types": "link:packages/kbn-es-types", + "@kbn/es-ui-shared-plugin": "link:src/plugins/es_ui_shared", + "@kbn/eso-plugin": "link:x-pack/test/encrypted_saved_objects_api_integration/plugins/api_consumer_plugin", + "@kbn/event-annotation-plugin": "link:src/plugins/event_annotation", + "@kbn/event-log-fixture-plugin": "link:x-pack/test/plugin_api_integration/plugins/event_log", + "@kbn/event-log-plugin": "link:x-pack/plugins/event_log", + "@kbn/exploratory-view-example-plugin": "link:x-pack/examples/exploratory_view_example", + "@kbn/expression-error-plugin": "link:src/plugins/expression_error", + "@kbn/expression-gauge-plugin": "link:src/plugins/chart_expressions/expression_gauge", + "@kbn/expression-heatmap-plugin": "link:src/plugins/chart_expressions/expression_heatmap", + "@kbn/expression-image-plugin": "link:src/plugins/expression_image", + "@kbn/expression-legacy-metric-vis-plugin": "link:src/plugins/chart_expressions/expression_legacy_metric", + "@kbn/expression-metric-plugin": "link:src/plugins/expression_metric", + "@kbn/expression-metric-vis-plugin": "link:src/plugins/chart_expressions/expression_metric", + "@kbn/expression-partition-vis-plugin": "link:src/plugins/chart_expressions/expression_partition_vis", + "@kbn/expression-repeat-image-plugin": "link:src/plugins/expression_repeat_image", + "@kbn/expression-reveal-image-plugin": "link:src/plugins/expression_reveal_image", + "@kbn/expression-shape-plugin": "link:src/plugins/expression_shape", + "@kbn/expression-tagcloud-plugin": "link:src/plugins/chart_expressions/expression_tagcloud", + "@kbn/expression-xy-plugin": "link:src/plugins/chart_expressions/expression_xy", + "@kbn/expressions-explorer-plugin": "link:examples/expressions_explorer", + "@kbn/expressions-plugin": "link:src/plugins/expressions", + "@kbn/feature-usage-test-plugin": "link:x-pack/test/plugin_api_integration/plugins/feature_usage_test", + "@kbn/features-plugin": "link:x-pack/plugins/features", + "@kbn/fec-alerts-test-plugin": "link:x-pack/test/functional_execution_context/plugins/alerts", + "@kbn/field-formats-example-plugin": "link:examples/field_formats_example", + "@kbn/field-formats-plugin": "link:src/plugins/field_formats", "@kbn/field-types": "link:packages/kbn-field-types", + "@kbn/file-upload-plugin": "link:x-pack/plugins/file_upload", + "@kbn/files-example-plugin": "link:examples/files_example", + "@kbn/files-management-plugin": "link:src/plugins/files_management", + "@kbn/files-plugin": "link:src/plugins/files", + "@kbn/fleet-plugin": "link:x-pack/plugins/fleet", "@kbn/flot-charts": "link:packages/kbn-flot-charts", + "@kbn/foo-plugin": "link:x-pack/test/ui_capabilities/common/plugins/foo_plugin", + "@kbn/ftr-apis-plugin": "link:src/plugins/ftr_apis", + "@kbn/functional-with-es-ssl-cases-test-plugin": "link:x-pack/test/functional_with_es_ssl/plugins/cases", + "@kbn/global-search-bar-plugin": "link:x-pack/plugins/global_search_bar", + "@kbn/global-search-plugin": "link:x-pack/plugins/global_search", + "@kbn/global-search-providers-plugin": "link:x-pack/plugins/global_search_providers", + "@kbn/global-search-test-plugin": "link:x-pack/test/plugin_functional/plugins/global_search_test", + "@kbn/graph-plugin": "link:x-pack/plugins/graph", + "@kbn/grokdebugger-plugin": "link:x-pack/plugins/grokdebugger", "@kbn/guided-onboarding": "link:packages/kbn-guided-onboarding", + "@kbn/guided-onboarding-example-plugin": "link:examples/guided_onboarding_example", + "@kbn/guided-onboarding-plugin": "link:src/plugins/guided_onboarding", "@kbn/handlebars": "link:packages/kbn-handlebars", "@kbn/hapi-mocks": "link:packages/kbn-hapi-mocks", "@kbn/health-gateway-server": "link:packages/kbn-health-gateway-server", + "@kbn/hello-world-plugin": "link:examples/hello_world", + "@kbn/home-plugin": "link:src/plugins/home", "@kbn/home-sample-data-card": "link:packages/home/sample_data_card", "@kbn/home-sample-data-tab": "link:packages/home/sample_data_tab", "@kbn/home-sample-data-types": "link:packages/home/sample_data_types", "@kbn/i18n": "link:packages/kbn-i18n", "@kbn/i18n-react": "link:packages/kbn-i18n-react", + "@kbn/iframe-embedded-plugin": "link:x-pack/test/functional_embedded/plugins/iframe_embedded", + "@kbn/image-embeddable-plugin": "link:src/plugins/image_embeddable", + "@kbn/index-lifecycle-management-plugin": "link:x-pack/plugins/index_lifecycle_management", + "@kbn/index-management-plugin": "link:x-pack/plugins/index_management", + "@kbn/index-patterns-test-plugin": "link:test/plugin_functional/plugins/index_patterns", + "@kbn/infra-plugin": "link:x-pack/plugins/infra", + "@kbn/ingest-pipelines-plugin": "link:x-pack/plugins/ingest_pipelines", + "@kbn/input-control-vis-plugin": "link:src/plugins/input_control_vis", + "@kbn/inspector-plugin": "link:src/plugins/inspector", + "@kbn/interactive-setup-plugin": "link:src/plugins/interactive_setup", + "@kbn/interactive-setup-test-endpoints-plugin": "link:test/interactive_setup_api_integration/plugins/test_endpoints", "@kbn/interpreter": "link:packages/kbn-interpreter", "@kbn/io-ts-utils": "link:packages/kbn-io-ts-utils", + "@kbn/kbn-health-gateway-status-plugin": "link:test/health_gateway/plugins/status", + "@kbn/kbn-sample-panel-action-plugin": "link:test/plugin_functional/plugins/kbn_sample_panel_action", + "@kbn/kbn-top-nav-plugin": "link:test/plugin_functional/plugins/kbn_top_nav", + "@kbn/kbn-tp-custom-visualizations-plugin": "link:test/plugin_functional/plugins/kbn_tp_custom_visualizations", + "@kbn/kbn-tp-run-pipeline-plugin": "link:test/interpreter_functional/plugins/kbn_tp_run_pipeline", + "@kbn/kibana-cors-test-plugin": "link:x-pack/test/functional_cors/plugins/kibana_cors_test", + "@kbn/kibana-overview-plugin": "link:src/plugins/kibana_overview", + "@kbn/kibana-react-plugin": "link:src/plugins/kibana_react", + "@kbn/kibana-usage-collection-plugin": "link:src/plugins/kibana_usage_collection", + "@kbn/kibana-utils-plugin": "link:src/plugins/kibana_utils", + "@kbn/kubernetes-security-plugin": "link:x-pack/plugins/kubernetes_security", "@kbn/language-documentation-popover": "link:packages/kbn-language-documentation-popover", + "@kbn/lens-plugin": "link:x-pack/plugins/lens", + "@kbn/license-api-guard-plugin": "link:x-pack/plugins/license_api_guard", + "@kbn/license-management-plugin": "link:x-pack/plugins/license_management", + "@kbn/licensing-plugin": "link:x-pack/plugins/licensing", + "@kbn/lists-plugin": "link:x-pack/plugins/lists", + "@kbn/locator-examples-plugin": "link:examples/locator_examples", + "@kbn/locator-explorer-plugin": "link:examples/locator_explorer", "@kbn/logging": "link:packages/kbn-logging", "@kbn/logging-mocks": "link:packages/kbn-logging-mocks", + "@kbn/logstash-plugin": "link:x-pack/plugins/logstash", + "@kbn/management-plugin": "link:src/plugins/management", + "@kbn/management-test-plugin": "link:test/plugin_functional/plugins/management_test_plugin", "@kbn/mapbox-gl": "link:packages/kbn-mapbox-gl", + "@kbn/maps-custom-raster-source-plugin": "link:x-pack/examples/third_party_maps_source_example", + "@kbn/maps-ems-plugin": "link:src/plugins/maps_ems", + "@kbn/maps-plugin": "link:x-pack/plugins/maps", "@kbn/ml-agg-utils": "link:x-pack/packages/ml/agg_utils", "@kbn/ml-date-picker": "link:x-pack/packages/ml/date_picker", "@kbn/ml-is-defined": "link:x-pack/packages/ml/is_defined", "@kbn/ml-is-populated-object": "link:x-pack/packages/ml/is_populated_object", "@kbn/ml-local-storage": "link:x-pack/packages/ml/local_storage", "@kbn/ml-nested-property": "link:x-pack/packages/ml/nested_property", + "@kbn/ml-plugin": "link:x-pack/plugins/ml", "@kbn/ml-query-utils": "link:x-pack/packages/ml/query_utils", "@kbn/ml-string-hash": "link:x-pack/packages/ml/string_hash", "@kbn/ml-url-state": "link:x-pack/packages/ml/url_state", "@kbn/monaco": "link:packages/kbn-monaco", + "@kbn/monitoring-collection-plugin": "link:x-pack/plugins/monitoring_collection", + "@kbn/monitoring-plugin": "link:x-pack/plugins/monitoring", + "@kbn/navigation-plugin": "link:src/plugins/navigation", + "@kbn/newsfeed-plugin": "link:src/plugins/newsfeed", + "@kbn/newsfeed-test-plugin": "link:test/common/plugins/newsfeed", + "@kbn/notifications-plugin": "link:x-pack/plugins/notifications", + "@kbn/observability-fixtures-plugin": "link:x-pack/test/cases_api_integration/common/plugins/observability", + "@kbn/observability-plugin": "link:x-pack/plugins/observability", + "@kbn/oidc-provider-plugin": "link:x-pack/test/security_api_integration/plugins/oidc_provider", + "@kbn/open-telemetry-instrumented-plugin": "link:test/common/plugins/otel_metrics", "@kbn/osquery-io-ts-types": "link:packages/kbn-osquery-io-ts-types", - "@kbn/plugin-discovery": "link:packages/kbn-plugin-discovery", + "@kbn/osquery-plugin": "link:x-pack/plugins/osquery", + "@kbn/paertial-results-example-plugin": "link:examples/partial_results_example", + "@kbn/painless-lab-plugin": "link:x-pack/plugins/painless_lab", + "@kbn/preboot-example-plugin": "link:examples/preboot_example", + "@kbn/presentation-util-plugin": "link:src/plugins/presentation_util", + "@kbn/profiling-plugin": "link:x-pack/plugins/profiling", "@kbn/react-field": "link:packages/kbn-react-field", + "@kbn/remote-clusters-plugin": "link:x-pack/plugins/remote_clusters", + "@kbn/rendering-plugin": "link:test/plugin_functional/plugins/rendering_plugin", "@kbn/repo-info": "link:packages/kbn-repo-info", "@kbn/repo-packages": "link:packages/kbn-repo-packages", + "@kbn/reporting-example-plugin": "link:x-pack/examples/reporting_example", + "@kbn/reporting-plugin": "link:x-pack/plugins/reporting", + "@kbn/resolver-test-plugin": "link:x-pack/test/plugin_functional/plugins/resolver_test", + "@kbn/response-stream-plugin": "link:examples/response_stream", "@kbn/rison": "link:packages/kbn-rison", + "@kbn/rollup-plugin": "link:x-pack/plugins/rollup", + "@kbn/routing-example-plugin": "link:examples/routing_example", "@kbn/rule-data-utils": "link:packages/kbn-rule-data-utils", + "@kbn/rule-registry-plugin": "link:x-pack/plugins/rule_registry", + "@kbn/runtime-fields-plugin": "link:x-pack/plugins/runtime_fields", "@kbn/safer-lodash-set": "link:packages/kbn-safer-lodash-set", + "@kbn/saml-provider-plugin": "link:x-pack/test/security_api_integration/plugins/saml_provider", + "@kbn/sample-task-plugin": "link:x-pack/test/plugin_api_integration/plugins/sample_task_plugin", + "@kbn/saved-object-export-transforms-plugin": "link:test/plugin_functional/plugins/saved_object_export_transforms", + "@kbn/saved-object-import-warnings-plugin": "link:test/plugin_functional/plugins/saved_object_import_warnings", + "@kbn/saved-object-test-plugin": "link:x-pack/test/saved_object_api_integration/common/plugins/saved_object_test_plugin", + "@kbn/saved-objects-finder-plugin": "link:src/plugins/saved_objects_finder", + "@kbn/saved-objects-hidden-from-http-apis-type-plugin": "link:test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type", + "@kbn/saved-objects-hidden-type-plugin": "link:test/plugin_functional/plugins/saved_objects_hidden_type", + "@kbn/saved-objects-management-plugin": "link:src/plugins/saved_objects_management", + "@kbn/saved-objects-plugin": "link:src/plugins/saved_objects", + "@kbn/saved-objects-tagging-oss-plugin": "link:src/plugins/saved_objects_tagging_oss", + "@kbn/saved-objects-tagging-plugin": "link:x-pack/plugins/saved_objects_tagging", + "@kbn/saved-search-plugin": "link:src/plugins/saved_search", + "@kbn/screenshot-mode-example-plugin": "link:examples/screenshot_mode_example", + "@kbn/screenshot-mode-plugin": "link:src/plugins/screenshot_mode", + "@kbn/screenshotting-example-plugin": "link:x-pack/examples/screenshotting_example", + "@kbn/screenshotting-plugin": "link:x-pack/plugins/screenshotting", + "@kbn/search-examples-plugin": "link:examples/search_examples", + "@kbn/searchprofiler-plugin": "link:x-pack/plugins/searchprofiler", + "@kbn/security-plugin": "link:x-pack/plugins/security", + "@kbn/security-solution-fixtures-plugin": "link:x-pack/test/cases_api_integration/common/plugins/security_solution", + "@kbn/security-solution-plugin": "link:x-pack/plugins/security_solution", + "@kbn/security-test-endpoints-plugin": "link:x-pack/test/security_functional/plugins/test_endpoints", "@kbn/securitysolution-autocomplete": "link:packages/kbn-securitysolution-autocomplete", "@kbn/securitysolution-ecs": "link:packages/kbn-securitysolution-ecs", "@kbn/securitysolution-es-utils": "link:packages/kbn-securitysolution-es-utils", @@ -340,7 +555,11 @@ "@kbn/securitysolution-utils": "link:packages/kbn-securitysolution-utils", "@kbn/server-http-tools": "link:packages/kbn-server-http-tools", "@kbn/server-route-repository": "link:packages/kbn-server-route-repository", + "@kbn/session-notifications-plugin": "link:test/plugin_functional/plugins/session_notifications", + "@kbn/session-view-plugin": "link:x-pack/plugins/session_view", "@kbn/set-map": "link:packages/kbn-set-map", + "@kbn/share-examples-plugin": "link:examples/share_examples", + "@kbn/share-plugin": "link:src/plugins/share", "@kbn/shared-svg": "link:packages/kbn-shared-svg", "@kbn/shared-ux-avatar-solution": "link:packages/shared-ux/avatar/solution", "@kbn/shared-ux-avatar-user-profile-components": "link:packages/shared-ux/avatar/user_profile/impl", @@ -392,19 +611,79 @@ "@kbn/shared-ux-storybook-mock": "link:packages/shared-ux/storybook/mock", "@kbn/shared-ux-utility": "link:packages/kbn-shared-ux-utility", "@kbn/slo-schema": "link:packages/kbn-slo-schema", + "@kbn/snapshot-restore-plugin": "link:x-pack/plugins/snapshot_restore", + "@kbn/spaces-plugin": "link:x-pack/plugins/spaces", + "@kbn/spaces-test-plugin": "link:x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin", + "@kbn/stack-alerts-plugin": "link:x-pack/plugins/stack_alerts", + "@kbn/stack-connectors-plugin": "link:x-pack/plugins/stack_connectors", + "@kbn/stack-management-usage-test-plugin": "link:x-pack/test/usage_collection/plugins/stack_management_usage_test", + "@kbn/state-containers-examples-plugin": "link:examples/state_containers_examples", + "@kbn/status-plugin-a-plugin": "link:test/server_integration/plugins/status_plugin_a", + "@kbn/status-plugin-b-plugin": "link:test/server_integration/plugins/status_plugin_b", "@kbn/std": "link:packages/kbn-std", + "@kbn/synthetics-plugin": "link:x-pack/plugins/synthetics", + "@kbn/task-manager-fixture-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture", + "@kbn/task-manager-performance-plugin": "link:x-pack/test/plugin_api_perf/plugins/task_manager_performance", + "@kbn/task-manager-plugin": "link:x-pack/plugins/task_manager", + "@kbn/telemetry-collection-manager-plugin": "link:src/plugins/telemetry_collection_manager", + "@kbn/telemetry-collection-xpack-plugin": "link:x-pack/plugins/telemetry_collection_xpack", + "@kbn/telemetry-management-section-plugin": "link:src/plugins/telemetry_management_section", + "@kbn/telemetry-plugin": "link:src/plugins/telemetry", + "@kbn/telemetry-test-plugin": "link:test/plugin_functional/plugins/telemetry", + "@kbn/test-feature-usage-plugin": "link:x-pack/test/licensing_plugin/plugins/test_feature_usage", + "@kbn/testing-embedded-lens-plugin": "link:x-pack/examples/testing_embedded_lens", + "@kbn/third-party-lens-navigation-prompt-plugin": "link:x-pack/examples/third_party_lens_navigation_prompt", + "@kbn/third-party-vis-lens-example-plugin": "link:x-pack/examples/third_party_vis_lens_example", + "@kbn/threat-intelligence-plugin": "link:x-pack/plugins/threat_intelligence", + "@kbn/timelines-plugin": "link:x-pack/plugins/timelines", "@kbn/timelion-grammar": "link:packages/kbn-timelion-grammar", "@kbn/tinymath": "link:packages/kbn-tinymath", + "@kbn/transform-plugin": "link:x-pack/plugins/transform", + "@kbn/translations-plugin": "link:x-pack/plugins/translations", + "@kbn/triggers-actions-ui-example-plugin": "link:x-pack/examples/triggers_actions_ui_example", + "@kbn/triggers-actions-ui-plugin": "link:x-pack/plugins/triggers_actions_ui", "@kbn/typed-react-router-config": "link:packages/kbn-typed-react-router-config", "@kbn/ui-actions-browser": "link:packages/kbn-ui-actions-browser", + "@kbn/ui-actions-enhanced-examples-plugin": "link:x-pack/examples/ui_actions_enhanced_examples", + "@kbn/ui-actions-enhanced-plugin": "link:src/plugins/ui_actions_enhanced", + "@kbn/ui-actions-examples-plugin": "link:examples/ui_action_examples", + "@kbn/ui-actions-explorer-plugin": "link:examples/ui_actions_explorer", + "@kbn/ui-actions-plugin": "link:src/plugins/ui_actions", "@kbn/ui-framework": "link:packages/kbn-ui-framework", + "@kbn/ui-settings-plugin": "link:test/plugin_functional/plugins/ui_settings_plugin", "@kbn/ui-shared-deps-npm": "link:packages/kbn-ui-shared-deps-npm", "@kbn/ui-shared-deps-src": "link:packages/kbn-ui-shared-deps-src", "@kbn/ui-theme": "link:packages/kbn-ui-theme", + "@kbn/unified-field-list-plugin": "link:src/plugins/unified_field_list", + "@kbn/unified-histogram-plugin": "link:src/plugins/unified_histogram", + "@kbn/unified-search-plugin": "link:src/plugins/unified_search", + "@kbn/upgrade-assistant-plugin": "link:x-pack/plugins/upgrade_assistant", + "@kbn/url-drilldown-plugin": "link:x-pack/plugins/drilldowns/url_drilldown", + "@kbn/url-forwarding-plugin": "link:src/plugins/url_forwarding", + "@kbn/usage-collection-plugin": "link:src/plugins/usage_collection", + "@kbn/usage-collection-test-plugin": "link:test/plugin_functional/plugins/usage_collection", "@kbn/user-profile-components": "link:packages/kbn-user-profile-components", + "@kbn/user-profile-examples-plugin": "link:examples/user_profile_examples", + "@kbn/user-profiles-consumer-plugin": "link:x-pack/test/security_api_integration/plugins/user_profiles_consumer", "@kbn/utility-types": "link:packages/kbn-utility-types", "@kbn/utility-types-jest": "link:packages/kbn-utility-types-jest", "@kbn/utils": "link:packages/kbn-utils", + "@kbn/ux-plugin": "link:x-pack/plugins/ux", + "@kbn/vis-default-editor-plugin": "link:src/plugins/vis_default_editor", + "@kbn/vis-type-gauge-plugin": "link:src/plugins/vis_types/gauge", + "@kbn/vis-type-heatmap-plugin": "link:src/plugins/vis_types/heatmap", + "@kbn/vis-type-markdown-plugin": "link:src/plugins/vis_type_markdown", + "@kbn/vis-type-metric-plugin": "link:src/plugins/vis_types/metric", + "@kbn/vis-type-pie-plugin": "link:src/plugins/vis_types/pie", + "@kbn/vis-type-table-plugin": "link:src/plugins/vis_types/table", + "@kbn/vis-type-tagcloud-plugin": "link:src/plugins/vis_types/tagcloud", + "@kbn/vis-type-timelion-plugin": "link:src/plugins/vis_types/timelion", + "@kbn/vis-type-timeseries-plugin": "link:src/plugins/vis_types/timeseries", + "@kbn/vis-type-vega-plugin": "link:src/plugins/vis_types/vega", + "@kbn/vis-type-vislib-plugin": "link:src/plugins/vis_types/vislib", + "@kbn/vis-type-xy-plugin": "link:src/plugins/vis_types/xy", + "@kbn/visualizations-plugin": "link:src/plugins/visualizations", + "@kbn/watcher-plugin": "link:x-pack/plugins/watcher", "@loaders.gl/core": "^2.3.1", "@loaders.gl/json": "^2.3.1", "@loaders.gl/shapefile": "^2.3.1", @@ -421,8 +700,8 @@ "@opentelemetry/semantic-conventions": "^1.4.0", "@reduxjs/toolkit": "1.7.2", "@slack/webhook": "^5.0.4", - "@tanstack/react-query": "^4.23.0", - "@tanstack/react-query-devtools": "^4.23.0", + "@tanstack/react-query": "^4.24.4", + "@tanstack/react-query-devtools": "^4.24.4", "@turf/along": "6.0.1", "@turf/area": "6.0.1", "@turf/bbox": "6.0.1", @@ -667,7 +946,7 @@ "@babel/core": "^7.20.12", "@babel/eslint-parser": "^7.19.1", "@babel/eslint-plugin": "^7.19.1", - "@babel/generator": "^7.20.7", + "@babel/generator": "^7.20.14", "@babel/helper-plugin-utils": "^7.20.2", "@babel/parser": "^7.20.13", "@babel/plugin-proposal-class-properties": "^7.18.6", @@ -707,7 +986,6 @@ "@kbn/apm-synthtrace": "link:packages/kbn-apm-synthtrace", "@kbn/apm-synthtrace-client": "link:packages/kbn-apm-synthtrace-client", "@kbn/axe-config": "link:packages/kbn-axe-config", - "@kbn/babel-plugin-package-imports": "link:packages/kbn-babel-plugin-package-imports", "@kbn/babel-preset": "link:packages/kbn-babel-preset", "@kbn/babel-register": "link:packages/kbn-babel-register", "@kbn/babel-transform": "link:packages/kbn-babel-transform", @@ -813,6 +1091,7 @@ "@kbn/repo-path": "link:packages/kbn-repo-path", "@kbn/repo-source-classifier": "link:packages/kbn-repo-source-classifier", "@kbn/repo-source-classifier-cli": "link:packages/kbn-repo-source-classifier-cli", + "@kbn/security-api-integration-helpers": "link:x-pack/test/security_api_integration/packages/helpers", "@kbn/some-dev-log": "link:packages/kbn-some-dev-log", "@kbn/sort-package-json": "link:packages/kbn-sort-package-json", "@kbn/spec-to-console": "link:packages/kbn-spec-to-console", @@ -1049,6 +1328,7 @@ "cypress-react-selector": "^3.0.0", "cypress-real-events": "^1.7.6", "cypress-recurse": "^1.26.0", + "date-fns": "^2.29.3", "debug": "^2.6.9", "delete-empty": "^2.0.0", "dependency-check": "^4.1.0", @@ -1174,7 +1454,7 @@ "svgo": "^2.8.0", "tape": "^5.0.1", "tempy": "^0.3.0", - "terser": "^5.15.1", + "terser": "^5.16.1", "terser-webpack-plugin": "^4.2.3", "tough-cookie": "^4.1.2", "tree-kill": "^1.2.2", diff --git a/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.ts index 249d3880c07d62..0e1770eada9b1c 100644 --- a/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.ts +++ b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.ts @@ -77,7 +77,7 @@ describe('registerBundleRoutes', () => { expect(registerRouteForBundleMock).toHaveBeenCalledWith(router, { fileHashCache: expect.any(FileHashCache), isDist: true, - bundlesPath: expect.stringMatching(/src\/core\/target\/public/), + bundlesPath: expect.stringMatching(/\/@kbn\/core\/target\/public$/), publicPath: '/server-base-path/42/bundles/core/', routePath: '/42/bundles/core/', }); diff --git a/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.ts index ad1008c5ac1e38..22266e97355e37 100644 --- a/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.ts +++ b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import { join } from 'path'; import type { PackageInfo } from '@kbn/config'; import { fromRoot } from '@kbn/repo-info'; import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm'; @@ -61,7 +60,9 @@ export function registerBundleRoutes({ registerRouteForBundle(router, { publicPath: `${serverBasePath}/${buildNum}/bundles/core/`, routePath: `/${buildNum}/bundles/core/`, - bundlesPath: fromRoot(join('src', 'core', 'target', 'public')), + bundlesPath: isDist + ? fromRoot('node_modules/@kbn/core/target/public') + : fromRoot('src/core/target/public'), fileHashCache, isDist, }); diff --git a/packages/core/chrome/core-chrome-browser-internal/src/ui/header/nav_link.tsx b/packages/core/chrome/core-chrome-browser-internal/src/ui/header/nav_link.tsx index 9ffc884c1d1519..8795ba75902177 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/ui/header/nav_link.tsx +++ b/packages/core/chrome/core-chrome-browser-internal/src/ui/header/nav_link.tsx @@ -94,7 +94,7 @@ export function createEuiButtonItem({ navigateToUrl(url); }, isDisabled: disabled, - dataTestSubj: `collapsibleNavAppButton-${id}`, + 'data-test-subj': dataTestSubj || `collapsibleNavAppButton-${id}`, }; } diff --git a/packages/core/http/core-http-server-internal/src/csp/config.ts b/packages/core/http/core-http-server-internal/src/csp/config.ts index 2bd145abd85810..d192ddda9a108f 100644 --- a/packages/core/http/core-http-server-internal/src/csp/config.ts +++ b/packages/core/http/core-http-server-internal/src/csp/config.ts @@ -39,13 +39,7 @@ const getDirectiveValueValidator = ({ allowNone, allowNonce }: DirectiveValidati const configSchema = schema.object( { - disableUnsafeEval: schema.conditional( - // Default disableUnsafeEval to false if it's not a distributable release - schema.contextRef('dist'), - true, - schema.boolean({ defaultValue: false }), - schema.boolean({ defaultValue: true }) - ), + disableUnsafeEval: schema.boolean({ defaultValue: true }), script_src: schema.arrayOf(schema.string(), { defaultValue: [], validate: getDirectiveValidator({ allowNone: false, allowNonce: false }), diff --git a/packages/core/http/core-http-server-internal/src/csp/csp_config.test.mocks.ts b/packages/core/http/core-http-server-internal/src/csp/csp_config.test.mocks.ts deleted file mode 100644 index d1c7303648e16f..00000000000000 --- a/packages/core/http/core-http-server-internal/src/csp/csp_config.test.mocks.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { schema } from '@kbn/config-schema'; -import { cspConfig } from './config'; - -const origSchema = cspConfig.schema; - -export const mockConfig = { - create(defaultDisableUnsafeEval: boolean) { - // @ts-expect-error: Property 'extends' does not exist on type?? - cspConfig.schema = cspConfig.schema.extends({ - disableUnsafeEval: schema.boolean({ defaultValue: defaultDisableUnsafeEval }), - }); - return cspConfig; - }, - reset() { - cspConfig.schema = origSchema; - }, -}; diff --git a/packages/core/http/core-http-server-internal/src/csp/csp_config.test.ts b/packages/core/http/core-http-server-internal/src/csp/csp_config.test.ts index b7c3d4b77ebad4..da3a21e5816afb 100644 --- a/packages/core/http/core-http-server-internal/src/csp/csp_config.test.ts +++ b/packages/core/http/core-http-server-internal/src/csp/csp_config.test.ts @@ -8,7 +8,6 @@ import { CspConfig } from './csp_config'; import { cspConfig, CspConfigType } from './config'; -import { mockConfig } from './csp_config.test.mocks'; // CSP rules aren't strictly additive, so any change can potentially expand or // restrict the policy in a way we consider a breaking change. For that reason, @@ -34,6 +33,7 @@ describe('CspConfig', () => { expect(CspConfig.DEFAULT).toMatchInlineSnapshot(` CspConfig { "disableEmbedding": false, + "disableUnsafeEval": true, "header": "script-src 'self'; worker-src blob: 'self'; style-src 'unsafe-inline' 'self'", "strict": true, "warnLegacyBrowsers": true, @@ -140,36 +140,15 @@ describe('CspConfig', () => { ); }); - test('when "disableUnsafeEval" is not set, and the default value is "false", the `unsafe-eval` CSP should be set', () => { - // The default value for `disableUnsafeEval` depends on whether Kibana is a distributable or not. To test both scenarios, we mock the config. - const mockedConfig = mockConfig.create(false).schema.validate({}); - - const config = new CspConfig({ - ...mockedConfig, - script_src: ['foo', 'bar'], - }); - - expect(config.header).toEqual( - `script-src 'self' 'unsafe-eval' foo bar; worker-src blob: 'self'; style-src 'unsafe-inline' 'self'` - ); - - mockConfig.reset(); - }); - - test('when "disableUnsafeEval" is not set, and the default value is "true", the `unsafe-eval` CSP should not be set', () => { - // The default value for `disableUnsafeEval` depends on whether Kibana is a distributable or not. To test both scenarios, we mock the config. - const mockedConfig = mockConfig.create(true).schema.validate({}); - + test('when "disableUnsafeEval" is not set, the `unsafe-eval` CSP should not be set', () => { const config = new CspConfig({ - ...mockedConfig, + ...defaultConfig, script_src: ['foo', 'bar'], }); expect(config.header).toEqual( `script-src 'self' foo bar; worker-src blob: 'self'; style-src 'unsafe-inline' 'self'` ); - - mockConfig.reset(); }); }); diff --git a/packages/core/http/core-http-server-internal/src/csp/csp_config.ts b/packages/core/http/core-http-server-internal/src/csp/csp_config.ts index 3d0a6e292b61da..049d6c02ed4727 100644 --- a/packages/core/http/core-http-server-internal/src/csp/csp_config.ts +++ b/packages/core/http/core-http-server-internal/src/csp/csp_config.ts @@ -21,6 +21,7 @@ export class CspConfig implements ICspConfig { readonly #directives: CspDirectives; public readonly strict: boolean; + public readonly disableUnsafeEval: boolean; public readonly warnLegacyBrowsers: boolean; public readonly disableEmbedding: boolean; public readonly header: string; @@ -37,6 +38,7 @@ export class CspConfig implements ICspConfig { } this.header = this.#directives.getCspHeader(); this.strict = rawCspConfig.strict; + this.disableUnsafeEval = rawCspConfig.disableUnsafeEval; this.warnLegacyBrowsers = rawCspConfig.warnLegacyBrowsers; this.disableEmbedding = rawCspConfig.disableEmbedding; } diff --git a/packages/core/i18n/core-i18n-server-internal/src/get_kibana_translation_files.test.ts b/packages/core/i18n/core-i18n-server-internal/src/get_kibana_translation_files.test.ts index 76c8ba7c02808c..cca3eef6ffaffe 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/get_kibana_translation_files.test.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/get_kibana_translation_files.test.ts @@ -17,8 +17,15 @@ jest.mock('./get_translation_paths', () => ({ jest.mock('@kbn/repo-info', () => ({ fromRoot: jest.fn().mockImplementation((path: string) => path), })); +jest.mock('@kbn/repo-packages', () => { + return { + getPackages: jest.fn().mockReturnValue([]), + getPluginPackagesFilter: jest.fn().mockImplementation(() => () => false), + }; +}); const locale = 'en'; +const { getPackages, getPluginPackagesFilter } = jest.requireMock('@kbn/repo-packages'); describe('getKibanaTranslationPaths', () => { beforeEach(() => { @@ -67,4 +74,21 @@ describe('getKibanaTranslationPaths', () => { expect(translationFiles).toEqual(['/root/en.json', '/kibana-extra/en.json']); }); + + it('looks for translation paths in filters plugin packages', async () => { + const package1 = { directory: 'package1' }; + const package2 = { directory: 'package2' }; + const filter = jest.fn((p: any) => p === package2); + + getPackages.mockReturnValue([package1, package2]); + getPluginPackagesFilter.mockReturnValue(filter); + + await getKibanaTranslationFiles(locale, []); + expect(getPackages).toHaveBeenCalledTimes(1); + expect(getPluginPackagesFilter).toHaveBeenCalledTimes(1); + expect(filter).toHaveBeenCalledTimes(2); + expect(mockGetTranslationPaths).toHaveBeenCalledTimes(3); + expect(mockGetTranslationPaths).not.toHaveBeenCalledWith({ cwd: 'package1', nested: false }); + expect(mockGetTranslationPaths).toHaveBeenCalledWith({ cwd: 'package2', nested: false }); + }); }); diff --git a/packages/core/i18n/core-i18n-server-internal/src/get_kibana_translation_files.ts b/packages/core/i18n/core-i18n-server-internal/src/get_kibana_translation_files.ts index 672ec2f0a3a278..7928f273431039 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/get_kibana_translation_files.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/get_kibana_translation_files.ts @@ -8,6 +8,8 @@ import { basename } from 'path'; import { fromRoot } from '@kbn/repo-info'; +import { asyncMapWithLimit } from '@kbn/std'; +import { getPackages, getPluginPackagesFilter } from '@kbn/repo-packages'; import { getTranslationPaths } from './get_translation_paths'; export const getKibanaTranslationFiles = async ( @@ -19,14 +21,23 @@ export const getKibanaTranslationFiles = async ( cwd: fromRoot('.'), nested: true, }), - ...pluginPaths.map((pluginPath) => getTranslationPaths({ cwd: pluginPath, nested: false })), + asyncMapWithLimit( + getPackages(fromRoot('.')).filter(getPluginPackagesFilter({ paths: pluginPaths })), + 20, + async (pkg) => await getTranslationPaths({ cwd: pkg.directory, nested: false }) + ), + asyncMapWithLimit( + pluginPaths, + 20, + async (pluginPath) => await getTranslationPaths({ cwd: pluginPath, nested: false }) + ), getTranslationPaths({ cwd: fromRoot('../kibana-extra'), nested: true, }), ]); - return ([] as string[]) - .concat(...translationPaths) + return translationPaths + .flat(2) .filter((translationPath) => basename(translationPath, '.json') === locale); }; diff --git a/packages/core/i18n/core-i18n-server-internal/src/get_translation_paths.ts b/packages/core/i18n/core-i18n-server-internal/src/get_translation_paths.ts index c0479208ba87e8..9cc055d2bd8be5 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/get_translation_paths.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/get_translation_paths.ts @@ -26,12 +26,12 @@ export async function getTranslationPaths({ cwd, nested }: { cwd: string; nested const pluginBasePath = dirname(entryFullPath); try { const content = await readFile(entryFullPath, 'utf8'); - const { translations } = JSON.parse(content) as I18NRCFileStructure; - if (translations && translations.length) { - translations.forEach((translation) => { - const translationFullPath = resolve(pluginBasePath, translation); - translationPaths.push(translationFullPath); - }); + const { translations = [] } = JSON.parse(content) as I18NRCFileStructure; + + for (const path of translations) { + translationPaths.push( + path.startsWith('@kbn/') ? require.resolve(path) : resolve(pluginBasePath, path) + ); } } catch (err) { throw new Error(`Failed to parse .i18nrc.json file at ${entryFullPath}`); diff --git a/packages/core/i18n/core-i18n-server-internal/tsconfig.json b/packages/core/i18n/core-i18n-server-internal/tsconfig.json index 813e3469b746c6..ea139de89eb196 100644 --- a/packages/core/i18n/core-i18n-server-internal/tsconfig.json +++ b/packages/core/i18n/core-i18n-server-internal/tsconfig.json @@ -23,6 +23,8 @@ "@kbn/core-base-server-mocks", "@kbn/core-http-server-mocks", "@kbn/i18n", + "@kbn/std", + "@kbn/repo-packages", ], "exclude": [ "target/**/*", diff --git a/packages/core/plugins/core-plugins-server-internal/src/discovery/plugins_discovery.test.ts b/packages/core/plugins/core-plugins-server-internal/src/discovery/plugins_discovery.test.ts index 0a2daf42690d2d..48a872e3d67c3c 100644 --- a/packages/core/plugins/core-plugins-server-internal/src/discovery/plugins_discovery.test.ts +++ b/packages/core/plugins/core-plugins-server-internal/src/discovery/plugins_discovery.test.ts @@ -25,10 +25,8 @@ import type { InstanceInfo } from '../plugin_context'; import { discover } from './plugins_discovery'; import { PluginType } from '@kbn/core-base-common'; -const KIBANA_ROOT = process.cwd(); jest.mock('@kbn/repo-packages', () => ({ ...jest.requireActual('@kbn/repo-packages'), - getPackages: jest.fn().mockReturnValue([]), getPluginPackagesFilter: jest.fn().mockReturnValue(() => true), })); @@ -153,8 +151,8 @@ const packageMock = { }, }; -const manifestPath = (...pluginPath: string[]) => - resolve(KIBANA_ROOT, 'src', 'plugins', ...pluginPath, 'kibana.json'); +const pluginDir = (...segments: string[]) => resolve(REPO_ROOT, 'plugins', ...segments); +const manifestPath = (...pluginPath: string[]) => resolve(pluginDir(...pluginPath), 'kibana.json'); describe('plugins discovery system', () => { let logger: ReturnType; @@ -185,6 +183,7 @@ describe('plugins discovery system', () => { REPO_ROOT, getEnvOptions({ cliArgs: { envName: 'development' }, + repoPackages: [], }) ); @@ -230,10 +229,10 @@ describe('plugins discovery system', () => { mockFs( { - [`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'), - [`${KIBANA_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'), - [`${KIBANA_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'), - [`${KIBANA_ROOT}/src/plugins/plugin_d`]: Plugins.validPreboot('pluginD'), + [pluginDir('plugin_a')]: Plugins.valid('pluginA'), + [pluginDir('plugin_b')]: Plugins.valid('pluginB'), + [pluginDir(`plugin_c`)]: Plugins.valid('pluginC'), + [pluginDir(`plugin_d`)]: Plugins.validPreboot('pluginD'), }, { createCwd: false } ); @@ -257,12 +256,12 @@ describe('plugins discovery system', () => { mockFs( { - [`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.invalid(), - [`${KIBANA_ROOT}/src/plugins/plugin_b`]: Plugins.incomplete(), - [`${KIBANA_ROOT}/src/plugins/plugin_c`]: Plugins.incompatible(), - [`${KIBANA_ROOT}/src/plugins/plugin_d`]: Plugins.incompatibleType('pluginD'), - [`${KIBANA_ROOT}/src/plugins/plugin_ad`]: Plugins.missingManifest(), - [`${KIBANA_ROOT}/src/plugins/plugin_e`]: Plugins.missingOwnerAttribute(), + [pluginDir(`plugin_a`)]: Plugins.invalid(), + [pluginDir(`plugin_b`)]: Plugins.incomplete(), + [pluginDir(`plugin_c`)]: Plugins.incompatible(), + [pluginDir(`plugin_d`)]: Plugins.incompatibleType('pluginD'), + [pluginDir(`plugin_ad`)]: Plugins.missingManifest(), + [pluginDir(`plugin_e`)]: Plugins.missingOwnerAttribute(), }, { createCwd: false } ); @@ -324,7 +323,7 @@ describe('plugins discovery system', () => { mockFs( { - [`${KIBANA_ROOT}/src/plugins`]: mockFs.directory({ + [pluginDir('.')]: mockFs.directory({ mode: 0, // 0000 items: { plugin_a: Plugins.valid('pluginA'), @@ -344,12 +343,38 @@ describe('plugins discovery system', () => { ) .toPromise(); - const srcPluginsPath = resolve(KIBANA_ROOT, 'src', 'plugins'); - const xpackPluginsPath = resolve(KIBANA_ROOT, 'x-pack', 'plugins'); + const srcPluginsPath = pluginDir('.'); expect(errors).toEqual( expect.arrayContaining([ `Error: EACCES, permission denied '${srcPluginsPath}' (invalid-search-path, ${srcPluginsPath})`, - `Error: ENOENT, no such file or directory '${xpackPluginsPath}' (invalid-search-path, ${xpackPluginsPath})`, + ]) + ); + }); + + it('return errors when the plugin search path is missing', async () => { + const { plugin$, error$ } = discover({ + config: new PluginsConfig(pluginConfig, env), + coreContext, + instanceInfo, + nodeInfo, + }); + + mockFs({}, { createCwd: false }); + + const plugins = await plugin$.pipe(toArray()).toPromise(); + expect(plugins).toHaveLength(0); + + const errors = await error$ + .pipe( + map((error) => error.toString()), + toArray() + ) + .toPromise(); + + const srcPluginsPath = pluginDir('.'); + expect(errors).toEqual( + expect.arrayContaining([ + `Error: ENOENT, no such file or directory '${srcPluginsPath}' (invalid-search-path, ${srcPluginsPath})`, ]) ); }); @@ -364,7 +389,7 @@ describe('plugins discovery system', () => { mockFs( { - [`${KIBANA_ROOT}/src/plugins/plugin_a`]: { + [pluginDir(`plugin_a`)]: { ...Plugins.inaccessibleManifest(), nested_plugin: Plugins.valid('nestedPlugin'), }, @@ -400,11 +425,11 @@ describe('plugins discovery system', () => { mockFs( { - [`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'), - [`${KIBANA_ROOT}/src/plugins/sub1/plugin_b`]: Plugins.valid('pluginB'), - [`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_c`]: Plugins.valid('pluginC'), - [`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_d`]: Plugins.validPreboot('pluginD'), - [`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_e`]: Plugins.incomplete(), + [pluginDir(`plugin_a`)]: Plugins.valid('pluginA'), + [pluginDir(`sub1/plugin_b`)]: Plugins.valid('pluginB'), + [pluginDir(`sub1/sub2/plugin_c`)]: Plugins.valid('pluginC'), + [pluginDir(`sub1/sub2/plugin_d`)]: Plugins.validPreboot('pluginD'), + [pluginDir(`sub1/sub2/plugin_e`)]: Plugins.incomplete(), }, { createCwd: false } ); @@ -445,7 +470,7 @@ describe('plugins discovery system', () => { mockFs( { - [`${KIBANA_ROOT}/src/plugins/plugin_a`]: { + [pluginDir(`plugin_a`)]: { ...Plugins.valid('pluginA'), nested_plugin: Plugins.valid('nestedPlugin'), }, @@ -469,13 +494,12 @@ describe('plugins discovery system', () => { mockFs( { - [`${KIBANA_ROOT}/src/plugins/sub1/plugin`]: Plugins.valid('plugin1'), - [`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin`]: Plugins.valid('plugin2'), - [`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/plugin`]: Plugins.valid('plugin3'), - [`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/plugin`]: Plugins.valid('plugin4'), - [`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/sub5/plugin`]: Plugins.valid('plugin5'), - [`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/sub5/sub6/plugin`]: - Plugins.valid('plugin6'), + [pluginDir(`sub1/plugin`)]: Plugins.valid('plugin1'), + [pluginDir(`sub1/sub2/plugin`)]: Plugins.valid('plugin2'), + [pluginDir(`sub1/sub2/sub3/plugin`)]: Plugins.valid('plugin3'), + [pluginDir(`sub1/sub2/sub3/sub4/plugin`)]: Plugins.valid('plugin4'), + [pluginDir(`sub1/sub2/sub3/sub4/sub5/plugin`)]: Plugins.valid('plugin5'), + [pluginDir(`sub1/sub2/sub3/sub4/sub5/sub6/plugin`)]: Plugins.valid('plugin6'), }, { createCwd: false } ); @@ -497,12 +521,12 @@ describe('plugins discovery system', () => { nodeInfo, }); - const pluginFolder = resolve(KIBANA_ROOT, '..', 'ext-plugins'); + const pluginFolder = pluginDir('../ext-plugins'); mockFs( { - [`${KIBANA_ROOT}/plugins`]: mockFs.symlink({ - path: '../ext-plugins', + [pluginDir(`.`)]: mockFs.symlink({ + path: pluginFolder, }), [pluginFolder]: { plugin_a: Plugins.valid('pluginA'), @@ -634,18 +658,18 @@ describe('plugins discovery system', () => { it('returns the plugins in a deterministic order', async () => { mockFs( { - [`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'), - [`${KIBANA_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'), - [`${KIBANA_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'), + [`${REPO_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'), + [`${REPO_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'), + [`${REPO_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'), }, { createCwd: false } ); scanPluginSearchPathsMock.mockReturnValue( from([ - `${KIBANA_ROOT}/src/plugins/plugin_a`, - `${KIBANA_ROOT}/plugins/plugin_b`, - `${KIBANA_ROOT}/x-pack/plugins/plugin_c`, + `${REPO_ROOT}/src/plugins/plugin_a`, + `${REPO_ROOT}/plugins/plugin_b`, + `${REPO_ROOT}/x-pack/plugins/plugin_c`, ]) ); @@ -671,9 +695,9 @@ describe('plugins discovery system', () => { // second pass scanPluginSearchPathsMock.mockReturnValue( from([ - `${KIBANA_ROOT}/plugins/plugin_b`, - `${KIBANA_ROOT}/x-pack/plugins/plugin_c`, - `${KIBANA_ROOT}/src/plugins/plugin_a`, + `${REPO_ROOT}/plugins/plugin_b`, + `${REPO_ROOT}/x-pack/plugins/plugin_c`, + `${REPO_ROOT}/src/plugins/plugin_a`, ]) ); diff --git a/packages/core/plugins/core-plugins-server-internal/src/plugins_service.test.ts b/packages/core/plugins/core-plugins-server-internal/src/plugins_service.test.ts index 948939b143dd05..62742499471cc9 100644 --- a/packages/core/plugins/core-plugins-server-internal/src/plugins_service.test.ts +++ b/packages/core/plugins/core-plugins-server-internal/src/plugins_service.test.ts @@ -722,10 +722,8 @@ describe('PluginsService', () => { additionalPluginPaths: [], initialize: true, pluginSearchPaths: [ - resolve(process.cwd(), 'src', 'plugins'), - resolve(process.cwd(), 'x-pack', 'plugins'), - resolve(process.cwd(), 'plugins'), - resolve(process.cwd(), '..', 'kibana-extra'), + resolve(REPO_ROOT, '..', 'kibana-extra'), + resolve(REPO_ROOT, 'plugins'), ], }, coreContext: { coreId, env, logger, configService }, diff --git a/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts b/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts index fc4285406effef..d92b39f6c15a6b 100644 --- a/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts +++ b/packages/core/saved-objects/core-saved-objects-api-browser/src/saved_objects_client.ts @@ -129,7 +129,15 @@ export interface SavedObjectsClientContract { bulkGet(objects: SavedObjectTypeIdTuple[]): Promise>; /** - * Resolves a single object + * Resolves a single object. + * + * After 8.0.0, saved objects are provided a unique ID _across_ spaces. + * A subset of existing saved objects may have IDs regenerated while upgrading to 8+. + * `.resolve` provides a way for clients with legacy IDs to still retrieve the correct + * saved object. + * + * An example of a client with a "legacy ID" is a bookmarked dashboard in a + * non-default space. * * @param {string} type - the type of the object to resolve * @param {string} id - the ID of the object to resolve @@ -144,7 +152,9 @@ export interface SavedObjectsClientContract { resolve(type: string, id: string): Promise>; /** - * Resolves an array of objects by id, using any legacy URL aliases if they exist + * Resolves an array of objects by id. + * + * See documentation for `.resolve`. * * @param objects - an array of objects containing id, type * @returns The bulk resolve result for the saved objects for the given types and ids. diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/bucket_aggs.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/bucket_aggs.ts index 20ebeb234b4791..76abc1b08bd848 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/bucket_aggs.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/bucket_aggs.ts @@ -117,7 +117,7 @@ const termsSchema = s.object({ exclude: s.maybe(s.oneOf([s.string(), s.arrayOf(s.string())])), include: s.maybe(s.oneOf([s.string(), s.arrayOf(s.string())])), execution_hint: s.maybe(s.string()), - missing: s.maybe(s.number()), + missing: s.maybe(s.oneOf([s.number(), s.string(), s.boolean()])), min_doc_count: s.maybe(s.number({ min: 1 })), size: s.maybe(s.number()), show_term_doc_count_error: s.maybe(s.boolean()), diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts index db50ab2b45d653..0120ecf75c7971 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts @@ -397,22 +397,6 @@ describe('validateAndConvertAggregations', () => { ); }); - it('throws an error when an attributes is not respecting its schema definition', () => { - const aggregations: AggsMap = { - someAgg: { - terms: { - missing: 'expecting a number', - }, - }, - }; - - expect(() => - validateAndConvertAggregations(['alert'], aggregations, mockMappings) - ).toThrowErrorMatchingInlineSnapshot( - `"[someAgg.terms.missing]: expected value of type [number] but got [string]"` - ); - }); - it('throws an error when trying to validate an unknown aggregation type', () => { const aggregations: AggsMap = { someAgg: { diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.test.ts index fe8b8190ff8403..a2b4121cebad0b 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.test.ts @@ -235,6 +235,52 @@ describe('createPointInTimeFinder()', () => { ); }); + test('still applies the defaults in the mandatory fields even when `undefined` is explicitly provided', async () => { + repository.openPointInTimeForType.mockResolvedValueOnce({ + id: 'abc123', + }); + repository.find.mockResolvedValueOnce({ + total: 2, + saved_objects: mockHits, + pit_id: 'abc123', + per_page: 2, + page: 0, + }); + + const findOptions: SavedObjectsCreatePointInTimeFinderOptions = { + type: ['visualization'], + search: 'foo*', + // Intentionally trying to remove the sort fields + sortField: undefined, + sortOrder: undefined, + }; + + const internalOptions = {}; + const finder = new PointInTimeFinder(findOptions, { + logger, + client: repository, + internalOptions, + }); + const hits: SavedObjectsFindResult[] = []; + for await (const result of finder.find()) { + hits.push(...result.saved_objects); + } + + expect(hits.length).toBe(2); + expect(repository.openPointInTimeForType).toHaveBeenCalledTimes(1); + expect(repository.closePointInTime).toHaveBeenCalledTimes(1); + expect(repository.find).toHaveBeenCalledTimes(1); + expect(repository.find).toHaveBeenCalledWith( + expect.objectContaining({ + pit: expect.objectContaining({ id: 'abc123', keepAlive: '2m' }), + sortField: 'updated_at', + sortOrder: 'desc', + type: ['visualization'], + }), + internalOptions + ); + }); + describe('#close', () => { test('calls closePointInTime with correct ID', async () => { repository.openPointInTimeForType.mockResolvedValueOnce({ diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.ts index 834a64552a1ec9..524b5718940073 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.ts @@ -147,14 +147,14 @@ export class PointInTimeFinder try { return await this.#client.find( { + ...findOptions, // Sort fields are required to use searchAfter, so we set some defaults here - sortField: 'updated_at', - sortOrder: 'desc', + sortField: findOptions.sortField ?? 'updated_at', + sortOrder: findOptions.sortOrder ?? 'desc', // Bump keep_alive by 2m on every new request to allow for the ES client // to make multiple retries in the event of a network failure. pit: id ? { id, keepAlive: '2m' } : undefined, searchAfter, - ...findOptions, }, this.#internalOptions ); diff --git a/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts b/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts index de7fcfd19fc4b7..a7ba3f2818971e 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server/src/saved_objects_client.ts @@ -210,7 +210,9 @@ export interface SavedObjectsClientContract { ): Promise>; /** - * Resolves an array of objects by id, using any legacy URL aliases if they exist + * Resolves an array of objects by id. + * + * See documentation for `.resolve`. * * @param objects - an array of objects to resolve (contains id and type) * @param options {@link SavedObjectsBaseOptions} - options for the bulk resolve operation @@ -232,7 +234,15 @@ export interface SavedObjectsClientContract { ): Promise>; /** - * Resolves a single object, using any legacy URL alias if it exists + * Resolves a single object. + * + * After 8.0.0, saved objects are provided a unique ID _across_ spaces. + * A subset of existing saved objects may have IDs regenerated while upgrading to 8+. + * `.resolve` provides a way for clients with legacy IDs to still retrieve the correct + * saved object. + * + * An example of a client with a "legacy ID" is a bookmarked dashboard in a + * non-default space. * * @param type - The type of SavedObject to retrieve * @param id - The ID of the SavedObject to retrieve diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/index.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/index.ts index 1913a1c3de05eb..21fbd6f8b53295 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/index.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/index.ts @@ -52,9 +52,9 @@ export { isWriteBlockException, isIndexNotFoundException, } from './src/actions/es_errors'; -export { deterministicallyRegenerateObjectId } from './src/core/document_migrator'; export { REMOVED_TYPES, + deterministicallyRegenerateObjectId, type DocumentsTransformFailed, type DocumentsTransformSuccess, } from './src/core'; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/__snapshots__/migrations_state_action_machine.test.ts.snap b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/__snapshots__/migrations_state_action_machine.test.ts.snap index 28d12601d23f34..6973b0b8a7081e 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/__snapshots__/migrations_state_action_machine.test.ts.snap +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/__snapshots__/migrations_state_action_machine.test.ts.snap @@ -81,6 +81,11 @@ Object { "type": "guided-setup-state", }, }, + Object { + "term": Object { + "type": "maps-telemetry", + }, + }, Object { "term": Object { "type": "ml-telemetry", @@ -272,6 +277,11 @@ Object { "type": "guided-setup-state", }, }, + Object { + "term": Object { + "type": "maps-telemetry", + }, + }, Object { "term": Object { "type": "ml-telemetry", @@ -467,6 +477,11 @@ Object { "type": "guided-setup-state", }, }, + Object { + "term": Object { + "type": "maps-telemetry", + }, + }, Object { "term": Object { "type": "ml-telemetry", @@ -666,6 +681,11 @@ Object { "type": "guided-setup-state", }, }, + Object { + "term": Object { + "type": "maps-telemetry", + }, + }, Object { "term": Object { "type": "ml-telemetry", @@ -907,6 +927,11 @@ Object { "type": "guided-setup-state", }, }, + Object { + "term": Object { + "type": "maps-telemetry", + }, + }, Object { "term": Object { "type": "ml-telemetry", @@ -1109,6 +1134,11 @@ Object { "type": "guided-setup-state", }, }, + Object { + "term": Object { + "type": "maps-telemetry", + }, + }, Object { "term": Object { "type": "ml-telemetry", diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts deleted file mode 100644 index ae50d7fac643ab..00000000000000 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.ts +++ /dev/null @@ -1,848 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -/* - * This file contains logic for transforming / migrating a saved object document. - * - * At first, it may seem as if this could be a simple filter + reduce operation, - * running the document through a linear set of transform functions until it is - * up to date, but there are some edge cases that make it more complicated. - * - * A transform can add a new property, rename an existing property, remove a property, etc. - * This means that we aren't able to do a reduce over a fixed list of properties, as - * each transform operation could essentially change what transforms should be applied - * next. - * - * The basic algorithm, then, is this: - * - * While there are any unmigrated properties in the doc, find the next unmigrated property, - * and run the doc through the transforms that target that property. - * - * This way, we keep looping until there are no transforms left to apply, and we properly - * handle property addition / deletion / renaming. - * - * A caveat is that this means we must restrict what a migration can do to the doc's - * migrationVersion itself. Migrations should *not* make any changes to the migrationVersion property. - * - * One last gotcha is that any docs which have no migrationVersion are assumed to be up-to-date. - * This is because Kibana UI and other clients really can't be expected build the migrationVersion - * in a reliable way. Instead, callers of our APIs are expected to send us up-to-date documents, - * and those documents are simply given a stamp of approval by this transformer. This is why it is - * important for migration authors to *also* write a saved object validation that will prevent this - * assumption from inserting out-of-date documents into the index. - * - * If the client(s) send us documents with migrationVersion specified, we will migrate them as - * appropriate. This means for data import scenarios, any documetns being imported should be explicitly - * given an empty migrationVersion property {} if no such property exists. - */ - -import Boom from '@hapi/boom'; -import { v5 as uuidv5 } from 'uuid'; -import { set } from '@kbn/safer-lodash-set'; -import _ from 'lodash'; -import Semver from 'semver'; -import type { Logger } from '@kbn/logging'; -import type { - SavedObjectsMigrationVersion, - SavedObjectsNamespaceType, -} from '@kbn/core-saved-objects-common'; -import type { - SavedObjectUnsanitizedDoc, - SavedObjectsType, - ISavedObjectTypeRegistry, - SavedObjectMigrationFn, - SavedObjectMigrationMap, -} from '@kbn/core-saved-objects-server'; -import { DEFAULT_NAMESPACE_STRING, SavedObjectsUtils } from '@kbn/core-saved-objects-utils-server'; -import { - type LegacyUrlAlias, - LEGACY_URL_ALIAS_TYPE, -} from '@kbn/core-saved-objects-base-server-internal'; -import { MigrationLogger } from './migration_logger'; -import { TransformSavedObjectDocumentError } from '.'; - -export type MigrateFn = (doc: SavedObjectUnsanitizedDoc) => SavedObjectUnsanitizedDoc; -export type MigrateAndConvertFn = (doc: SavedObjectUnsanitizedDoc) => SavedObjectUnsanitizedDoc[]; - -interface TransformResult { - /** - * This is the original document that has been transformed. - */ - transformedDoc: SavedObjectUnsanitizedDoc; - /** - * These are any new document(s) that have been created during the transformation process; these are not transformed, but they are marked - * as up-to-date. Only conversion transforms generate additional documents. - */ - additionalDocs: SavedObjectUnsanitizedDoc[]; -} - -type ApplyTransformsFn = ( - doc: SavedObjectUnsanitizedDoc, - options?: TransformOptions -) => TransformResult; - -interface TransformOptions { - convertNamespaceTypes?: boolean; -} - -interface DocumentMigratorOptions { - kibanaVersion: string; - typeRegistry: ISavedObjectTypeRegistry; - convertVersion?: string; - log: Logger; -} - -interface ActiveMigrations { - [type: string]: { - /** Derived from `migrate` transforms and `convert` transforms */ - latestMigrationVersion?: string; - /** Derived from `reference` transforms */ - latestCoreMigrationVersion?: string; - transforms: Transform[]; - }; -} - -interface Transform { - version: string; - transform: (doc: SavedObjectUnsanitizedDoc) => TransformResult; - /** - * There are two "migrationVersion" transform types: - * * `migrate` - These transforms are defined and added by consumers using the type registry; each is applied to a single object type - * based on an object's `migrationVersion[type]` field. These are applied during index migrations and document migrations. - * * `convert` - These transforms are defined by core and added by consumers using the type registry; each is applied to a single object - * type based on an object's `migrationVersion[type]` field. These are applied during index migrations, NOT document migrations. - * - * There is one "coreMigrationVersion" transform type: - * * `reference` - These transforms are defined by core and added by consumers using the type registry; they are applied to all object - * types based on their `coreMigrationVersion` field. These are applied during index migrations, NOT document migrations. - * - * If any additional transform types are added, the functions below should be updated to account for them. - */ - transformType: 'migrate' | 'convert' | 'reference'; -} - -/** - * Manages migration of individual documents. - */ -export interface VersionedTransformer { - migrationVersion: SavedObjectsMigrationVersion; - migrate: MigrateFn; - migrateAndConvert: MigrateAndConvertFn; - prepareMigrations: () => void; -} - -/** - * A concrete implementation of the VersionedTransformer interface. - */ -export class DocumentMigrator implements VersionedTransformer { - private documentMigratorOptions: Omit; - private migrations?: ActiveMigrations; - private transformDoc?: ApplyTransformsFn; - - /** - * Creates an instance of DocumentMigrator. - * - * @param {DocumentMigratorOptions} opts - * @prop {string} kibanaVersion - The current version of Kibana - * @prop {SavedObjectTypeRegistry} typeRegistry - The type registry to get type migrations from - * @prop {string} convertVersion - The version of Kibana in which documents can be converted to multi-namespace types - * @prop {Logger} log - The migration logger - * @memberof DocumentMigrator - */ - constructor({ typeRegistry, kibanaVersion, convertVersion, log }: DocumentMigratorOptions) { - validateMigrationDefinition(typeRegistry, kibanaVersion, convertVersion); - - this.documentMigratorOptions = { typeRegistry, kibanaVersion, log }; - } - - /** - * Gets the latest version of each migrate-able property. - * - * @readonly - * @type {SavedObjectsMigrationVersion} - * @memberof DocumentMigrator - */ - public get migrationVersion(): SavedObjectsMigrationVersion { - if (!this.migrations) { - throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); - } - - return Object.entries(this.migrations).reduce((acc, [prop, { latestMigrationVersion }]) => { - // some migration objects won't have a latestMigrationVersion (they only contain reference transforms that are applied from other types) - if (latestMigrationVersion) { - return { ...acc, [prop]: latestMigrationVersion }; - } - return acc; - }, {}); - } - - /** - * Prepares active migrations and document transformer function. - * - * @returns {void} - * @memberof DocumentMigrator - */ - - public prepareMigrations = () => { - const { typeRegistry, kibanaVersion, log } = this.documentMigratorOptions; - this.migrations = buildActiveMigrations(typeRegistry, kibanaVersion, log); - this.transformDoc = buildDocumentTransform({ - kibanaVersion, - migrations: this.migrations, - }); - }; - - /** - * Migrates a document to the latest version. - * - * @param {SavedObjectUnsanitizedDoc} doc - * @returns {SavedObjectUnsanitizedDoc} - * @memberof DocumentMigrator - */ - public migrate = (doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc => { - if (!this.migrations || !this.transformDoc) { - throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); - } - - // Clone the document to prevent accidental mutations on the original data - // Ex: Importing sample data that is cached at import level, migrations would - // execute on mutated data the second time. - const clonedDoc = _.cloneDeep(doc); - const { transformedDoc } = this.transformDoc(clonedDoc); - return transformedDoc; - }; - - /** - * Migrates a document to the latest version and applies type conversions if applicable. Also returns any additional document(s) that may - * have been created during the transformation process. - * - * @param {SavedObjectUnsanitizedDoc} doc - * @returns {SavedObjectUnsanitizedDoc} - * @memberof DocumentMigrator - */ - public migrateAndConvert = (doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc[] => { - if (!this.migrations || !this.transformDoc) { - throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); - } - - // Clone the document to prevent accidental mutations on the original data - // Ex: Importing sample data that is cached at import level, migrations would - // execute on mutated data the second time. - const clonedDoc = _.cloneDeep(doc); - const { transformedDoc, additionalDocs } = this.transformDoc(clonedDoc, { - convertNamespaceTypes: true, - }); - return [transformedDoc, ...additionalDocs]; - }; -} - -function validateMigrationsMapObject( - name: string, - kibanaVersion: string, - migrationsMap?: SavedObjectMigrationMap -) { - function assertObject(obj: any, prefix: string) { - if (!obj || typeof obj !== 'object') { - throw new Error(`${prefix} Got ${obj}.`); - } - } - - function assertValidSemver(version: string, type: string) { - if (!Semver.valid(version)) { - throw new Error( - `Invalid migration for type ${type}. Expected all properties to be semvers, but got ${version}.` - ); - } - if (Semver.gt(version, kibanaVersion)) { - throw new Error( - `Invalid migration for type ${type}. Property '${version}' cannot be greater than the current Kibana version '${kibanaVersion}'.` - ); - } - } - - function assertValidTransform(fn: any, version: string, type: string) { - if (typeof fn !== 'function') { - throw new Error(`Invalid migration ${type}.${version}: expected a function, but got ${fn}.`); - } - } - - if (migrationsMap) { - assertObject( - migrationsMap, - `Migrations map for type ${name} should be an object like { '2.0.0': (doc) => doc }.` - ); - - Object.entries(migrationsMap).forEach(([version, fn]) => { - assertValidSemver(version, name); - assertValidTransform(fn, version, name); - }); - } -} - -/** - * Basic validation that the migration definition matches our expectations. We can't - * rely on TypeScript here, as the caller may be JavaScript / ClojureScript / any compile-to-js - * language. So, this is just to provide a little developer-friendly error messaging. Joi was - * giving weird errors, so we're just doing manual validation. - */ -function validateMigrationDefinition( - registry: ISavedObjectTypeRegistry, - kibanaVersion: string, - convertVersion?: string -) { - function assertObjectOrFunction(entity: any, prefix: string) { - if (!entity || (typeof entity !== 'function' && typeof entity !== 'object')) { - throw new Error(`${prefix} Got! ${typeof entity}, ${JSON.stringify(entity)}.`); - } - } - - function assertValidConvertToMultiNamespaceType( - namespaceType: SavedObjectsNamespaceType, - convertToMultiNamespaceTypeVersion: string, - type: string - ) { - if (namespaceType !== 'multiple' && namespaceType !== 'multiple-isolated') { - throw new Error( - `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Expected namespaceType to be 'multiple' or 'multiple-isolated', but got '${namespaceType}'.` - ); - } else if (!Semver.valid(convertToMultiNamespaceTypeVersion)) { - throw new Error( - `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Expected value to be a semver, but got '${convertToMultiNamespaceTypeVersion}'.` - ); - } else if (convertVersion && Semver.neq(convertToMultiNamespaceTypeVersion, convertVersion)) { - throw new Error( - `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Value '${convertToMultiNamespaceTypeVersion}' cannot be any other than '${convertVersion}'.` - ); - } else if (Semver.gt(convertToMultiNamespaceTypeVersion, kibanaVersion)) { - throw new Error( - `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Value '${convertToMultiNamespaceTypeVersion}' cannot be greater than the current Kibana version '${kibanaVersion}'.` - ); - } else if (Semver.patch(convertToMultiNamespaceTypeVersion)) { - throw new Error( - `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Value '${convertToMultiNamespaceTypeVersion}' cannot be used on a patch version (must be like 'x.y.0').` - ); - } - } - - registry.getAllTypes().forEach((type) => { - const { name, migrations, convertToMultiNamespaceTypeVersion, namespaceType } = type; - if (migrations) { - assertObjectOrFunction( - type.migrations, - `Migration for type ${name} should be an object or a function returning an object like { '2.0.0': (doc) => doc }.` - ); - } - if (convertToMultiNamespaceTypeVersion) { - // CHECKPOINT 1 - assertValidConvertToMultiNamespaceType( - namespaceType, - convertToMultiNamespaceTypeVersion, - name - ); - } - }); -} - -/** - * Converts migrations from a format that is convenient for callers to a format that - * is convenient for our internal usage: - * From: { type: { version: fn } } - * To: { type: { latestMigrationVersion?: string; latestCoreMigrationVersion?: string; transforms: [{ version: string, transform: fn }] } } - */ -function buildActiveMigrations( - typeRegistry: ISavedObjectTypeRegistry, - kibanaVersion: string, - log: Logger -): ActiveMigrations { - const referenceTransforms = getReferenceTransforms(typeRegistry); - - return typeRegistry.getAllTypes().reduce((migrations, type) => { - const migrationsMap = - typeof type.migrations === 'function' ? type.migrations() : type.migrations; - validateMigrationsMapObject(type.name, kibanaVersion, migrationsMap); - - const migrationTransforms = Object.entries(migrationsMap ?? {}).map( - ([version, transform]) => ({ - version, - transform: wrapWithTry(version, type, transform, log), - transformType: 'migrate', - }) - ); - const conversionTransforms = getConversionTransforms(type); - const transforms = [ - ...referenceTransforms, - ...conversionTransforms, - ...migrationTransforms, - ].sort(transformComparator); - - if (!transforms.length) { - return migrations; - } - - const migrationVersionTransforms: Transform[] = []; - const coreMigrationVersionTransforms: Transform[] = []; - transforms.forEach((x) => { - if (x.transformType === 'migrate' || x.transformType === 'convert') { - migrationVersionTransforms.push(x); - } else { - coreMigrationVersionTransforms.push(x); - } - }); - - return { - ...migrations, - [type.name]: { - latestMigrationVersion: _.last(migrationVersionTransforms)?.version, - latestCoreMigrationVersion: _.last(coreMigrationVersionTransforms)?.version, - transforms, - }, - }; - }, {} as ActiveMigrations); -} - -/** - * Creates a function which migrates and validates any document that is passed to it. - */ -function buildDocumentTransform({ - kibanaVersion, - migrations, -}: { - kibanaVersion: string; - migrations: ActiveMigrations; -}): ApplyTransformsFn { - return function transformAndValidate( - doc: SavedObjectUnsanitizedDoc, - options: TransformOptions = {} - ) { - validateCoreMigrationVersion(doc, kibanaVersion); - - const { convertNamespaceTypes = false } = options; - let transformedDoc: SavedObjectUnsanitizedDoc; - let additionalDocs: SavedObjectUnsanitizedDoc[] = []; - if (doc.migrationVersion) { - const result = applyMigrations(doc, migrations, kibanaVersion, convertNamespaceTypes); - transformedDoc = result.transformedDoc; - additionalDocs = additionalDocs.concat( - result.additionalDocs.map((x) => markAsUpToDate(x, migrations, kibanaVersion)) - ); - } else { - transformedDoc = markAsUpToDate(doc, migrations, kibanaVersion); - } - - // In order to keep tests a bit more stable, we won't - // tack on an empty migrationVersion to docs that have - // no migrations defined. - if (_.isEmpty(transformedDoc.migrationVersion)) { - delete transformedDoc.migrationVersion; - } - - return { transformedDoc, additionalDocs }; - }; -} - -function validateCoreMigrationVersion(doc: SavedObjectUnsanitizedDoc, kibanaVersion: string) { - const { id, coreMigrationVersion: docVersion } = doc; - if (!docVersion) { - return; - } - - // We verify that the object's coreMigrationVersion is valid, and that it is not greater than the version supported by Kibana. - // If we have a coreMigrationVersion and the kibanaVersion is smaller than it or does not exist, we are dealing with a document that - // belongs to a future Kibana / plugin version. - if (!Semver.valid(docVersion)) { - throw Boom.badData( - `Document "${id}" has an invalid "coreMigrationVersion" [${docVersion}]. This must be a semver value.`, - doc - ); - } - - if (doc.coreMigrationVersion && Semver.gt(docVersion, kibanaVersion)) { - throw Boom.badData( - `Document "${id}" has a "coreMigrationVersion" which belongs to a more recent version` + - ` of Kibana [${docVersion}]. The current version is [${kibanaVersion}].`, - doc - ); - } -} - -function applyMigrations( - doc: SavedObjectUnsanitizedDoc, - migrations: ActiveMigrations, - kibanaVersion: string, - convertNamespaceTypes: boolean -) { - let additionalDocs: SavedObjectUnsanitizedDoc[] = []; - while (true) { - const prop = nextUnmigratedProp(doc, migrations); - if (!prop) { - // regardless of whether or not any reference transform was applied, update the coreMigrationVersion - // this is needed to ensure that newly created documents have an up-to-date coreMigrationVersion field - return { - transformedDoc: { ...doc, coreMigrationVersion: kibanaVersion }, - additionalDocs, - }; - } - const result = migrateProp(doc, prop, migrations, convertNamespaceTypes); - doc = result.transformedDoc; - additionalDocs = [...additionalDocs, ...result.additionalDocs]; - } -} - -/** - * Gets the doc's props, handling the special case of "type". - */ -function props(doc: SavedObjectUnsanitizedDoc) { - return Object.keys(doc).concat(doc.type); -} - -/** - * Looks up the prop version in a saved object document or in our latest migrations. - */ -function propVersion(doc: SavedObjectUnsanitizedDoc | ActiveMigrations, prop: string) { - return ( - ((doc as any)[prop] && (doc as any)[prop].latestMigrationVersion) || - (doc.migrationVersion && (doc as any).migrationVersion[prop]) - ); -} - -/** - * Sets the doc's migrationVersion to be the most recent version - */ -function markAsUpToDate( - doc: SavedObjectUnsanitizedDoc, - migrations: ActiveMigrations, - kibanaVersion: string -) { - return { - ...doc, - migrationVersion: props(doc).reduce((acc, prop) => { - const version = propVersion(migrations, prop); - return version ? set(acc, prop, version) : acc; - }, {}), - coreMigrationVersion: kibanaVersion, - }; -} - -/** - * Converts a single-namespace object to a multi-namespace object. This primarily entails removing the `namespace` field and adding the - * `namespaces` field. - * - * If the object does not exist in the default namespace (undefined), its ID is also regenerated, and an "originId" is added to preserve - * legacy import/copy behavior. - */ -function convertNamespaceType(doc: SavedObjectUnsanitizedDoc) { - const { namespace, ...otherAttrs } = doc; - const additionalDocs: SavedObjectUnsanitizedDoc[] = []; - - // If this object exists in the default namespace, return it with the appropriate `namespaces` field without changing its ID. - if (namespace === undefined) { - return { - transformedDoc: { ...otherAttrs, namespaces: [DEFAULT_NAMESPACE_STRING] }, - additionalDocs, - }; - } - - const { id: originId, type } = otherAttrs; - const id = SavedObjectsUtils.getConvertedObjectId(namespace, type, originId!); - const legacyUrlAlias: SavedObjectUnsanitizedDoc = { - id: `${namespace}:${type}:${originId}`, - type: LEGACY_URL_ALIAS_TYPE, - attributes: { - // NOTE TO MAINTAINERS: If a saved object migration is added in `src/core/server/saved_objects/object_types/registration.ts`, these - // values must be updated accordingly. That's because a user can upgrade Kibana from 7.17 to 8.x, and any defined migrations will not - // be applied to aliases that are created during the conversion process. - sourceId: originId, - targetNamespace: namespace, - targetType: type, - targetId: id, - purpose: 'savedObjectConversion', - }, - }; - additionalDocs.push(legacyUrlAlias); - return { - transformedDoc: { ...otherAttrs, id, originId, namespaces: [namespace] }, - additionalDocs, - }; -} - -/** - * Returns all applicable conversion transforms for a given object type. - */ -function getConversionTransforms(type: SavedObjectsType): Transform[] { - const { convertToMultiNamespaceTypeVersion } = type; - if (!convertToMultiNamespaceTypeVersion) { - return []; - } - return [ - { - version: convertToMultiNamespaceTypeVersion, - transform: convertNamespaceType, - transformType: 'convert', - }, - ]; -} - -/** - * Returns all applicable reference transforms for all object types. - */ -function getReferenceTransforms(typeRegistry: ISavedObjectTypeRegistry): Transform[] { - const transformMap = typeRegistry - .getAllTypes() - .filter((type) => type.convertToMultiNamespaceTypeVersion) - .reduce((acc, { convertToMultiNamespaceTypeVersion: version, name }) => { - const types = acc.get(version!) ?? new Set(); - return acc.set(version!, types.add(name)); - }, new Map>()); - - return Array.from(transformMap, ([version, types]) => ({ - version, - transform: (doc) => { - const { namespace, references } = doc; - if (namespace && references?.length) { - return { - transformedDoc: { - ...doc, - references: references.map(({ type, id, ...attrs }) => ({ - ...attrs, - type, - id: types.has(type) - ? SavedObjectsUtils.getConvertedObjectId(namespace, type, id) - : id, - })), - }, - additionalDocs: [], - }; - } - return { transformedDoc: doc, additionalDocs: [] }; - }, - transformType: 'reference', - })); -} - -/** - * Transforms are sorted in ascending order by version. One version may contain multiple transforms; 'reference' transforms always run - * first, 'convert' transforms always run second, and 'migrate' transforms always run last. This is because: - * 1. 'convert' transforms get rid of the `namespace` field, which must be present for 'reference' transforms to function correctly. - * 2. 'migrate' transforms are defined by the consumer, and may change the object type or migrationVersion which resets the migration loop - * and could cause any remaining transforms for this version to be skipped. - */ -function transformComparator(a: Transform, b: Transform) { - const semver = Semver.compare(a.version, b.version); - if (semver !== 0) { - return semver; - } else if (a.transformType !== b.transformType) { - if (a.transformType === 'migrate') { - return 1; - } else if (b.transformType === 'migrate') { - return -1; - } else if (a.transformType === 'convert') { - return 1; - } else if (b.transformType === 'convert') { - return -1; - } - } - return 0; -} - -/** - * If a specific transform function fails, this tacks on a bit of information - * about the document and transform that caused the failure. - */ -function wrapWithTry( - version: string, - type: SavedObjectsType, - migrationFn: SavedObjectMigrationFn, - log: Logger -) { - const context = Object.freeze({ - log: new MigrationLogger(log), - migrationVersion: version, - convertToMultiNamespaceTypeVersion: type.convertToMultiNamespaceTypeVersion, - isSingleNamespaceType: type.namespaceType === 'single', - }); - - return function tryTransformDoc(doc: SavedObjectUnsanitizedDoc) { - try { - const result = migrationFn(doc, context); - - // A basic check to help migration authors detect basic errors - // (e.g. forgetting to return the transformed doc) - if (!result || !result.type) { - throw new Error(`Invalid saved object returned from migration ${type.name}:${version}.`); - } - - return { transformedDoc: result, additionalDocs: [] }; - } catch (error) { - log.error(error); - throw new TransformSavedObjectDocumentError(error, version); - } - }; -} - -/** - * Determines whether or not a document has any pending transforms that should be applied based on its coreMigrationVersion field. - * Currently, only reference transforms qualify. - */ -function getHasPendingCoreMigrationVersionTransform( - doc: SavedObjectUnsanitizedDoc, - migrations: ActiveMigrations, - prop: string -) { - if (!migrations.hasOwnProperty(prop)) { - return false; - } - - const { latestCoreMigrationVersion } = migrations[prop]; - const { coreMigrationVersion } = doc; - return ( - latestCoreMigrationVersion && - (!coreMigrationVersion || Semver.gt(latestCoreMigrationVersion, coreMigrationVersion)) - ); -} - -/** - * Finds the first unmigrated property in the specified document. - */ -function nextUnmigratedProp(doc: SavedObjectUnsanitizedDoc, migrations: ActiveMigrations) { - return props(doc).find((p) => { - const latestMigrationVersion = propVersion(migrations, p); - const docVersion = propVersion(doc, p); - - // We verify that the version is not greater than the version supported by Kibana. - // If we didn't, this would cause an infinite loop, as we'd be unable to migrate the property - // but it would continue to show up as unmigrated. - // If we have a docVersion and the latestMigrationVersion is smaller than it or does not exist, - // we are dealing with a document that belongs to a future Kibana / plugin version. - if (docVersion && (!latestMigrationVersion || Semver.gt(docVersion, latestMigrationVersion))) { - throw Boom.badData( - `Document "${doc.id}" has property "${p}" which belongs to a more recent` + - ` version of Kibana [${docVersion}]. The last known version is [${latestMigrationVersion}]`, - doc - ); - } - - return ( - (latestMigrationVersion && latestMigrationVersion !== docVersion) || - getHasPendingCoreMigrationVersionTransform(doc, migrations, p) // If the object itself is up-to-date, check if its references are up-to-date too - ); - }); -} - -/** - * Applies any relevant migrations to the document for the specified property. - */ -function migrateProp( - doc: SavedObjectUnsanitizedDoc, - prop: string, - migrations: ActiveMigrations, - convertNamespaceTypes: boolean -): TransformResult { - const originalType = doc.type; - let migrationVersion = _.clone(doc.migrationVersion) || {}; - let additionalDocs: SavedObjectUnsanitizedDoc[] = []; - - for (const { version, transform, transformType } of applicableTransforms(migrations, doc, prop)) { - if (convertNamespaceTypes || (transformType !== 'convert' && transformType !== 'reference')) { - // migrate transforms are always applied, but conversion transforms and reference transforms are only applied during index migrations - const result = transform(doc); - doc = result.transformedDoc; - additionalDocs = [...additionalDocs, ...result.additionalDocs]; - } - if (transformType === 'reference') { - // regardless of whether or not the reference transform was applied, update the object's coreMigrationVersion - // this is needed to ensure that we don't have an endless migration loop - doc.coreMigrationVersion = version; - } else { - migrationVersion = updateMigrationVersion(doc, migrationVersion, prop, version); - doc.migrationVersion = _.clone(migrationVersion); - } - - if (doc.type !== originalType) { - // the transform function changed the object's type; break out of the loop - break; - } - } - - return { transformedDoc: doc, additionalDocs }; -} - -/** - * Retrieves any prop transforms that have not been applied to doc. - */ -function applicableTransforms( - migrations: ActiveMigrations, - doc: SavedObjectUnsanitizedDoc, - prop: string -) { - const minVersion = propVersion(doc, prop); - const minReferenceVersion = doc.coreMigrationVersion || '0.0.0'; - const { transforms } = migrations[prop]; - return minVersion - ? transforms.filter(({ version, transformType }) => - transformType === 'reference' - ? Semver.gt(version, minReferenceVersion) - : Semver.gt(version, minVersion) - ) - : transforms; -} - -/** - * Updates the document's migrationVersion, ensuring that the calling transform - * has not mutated migrationVersion in an unsupported way. - */ -function updateMigrationVersion( - doc: SavedObjectUnsanitizedDoc, - migrationVersion: SavedObjectsMigrationVersion, - prop: string, - version: string -) { - assertNoDowngrades(doc, migrationVersion, prop, version); - const docVersion = propVersion(doc, prop) || '0.0.0'; - const maxVersion = Semver.gt(docVersion, version) ? docVersion : version; - return { ...(doc.migrationVersion || migrationVersion), [prop]: maxVersion }; -} - -/** - * Transforms that remove or downgrade migrationVersion properties are not allowed, - * as this could get us into an infinite loop. So, we explicitly check for that here. - */ -function assertNoDowngrades( - doc: SavedObjectUnsanitizedDoc, - migrationVersion: SavedObjectsMigrationVersion, - prop: string, - version: string -) { - const docVersion = doc.migrationVersion; - if (!docVersion) { - return; - } - - const downgrade = Object.keys(migrationVersion).find( - (k) => !docVersion.hasOwnProperty(k) || Semver.lt(docVersion[k], migrationVersion[k]) - ); - - if (downgrade) { - throw new Error( - `Migration "${prop} v ${version}" attempted to ` + - `downgrade "migrationVersion.${downgrade}" from ${migrationVersion[downgrade]} ` + - `to ${docVersion[downgrade]}.` - ); - } -} - -/** - * Deterministically regenerates a saved object's ID based upon it's current namespace, type, and ID. This ensures that we can regenerate - * any existing object IDs without worrying about collisions if two objects that exist in different namespaces share an ID. It also ensures - * that we can later regenerate any inbound object references to match. - * - * @note This is only intended to be used when single-namespace object types are converted into multi-namespace object types. - * @internal - */ -export function deterministicallyRegenerateObjectId(namespace: string, type: string, id: string) { - return uuidv5(`${namespace}:${type}:${id}`, uuidv5.DNS); // the uuidv5 namespace constant (uuidv5.DNS) is arbitrary -} diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/index.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/index.ts index 2b1cd0e955b435..81bacea4a0cbd5 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/index.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/index.ts @@ -6,11 +6,11 @@ * Side Public License, v 1. */ -export { DocumentMigrator } from './document_migrator'; export { buildActiveMappings } from './build_active_mappings'; export type { LogFn } from './migration_logger'; export { excludeUnusedTypesQuery, REMOVED_TYPES } from './unused_types'; export { TransformSavedObjectDocumentError } from './transform_saved_object_document_error'; +export { deterministicallyRegenerateObjectId } from './regenerate_object_id'; export type { DocumentsTransformFailed, DocumentsTransformSuccess, diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migrate_raw_docs.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migrate_raw_docs.ts index d1ca65f1dd1034..5c8ca0132ebf87 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migrate_raw_docs.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migrate_raw_docs.ts @@ -17,7 +17,7 @@ import type { SavedObjectUnsanitizedDoc, } from '@kbn/core-saved-objects-server'; import { SavedObjectsSerializer } from '@kbn/core-saved-objects-base-server-internal'; -import { MigrateAndConvertFn } from './document_migrator'; +import type { MigrateAndConvertFn } from '../document_migrator/document_migrator'; import { TransformSavedObjectDocumentError } from '.'; export interface DocumentsTransformFailed { diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/regenerate_object_id.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/regenerate_object_id.ts new file mode 100644 index 00000000000000..eb6eec2dbb1c80 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/regenerate_object_id.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { v5 as uuidv5 } from 'uuid'; + +/** + * Deterministically regenerates a saved object's ID based upon it's current namespace, type, and ID. This ensures that we can regenerate + * any existing object IDs without worrying about collisions if two objects that exist in different namespaces share an ID. It also ensures + * that we can later regenerate any inbound object references to match. + * + * @note This is only intended to be used when single-namespace object types are converted into multi-namespace object types. + * @internal + */ +export function deterministicallyRegenerateObjectId(namespace: string, type: string, id: string) { + return uuidv5(`${namespace}:${type}:${id}`, uuidv5.DNS); // the uuidv5 namespace constant (uuidv5.DNS) is arbitrary +} diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/unused_types.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/unused_types.ts index 3f46404066383c..e506ff40073fc1 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/unused_types.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/unused_types.ts @@ -41,6 +41,8 @@ export const REMOVED_TYPES: string[] = [ 'ui-counter', // Deprecated, no longer used since 7.13 https://github.com/elastic/kibana/pull/94923/files 'application_usage_transactional', + // Removed in 7.8.1 / 7.9.0 https://github.com/elastic/kibana/pull/69871 + 'maps-telemetry', // Deprecated, no longer used since 8.7 https://github.com/elastic/kibana/pull/148530 'csp_rule', ].sort(); diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/build_active_migrations.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/build_active_migrations.ts new file mode 100644 index 00000000000000..e46dbac99ef013 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/build_active_migrations.ts @@ -0,0 +1,72 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import _ from 'lodash'; +import type { Logger } from '@kbn/logging'; +import type { ISavedObjectTypeRegistry } from '@kbn/core-saved-objects-server'; +import type { Transform, ActiveMigrations } from './types'; +import { getReferenceTransforms, getConversionTransforms } from './internal_transforms'; +import { validateMigrationsMapObject } from './validate_migrations'; +import { transformComparator, wrapWithTry } from './utils'; + +/** + * Converts migrations from a format that is convenient for callers to a format that + * is convenient for our internal usage: + * From: { type: { version: fn } } + * To: { type: { latestMigrationVersion?: string; latestCoreMigrationVersion?: string; transforms: [{ version: string, transform: fn }] } } + */ +export function buildActiveMigrations( + typeRegistry: ISavedObjectTypeRegistry, + kibanaVersion: string, + log: Logger +): ActiveMigrations { + const referenceTransforms = getReferenceTransforms(typeRegistry); + + return typeRegistry.getAllTypes().reduce((migrations, type) => { + const migrationsMap = + typeof type.migrations === 'function' ? type.migrations() : type.migrations; + validateMigrationsMapObject(type.name, kibanaVersion, migrationsMap); + + const migrationTransforms = Object.entries(migrationsMap ?? {}).map( + ([version, transform]) => ({ + version, + transform: wrapWithTry(version, type, transform, log), + transformType: 'migrate', + }) + ); + const conversionTransforms = getConversionTransforms(type); + const transforms = [ + ...referenceTransforms, + ...conversionTransforms, + ...migrationTransforms, + ].sort(transformComparator); + + if (!transforms.length) { + return migrations; + } + + const migrationVersionTransforms: Transform[] = []; + const coreMigrationVersionTransforms: Transform[] = []; + transforms.forEach((x) => { + if (x.transformType === 'migrate' || x.transformType === 'convert') { + migrationVersionTransforms.push(x); + } else { + coreMigrationVersionTransforms.push(x); + } + }); + + return { + ...migrations, + [type.name]: { + latestMigrationVersion: _.last(migrationVersionTransforms)?.version, + latestCoreMigrationVersion: _.last(coreMigrationVersionTransforms)?.version, + transforms, + }, + }; + }, {} as ActiveMigrations); +} diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.mock.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.mock.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.mock.ts rename to packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.mock.ts diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts similarity index 99% rename from packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts rename to packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts index dd64014f815bd5..46ca8286d44a50 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.test.ts @@ -15,7 +15,7 @@ import { LEGACY_URL_ALIAS_TYPE, } from '@kbn/core-saved-objects-base-server-internal'; import { DocumentMigrator } from './document_migrator'; -import { TransformSavedObjectDocumentError } from './transform_saved_object_document_error'; +import { TransformSavedObjectDocumentError } from '../core/transform_saved_object_document_error'; import { loggingSystemMock } from '@kbn/core-logging-server-mocks'; const mockLoggerFactory = loggingSystemMock.create(); diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts new file mode 100644 index 00000000000000..c9c84cba261c1e --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts @@ -0,0 +1,463 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +/* + * This file contains logic for transforming / migrating a saved object document. + * + * At first, it may seem as if this could be a simple filter + reduce operation, + * running the document through a linear set of transform functions until it is + * up to date, but there are some edge cases that make it more complicated. + * + * A transform can add a new property, rename an existing property, remove a property, etc. + * This means that we aren't able to do a reduce over a fixed list of properties, as + * each transform operation could essentially change what transforms should be applied + * next. + * + * The basic algorithm, then, is this: + * + * While there are any unmigrated properties in the doc, find the next unmigrated property, + * and run the doc through the transforms that target that property. + * + * This way, we keep looping until there are no transforms left to apply, and we properly + * handle property addition / deletion / renaming. + * + * A caveat is that this means we must restrict what a migration can do to the doc's + * migrationVersion itself. Migrations should *not* make any changes to the migrationVersion property. + * + * One last gotcha is that any docs which have no migrationVersion are assumed to be up-to-date. + * This is because Kibana UI and other clients really can't be expected build the migrationVersion + * in a reliable way. Instead, callers of our APIs are expected to send us up-to-date documents, + * and those documents are simply given a stamp of approval by this transformer. This is why it is + * important for migration authors to *also* write a saved object validation that will prevent this + * assumption from inserting out-of-date documents into the index. + * + * If the client(s) send us documents with migrationVersion specified, we will migrate them as + * appropriate. This means for data import scenarios, any documetns being imported should be explicitly + * given an empty migrationVersion property {} if no such property exists. + */ + +import Boom from '@hapi/boom'; +import { set } from '@kbn/safer-lodash-set'; +import _ from 'lodash'; +import Semver from 'semver'; +import type { Logger } from '@kbn/logging'; +import type { SavedObjectsMigrationVersion } from '@kbn/core-saved-objects-common'; +import type { + SavedObjectUnsanitizedDoc, + ISavedObjectTypeRegistry, +} from '@kbn/core-saved-objects-server'; +import type { ActiveMigrations, TransformResult } from './types'; +import { buildActiveMigrations } from './build_active_migrations'; +import { validateMigrationDefinition } from './validate_migrations'; + +export type MigrateFn = (doc: SavedObjectUnsanitizedDoc) => SavedObjectUnsanitizedDoc; +export type MigrateAndConvertFn = (doc: SavedObjectUnsanitizedDoc) => SavedObjectUnsanitizedDoc[]; + +type ApplyTransformsFn = ( + doc: SavedObjectUnsanitizedDoc, + options?: TransformOptions +) => TransformResult; + +interface TransformOptions { + convertNamespaceTypes?: boolean; +} + +interface DocumentMigratorOptions { + kibanaVersion: string; + typeRegistry: ISavedObjectTypeRegistry; + convertVersion?: string; + log: Logger; +} + +/** + * Manages migration of individual documents. + */ +export interface VersionedTransformer { + migrationVersion: SavedObjectsMigrationVersion; + migrate: MigrateFn; + migrateAndConvert: MigrateAndConvertFn; + prepareMigrations: () => void; +} + +/** + * A concrete implementation of the VersionedTransformer interface. + */ +export class DocumentMigrator implements VersionedTransformer { + private documentMigratorOptions: Omit; + private migrations?: ActiveMigrations; + private transformDoc?: ApplyTransformsFn; + + /** + * Creates an instance of DocumentMigrator. + * + * @param {DocumentMigratorOptions} opts + * @prop {string} kibanaVersion - The current version of Kibana + * @prop {SavedObjectTypeRegistry} typeRegistry - The type registry to get type migrations from + * @prop {string} convertVersion - The version of Kibana in which documents can be converted to multi-namespace types + * @prop {Logger} log - The migration logger + * @memberof DocumentMigrator + */ + constructor({ typeRegistry, kibanaVersion, convertVersion, log }: DocumentMigratorOptions) { + validateMigrationDefinition(typeRegistry, kibanaVersion, convertVersion); + this.documentMigratorOptions = { typeRegistry, kibanaVersion, log }; + } + + /** + * Gets the latest version of each migrate-able property. + * + * @readonly + * @type {SavedObjectsMigrationVersion} + * @memberof DocumentMigrator + */ + public get migrationVersion(): SavedObjectsMigrationVersion { + if (!this.migrations) { + throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); + } + + return Object.entries(this.migrations).reduce((acc, [prop, { latestMigrationVersion }]) => { + // some migration objects won't have a latestMigrationVersion (they only contain reference transforms that are applied from other types) + if (latestMigrationVersion) { + return { ...acc, [prop]: latestMigrationVersion }; + } + return acc; + }, {}); + } + + /** + * Prepares active migrations and document transformer function. + * + * @returns {void} + * @memberof DocumentMigrator + */ + + public prepareMigrations = () => { + const { typeRegistry, kibanaVersion, log } = this.documentMigratorOptions; + this.migrations = buildActiveMigrations(typeRegistry, kibanaVersion, log); + this.transformDoc = buildDocumentTransform({ + kibanaVersion, + migrations: this.migrations, + }); + }; + + /** + * Migrates a document to the latest version. + * + * @param {SavedObjectUnsanitizedDoc} doc + * @returns {SavedObjectUnsanitizedDoc} + * @memberof DocumentMigrator + */ + public migrate = (doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc => { + if (!this.migrations || !this.transformDoc) { + throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); + } + + // Clone the document to prevent accidental mutations on the original data + // Ex: Importing sample data that is cached at import level, migrations would + // execute on mutated data the second time. + const clonedDoc = _.cloneDeep(doc); + const { transformedDoc } = this.transformDoc(clonedDoc); + return transformedDoc; + }; + + /** + * Migrates a document to the latest version and applies type conversions if applicable. Also returns any additional document(s) that may + * have been created during the transformation process. + * + * @param {SavedObjectUnsanitizedDoc} doc + * @returns {SavedObjectUnsanitizedDoc} + * @memberof DocumentMigrator + */ + public migrateAndConvert = (doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc[] => { + if (!this.migrations || !this.transformDoc) { + throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); + } + + // Clone the document to prevent accidental mutations on the original data + // Ex: Importing sample data that is cached at import level, migrations would + // execute on mutated data the second time. + const clonedDoc = _.cloneDeep(doc); + const { transformedDoc, additionalDocs } = this.transformDoc(clonedDoc, { + convertNamespaceTypes: true, + }); + return [transformedDoc, ...additionalDocs]; + }; +} + +/** + * Creates a function which migrates and validates any document that is passed to it. + */ +function buildDocumentTransform({ + kibanaVersion, + migrations, +}: { + kibanaVersion: string; + migrations: ActiveMigrations; +}): ApplyTransformsFn { + return function transformAndValidate( + doc: SavedObjectUnsanitizedDoc, + options: TransformOptions = {} + ) { + validateCoreMigrationVersion(doc, kibanaVersion); + + const { convertNamespaceTypes = false } = options; + let transformedDoc: SavedObjectUnsanitizedDoc; + let additionalDocs: SavedObjectUnsanitizedDoc[] = []; + if (doc.migrationVersion) { + const result = applyMigrations(doc, migrations, kibanaVersion, convertNamespaceTypes); + transformedDoc = result.transformedDoc; + additionalDocs = additionalDocs.concat( + result.additionalDocs.map((x) => markAsUpToDate(x, migrations, kibanaVersion)) + ); + } else { + transformedDoc = markAsUpToDate(doc, migrations, kibanaVersion); + } + + // In order to keep tests a bit more stable, we won't + // tack on an empty migrationVersion to docs that have + // no migrations defined. + if (_.isEmpty(transformedDoc.migrationVersion)) { + delete transformedDoc.migrationVersion; + } + + return { transformedDoc, additionalDocs }; + }; +} + +function validateCoreMigrationVersion(doc: SavedObjectUnsanitizedDoc, kibanaVersion: string) { + const { id, coreMigrationVersion: docVersion } = doc; + if (!docVersion) { + return; + } + + // We verify that the object's coreMigrationVersion is valid, and that it is not greater than the version supported by Kibana. + // If we have a coreMigrationVersion and the kibanaVersion is smaller than it or does not exist, we are dealing with a document that + // belongs to a future Kibana / plugin version. + if (!Semver.valid(docVersion)) { + throw Boom.badData( + `Document "${id}" has an invalid "coreMigrationVersion" [${docVersion}]. This must be a semver value.`, + doc + ); + } + + if (doc.coreMigrationVersion && Semver.gt(docVersion, kibanaVersion)) { + throw Boom.badData( + `Document "${id}" has a "coreMigrationVersion" which belongs to a more recent version` + + ` of Kibana [${docVersion}]. The current version is [${kibanaVersion}].`, + doc + ); + } +} + +function applyMigrations( + doc: SavedObjectUnsanitizedDoc, + migrations: ActiveMigrations, + kibanaVersion: string, + convertNamespaceTypes: boolean +) { + let additionalDocs: SavedObjectUnsanitizedDoc[] = []; + while (true) { + const prop = nextUnmigratedProp(doc, migrations); + if (!prop) { + // regardless of whether or not any reference transform was applied, update the coreMigrationVersion + // this is needed to ensure that newly created documents have an up-to-date coreMigrationVersion field + return { + transformedDoc: { ...doc, coreMigrationVersion: kibanaVersion }, + additionalDocs, + }; + } + const result = migrateProp(doc, prop, migrations, convertNamespaceTypes); + doc = result.transformedDoc; + additionalDocs = [...additionalDocs, ...result.additionalDocs]; + } +} + +/** + * Gets the doc's props, handling the special case of "type". + */ +function props(doc: SavedObjectUnsanitizedDoc) { + return Object.keys(doc).concat(doc.type); +} + +/** + * Looks up the prop version in a saved object document or in our latest migrations. + */ +function propVersion(doc: SavedObjectUnsanitizedDoc | ActiveMigrations, prop: string) { + return ( + ((doc as any)[prop] && (doc as any)[prop].latestMigrationVersion) || + (doc.migrationVersion && (doc as any).migrationVersion[prop]) + ); +} + +/** + * Sets the doc's migrationVersion to be the most recent version + */ +function markAsUpToDate( + doc: SavedObjectUnsanitizedDoc, + migrations: ActiveMigrations, + kibanaVersion: string +) { + return { + ...doc, + migrationVersion: props(doc).reduce((acc, prop) => { + const version = propVersion(migrations, prop); + return version ? set(acc, prop, version) : acc; + }, {}), + coreMigrationVersion: kibanaVersion, + }; +} + +/** + * Determines whether or not a document has any pending transforms that should be applied based on its coreMigrationVersion field. + * Currently, only reference transforms qualify. + */ +function getHasPendingCoreMigrationVersionTransform( + doc: SavedObjectUnsanitizedDoc, + migrations: ActiveMigrations, + prop: string +) { + if (!migrations.hasOwnProperty(prop)) { + return false; + } + + const { latestCoreMigrationVersion } = migrations[prop]; + const { coreMigrationVersion } = doc; + return ( + latestCoreMigrationVersion && + (!coreMigrationVersion || Semver.gt(latestCoreMigrationVersion, coreMigrationVersion)) + ); +} + +/** + * Finds the first unmigrated property in the specified document. + */ +function nextUnmigratedProp(doc: SavedObjectUnsanitizedDoc, migrations: ActiveMigrations) { + return props(doc).find((p) => { + const latestMigrationVersion = propVersion(migrations, p); + const docVersion = propVersion(doc, p); + + // We verify that the version is not greater than the version supported by Kibana. + // If we didn't, this would cause an infinite loop, as we'd be unable to migrate the property + // but it would continue to show up as unmigrated. + // If we have a docVersion and the latestMigrationVersion is smaller than it or does not exist, + // we are dealing with a document that belongs to a future Kibana / plugin version. + if (docVersion && (!latestMigrationVersion || Semver.gt(docVersion, latestMigrationVersion))) { + throw Boom.badData( + `Document "${doc.id}" has property "${p}" which belongs to a more recent` + + ` version of Kibana [${docVersion}]. The last known version is [${latestMigrationVersion}]`, + doc + ); + } + + return ( + (latestMigrationVersion && latestMigrationVersion !== docVersion) || + getHasPendingCoreMigrationVersionTransform(doc, migrations, p) // If the object itself is up-to-date, check if its references are up-to-date too + ); + }); +} + +/** + * Applies any relevant migrations to the document for the specified property. + */ +function migrateProp( + doc: SavedObjectUnsanitizedDoc, + prop: string, + migrations: ActiveMigrations, + convertNamespaceTypes: boolean +): TransformResult { + const originalType = doc.type; + let migrationVersion = _.clone(doc.migrationVersion) || {}; + let additionalDocs: SavedObjectUnsanitizedDoc[] = []; + + for (const { version, transform, transformType } of applicableTransforms(migrations, doc, prop)) { + if (convertNamespaceTypes || (transformType !== 'convert' && transformType !== 'reference')) { + // migrate transforms are always applied, but conversion transforms and reference transforms are only applied during index migrations + const result = transform(doc); + doc = result.transformedDoc; + additionalDocs = [...additionalDocs, ...result.additionalDocs]; + } + if (transformType === 'reference') { + // regardless of whether or not the reference transform was applied, update the object's coreMigrationVersion + // this is needed to ensure that we don't have an endless migration loop + doc.coreMigrationVersion = version; + } else { + migrationVersion = updateMigrationVersion(doc, migrationVersion, prop, version); + doc.migrationVersion = _.clone(migrationVersion); + } + + if (doc.type !== originalType) { + // the transform function changed the object's type; break out of the loop + break; + } + } + + return { transformedDoc: doc, additionalDocs }; +} + +/** + * Retrieves any prop transforms that have not been applied to doc. + */ +function applicableTransforms( + migrations: ActiveMigrations, + doc: SavedObjectUnsanitizedDoc, + prop: string +) { + const minVersion = propVersion(doc, prop); + const minReferenceVersion = doc.coreMigrationVersion || '0.0.0'; + const { transforms } = migrations[prop]; + return minVersion + ? transforms.filter(({ version, transformType }) => + transformType === 'reference' + ? Semver.gt(version, minReferenceVersion) + : Semver.gt(version, minVersion) + ) + : transforms; +} + +/** + * Updates the document's migrationVersion, ensuring that the calling transform + * has not mutated migrationVersion in an unsupported way. + */ +function updateMigrationVersion( + doc: SavedObjectUnsanitizedDoc, + migrationVersion: SavedObjectsMigrationVersion, + prop: string, + version: string +) { + assertNoDowngrades(doc, migrationVersion, prop, version); + const docVersion = propVersion(doc, prop) || '0.0.0'; + const maxVersion = Semver.gt(docVersion, version) ? docVersion : version; + return { ...(doc.migrationVersion || migrationVersion), [prop]: maxVersion }; +} + +/** + * Transforms that remove or downgrade migrationVersion properties are not allowed, + * as this could get us into an infinite loop. So, we explicitly check for that here. + */ +function assertNoDowngrades( + doc: SavedObjectUnsanitizedDoc, + migrationVersion: SavedObjectsMigrationVersion, + prop: string, + version: string +) { + const docVersion = doc.migrationVersion; + if (!docVersion) { + return; + } + + const downgrade = Object.keys(migrationVersion).find( + (k) => !docVersion.hasOwnProperty(k) || Semver.lt(docVersion[k], migrationVersion[k]) + ); + + if (downgrade) { + throw new Error( + `Migration "${prop} v ${version}" attempted to ` + + `downgrade "migrationVersion.${downgrade}" from ${migrationVersion[downgrade]} ` + + `to ${docVersion[downgrade]}.` + ); + } +} diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/index.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/index.ts new file mode 100644 index 00000000000000..f34053388d7649 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { DocumentMigrator, type VersionedTransformer } from './document_migrator'; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts new file mode 100644 index 00000000000000..d94865f23677bb --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/internal_transforms.ts @@ -0,0 +1,115 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + ISavedObjectTypeRegistry, + SavedObjectsType, + SavedObjectUnsanitizedDoc, +} from '@kbn/core-saved-objects-server'; +import { DEFAULT_NAMESPACE_STRING, SavedObjectsUtils } from '@kbn/core-saved-objects-utils-server'; +import { + LEGACY_URL_ALIAS_TYPE, + LegacyUrlAlias, +} from '@kbn/core-saved-objects-base-server-internal'; +import type { Transform } from './types'; + +/** + * Returns all applicable conversion transforms for a given object type. + */ +export function getConversionTransforms(type: SavedObjectsType): Transform[] { + const { convertToMultiNamespaceTypeVersion } = type; + if (!convertToMultiNamespaceTypeVersion) { + return []; + } + return [ + { + version: convertToMultiNamespaceTypeVersion, + transform: convertNamespaceType, + transformType: 'convert', + }, + ]; +} + +/** + * Returns all applicable reference transforms for all object types. + */ +export function getReferenceTransforms(typeRegistry: ISavedObjectTypeRegistry): Transform[] { + const transformMap = typeRegistry + .getAllTypes() + .filter((type) => type.convertToMultiNamespaceTypeVersion) + .reduce((acc, { convertToMultiNamespaceTypeVersion: version, name }) => { + const types = acc.get(version!) ?? new Set(); + return acc.set(version!, types.add(name)); + }, new Map>()); + + return Array.from(transformMap, ([version, types]) => ({ + version, + transform: (doc) => { + const { namespace, references } = doc; + if (namespace && references?.length) { + return { + transformedDoc: { + ...doc, + references: references.map(({ type, id, ...attrs }) => ({ + ...attrs, + type, + id: types.has(type) + ? SavedObjectsUtils.getConvertedObjectId(namespace, type, id) + : id, + })), + }, + additionalDocs: [], + }; + } + return { transformedDoc: doc, additionalDocs: [] }; + }, + transformType: 'reference', + })); +} + +/** + * Converts a single-namespace object to a multi-namespace object. This primarily entails removing the `namespace` field and adding the + * `namespaces` field. + * + * If the object does not exist in the default namespace (undefined), its ID is also regenerated, and an "originId" is added to preserve + * legacy import/copy behavior. + */ +function convertNamespaceType(doc: SavedObjectUnsanitizedDoc) { + const { namespace, ...otherAttrs } = doc; + const additionalDocs: SavedObjectUnsanitizedDoc[] = []; + + // If this object exists in the default namespace, return it with the appropriate `namespaces` field without changing its ID. + if (namespace === undefined) { + return { + transformedDoc: { ...otherAttrs, namespaces: [DEFAULT_NAMESPACE_STRING] }, + additionalDocs, + }; + } + + const { id: originId, type } = otherAttrs; + const id = SavedObjectsUtils.getConvertedObjectId(namespace, type, originId!); + const legacyUrlAlias: SavedObjectUnsanitizedDoc = { + id: `${namespace}:${type}:${originId}`, + type: LEGACY_URL_ALIAS_TYPE, + attributes: { + // NOTE TO MAINTAINERS: If a saved object migration is added in `src/core/server/saved_objects/object_types/registration.ts`, these + // values must be updated accordingly. That's because a user can upgrade Kibana from 7.17 to 8.x, and any defined migrations will not + // be applied to aliases that are created during the conversion process. + sourceId: originId, + targetNamespace: namespace, + targetType: type, + targetId: id, + purpose: 'savedObjectConversion', + }, + }; + additionalDocs.push(legacyUrlAlias); + return { + transformedDoc: { ...otherAttrs, id, originId, namespaces: [namespace] }, + additionalDocs, + }; +} diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/types.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/types.ts new file mode 100644 index 00000000000000..3c9c836923caa4 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/types.ts @@ -0,0 +1,73 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { SavedObjectUnsanitizedDoc } from '@kbn/core-saved-objects-server'; + +/** + * Map containing all the info to convert types + */ +export interface ActiveMigrations { + [type: string]: TypeConversion; +} + +/** + * Structure containing all the required info to perform a type's conversion + */ +export interface TypeConversion { + /** Derived from `migrate` transforms and `convert` transforms */ + latestMigrationVersion?: string; + /** Derived from `reference` transforms */ + latestCoreMigrationVersion?: string; + /** List of transforms registered for the type **/ + transforms: Transform[]; +} + +/** + * Internal representation of a document transformation + */ +export interface Transform { + /** The version this transform is registered for */ + version: string; + /** The transformation function */ + transform: TransformFn; + /** The type of this transform */ + transformType: TransformType; +} + +/** + * There are two "migrationVersion" transform types: + * * `migrate` - These transforms are defined and added by consumers using the type registry; each is applied to a single object type + * based on an object's `migrationVersion[type]` field. These are applied during index migrations and document migrations. + * * `convert` - These transforms are defined by core and added by consumers using the type registry; each is applied to a single object + * type based on an object's `migrationVersion[type]` field. These are applied during index migrations, NOT document migrations. + * + * There is one "coreMigrationVersion" transform type: + * * `reference` - These transforms are defined by core and added by consumers using the type registry; they are applied to all object + * types based on their `coreMigrationVersion` field. These are applied during index migrations, NOT document migrations. + */ +export type TransformType = 'migrate' | 'convert' | 'reference'; + +/** + * Transformation function for a {@link Transform} + */ +export type TransformFn = (doc: SavedObjectUnsanitizedDoc) => TransformResult; + +/** + * Return type for a {@link TransformFn} + */ +export interface TransformResult { + /** + * This is the original document that has been transformed. + */ + transformedDoc: SavedObjectUnsanitizedDoc; + /** + * These are any new document(s) that have been created during the transformation process; these are not transformed, but they are marked + * as up-to-date. Only conversion transforms generate additional documents. + */ + additionalDocs: SavedObjectUnsanitizedDoc[]; +} diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts new file mode 100644 index 00000000000000..a6a78a2c6baa83 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import Semver from 'semver'; +import { + SavedObjectMigrationFn, + SavedObjectsType, + SavedObjectUnsanitizedDoc, +} from '@kbn/core-saved-objects-server'; +import { Logger } from '@kbn/logging'; +import { MigrationLogger } from '../core/migration_logger'; +import { TransformSavedObjectDocumentError } from '../core/transform_saved_object_document_error'; +import type { Transform, TransformFn } from './types'; + +/** + * If a specific transform function fails, this tacks on a bit of information + * about the document and transform that caused the failure. + */ +export function wrapWithTry( + version: string, + type: SavedObjectsType, + migrationFn: SavedObjectMigrationFn, + log: Logger +): TransformFn { + const context = Object.freeze({ + log: new MigrationLogger(log), + migrationVersion: version, + convertToMultiNamespaceTypeVersion: type.convertToMultiNamespaceTypeVersion, + isSingleNamespaceType: type.namespaceType === 'single', + }); + + return function tryTransformDoc(doc: SavedObjectUnsanitizedDoc) { + try { + const result = migrationFn(doc, context); + + // A basic check to help migration authors detect basic errors + // (e.g. forgetting to return the transformed doc) + if (!result || !result.type) { + throw new Error(`Invalid saved object returned from migration ${type.name}:${version}.`); + } + + return { transformedDoc: result, additionalDocs: [] }; + } catch (error) { + log.error(error); + throw new TransformSavedObjectDocumentError(error, version); + } + }; +} + +/** + * Transforms are sorted in ascending order by version. One version may contain multiple transforms; 'reference' transforms always run + * first, 'convert' transforms always run second, and 'migrate' transforms always run last. This is because: + * 1. 'convert' transforms get rid of the `namespace` field, which must be present for 'reference' transforms to function correctly. + * 2. 'migrate' transforms are defined by the consumer, and may change the object type or migrationVersion which resets the migration loop + * and could cause any remaining transforms for this version to be skipped. + */ +export function transformComparator(a: Transform, b: Transform) { + const semver = Semver.compare(a.version, b.version); + if (semver !== 0) { + return semver; + } else if (a.transformType !== b.transformType) { + if (a.transformType === 'migrate') { + return 1; + } else if (b.transformType === 'migrate') { + return -1; + } else if (a.transformType === 'convert') { + return 1; + } else if (b.transformType === 'convert') { + return -1; + } + } + return 0; +} diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/validate_migrations.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/validate_migrations.ts new file mode 100644 index 00000000000000..463ee85ac1808a --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/validate_migrations.ts @@ -0,0 +1,121 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import Semver from 'semver'; +import type { SavedObjectsNamespaceType } from '@kbn/core-saved-objects-common'; +import type { + SavedObjectMigrationMap, + ISavedObjectTypeRegistry, +} from '@kbn/core-saved-objects-server'; + +/** + * Basic validation that the migration definition matches our expectations. We can't + * rely on TypeScript here, as the caller may be JavaScript / ClojureScript / any compile-to-js + * language. So, this is just to provide a little developer-friendly error messaging. Joi was + * giving weird errors, so we're just doing manual validation. + */ +export function validateMigrationDefinition( + registry: ISavedObjectTypeRegistry, + kibanaVersion: string, + convertVersion?: string +) { + function assertObjectOrFunction(entity: any, prefix: string) { + if (!entity || (typeof entity !== 'function' && typeof entity !== 'object')) { + throw new Error(`${prefix} Got! ${typeof entity}, ${JSON.stringify(entity)}.`); + } + } + + function assertValidConvertToMultiNamespaceType( + namespaceType: SavedObjectsNamespaceType, + convertToMultiNamespaceTypeVersion: string, + type: string + ) { + if (namespaceType !== 'multiple' && namespaceType !== 'multiple-isolated') { + throw new Error( + `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Expected namespaceType to be 'multiple' or 'multiple-isolated', but got '${namespaceType}'.` + ); + } else if (!Semver.valid(convertToMultiNamespaceTypeVersion)) { + throw new Error( + `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Expected value to be a semver, but got '${convertToMultiNamespaceTypeVersion}'.` + ); + } else if (convertVersion && Semver.neq(convertToMultiNamespaceTypeVersion, convertVersion)) { + throw new Error( + `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Value '${convertToMultiNamespaceTypeVersion}' cannot be any other than '${convertVersion}'.` + ); + } else if (Semver.gt(convertToMultiNamespaceTypeVersion, kibanaVersion)) { + throw new Error( + `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Value '${convertToMultiNamespaceTypeVersion}' cannot be greater than the current Kibana version '${kibanaVersion}'.` + ); + } else if (Semver.patch(convertToMultiNamespaceTypeVersion)) { + throw new Error( + `Invalid convertToMultiNamespaceTypeVersion for type ${type}. Value '${convertToMultiNamespaceTypeVersion}' cannot be used on a patch version (must be like 'x.y.0').` + ); + } + } + + registry.getAllTypes().forEach((type) => { + const { name, migrations, convertToMultiNamespaceTypeVersion, namespaceType } = type; + if (migrations) { + assertObjectOrFunction( + type.migrations, + `Migration for type ${name} should be an object or a function returning an object like { '2.0.0': (doc) => doc }.` + ); + } + if (convertToMultiNamespaceTypeVersion) { + // CHECKPOINT 1 + assertValidConvertToMultiNamespaceType( + namespaceType, + convertToMultiNamespaceTypeVersion, + name + ); + } + }); +} + +export function validateMigrationsMapObject( + name: string, + kibanaVersion: string, + migrationsMap?: SavedObjectMigrationMap +) { + function assertObject(obj: any, prefix: string) { + if (!obj || typeof obj !== 'object') { + throw new Error(`${prefix} Got ${obj}.`); + } + } + + function assertValidSemver(version: string, type: string) { + if (!Semver.valid(version)) { + throw new Error( + `Invalid migration for type ${type}. Expected all properties to be semvers, but got ${version}.` + ); + } + if (Semver.gt(version, kibanaVersion)) { + throw new Error( + `Invalid migration for type ${type}. Property '${version}' cannot be greater than the current Kibana version '${kibanaVersion}'.` + ); + } + } + + function assertValidTransform(fn: any, version: string, type: string) { + if (typeof fn !== 'function') { + throw new Error(`Invalid migration ${type}.${version}: expected a function, but got ${fn}.`); + } + } + + if (migrationsMap) { + assertObject( + migrationsMap, + `Migrations map for type ${name} should be an object like { '2.0.0': (doc) => doc }.` + ); + + Object.entries(migrationsMap).forEach(([version, fn]) => { + assertValidSemver(version, name); + assertValidTransform(fn, version, name); + }); + } +} diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/index.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/index.ts index 7f520531f22e66..b50f64a26620d0 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/index.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/index.ts @@ -9,4 +9,4 @@ export { KibanaMigrator, mergeTypes } from './kibana_migrator'; export type { KibanaMigratorOptions } from './kibana_migrator'; export { buildActiveMappings } from './core'; -export { DocumentMigrator } from './core'; +export { DocumentMigrator } from './document_migrator'; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/initial_state.test.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/initial_state.test.ts index 8a66bac6ce9fef..27798706e8fd19 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/initial_state.test.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/initial_state.test.ts @@ -118,6 +118,11 @@ describe('createInitialState', () => { "type": "guided-setup-state", }, }, + Object { + "term": Object { + "type": "maps-telemetry", + }, + }, Object { "term": Object { "type": "ml-telemetry", diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.test.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.test.ts index 4e8dcdd7c7f547..655f164b831cf8 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.test.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.test.ts @@ -14,16 +14,16 @@ import { elasticsearchClientMock } from '@kbn/core-elasticsearch-client-server-m import type { SavedObjectsType } from '@kbn/core-saved-objects-server'; import { SavedObjectTypeRegistry } from '@kbn/core-saved-objects-base-server-internal'; import { type KibanaMigratorOptions, KibanaMigrator } from './kibana_migrator'; -import { DocumentMigrator } from './core/document_migrator'; +import { DocumentMigrator } from './document_migrator'; import { ByteSizeValue } from '@kbn/config-schema'; import { docLinksServiceMock } from '@kbn/core-doc-links-server-mocks'; import { lastValueFrom } from 'rxjs'; -jest.mock('./core/document_migrator', () => { +jest.mock('./document_migrator', () => { return { // Create a mock for spying on the constructor DocumentMigrator: jest.fn().mockImplementation((...args) => { - const { DocumentMigrator: RealDocMigrator } = jest.requireActual('./core/document_migrator'); + const { DocumentMigrator: RealDocMigrator } = jest.requireActual('./document_migrator'); return new RealDocMigrator(args[0]); }), }; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts index 58a5a741a61635..fa0c88629758ba 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts @@ -32,7 +32,7 @@ import { type MigrationResult, } from '@kbn/core-saved-objects-base-server-internal'; import { buildActiveMappings } from './core'; -import { DocumentMigrator, type VersionedTransformer } from './core/document_migrator'; +import { DocumentMigrator, type VersionedTransformer } from './document_migrator'; import { createIndexMap } from './core/build_index_map'; import { runResilientMigrator } from './run_resilient_migrator'; import { migrateRawDocsSafely } from './core/migrate_raw_docs'; diff --git a/packages/core/saved-objects/core-saved-objects-server/index.ts b/packages/core/saved-objects/core-saved-objects-server/index.ts index 33b9dfd64f6f8a..2e6d3837cfac65 100644 --- a/packages/core/saved-objects/core-saved-objects-server/index.ts +++ b/packages/core/saved-objects/core-saved-objects-server/index.ts @@ -89,6 +89,18 @@ export { SECURITY_EXTENSION_ID, SPACES_EXTENSION_ID, } from './src/extensions/extensions'; +export type { + SavedObjectsModelVersion, + SavedObjectsModelVersionMap, + SavedObjectsModelVersionMapProvider, + SavedObjectsModelChange, + SavedObjectsModelExpansionChange, + SavedObjectModelTransformationDoc, + SavedObjectModelTransformationContext, + SavedObjectModelTransformationFn, + SavedObjectModelBidirectionalTransformation, + SavedObjectModelTransformationResult, +} from './src/model_version'; export type { SavedObject, diff --git a/packages/core/saved-objects/core-saved-objects-server/src/model_version/index.ts b/packages/core/saved-objects/core-saved-objects-server/src/model_version/index.ts new file mode 100644 index 00000000000000..ec35e07e4f6745 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-server/src/model_version/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type { + SavedObjectModelTransformationDoc, + SavedObjectModelTransformationContext, + SavedObjectModelTransformationFn, + SavedObjectModelBidirectionalTransformation, + SavedObjectModelTransformationResult, +} from './transformations'; + +export type { + SavedObjectsModelChange, + SavedObjectsModelExpansionChange, + SavedObjectsModelVersion, + SavedObjectsModelVersionMap, + SavedObjectsModelVersionMapProvider, +} from './model_version'; diff --git a/packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts b/packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts new file mode 100644 index 00000000000000..3094a1ccb3e09f --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-server/src/model_version/model_version.ts @@ -0,0 +1,100 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { SavedObjectsMappingProperties } from '../mapping_definition'; +import type { SavedObjectModelBidirectionalTransformation } from './transformations'; + +/** + * Represents a model version of a given savedObjects type. + * + * Model versions supersede the {@link SavedObjectsType.migrations | migrations} (and {@link SavedObjectsType.schemas | schemas}) APIs + * by exposing an unified way of describing the changes of shape or data of a type. + * + * @public + */ +export interface SavedObjectsModelVersion { + /** + * The {@link SavedObjectsModelChange | changes} associated with this version. + */ + modelChange: SavedObjectsModelChange; +} + +/** + * {@link SavedObjectsModelChange | model change} representing an expansion. + * + * A model expansion can do either, or both, or those: + * - add new mappings + * - migrate data in a backward-compatible way + * + * @remark when adding mappings, {@link SavedObjectsType.mappings | the type mappings} must also be updated accordingly. + * Overall, the type's mapping represents the latests version of the mappings, where the model changes + * represent the changes of mappings between two versions. + * + * @public + */ +export interface SavedObjectsModelExpansionChange< + PreviousAttributes = unknown, + NewAttributes = unknown +> { + /** + * The type of {@link SavedObjectsModelChange | change}, used to identify them internally. + */ + type: 'expansion'; + /** + * (optional) A bidirectional transformation to migrate the document from and/or to the previous model version. + */ + transformation?: SavedObjectModelBidirectionalTransformation; + /** + * (optional) The new mappings introduced in this version. + */ + addedMappings?: SavedObjectsMappingProperties; + /** + * (optional) A list of paths to mappings to flag as deprecated. Deprecated mappings should no longer be used and will + * eventually be deleted later. + */ + deprecatedMappings?: string[]; +} + +/** + * Identify the model change associated with a given {@link SavedObjectsModelVersion}. + * + * At the moment, Only one type of change is supported: {@link SavedObjectsModelExpansionChange | expansions}. + * + * @public + */ +export type SavedObjectsModelChange = SavedObjectsModelExpansionChange; + +/** + * A record of {@link SavedObjectsModelVersion | model versions} for a given savedObjects type. + * The record's keys must be integers, starting with 1 for the first entry, and there shouldn't be gaps. + * + * @example + * ```typescript + * const modelVersionMap: SavedObjectsModelVersionMap = { + * '1': modelVersion1, + * '2': modelVersion2, + * '3': modelVersion3, + * } + * ``` + * + * @public + */ +export interface SavedObjectsModelVersionMap { + [modelVersion: string]: SavedObjectsModelVersion; +} + +/** + * A function returning a {@link SavedObjectsModelVersionMap | model version map} + * + * Ensured to be called after all plugins executed their `setup` phase. + * Similar to what was done with migrations, can be used to defer resolving the model versions + * associated to a type to after all plugins have been set up. + * + * @public + */ +export type SavedObjectsModelVersionMapProvider = () => SavedObjectsModelVersionMap; diff --git a/packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts b/packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts new file mode 100644 index 00000000000000..5af4866ddd5767 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts @@ -0,0 +1,81 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { SavedObjectSanitizedDoc } from '../serialization'; +import type { SavedObjectsMigrationLogger } from '../migration'; + +/** + * Document type used during model migration. + * + * @public + */ +export type SavedObjectModelTransformationDoc = SavedObjectSanitizedDoc; + +/** + * Context passed down to {@link SavedObjectModelTransformationFn | transformation functions}. + * + * @public + */ +export interface SavedObjectModelTransformationContext { + /** + * logger instance to be used by the migration handler + */ + readonly log: SavedObjectsMigrationLogger; + /** + * The model version this migration is registered for + */ + readonly modelVersion: number; +} + +/** + * Return type for the {@link SavedObjectModelTransformationFn | transformation functions} + * + * @public + */ +export interface SavedObjectModelTransformationResult { + document: SavedObjectModelTransformationDoc; +} + +/** + * Transformation function for the model version API. + * + * Similar to the old migration system, model version transformations take the document to migrate + * and a context object as input and must return the transformed document in its return value. + * + * @public + */ +export type SavedObjectModelTransformationFn< + InputAttributes = unknown, + OutputAttributes = unknown +> = ( + document: SavedObjectModelTransformationDoc, + context: SavedObjectModelTransformationContext +) => SavedObjectModelTransformationResult; + +/** + * A bidirectional transformation. + * + * Bidirectional transformations define migration functions that can be used to + * transform a document from the lower version to the higher one (`up`), and + * the other way around, from the higher version to the lower one (`down`) + * + * @public + */ +export interface SavedObjectModelBidirectionalTransformation< + PreviousAttributes = unknown, + NewAttributes = unknown +> { + /** + * The upward (previous=>next) transformation. + */ + up: SavedObjectModelTransformationFn; + /** + * The downward (next=>previous) transformation. + */ + down: SavedObjectModelTransformationFn; +} diff --git a/packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts b/packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts index 9dee63c3556769..b9fa8e63651144 100644 --- a/packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts +++ b/packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts @@ -14,6 +14,10 @@ import type { SavedObjectsTypeManagementDefinition } from './saved_objects_manag import type { SavedObjectsValidationMap } from './validation'; import type { SavedObjectMigrationMap } from './migration'; import type { SavedObjectsTypeMappingDefinition } from './mapping_definition'; +import type { + SavedObjectsModelVersionMap, + SavedObjectsModelVersionMapProvider, +} from './model_version'; /** * @public @@ -128,6 +132,102 @@ export interface SavedObjectsType { * An optional {@link SavedObjectsTypeManagementDefinition | saved objects management section} definition for the type. */ management?: SavedObjectsTypeManagementDefinition; + + /** + * A map of model versions associated with this type. + * + * Model versions supersede the {@link SavedObjectsType.migrations | migrations} (and {@link SavedObjectsType.schemas | schemas}) APIs + * by exposing an unified way of describing the changes of shape or data of the type. + * + * Model versioning is decoupled from Kibana versioning, and isolated between types. + * Model versions are identified by a single numeric value, starting at `1` and without gaps. + * + * Please refer to {@link SavedObjectsModelVersion} for details on the API's usages. + * + * A **valid** versioning would be: + * + * ```ts + * { + * name: 'foo', + * // other mandatory attributes... + * modelVersions: { + * '1': modelVersion1, + * '2': modelVersion2, + * '3': modelVersion3, + * } + * } + * ``` + * + * A **invalid** versioning would be: + * + * ```ts + * { + * name: 'foo', + * // other mandatory attributes... + * modelVersions: { + * '1': modelVersion1, + * '3': modelVersion3, // ERROR, no model version 2 + * '3.1': modelVersion31, // ERROR, model version is a single numeric value + * } + * } + * ``` + * + * @alpha experimental and subject to change. + */ + modelVersions?: SavedObjectsModelVersionMap | SavedObjectsModelVersionMapProvider; + + /** + * Allows to opt-in to the new model version API. + * + * Must be a valid semver version (with the patch version being necessarily 0) + * + * When specified, the type will switch from using the {@link SavedObjectsType.migrations | legacy migration API} + * to use the {@link SavedObjectsType.modelVersions | modelVersion API} after the specified version. + * + * When opted in, it will no longer be possible to use the legacy migration API after the specified version. + * + * A **valid** usage example would be: + * + * ```ts + * { + * name: 'foo', + * // other mandatory attributes... + * switchToModelVersionAt: '8.8.0', + * migrations: { + * '8.1.0': migrateTo810, + * '8.7.0': migrateTo870, + * }, + * modelVersions: { + * '1': modelVersion1 + * } + * } + * ``` + * + * An **invalid** usage example would be: + * + * ```ts + * { + * name: 'foo', + * // other mandatory attributes... + * switchToModelVersionAt: '8.9.0', + * migrations: { + * '8.1.0': migrateTo8_1, + * '8.9.0': migrateTo8_9, // error: migration registered for the switch version + * '8.10.0': migrateTo8_10, // error: migration registered for after the switch version + * }, + * modelVersions: { + * '1': modelVersion1 + * } + * } + * ``` + * + * Please refer to the {@link SavedObjectsType.modelVersions | modelVersion API} for more documentation on + * the new API. + * + * @remarks All types will be forced to switch to use the new API in a later version. This switch is + * allowing types owners to switch their types before the milestone. + */ + switchToModelVersionAt?: string; } /** diff --git a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.test.ts b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.test.ts index 47620aee90b3c3..c94d7fe3ceb948 100644 --- a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.test.ts +++ b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.test.ts @@ -158,4 +158,165 @@ describe('extractMigrationInfo', () => { }); }); }); + + describe('modelVersions', () => { + it('returns the correct switchToModelVersionAt', () => { + const type = createType({ + switchToModelVersionAt: '8.8.0', + }); + const output = extractMigrationInfo(type); + + expect(output.switchToModelVersionAt).toEqual('8.8.0'); + }); + + it('returns a proper summary of the model versions', () => { + const type = createType({ + modelVersions: { + '1': { + modelChange: { + type: 'expansion', + transformation: { + up: jest.fn(), + down: jest.fn(), + }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { + type: 'boolean', + }, + }, + }, + }, + }, + }); + const output = extractMigrationInfo(type); + + expect(output.modelVersions).toEqual([ + { + version: '1', + changeType: 'expansion', + hasMigration: true, + newMappings: [], + }, + { + version: '2', + changeType: 'expansion', + newMappings: ['foo.type'], + hasMigration: false, + }, + ]); + }); + + it('supports provider functions', () => { + const type = createType({ + modelVersions: () => ({ + '1': { + modelChange: { + type: 'expansion', + transformation: { + up: jest.fn(), + down: jest.fn(), + }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { + type: 'boolean', + }, + }, + }, + }, + }), + }); + const output = extractMigrationInfo(type); + + expect(output.modelVersions).toEqual([ + { + version: '1', + changeType: 'expansion', + hasMigration: true, + newMappings: [], + }, + { + version: '2', + changeType: 'expansion', + newMappings: ['foo.type'], + hasMigration: false, + }, + ]); + }); + + it('returns an empty list when model versions are not defined', () => { + const type = createType({ + modelVersions: undefined, + }); + const output = extractMigrationInfo(type); + + expect(output.modelVersions).toEqual([]); + }); + }); + + describe('migrations and modelVersions', () => { + it('generate properties for both', () => { + const type = createType({ + migrations: { + '8.3.3': dummyMigration, + '7.17.7': dummyMigration, + '8.0.2': dummyMigration, + }, + modelVersions: { + '1': { + modelChange: { + type: 'expansion', + transformation: { + up: jest.fn(), + down: jest.fn(), + }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { + type: 'boolean', + }, + }, + }, + }, + }, + switchToModelVersionAt: '8.8.0', + }); + + const output = extractMigrationInfo(type); + + expect(output).toEqual( + expect.objectContaining({ + migrationVersions: ['7.17.7', '8.0.2', '8.3.3'], + switchToModelVersionAt: '8.8.0', + modelVersions: [ + { + version: '1', + changeType: 'expansion', + hasMigration: true, + newMappings: [], + }, + { + version: '2', + changeType: 'expansion', + newMappings: ['foo.type'], + hasMigration: false, + }, + ], + }) + ); + }); + }); }); diff --git a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts index c2f1c0b7aa9a2b..329b8f23b4a0df 100644 --- a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts +++ b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/extract_migration_info.ts @@ -20,6 +20,15 @@ export interface SavedObjectTypeMigrationInfo { schemaVersions: string[]; mappings: Record; hasExcludeOnUpgrade: boolean; + modelVersions: ModelVersionSummary[]; + switchToModelVersionAt?: string; +} + +export interface ModelVersionSummary { + version: string; + changeType: string; + hasMigration: boolean; + newMappings: string[]; } /** @@ -37,6 +46,21 @@ export const extractMigrationInfo = (soType: SavedObjectsType): SavedObjectTypeM const schemaVersions = Object.keys(schemaMap ?? {}); schemaVersions.sort(semverCompare); + const modelVersionMap = + typeof soType.modelVersions === 'function' + ? soType.modelVersions() + : soType.modelVersions ?? {}; + const modelVersionIds = Object.keys(modelVersionMap); + const modelVersions = modelVersionIds.map((version) => { + const entry = modelVersionMap[version]; + return { + version, + changeType: entry.modelChange.type, + hasMigration: !!entry.modelChange.transformation, + newMappings: Object.keys(getFlattenedObject(entry.modelChange.addedMappings ?? {})), + }; + }); + return { name: soType.name, namespaceType: soType.namespaceType, @@ -46,5 +70,7 @@ export const extractMigrationInfo = (soType: SavedObjectsType): SavedObjectTypeM schemaVersions, mappings: getFlattenedObject(soType.mappings ?? {}), hasExcludeOnUpgrade: !!soType.excludeOnUpgrade, + modelVersions, + switchToModelVersionAt: soType.switchToModelVersionAt, }; }; diff --git a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts index 2ac9e04172e860..ab9a6aba7b6e4d 100644 --- a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts +++ b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.test.ts @@ -131,6 +131,7 @@ describe('getMigrationHash', () => { expect(getMigrationHash(typeA)).not.toEqual(getMigrationHash(typeB)); }); }); + describe('schemas', () => { it('returns same hash if same schema versions are registered', () => { const typeA = createType({ @@ -321,6 +322,172 @@ describe('getMigrationHash', () => { }); }); + describe('model versions', () => { + it('returns same hash if same model versions versions are registered', () => { + const typeA = createType({ + modelVersions: { + '1': { + modelChange: { + type: 'expansion', + transformation: { up: jest.fn(), down: jest.fn() }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { type: 'boolean' }, + }, + }, + }, + }, + }); + const typeB = createType({ + modelVersions: { + '1': { + modelChange: { + type: 'expansion', + transformation: { up: jest.fn(), down: jest.fn() }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { type: 'boolean' }, + }, + }, + }, + }, + }); + + expect(getMigrationHash(typeA)).toEqual(getMigrationHash(typeB)); + }); + + it('returns same hash if same model versions are registered in different order', () => { + const typeA = createType({ + modelVersions: { + '1': { + modelChange: { + type: 'expansion', + transformation: { up: jest.fn(), down: jest.fn() }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { type: 'boolean' }, + }, + }, + }, + }, + }); + const typeB = createType({ + modelVersions: { + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { type: 'boolean' }, + }, + }, + }, + '1': { + modelChange: { + type: 'expansion', + transformation: { up: jest.fn(), down: jest.fn() }, + }, + }, + }, + }); + + expect(getMigrationHash(typeA)).toEqual(getMigrationHash(typeB)); + }); + + it('returns same hash if same model versions are registered using record + function', () => { + const typeA = createType({ + modelVersions: { + '1': { + modelChange: { + type: 'expansion', + transformation: { up: jest.fn(), down: jest.fn() }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { type: 'boolean' }, + }, + }, + }, + }, + }); + const typeB = createType({ + modelVersions: () => ({ + '1': { + modelChange: { + type: 'expansion', + transformation: { up: jest.fn(), down: jest.fn() }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { type: 'boolean' }, + }, + }, + }, + }), + }); + + expect(getMigrationHash(typeA)).toEqual(getMigrationHash(typeB)); + }); + + it('returns different hashes if different model versions are registered', () => { + const typeA = createType({ + modelVersions: { + '1': { + modelChange: { + type: 'expansion', + transformation: { up: jest.fn(), down: jest.fn() }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + foo: { type: 'boolean' }, + }, + }, + }, + }, + }); + const typeB = createType({ + modelVersions: { + '1': { + modelChange: { + type: 'expansion', + transformation: { up: jest.fn(), down: jest.fn() }, + }, + }, + '2': { + modelChange: { + type: 'expansion', + addedMappings: { + bar: { type: 'boolean' }, + }, + }, + }, + }, + }); + + expect(getMigrationHash(typeA)).not.toEqual(getMigrationHash(typeB)); + }); + }); + describe('ignored fields', () => { it('returns same hash if `hidden` changes', () => { expect(getMigrationHash(createType({ hidden: false }))).toEqual( diff --git a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.ts b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.ts index 7e23ec35bb9e7d..bc6155f6bbc76b 100644 --- a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.ts +++ b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.ts @@ -8,7 +8,7 @@ import { createHash } from 'crypto'; import type { SavedObjectsType } from '@kbn/core-saved-objects-server'; -import { extractMigrationInfo } from './extract_migration_info'; +import { extractMigrationInfo, ModelVersionSummary } from './extract_migration_info'; type SavedObjectTypeMigrationHash = string; @@ -26,8 +26,19 @@ export const getMigrationHash = (soType: SavedObjectsType): SavedObjectTypeMigra migInfo.migrationVersions.join(','), migInfo.schemaVersions.join(','), JSON.stringify(migInfo.mappings, Object.keys(migInfo.mappings).sort()), + migInfo.switchToModelVersionAt ?? 'none', + migInfo.modelVersions.map(serializeModelVersion).join(','), ]; const hashFeed = hashParts.join('-'); return hash.update(hashFeed).digest('hex'); }; + +const serializeModelVersion = (modelVersion: ModelVersionSummary): string => { + return [ + modelVersion.version, + modelVersion.changeType, + modelVersion.hasMigration, + ...modelVersion.newMappings, + ].join('|'); +}; diff --git a/packages/kbn-alerts-ui-shared/README.mdx b/packages/kbn-alerts-ui-shared/README.mdx new file mode 100644 index 00000000000000..8903565a90751c --- /dev/null +++ b/packages/kbn-alerts-ui-shared/README.mdx @@ -0,0 +1,14 @@ +# @kbn/alerts-ui-shared + +--- +id: AlertsUIShared/Components/AlertLifecycleStatusBadge +slug: /kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.tsx +title: Alert Lifecycle Status +description: A component to show the status of an alert +tags: ['kbn-alerts-ui-shared', 'component'] +date: 2023-02-07 +--- + +## Description + +A component to show the status of an alert \ No newline at end of file diff --git a/packages/kbn-alerts-ui-shared/index.ts b/packages/kbn-alerts-ui-shared/index.ts new file mode 100644 index 00000000000000..431c6803c36d4e --- /dev/null +++ b/packages/kbn-alerts-ui-shared/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { AlertLifecycleStatusBadge } from './src/alert_lifecycle_status_badge'; +export type { AlertLifecycleStatusBadgeProps } from './src/alert_lifecycle_status_badge'; diff --git a/packages/kbn-alerts-ui-shared/jest.config.js b/packages/kbn-alerts-ui-shared/jest.config.js new file mode 100644 index 00000000000000..31062b3280e41c --- /dev/null +++ b/packages/kbn-alerts-ui-shared/jest.config.js @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../..', + roots: ['/packages/kbn-alerts-ui-shared'], +}; diff --git a/packages/kbn-alerts-ui-shared/kibana.jsonc b/packages/kbn-alerts-ui-shared/kibana.jsonc new file mode 100644 index 00000000000000..da035e4fbb8f8e --- /dev/null +++ b/packages/kbn-alerts-ui-shared/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/alerts-ui-shared", + "owner": "@elastic/response-ops" +} diff --git a/packages/kbn-alerts-ui-shared/package.json b/packages/kbn-alerts-ui-shared/package.json new file mode 100644 index 00000000000000..cddedc28c624f9 --- /dev/null +++ b/packages/kbn-alerts-ui-shared/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/alerts-ui-shared", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.test.tsx b/packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.test.tsx new file mode 100644 index 00000000000000..1fe498fb5a6606 --- /dev/null +++ b/packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.test.tsx @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { AlertLifecycleStatusBadge } from '.'; + +describe('alertLifecycleStatusBadge', () => { + it('should display the alert status correctly when active and not flapping', () => { + const { getByText } = render( + + ); + expect(getByText('Active')).toBeTruthy(); + }); + + it('should display the alert status correctly when active and flapping', () => { + const { getByText } = render( + + ); + expect(getByText('Flapping')).toBeTruthy(); + }); + + it('should display the alert status correctly when recovered and not flapping', () => { + const { getByText } = render( + + ); + expect(getByText('Recovered')).toBeTruthy(); + }); + + it('should prioritize recovered over flapping when recovered and flapping', () => { + const { getByText } = render( + + ); + expect(getByText('Recovered')).toBeTruthy(); + }); + + it('should display active alert status correctly is flapping is not defined', () => { + const { getByText } = render(); + expect(getByText('Active')).toBeTruthy(); + }); + + it('should display recovered alert status correctly is flapping is not defined', () => { + const { getByText } = render(); + expect(getByText('Recovered')).toBeTruthy(); + }); +}); diff --git a/packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.tsx b/packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.tsx new file mode 100644 index 00000000000000..35519fba7dd1e2 --- /dev/null +++ b/packages/kbn-alerts-ui-shared/src/alert_lifecycle_status_badge/index.tsx @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { memo } from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiBadge, EuiBadgeProps } from '@elastic/eui'; +import { AlertStatus, ALERT_STATUS_RECOVERED } from '@kbn/rule-data-utils'; + +export interface AlertLifecycleStatusBadgeProps { + alertStatus: AlertStatus; + flapping?: boolean | string; +} + +const ACTIVE_LABEL = i18n.translate( + 'alertsUIShared.components.alertLifecycleStatusBadge.activeLabel', + { + defaultMessage: 'Active', + } +); + +const RECOVERED_LABEL = i18n.translate( + 'alertsUIShared.components.alertLifecycleStatusBadge.recoveredLabel', + { + defaultMessage: 'Recovered', + } +); + +const FLAPPING_LABEL = i18n.translate( + 'alertsUIShared.components.alertLifecycleStatusBadge.flappingLabel', + { + defaultMessage: 'Flapping', + } +); + +interface BadgeProps { + label: string; + color: string; + iconProps?: { + iconType: EuiBadgeProps['iconType']; + }; +} + +const getBadgeProps = (alertStatus: AlertStatus, flapping: boolean | undefined): BadgeProps => { + // Prefer recovered over flapping + if (alertStatus === ALERT_STATUS_RECOVERED) { + return { + label: RECOVERED_LABEL, + color: 'success', + }; + } + + if (flapping) { + return { + label: FLAPPING_LABEL, + color: 'danger', + iconProps: { + iconType: 'visGauge', + }, + }; + } + + return { + label: ACTIVE_LABEL, + color: 'danger', + }; +}; + +const castFlapping = (flapping: boolean | string | undefined) => { + if (typeof flapping === 'string') { + return flapping === 'true'; + } + return flapping; +}; + +export const AlertLifecycleStatusBadge = memo((props: AlertLifecycleStatusBadgeProps) => { + const { alertStatus, flapping } = props; + + const castedFlapping = castFlapping(flapping); + + const { label, color, iconProps } = getBadgeProps(alertStatus, castedFlapping); + + return ( + + {label} + + ); +}); diff --git a/packages/kbn-alerts-ui-shared/tsconfig.json b/packages/kbn-alerts-ui-shared/tsconfig.json new file mode 100644 index 00000000000000..045e79467b3b75 --- /dev/null +++ b/packages/kbn-alerts-ui-shared/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/i18n", + "@kbn/rule-data-utils" + ] +} diff --git a/packages/kbn-apm-synthtrace-client/package.json b/packages/kbn-apm-synthtrace-client/package.json index 24d780a8ba4aad..060ed0631da494 100644 --- a/packages/kbn-apm-synthtrace-client/package.json +++ b/packages/kbn-apm-synthtrace-client/package.json @@ -1,6 +1,6 @@ { "name": "@kbn/apm-synthtrace-client", - "version": "0.1.0", + "version": "1.0.0", "description": "Elastic APM trace data generator", "license": "SSPL-1.0 OR Elastic License 2.0", "private": true diff --git a/packages/kbn-apm-synthtrace-client/src/lib/apm/apm_fields.ts b/packages/kbn-apm-synthtrace-client/src/lib/apm/apm_fields.ts index 8978604fb2f1c3..abc916668299cd 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/apm/apm_fields.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/apm/apm_fields.ts @@ -115,6 +115,7 @@ export type ApmFields = Fields<{ 'http.response.status_code': number; 'kubernetes.pod.name': string; 'kubernetes.pod.uid': string; + 'labels.name': string; 'metricset.name': string; 'network.carrier.icc': string; 'network.carrier.mcc': string; diff --git a/packages/kbn-apm-synthtrace-client/src/lib/timerange.ts b/packages/kbn-apm-synthtrace-client/src/lib/timerange.ts index 18dd8178c32dc4..2dd0659f9cc19f 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/timerange.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/timerange.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import type { Moment } from 'moment'; import { Interval } from './interval'; export class Timerange { @@ -20,9 +21,14 @@ export class Timerange { } } -export function timerange(from: Date | number, to: Date | number) { - return new Timerange( - from instanceof Date ? from : new Date(from), - to instanceof Date ? to : new Date(to) - ); +type DateLike = Date | number | Moment | string; + +function getDateFrom(date: DateLike): Date { + if (date instanceof Date) return date; + if (typeof date === 'number' || typeof date === 'string') return new Date(date); + return date.toDate(); +} + +export function timerange(from: Date | number | Moment, to: Date | number | Moment) { + return new Timerange(getDateFrom(from), getDateFrom(to)); } diff --git a/packages/kbn-apm-synthtrace/package.json b/packages/kbn-apm-synthtrace/package.json index 827e251d8a1372..426dd4fcddbe10 100644 --- a/packages/kbn-apm-synthtrace/package.json +++ b/packages/kbn-apm-synthtrace/package.json @@ -1,6 +1,6 @@ { "name": "@kbn/apm-synthtrace", - "version": "0.1.0", + "version": "1.0.0", "description": "Elastic APM trace data generator", "license": "SSPL-1.0 OR Elastic License 2.0", "bin": { diff --git a/packages/kbn-apm-synthtrace/src/lib/apm/aggregators/create_service_summary_metrics_aggregator.ts b/packages/kbn-apm-synthtrace/src/lib/apm/aggregators/create_service_summary_metrics_aggregator.ts new file mode 100644 index 00000000000000..a83e7306e39412 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/lib/apm/aggregators/create_service_summary_metrics_aggregator.ts @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { ApmFields, hashKeysOf } from '@kbn/apm-synthtrace-client'; +import { identity, noop, pick } from 'lodash'; +import { createApmMetricAggregator } from './create_apm_metric_aggregator'; + +const KEY_FIELDS: Array = [ + 'agent.name', + 'service.environment', + 'service.name', + 'service.language.name', +]; + +export function createServiceSummaryMetricsAggregator(flushInterval: string) { + return createApmMetricAggregator( + { + filter: () => true, + getAggregateKey: (event) => { + // see https://github.com/elastic/apm-server/blob/main/x-pack/apm-server/aggregation/txmetrics/aggregator.go + return hashKeysOf(event, KEY_FIELDS); + }, + flushInterval, + init: (event) => { + const set = pick(event, KEY_FIELDS); + + return { + ...set, + 'metricset.name': 'service_summary', + 'metricset.interval': flushInterval, + 'processor.event': 'metric', + 'processor.name': 'metric', + }; + }, + }, + noop, + identity + ); +} diff --git a/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client/get_routing_transform.ts b/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client/get_routing_transform.ts index 8c3f5ea3b25b47..aa1e421697707b 100644 --- a/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client/get_routing_transform.ts +++ b/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client/get_routing_transform.ts @@ -34,7 +34,8 @@ export function getRoutingTransform() { } else if ( metricsetName === 'transaction' || metricsetName === 'service_transaction' || - metricsetName === 'service_destination' + metricsetName === 'service_destination' || + metricsetName === 'service_summary' ) { index = `metrics-apm.${metricsetName}.${document['metricset.interval']!}-default`; } else { diff --git a/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client/index.ts b/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client/index.ts index 58fab239eab40a..21fd3a0ac7dcf0 100644 --- a/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client/index.ts +++ b/packages/kbn-apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client/index.ts @@ -21,6 +21,7 @@ import { Logger } from '../../../utils/create_logger'; import { fork, sequential } from '../../../utils/stream_utils'; import { createBreakdownMetricsAggregator } from '../../aggregators/create_breakdown_metrics_aggregator'; import { createServiceMetricsAggregator } from '../../aggregators/create_service_metrics_aggregator'; +import { createServiceSummaryMetricsAggregator } from '../../aggregators/create_service_summary_metrics_aggregator'; import { createSpanMetricsAggregator } from '../../aggregators/create_span_metrics_aggregator'; import { createTransactionMetricsAggregator } from '../../aggregators/create_transaction_metrics_aggregator'; import { getApmServerMetadataTransform } from './get_apm_server_metadata_transform'; @@ -111,6 +112,7 @@ export class ApmSynthtraceEsClient { index: dataStreams, allow_no_indices: true, ignore_unavailable: true, + expand_wildcards: ['open', 'hidden'], }); } @@ -123,6 +125,9 @@ export class ApmSynthtraceEsClient { createServiceMetricsAggregator('1m'), createServiceMetricsAggregator('10m'), createServiceMetricsAggregator('60m'), + createServiceSummaryMetricsAggregator('1m'), + createServiceSummaryMetricsAggregator('10m'), + createServiceSummaryMetricsAggregator('60m'), createSpanMetricsAggregator('1m'), createSpanMetricsAggregator('10m'), createSpanMetricsAggregator('60m'), diff --git a/packages/kbn-apm-synthtrace/src/scenarios/service_map.ts b/packages/kbn-apm-synthtrace/src/scenarios/service_map.ts new file mode 100644 index 00000000000000..41e499320fd50d --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/service_map.ts @@ -0,0 +1,123 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { apm, ApmFields, Instance } from '@kbn/apm-synthtrace-client'; +import { Transaction } from '@kbn/apm-synthtrace-client/src/lib/apm/transaction'; +import { AgentName } from '@kbn/apm-plugin/typings/es_schemas/ui/fields/agent'; +import { Scenario } from '../cli/scenario'; +import { RunOptions } from '../cli/utils/parse_run_cli_flags'; +import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; + +const ENVIRONMENT = getSynthtraceEnvironment(__filename); + +function generateTrace( + timestamp: number, + transactionName: string, + order: Instance[], + db?: 'elasticsearch' | 'redis' +) { + return order + .concat() + .reverse() + .reduce((prev, instance, index) => { + const invertedIndex = order.length - index - 1; + + const duration = 50; + const time = timestamp + invertedIndex * 10; + + const transaction: Transaction = instance + .transaction({ transactionName }) + .timestamp(time) + .duration(duration); + + if (prev) { + const next = order[invertedIndex + 1].fields['service.name']!; + transaction.children( + instance + .span({ spanName: `GET ${next}/api`, spanType: 'external', spanSubtype: 'http' }) + .destination(next) + .duration(duration) + .timestamp(time + 1) + .children(prev) + ); + } else if (db) { + transaction.children( + instance + .span({ spanName: db, spanType: 'db', spanSubtype: db }) + .destination(db) + .duration(duration) + .timestamp(time + 1) + ); + } + + return transaction; + }, undefined)!; +} + +function service(serviceName: string, agentName: AgentName) { + return apm + .service({ name: serviceName, environment: ENVIRONMENT, agentName }) + .instance(serviceName); +} + +const scenario: Scenario = async (runOptions: RunOptions) => { + return { + generate: ({ range }) => { + const frontendRum = service('frontend-rum', 'rum-js'); + const frontendNode = service('frontend-node', 'nodejs'); + const advertService = service('advertService', 'java'); + const checkoutService = service('checkoutService', 'go'); + const cartService = service('cartService', 'dotnet'); + const paymentService = service('paymentService', 'nodejs'); + const productCatalogService = service('productCatalogService', 'go'); + return range + .interval('1s') + .rate(3) + .generator((timestamp) => { + return [ + generateTrace( + timestamp, + 'GET /api/adTag', + [frontendRum, frontendNode, advertService], + 'elasticsearch' + ), + generateTrace( + timestamp, + 'POST /api/addToCart', + [frontendRum, frontendNode, cartService], + 'redis' + ), + generateTrace(timestamp, 'POST /api/checkout', [ + frontendRum, + frontendNode, + checkoutService, + paymentService, + ]), + generateTrace( + timestamp, + 'DELETE /api/clearCart', + [checkoutService, cartService], + 'redis' + ), + generateTrace( + timestamp, + 'GET /api/products', + [frontendRum, frontendNode, productCatalogService], + 'elasticsearch' + ), + generateTrace(timestamp, 'PUT /api/updateInventory', [ + checkoutService, + productCatalogService, + ]), + ]; + }); + }, + }; +}; + +export default scenario; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/services_without_transactions.ts b/packages/kbn-apm-synthtrace/src/scenarios/services_without_transactions.ts new file mode 100644 index 00000000000000..94e3ea20ba7875 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/services_without_transactions.ts @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { apm, ApmFields } from '@kbn/apm-synthtrace-client'; +import { Scenario } from '../cli/scenario'; + +const scenario: Scenario = async ({ logger, scenarioOpts }) => { + return { + generate: ({ range }) => { + const withTx = apm + .service('service-with-transactions', 'production', 'java') + .instance('instance'); + + const withErrorsOnly = apm + .service('service-with-errors-only', 'production', 'java') + .instance('instance'); + + const withAppMetricsOnly = apm + .service('service-with-app-metrics-only', 'production', 'java') + .instance('instance'); + + return range + .interval('1m') + .rate(1) + .generator((timestamp) => { + return [ + withTx.transaction('GET /api').duration(100).timestamp(timestamp), + withErrorsOnly + .error({ + message: 'An unknown error occurred', + }) + .timestamp(timestamp), + withAppMetricsOnly + .appMetrics({ + 'system.memory.actual.free': 1, + 'system.memory.total': 2, + }) + .timestamp(timestamp), + ]; + }); + }, + }; +}; + +export default scenario; diff --git a/packages/kbn-apm-synthtrace/src/test/__snapshots__/es_client_indexer.test.ts.snap b/packages/kbn-apm-synthtrace/src/test/__snapshots__/es_client_indexer.test.ts.snap index 7178720ea0a02d..74160ee85287ad 100644 --- a/packages/kbn-apm-synthtrace/src/test/__snapshots__/es_client_indexer.test.ts.snap +++ b/packages/kbn-apm-synthtrace/src/test/__snapshots__/es_client_indexer.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Synthtrace ES Client indexer indexes documents 1`] = ` +exports[`Synthtrace ES Client indexer indexes documents 2`] = ` Array [ Object { "@timestamp": "2022-01-01T00:00:00.000Z", @@ -68,6 +68,33 @@ Array [ "event": "metric", }, }, + Object { + "@timestamp": "2022-01-01T00:00:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, + Object { + "@timestamp": "2022-01-01T00:00:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, + Object { + "@timestamp": "2022-01-01T00:00:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, Object { "@timestamp": "2022-01-01T00:00:00.000Z", "metricset": Object { @@ -119,6 +146,24 @@ Array [ "event": "metric", }, }, + Object { + "@timestamp": "2022-01-01T00:30:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, + Object { + "@timestamp": "2022-01-01T00:30:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, Object { "@timestamp": "2022-01-01T00:30:00.000Z", "metricset": Object { @@ -200,6 +245,42 @@ Array [ "event": "metric", }, }, + Object { + "@timestamp": "2022-01-01T01:00:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, + Object { + "@timestamp": "2022-01-01T01:00:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, + Object { + "@timestamp": "2022-01-01T00:00:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, + Object { + "@timestamp": "2022-01-01T01:00:00.000Z", + "metricset": Object { + "name": "service_summary", + }, + "processor": Object { + "event": "metric", + }, + }, Object { "@timestamp": "2022-01-01T01:00:00.000Z", "metricset": Object { diff --git a/packages/kbn-apm-synthtrace/src/test/es_client_indexer.test.ts b/packages/kbn-apm-synthtrace/src/test/es_client_indexer.test.ts index 05ea68af973508..9b35b2d0bd29fd 100644 --- a/packages/kbn-apm-synthtrace/src/test/es_client_indexer.test.ts +++ b/packages/kbn-apm-synthtrace/src/test/es_client_indexer.test.ts @@ -72,7 +72,7 @@ describe('Synthtrace ES Client indexer', () => { const events = await toArray(datasource); - expect(events.length).toBe(24); + expect(events.length).toMatchInlineSnapshot(`33`); const mapped = events.map((event) => pick(event, '@timestamp', 'processor.event', 'metricset.name') diff --git a/packages/kbn-apm-synthtrace/tsconfig.json b/packages/kbn-apm-synthtrace/tsconfig.json index 1921231fe842c5..3db0ec03f6f4d1 100644 --- a/packages/kbn-apm-synthtrace/tsconfig.json +++ b/packages/kbn-apm-synthtrace/tsconfig.json @@ -7,7 +7,8 @@ "include": ["**/*.ts"], "kbn_references": [ "@kbn/datemath", - "@kbn/apm-synthtrace-client" + "@kbn/apm-synthtrace-client", + "@kbn/apm-plugin" ], "exclude": [ "target/**/*", diff --git a/packages/kbn-babel-plugin-package-imports/BUILD.bazel b/packages/kbn-babel-plugin-package-imports/BUILD.bazel deleted file mode 100644 index 74e10c2a943ff4..00000000000000 --- a/packages/kbn-babel-plugin-package-imports/BUILD.bazel +++ /dev/null @@ -1,31 +0,0 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "js_library") - -SRCS = [ - "babel_plugin_package_imports.js", - "index.js", -] - -# In this array place runtime dependencies, including other packages and NPM packages -# which must be available for this code to run. -# -# To reference other packages use: -# "//repo/relative/path/to/package" -# eg. "//packages/kbn-utils" -# -# To reference a NPM package use: -# "@npm//name-of-package" -# eg. "@npm//lodash" -BUNDLER_DEPS = [ - "@npm//@babel/helper-plugin-utils", - "@npm//normalize-path", - "//packages/kbn-repo-info", - "//packages/kbn-repo-packages", -] - -js_library( - name = "kbn-babel-plugin-package-imports", - package_name = "@kbn/babel-plugin-package-imports", - srcs = ["package.json"] + SRCS, - deps = BUNDLER_DEPS, - visibility = ["//visibility:public"], -) diff --git a/packages/kbn-babel-plugin-package-imports/README.mdx b/packages/kbn-babel-plugin-package-imports/README.mdx deleted file mode 100644 index 1f36b2266b4a95..00000000000000 --- a/packages/kbn-babel-plugin-package-imports/README.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -id: kibDevDocsOpsBabelPluginPackageImports -slug: /kibana-dev-docs/ops/babel-plugin-package-imports -title: "@kbn/babel-plugin-package-imports" -description: A babel plugin that transforms our @kbn/{NAME} imports into paths -date: 2022-05-19 -tags: ['kibana', 'dev', 'contributor', 'operations', 'babel', 'plugin', 'packages', 'imports'] ---- - -When developing inside the Kibana repository importing a package from any other package is just easy as -importing `@kbn/{package-name}`. However not every package is a node_module yet and while that is something we are working on to accomplish we need a way to dealing with it for now. Using this babel plugin is our transitory solution. It allows us to import from module ids and then transform it automatically back into paths on the transpiled code without friction for our engineering teams. \ No newline at end of file diff --git a/packages/kbn-babel-plugin-package-imports/babel_plugin_package_imports.js b/packages/kbn-babel-plugin-package-imports/babel_plugin_package_imports.js deleted file mode 100644 index 04cd5874079ac3..00000000000000 --- a/packages/kbn-babel-plugin-package-imports/babel_plugin_package_imports.js +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -const Path = require('path'); - -const T = require('@babel/types'); -const normalizePath = require('normalize-path'); -const { declare } = require('@babel/helper-plugin-utils'); -const { readPackageMap } = require('@kbn/repo-packages'); -const { REPO_ROOT } = require('@kbn/repo-info'); - -const PKG_MAP = readPackageMap(); - -/** - * @param {unknown} v - * @returns {v is Record} - */ -const isObj = (v) => typeof v === 'object' && !!v; - -/** - * @param {unknown} state - * @returns {string} - */ -function getFilename(state) { - if (!isObj(state) || typeof state.filename !== 'string' || !Path.isAbsolute(state.filename)) { - throw new Error( - `@kbn/babel-plugin-package-imports is only compatible when building files with absolute filename state` - ); - } - - return state.filename; -} - -/** - * @param {string} req - * @returns {import('./types').ParsedReq | undefined} - */ -function parseReq(req) { - if (!req.startsWith('@kbn/')) { - return; - } - - const parts = req.split('/'); - const moduleId = `@kbn/${parts[1]}`; - const dir = PKG_MAP.get(moduleId); - if (!dir) { - return; - } - - return { - req, - moduleId, - dir, - subParts: parts.slice(2), - }; -} - -/** - * @param {import('./types').ParsedReq} req - * @param {string} filename - */ -function fixImportRequest(req, filename) { - if (process.env.BAZEL_WORKSPACE === 'kibana') { - return; - } - - const rel = normalizePath( - Path.relative(Path.dirname(filename), Path.resolve(REPO_ROOT, req.dir, ...req.subParts)) - ); - - return rel.startsWith('.') ? rel : `./${rel}`; -} - -/** - * @param {T.CallExpression} node - * @returns {node is T.Import & { arguments: [T.StringLiteral] }} - */ -function isDynamicImport(node) { - return !!( - T.isImport(node.callee) && - node.arguments.length === 1 && - T.isStringLiteral(node.arguments[0]) - ); -} - -/** - * @param {T.CallExpression} node - * @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }} - */ -function isRequire(node) { - return !!( - T.isIdentifier(node.callee) && - node.callee.name === 'require' && - node.arguments.length >= 1 && - T.isStringLiteral(node.arguments[0]) - ); -} - -/** - * @param {T.CallExpression} node - * @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }} - */ -function isRequireResolve(node) { - return !!( - T.isMemberExpression(node.callee) && - T.isIdentifier(node.callee.object) && - node.callee.object.name === 'require' && - T.isIdentifier(node.callee.property) && - node.callee.property.name === 'resolve' && - node.arguments.length >= 1 && - T.isStringLiteral(node.arguments[0]) - ); -} - -/** - * @param {T.CallExpression} node - * @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }} - */ -function isJestMockCall(node) { - return !!( - T.isMemberExpression(node.callee) && - T.isIdentifier(node.callee.object) && - node.callee.object.name === 'jest' && - node.arguments.length >= 1 && - T.isStringLiteral(node.arguments[0]) - ); -} - -module.exports = declare((api, options) => { - /** @type {Set | undefined} */ - const ignoredPkgIds = options.ignoredPkgIds; - - api.assertVersion(7); - - return { - name: 'kbn-package-imports', - visitor: { - /** - * @param {import('@babel/core').NodePath} path - */ - 'ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration'(path) { - const filename = getFilename(this); - - const source = path.node.source; - if (!T.isStringLiteral(source)) { - return; - } - - const req = source.value; - const parsed = parseReq(req); - if (!parsed || ignoredPkgIds?.has(parsed.moduleId)) { - return; - } - - const newReq = fixImportRequest(parsed, filename); - if (newReq) { - path.get('source').replaceWith(T.stringLiteral(newReq)); - } - }, - - /** - * @param {import('@babel/core').NodePath} path - */ - CallExpression(path) { - const filename = getFilename(this); - - const { node } = path; - if ( - !isDynamicImport(node) && - !isRequire(node) && - !isRequireResolve(node) && - !isJestMockCall(node) - ) { - return; - } - - const req = node.arguments[0].value; - const parsed = parseReq(req); - if (!parsed || ignoredPkgIds?.has(parsed.moduleId)) { - return; - } - - const newReq = fixImportRequest(parsed, filename); - if (newReq) { - path.get('arguments')[0].replaceWith(T.stringLiteral(newReq)); - } - }, - }, - }; -}); diff --git a/packages/kbn-babel-plugin-package-imports/index.js b/packages/kbn-babel-plugin-package-imports/index.js deleted file mode 100644 index ce314829e93c39..00000000000000 --- a/packages/kbn-babel-plugin-package-imports/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -module.exports = require('./babel_plugin_package_imports'); diff --git a/packages/kbn-babel-plugin-package-imports/kibana.jsonc b/packages/kbn-babel-plugin-package-imports/kibana.jsonc deleted file mode 100644 index c555d9f0087761..00000000000000 --- a/packages/kbn-babel-plugin-package-imports/kibana.jsonc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "shared-common", - "id": "@kbn/babel-plugin-package-imports", - "devOnly": true, - "owner": "@elastic/kibana-operations" -} diff --git a/packages/kbn-babel-plugin-package-imports/package.json b/packages/kbn-babel-plugin-package-imports/package.json deleted file mode 100644 index 1d7206c6b10014..00000000000000 --- a/packages/kbn-babel-plugin-package-imports/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "@kbn/babel-plugin-package-imports", - "private": true, - "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" -} diff --git a/packages/kbn-babel-plugin-package-imports/tsconfig.json b/packages/kbn-babel-plugin-package-imports/tsconfig.json deleted file mode 100644 index bb30370698e29c..00000000000000 --- a/packages/kbn-babel-plugin-package-imports/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "outDir": "target/types", - "checkJs": true, - "types": [ - "jest", - "node" - ] - }, - "include": [ - "**/*.js", - "**/*.ts", - ], - "exclude": [ - "target/**/*", - ], - "kbn_references": [ - "@kbn/repo-info", - "@kbn/repo-packages" - ] -} diff --git a/packages/kbn-babel-plugin-package-imports/types.ts b/packages/kbn-babel-plugin-package-imports/types.ts deleted file mode 100644 index c556aa9b073392..00000000000000 --- a/packages/kbn-babel-plugin-package-imports/types.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export interface ParsedReq { - req: string; - moduleId: string; - dir: string; - subParts: string[]; -} diff --git a/packages/kbn-babel-preset/BUILD.bazel b/packages/kbn-babel-preset/BUILD.bazel index 73313161f6ac4e..a8ae67bfea870d 100644 --- a/packages/kbn-babel-preset/BUILD.bazel +++ b/packages/kbn-babel-preset/BUILD.bazel @@ -39,7 +39,6 @@ RUNTIME_DEPS = [ "@npm//babel-plugin-add-module-exports", "@npm//babel-plugin-styled-components", "@npm//babel-plugin-transform-react-remove-prop-types", - "//packages/kbn-babel-plugin-package-imports", ] js_library( diff --git a/packages/kbn-babel-preset/common_preset.js b/packages/kbn-babel-preset/common_preset.js index cfb8bf495c6a23..f8ce4c63537972 100644 --- a/packages/kbn-babel-preset/common_preset.js +++ b/packages/kbn-babel-preset/common_preset.js @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -module.exports = (_, options = {}) => ({ +module.exports = () => ({ presets: [ // plugins always run before presets, but in this case we need the // @babel/preset-typescript preset to run first so we have to move @@ -46,19 +46,6 @@ module.exports = (_, options = {}) => ({ version: '^7.12.5', }, ], - - ...(options['kibana/ignoreAllPkgImports'] - ? [] - : [ - [ - require.resolve('@kbn/babel-plugin-package-imports'), - { - ignoredPkgIds: options['kibana/ignoredPkgIds'] - ? new Set(options['kibana/ignoredPkgIds']) - : undefined, - }, - ], - ]), ], }, diff --git a/packages/kbn-babel-preset/styled_components_files.js b/packages/kbn-babel-preset/styled_components_files.js index 1c5cf2af81f0fc..3df97185c8dce1 100644 --- a/packages/kbn-babel-preset/styled_components_files.js +++ b/packages/kbn-babel-preset/styled_components_files.js @@ -12,7 +12,7 @@ module.exports = { * Used by `kbn-babel-preset` and `kbn-eslint-config`. */ USES_STYLED_COMPONENTS: [ - /packages[\/\\]kbn-ui-shared-deps-(npm|src)[\/\\]/, + /packages[\/\\](kbn-ui-shared-deps-(npm|src)|kbn-ecs-data-quality-dashboard)[\/\\]/, /src[\/\\]plugins[\/\\](kibana_react)[\/\\]/, /x-pack[\/\\]plugins[\/\\](apm|beats_management|cases|fleet|infra|lists|observability|osquery|security_solution|timelines|synthetics|ux)[\/\\]/, /x-pack[\/\\]test[\/\\]plugin_functional[\/\\]plugins[\/\\]resolver_test[\/\\]/, diff --git a/packages/kbn-babel-register/BUILD.bazel b/packages/kbn-babel-register/BUILD.bazel index a151c4e54c613e..f97499a481baad 100644 --- a/packages/kbn-babel-register/BUILD.bazel +++ b/packages/kbn-babel-register/BUILD.bazel @@ -35,6 +35,7 @@ BUNDLER_DEPS = [ "@npm//chalk", "@npm//pirates", "@npm//lmdb", + "@npm//date-fns", "@npm//source-map-support", "//packages/kbn-repo-packages", "//packages/kbn-repo-info", diff --git a/packages/kbn-babel-register/cache/index.js b/packages/kbn-babel-register/cache/index.js index 7838a6c89028bf..ea03e1396361e9 100644 --- a/packages/kbn-babel-register/cache/index.js +++ b/packages/kbn-babel-register/cache/index.js @@ -10,7 +10,6 @@ const Fs = require('fs'); const Path = require('path'); const Crypto = require('crypto'); -const { readHashOfPackageMap } = require('@kbn/repo-packages'); const babel = require('@babel/core'); const peggy = require('@kbn/peggy'); const { REPO_ROOT, UPSTREAM_BRANCH } = require('@kbn/repo-info'); @@ -25,7 +24,6 @@ const { getBabelOptions } = require('@kbn/babel-transform'); */ function determineCachePrefix() { const json = JSON.stringify({ - synthPkgMapHash: readHashOfPackageMap(), babelVersion: babel.version, peggyVersion: peggy.version, // get a config for a fake js, ts, and tsx file to make sure we @@ -63,8 +61,7 @@ function getCache() { if (lmdbAvailable()) { log?.write('lmdb is available, using lmdb cache\n'); return new (require('./lmdb_cache').LmdbCache)({ - pathRoot: REPO_ROOT, - dir: Path.resolve(REPO_ROOT, 'data/babel_register_cache_v1', UPSTREAM_BRANCH), + dir: Path.resolve(REPO_ROOT, 'data/babel_register_cache', UPSTREAM_BRANCH), prefix: determineCachePrefix(), log, }); diff --git a/packages/kbn-babel-register/cache/lmdb_cache.js b/packages/kbn-babel-register/cache/lmdb_cache.js index 1c69ba1ed12a9c..fe2179a591378f 100644 --- a/packages/kbn-babel-register/cache/lmdb_cache.js +++ b/packages/kbn-babel-register/cache/lmdb_cache.js @@ -7,17 +7,21 @@ */ const Path = require('path'); +const Crypto = require('crypto'); +const startOfDay = /** @type {import('date-fns/startOfDay').default} */ ( + /** @type {unknown} */ (require('date-fns/startOfDay')) +); const chalk = require('chalk'); const LmdbStore = require('lmdb'); -const GLOBAL_ATIME = `${Date.now()}`; +const GLOBAL_ATIME = startOfDay(new Date()).valueOf(); const MINUTE = 1000 * 60; const HOUR = MINUTE * 60; const DAY = HOUR * 24; /** @typedef {import('./types').Cache} CacheInterface */ -/** @typedef {import('lmdb').Database} Db */ +/** @typedef {import('lmdb').Database} Db */ /** * @param {Db} db @@ -31,63 +35,29 @@ const dbName = (db) => * @implements {CacheInterface} */ class LmdbCache { - /** @type {import('lmdb').RootDatabase} */ - #codes; - /** @type {Db} */ - #atimes; - /** @type {Db} */ - #mtimes; - /** @type {Db} */ - #sourceMaps; - /** @type {string} */ - #pathRoot; - /** @type {string} */ - #prefix; + /** @type {import('lmdb').RootDatabase} */ + #db; /** @type {import('stream').Writable | undefined} */ #log; - /** @type {ReturnType} */ - #timer; + /** @type {string} */ + #prefix; /** * @param {import('./types').CacheConfig} config */ constructor(config) { - if (!Path.isAbsolute(config.pathRoot)) { - throw new Error('cache requires an absolute path to resolve paths relative to'); - } - - this.#pathRoot = config.pathRoot; - this.#prefix = config.prefix; this.#log = config.log; - - this.#codes = LmdbStore.open(config.dir, { - name: 'codes', - encoding: 'string', - maxReaders: 500, - }); - - // TODO: redundant 'name' syntax is necessary because of a bug that I have yet to fix - this.#atimes = this.#codes.openDB('atimes', { - name: 'atimes', - encoding: 'string', - }); - - this.#mtimes = this.#codes.openDB('mtimes', { - name: 'mtimes', - encoding: 'string', - }); - - this.#sourceMaps = this.#codes.openDB('sourceMaps', { - name: 'sourceMaps', - encoding: 'string', + this.#prefix = config.prefix; + this.#db = LmdbStore.open(Path.resolve(config.dir, 'v5'), { + name: 'db', + encoding: 'json', }); - // after the process has been running for 30 minutes prune the - // keys which haven't been used in 30 days. We use `unref()` to - // make sure this timer doesn't hold other processes open - // unexpectedly - this.#timer = setTimeout(() => { - this.#pruneOldKeys().catch((error) => { + const lastClean = this.#db.get('@last clean'); + if (!lastClean || lastClean[0] < GLOBAL_ATIME - 7 * DAY) { + try { + this.#pruneOldKeys(); + } catch (error) { process.stderr.write(` Failed to cleanup @kbn/babel-register cache: @@ -95,83 +65,60 @@ Failed to cleanup @kbn/babel-register cache: To eliminate this problem you may want to delete the "${Path.relative(process.cwd(), config.dir)}" directory and report this error to the Operations team.\n`); - }); - }, 30 * MINUTE); - - // timer.unref is not defined in jest which emulates the dom by default - if (typeof this.#timer.unref === 'function') { - this.#timer.unref(); + } finally { + this.#db.putSync('@last clean', [GLOBAL_ATIME, '', {}]); + } } } /** + * Get the cache key of the path and source from disk of a file * @param {string} path + * @param {string} source + * @returns {string} */ - getMtime(path) { - return this.#safeGet(this.#mtimes, this.#getKey(path)); + getKey(path, source) { + return `${this.#prefix}:${Crypto.createHash('sha1').update(path).update(source).digest('hex')}`; } /** - * @param {string} path + * @param {string} key + * @returns {string|undefined} */ - getCode(path) { - const key = this.#getKey(path); - const code = this.#safeGet(this.#codes, key); + getCode(key) { + const entry = this.#safeGet(this.#db, key); - if (code !== undefined) { + if (entry !== undefined && entry[0] !== GLOBAL_ATIME) { // when we use a file from the cache set the "atime" of that cache entry // so that we know which cache items we use and which haven't been - // touched in a long time (currently 30 days) - this.#safePut(this.#atimes, key, GLOBAL_ATIME); + // used in a long time (currently 30 days) + this.#safePut(this.#db, key, [GLOBAL_ATIME, entry[1], entry[2]]); } - return code; + return entry?.[1]; } /** - * @param {string} path - */ - getSourceMap(path) { - const map = this.#safeGet(this.#sourceMaps, this.#getKey(path)); - if (typeof map === 'string') { - return JSON.parse(map); - } - } - - close() { - clearTimeout(this.#timer); - } - - /** - * @param {string} path - * @param {{ mtime: string; code: string; map?: any }} file + * @param {string} key + * @returns {object|undefined} */ - async update(path, file) { - const key = this.#getKey(path); - - this.#safePut(this.#atimes, key, GLOBAL_ATIME); - this.#safePut(this.#mtimes, key, file.mtime); - this.#safePut(this.#codes, key, file.code); - - if (file.map) { - this.#safePut(this.#sourceMaps, key, JSON.stringify(file.map)); + getSourceMap(key) { + const entry = this.#safeGet(this.#db, key); + if (entry) { + return entry[2]; } } /** - * @param {string} path + * @param {string} key + * @param {{ code: string, map: object }} entry */ - #getKey(path) { - const normalizedPath = - Path.sep !== '/' - ? Path.relative(this.#pathRoot, path).split(Path.sep).join('/') - : Path.relative(this.#pathRoot, path); - - return `${this.#prefix}:${normalizedPath}`; + async update(key, entry) { + this.#safePut(this.#db, key, [GLOBAL_ATIME, entry.code, entry.map]); } /** - * @param {LmdbStore.Database} db + * @param {Db} db * @param {string} key */ #safeGet(db, key) { @@ -190,9 +137,9 @@ directory and report this error to the Operations team.\n`); } /** - * @param {LmdbStore.Database} db + * @param {Db} db * @param {string} key - * @param {string} value + * @param {import('./types').CacheEntry} value */ #safePut(db, key, value) { try { @@ -205,7 +152,7 @@ directory and report this error to the Operations team.\n`); /** * @param {string} type - * @param {LmdbStore.Database} db + * @param {Db} db * @param {string} key */ #debug(type, db, key) { @@ -214,7 +161,7 @@ directory and report this error to the Operations team.\n`); /** * @param {'GET' | 'PUT'} type - * @param {LmdbStore.Database} db + * @param {Db} db * @param {string} key * @param {Error} error */ @@ -227,51 +174,36 @@ directory and report this error to the Operations team.\n`); ); } - async #pruneOldKeys() { - try { - const ATIME_LIMIT = Date.now() - 30 * DAY; - const BATCH_SIZE = 1000; + #pruneOldKeys() { + const ATIME_LIMIT = Date.now() - 30 * DAY; - /** @type {string[]} */ - const validKeys = []; - /** @type {string[]} */ - const invalidKeys = []; + /** @type {string[]} */ + const toDelete = []; + const flushDeletes = () => { + if (!toDelete.length) { + return; + } - for (const { key, value } of this.#atimes.getRange()) { - const atime = parseInt(`${value}`, 10); - if (Number.isNaN(atime) || atime < ATIME_LIMIT) { - invalidKeys.push(key); - } else { - validKeys.push(key); + this.#db.transactionSync(() => { + for (const key of toDelete) { + this.#db.removeSync(key); } + }); + }; - if (validKeys.length + invalidKeys.length >= BATCH_SIZE) { - const promises = new Set(); - - if (invalidKeys.length) { - for (const k of invalidKeys) { - // all these promises are the same currently, so Set() will - // optimise this to a single promise, but I wouldn't be shocked - // if a future version starts returning independent promises so - // this is just for some future-proofing - promises.add(this.#atimes.remove(k)); - promises.add(this.#mtimes.remove(k)); - promises.add(this.#codes.remove(k)); - promises.add(this.#sourceMaps.remove(k)); - } - } else { - // delay a smidge to allow other things to happen before the next batch of checks - promises.add(new Promise((resolve) => setTimeout(resolve, 1))); - } + for (const { key, value } of this.#db.getRange()) { + if (Number.isNaN(value[0]) || value[0] < ATIME_LIMIT) { + toDelete.push(key); - invalidKeys.length = 0; - validKeys.length = 0; - await Promise.all(Array.from(promises)); + // flush deletes early if there are many deleted + if (toDelete.length > 10_000) { + flushDeletes(); } } - } catch { - // ignore errors, the cache is totally disposable and will rebuild if there is some sort of corruption } + + // delete all the old keys + flushDeletes(); } } diff --git a/packages/kbn-babel-register/cache/lmdb_cache.test.ts b/packages/kbn-babel-register/cache/lmdb_cache.test.ts index d752e45879aec5..e1a8401ea9460b 100644 --- a/packages/kbn-babel-register/cache/lmdb_cache.test.ts +++ b/packages/kbn-babel-register/cache/lmdb_cache.test.ts @@ -18,7 +18,7 @@ const DIR = Path.resolve(__dirname, '../__tmp__/cache'); const makeTestLog = () => { const log = Object.assign( new Writable({ - write(chunk, enc, cb) { + write(chunk, _, cb) { log.output += chunk; cb(); }, @@ -39,50 +39,35 @@ const makeCache = (...options: ConstructorParameters) => { }; beforeEach(async () => await del(DIR)); -afterEach(async () => { - await del(DIR); - for (const instance of instances) { - instance.close(); - } - instances.length = 0; -}); +afterEach(async () => await del(DIR)); it('returns undefined until values are set', async () => { const path = '/foo/bar.js'; - const mtime = new Date().toJSON(); + const source = `console.log("hi, hello")`; const log = makeTestLog(); const cache = makeCache({ dir: DIR, prefix: 'prefix', log, - pathRoot: '/foo/', }); - expect(cache.getMtime(path)).toBe(undefined); - expect(cache.getCode(path)).toBe(undefined); - expect(cache.getSourceMap(path)).toBe(undefined); + const key = cache.getKey(path, source); + expect(cache.getCode(key)).toBe(undefined); + expect(cache.getSourceMap(key)).toBe(undefined); - await cache.update(path, { - mtime, + await cache.update(key, { code: 'var x = 1', map: { foo: 'bar' }, }); - expect(cache.getMtime(path)).toBe(mtime); - expect(cache.getCode(path)).toBe('var x = 1'); - expect(cache.getSourceMap(path)).toEqual({ foo: 'bar' }); + expect(cache.getCode(key)).toBe('var x = 1'); + expect(cache.getSourceMap(key)).toEqual({ foo: 'bar' }); expect(log.output).toMatchInlineSnapshot(` - "MISS [mtimes] prefix:bar.js - MISS [codes] prefix:bar.js - MISS [sourceMaps] prefix:bar.js - PUT [atimes] prefix:bar.js - PUT [mtimes] prefix:bar.js - PUT [codes] prefix:bar.js - PUT [sourceMaps] prefix:bar.js - HIT [mtimes] prefix:bar.js - HIT [codes] prefix:bar.js - PUT [atimes] prefix:bar.js - HIT [sourceMaps] prefix:bar.js + "MISS [db] prefix:05a4b8198c4ec215d54d94681ef00ca9ecb45931 + MISS [db] prefix:05a4b8198c4ec215d54d94681ef00ca9ecb45931 + PUT [db] prefix:05a4b8198c4ec215d54d94681ef00ca9ecb45931 + HIT [db] prefix:05a4b8198c4ec215d54d94681ef00ca9ecb45931 + HIT [db] prefix:05a4b8198c4ec215d54d94681ef00ca9ecb45931 " `); }); diff --git a/packages/kbn-babel-register/cache/no_cache_cache.js b/packages/kbn-babel-register/cache/no_cache_cache.js index b4608e866d3b60..5d5aac93af0f21 100644 --- a/packages/kbn-babel-register/cache/no_cache_cache.js +++ b/packages/kbn-babel-register/cache/no_cache_cache.js @@ -12,6 +12,10 @@ * @implements {CacheInterface} */ class NoCacheCache { + getKey() { + return ''; + } + getCode() { return undefined; } diff --git a/packages/kbn-babel-register/cache/types.ts b/packages/kbn-babel-register/cache/types.ts index 6438662ae2d65d..5189d3e7f39184 100644 --- a/packages/kbn-babel-register/cache/types.ts +++ b/packages/kbn-babel-register/cache/types.ts @@ -9,16 +9,16 @@ import { Writable } from 'stream'; export interface CacheConfig { - pathRoot: string; dir: string; prefix: string; log?: Writable; } export interface Cache { - getMtime(path: string): string | undefined; - getCode(path: string): string | undefined; - getSourceMap(path: string): object | undefined; - update(path: string, opts: { mtime: string; code: string; map?: any }): Promise; - close(): void; + getKey(path: string, source: string): string; + getCode(key: string): string | undefined; + getSourceMap(key: string): object | undefined; + update(key: string, entry: { code: string; map?: object | null }): Promise; } + +export type CacheEntry = [atime: number, code: string, sourceMap: object]; diff --git a/packages/kbn-babel-register/index.js b/packages/kbn-babel-register/index.js index ba20e1f1b18f09..457b0895919a48 100644 --- a/packages/kbn-babel-register/index.js +++ b/packages/kbn-babel-register/index.js @@ -41,6 +41,7 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +const Fs = require('fs'); const Path = require('path'); const { addHook } = require('pirates'); @@ -105,7 +106,18 @@ function install(options = undefined) { environment: 'node', // @ts-expect-error bad source-map-support types retrieveSourceMap(path) { - const map = cache.getSourceMap(path); + if (!Path.isAbsolute(path)) { + return null; + } + + let source; + try { + source = Fs.readFileSync(path, 'utf8'); + } catch { + return null; + } + + const map = cache.getSourceMap(cache.getKey(path, source)); return map ? { map, url: null } : null; }, }); diff --git a/packages/kbn-babel-register/transforms/babel.js b/packages/kbn-babel-register/transforms/babel.js index a1557bd528896d..8328a60d477bb3 100644 --- a/packages/kbn-babel-register/transforms/babel.js +++ b/packages/kbn-babel-register/transforms/babel.js @@ -6,25 +6,18 @@ * Side Public License, v 1. */ -const Fs = require('fs'); - const { transformCode } = require('@kbn/babel-transform'); /** @type {import('./types').Transform} */ const babelTransform = (path, source, cache) => { - const mtime = `${Fs.statSync(path).mtimeMs}`; - - if (cache.getMtime(path) === mtime) { - const code = cache.getCode(path); - if (code) { - return code; - } + const key = cache.getKey(path, source); + const cached = cache.getCode(key); + if (cached) { + return cached; } const result = transformCode(path, source); - - cache.update(path, { - mtime, + cache.update(key, { code: result.code, map: result.map, }); diff --git a/packages/kbn-babel-register/transforms/peggy.js b/packages/kbn-babel-register/transforms/peggy.js index b87676ca03bc37..6df30526d36fb7 100644 --- a/packages/kbn-babel-register/transforms/peggy.js +++ b/packages/kbn-babel-register/transforms/peggy.js @@ -6,27 +6,16 @@ * Side Public License, v 1. */ -const Fs = require('fs'); -const Crypto = require('crypto'); - const Peggy = require('@kbn/peggy'); /** @type {import('./types').Transform} */ const peggyTransform = (path, source, cache) => { const config = Peggy.findConfigFile(path); - const mtime = `${Fs.statSync(path).mtimeMs}`; - const key = !config - ? path - : `${path}.config.${Crypto.createHash('sha256') - .update(config.source) - .digest('hex') - .slice(0, 8)}`; + const key = cache.getKey(path, source); - if (cache.getMtime(key) === mtime) { - const code = cache.getCode(key); - if (code) { - return code; - } + const cached = cache.getCode(key); + if (cached) { + return cached; } const code = Peggy.getJsSourceSync({ @@ -40,7 +29,6 @@ const peggyTransform = (path, source, cache) => { cache.update(key, { code, - mtime, }); return code; diff --git a/packages/kbn-babel-register/tsconfig.json b/packages/kbn-babel-register/tsconfig.json index 09576d2904a819..96e50650eee66c 100644 --- a/packages/kbn-babel-register/tsconfig.json +++ b/packages/kbn-babel-register/tsconfig.json @@ -16,7 +16,6 @@ "@kbn/repo-info", "@kbn/babel-transform", "@kbn/peggy", - "@kbn/repo-packages", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-babel-transform/options.js b/packages/kbn-babel-transform/options.js index 4b98a790414e71..ed0decb9f0da29 100644 --- a/packages/kbn-babel-transform/options.js +++ b/packages/kbn-babel-transform/options.js @@ -21,14 +21,7 @@ const cwd = process.cwd(); function getBabelOptions(path, config = {}) { return { filename: path, - presets: [ - [ - NODE_PRESET, - { - 'kibana/ignoredPkgIds': config.ignoredPkgIds, - }, - ], - ], + presets: [NODE_PRESET], cwd, babelrc: false, sourceMaps: config.disableSourceMaps ? false : 'both', diff --git a/packages/kbn-babel-transform/types.ts b/packages/kbn-babel-transform/types.ts index 1ccb31d9ebb7f2..5267d76935da08 100644 --- a/packages/kbn-babel-transform/types.ts +++ b/packages/kbn-babel-transform/types.ts @@ -8,7 +8,6 @@ export interface TransformConfig { disableSourceMaps?: boolean; - ignoredPkgIds?: string[]; } export interface WorkerData { diff --git a/packages/kbn-cli-dev-mode/src/cli_dev_mode.test.ts b/packages/kbn-cli-dev-mode/src/cli_dev_mode.test.ts index 89a849150bcf40..769242436a270d 100644 --- a/packages/kbn-cli-dev-mode/src/cli_dev_mode.test.ts +++ b/packages/kbn-cli-dev-mode/src/cli_dev_mode.test.ts @@ -116,7 +116,6 @@ it('passes correct args to sub-classes', () => { "cache": true, "dist": true, "enabled": true, - "oss": true, "pluginPaths": Array [], "pluginScanDirs": Array [ /src/plugins, diff --git a/packages/kbn-cli-dev-mode/src/cli_dev_mode.ts b/packages/kbn-cli-dev-mode/src/cli_dev_mode.ts index 2dc1470e71b49f..5dc2fb9985c319 100644 --- a/packages/kbn-cli-dev-mode/src/cli_dev_mode.ts +++ b/packages/kbn-cli-dev-mode/src/cli_dev_mode.ts @@ -149,9 +149,6 @@ export class CliDevMode { this.optimizer = new Optimizer({ enabled: !cliArgs.disableOptimizer, repoRoot: REPO_ROOT, - oss: cliArgs.oss, - pluginPaths: config.plugins.additionalPluginPaths, - pluginScanDirs: config.plugins.pluginSearchPaths, runExamples: cliArgs.runExamples, cache: cliArgs.cache, dist: cliArgs.dist, @@ -159,6 +156,8 @@ export class CliDevMode { silent: !!cliArgs.silent, verbose: !!cliArgs.verbose, watch: cliArgs.watch, + pluginPaths: config.plugins.additionalPluginPaths, + pluginScanDirs: config.plugins.pluginSearchPaths, }); } diff --git a/packages/kbn-cli-dev-mode/src/optimizer.test.ts b/packages/kbn-cli-dev-mode/src/optimizer.test.ts index 3cb847c9594e36..b4d7fe6c6dfdb7 100644 --- a/packages/kbn-cli-dev-mode/src/optimizer.test.ts +++ b/packages/kbn-cli-dev-mode/src/optimizer.test.ts @@ -43,7 +43,6 @@ const defaultOptions: Options = { enabled: true, cache: true, dist: true, - oss: true, pluginPaths: ['/some/dir'], pluginScanDirs: ['/some-scan-path'], quiet: true, @@ -85,7 +84,6 @@ it('uses options to create valid OptimizerConfig', () => { cache: false, dist: false, runExamples: false, - oss: false, pluginPaths: [], pluginScanDirs: [], repoRoot: '/foo/bar', @@ -100,7 +98,6 @@ it('uses options to create valid OptimizerConfig', () => { "dist": true, "examples": true, "includeCoreBundle": true, - "oss": true, "pluginPaths": Array [ "/some/dir", ], @@ -117,7 +114,6 @@ it('uses options to create valid OptimizerConfig', () => { "dist": false, "examples": false, "includeCoreBundle": true, - "oss": false, "pluginPaths": Array [], "pluginScanDirs": Array [], "repoRoot": "/foo/bar", diff --git a/packages/kbn-cli-dev-mode/src/optimizer.ts b/packages/kbn-cli-dev-mode/src/optimizer.ts index 60d84d2b42c85b..50f2425f842930 100644 --- a/packages/kbn-cli-dev-mode/src/optimizer.ts +++ b/packages/kbn-cli-dev-mode/src/optimizer.ts @@ -35,11 +35,10 @@ export interface Options { watch: boolean; cache: boolean; dist: boolean; - oss: boolean; runExamples: boolean; - pluginPaths: string[]; - pluginScanDirs: string[]; writeLogTo?: Writable; + pluginPaths?: string[]; + pluginScanDirs?: string[]; } export class Optimizer { @@ -61,7 +60,6 @@ export class Optimizer { includeCoreBundle: true, cache: options.cache, dist: options.dist, - oss: options.oss, examples: options.runExamples, pluginPaths: options.pluginPaths, pluginScanDirs: options.pluginScanDirs, diff --git a/packages/kbn-cli-dev-mode/src/watcher.ts b/packages/kbn-cli-dev-mode/src/watcher.ts index 660022b6fc5715..cdcc5db8f65bb5 100644 --- a/packages/kbn-cli-dev-mode/src/watcher.ts +++ b/packages/kbn-cli-dev-mode/src/watcher.ts @@ -15,19 +15,17 @@ import { makeMatcher } from '@kbn/picomatcher'; import { Log } from './log'; -const packageMatcher = makeMatcher(['**/*', '!**/.*']); +const packageMatcher = makeMatcher([ + '**/*', + '!**/.*', + '!x-pack/plugins/screenshotting/chromium/**', + '!x-pack/plugins/canvas/shareable_runtime/**', +]); /** * Any code that is outside of a package must match this in order to trigger a restart */ -const nonPackageMatcher = makeMatcher([ - 'config/**/*.yml', - 'src/**', - '!src/{dev,fixtures}/**', - 'x-pack/plugins/**', - '!x-pack/plugins/screenshotting/chromium/**', - '!x-pack/plugins/canvas/shareable_runtime/**', -]); +const nonPackageMatcher = makeMatcher(['config/**/*.yml']); export interface Options { enabled: boolean; @@ -77,13 +75,14 @@ export class Watcher { // ignore changes in any devOnly package, these can't power the server so we can ignore them if (pkg?.devOnly) { - return; + return pkg.id === '@kbn/babel-register'; } const result = this.classifier.classify(event.path); if (result.type === 'common package' || result.type === 'server package') { return packageMatcher(result.repoRel) && fire(result.repoRel); } + if (result.type === 'non-package') { return nonPackageMatcher(result.repoRel) && fire(result.repoRel); } diff --git a/packages/kbn-config-mocks/src/env.mock.ts b/packages/kbn-config-mocks/src/env.mock.ts index 8ed2123a3c81a4..dfc01c171a9eff 100644 --- a/packages/kbn-config-mocks/src/env.mock.ts +++ b/packages/kbn-config-mocks/src/env.mock.ts @@ -11,7 +11,11 @@ import { getPackages } from '@kbn/repo-packages'; import { Env, type RawPackageInfo, type EnvOptions } from '@kbn/config'; type DeepPartial = { - [P in keyof T]?: T[P] extends Array ? Array> : DeepPartial; + [P in keyof T]?: P extends 'repoPackages' + ? T[P] + : T[P] extends Array + ? Array> + : DeepPartial; }; export function getEnvOptions(options: DeepPartial = {}): EnvOptions { @@ -29,7 +33,7 @@ export function getEnvOptions(options: DeepPartial = {}): EnvOptions runExamples: false, ...(options.cliArgs || {}), }, - repoPackages: getPackages(REPO_ROOT), + repoPackages: options.repoPackages ?? getPackages(REPO_ROOT), }; } diff --git a/packages/kbn-config/src/__snapshots__/env.test.ts.snap b/packages/kbn-config/src/__snapshots__/env.test.ts.snap index e356e6b5af142d..3f2dde3c3f563e 100644 --- a/packages/kbn-config/src/__snapshots__/env.test.ts.snap +++ b/packages/kbn-config/src/__snapshots__/env.test.ts.snap @@ -34,10 +34,8 @@ Env { "version": "v1", }, "pluginSearchPaths": Array [ - "/test/kibanaRoot/src/plugins", - "/test/kibanaRoot/x-pack/plugins", + "/test/kibana-extra", "/test/kibanaRoot/plugins", - "/test/kibanaRoot/../kibana-extra", ], "repoPackages": undefined, } @@ -77,10 +75,8 @@ Env { "version": "v1", }, "pluginSearchPaths": Array [ - "/test/kibanaRoot/src/plugins", - "/test/kibanaRoot/x-pack/plugins", + "/test/kibana-extra", "/test/kibanaRoot/plugins", - "/test/kibanaRoot/../kibana-extra", ], "repoPackages": undefined, } @@ -119,10 +115,8 @@ Env { "version": "some-version", }, "pluginSearchPaths": Array [ - "/test/kibanaRoot/src/plugins", - "/test/kibanaRoot/x-pack/plugins", + "/test/kibana-extra", "/test/kibanaRoot/plugins", - "/test/kibanaRoot/../kibana-extra", ], "repoPackages": undefined, } @@ -161,10 +155,8 @@ Env { "version": "v1", }, "pluginSearchPaths": Array [ - "/test/kibanaRoot/src/plugins", - "/test/kibanaRoot/x-pack/plugins", + "/test/kibana-extra", "/test/kibanaRoot/plugins", - "/test/kibanaRoot/../kibana-extra", ], "repoPackages": undefined, } @@ -203,10 +195,8 @@ Env { "version": "v1", }, "pluginSearchPaths": Array [ - "/test/kibanaRoot/src/plugins", - "/test/kibanaRoot/x-pack/plugins", + "/test/kibana-extra", "/test/kibanaRoot/plugins", - "/test/kibanaRoot/../kibana-extra", ], "repoPackages": undefined, } @@ -245,10 +235,8 @@ Env { "version": "v1", }, "pluginSearchPaths": Array [ - "/some/home/dir/src/plugins", - "/some/home/dir/x-pack/plugins", + "/some/home/kibana-extra", "/some/home/dir/plugins", - "/some/home/dir/../kibana-extra", ], "repoPackages": Array [ "FakePackage1", diff --git a/packages/kbn-config/src/env.test.mocks.ts b/packages/kbn-config/src/env.test.mocks.ts index 19abcf74e9bbab..4e581a43ebc679 100644 --- a/packages/kbn-config/src/env.test.mocks.ts +++ b/packages/kbn-config/src/env.test.mocks.ts @@ -5,14 +5,10 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ - const realPath = jest.requireActual('path'); jest.doMock('path', () => ({ ...realPath, - resolve(...pathSegments: string[]) { - return pathSegments.join('/'); - }, dirname(filePath: string) { return '/test/kibanaRoot'; }, diff --git a/packages/kbn-config/src/env.test.ts b/packages/kbn-config/src/env.test.ts index 8633654c14ca94..782b0cc5081c69 100644 --- a/packages/kbn-config/src/env.test.ts +++ b/packages/kbn-config/src/env.test.ts @@ -140,86 +140,56 @@ test('correctly creates environment with constructor.', () => { expect(env).toMatchSnapshot('env properties'); }); -test('pluginSearchPaths contains x-pack plugins path if --oss flag is false', () => { +test('pluginSearchPaths only includes kibana-extra, regardless of plugin filters', () => { const env = new Env( '/some/home/dir', packageInfos, getEnvOptions({ - cliArgs: { oss: false }, - }) - ); - - expect(env.pluginSearchPaths).toContain('/some/home/dir/x-pack/plugins'); -}); - -test('pluginSearchPaths does not contains x-pack plugins path if --oss flag is true', () => { - const env = new Env( - '/some/home/dir', - packageInfos, - getEnvOptions({ - cliArgs: { oss: true }, - }) - ); - - expect(env.pluginSearchPaths).not.toContain('/some/home/dir/x-pack/plugins'); -}); - -test('pluginSearchPaths contains examples plugins path if --run-examples flag is true', () => { - const env = new Env( - '/some/home/dir', - packageInfos, - getEnvOptions({ - cliArgs: { runExamples: true }, - }) - ); - - expect(env.pluginSearchPaths).toContain('/some/home/dir/examples'); -}); - -test('pluginSearchPaths contains x-pack/examples plugins path if --run-examples flag is true', () => { - const env = new Env( - '/some/home/dir', - packageInfos, - getEnvOptions({ - cliArgs: { runExamples: true }, + cliArgs: { + oss: false, + runExamples: false, + }, }) ); - expect(env.pluginSearchPaths).toContain('/some/home/dir/x-pack/examples'); -}); + expect(env.pluginSearchPaths).toEqual(['/some/home/kibana-extra', '/some/home/dir/plugins']); -test('pluginSearchPaths does not contain x-pack/examples plugins path if --oss flag is true', () => { - const env = new Env( + const env2 = new Env( '/some/home/dir', packageInfos, getEnvOptions({ - cliArgs: { runExamples: true, oss: true }, + cliArgs: { + oss: true, + runExamples: true, + }, }) ); - expect(env.pluginSearchPaths).not.toContain('/some/home/dir/x-pack/examples'); -}); + expect(env2.pluginSearchPaths).toEqual(['/some/home/kibana-extra', '/some/home/dir/plugins']); -test('pluginSearchPaths does not contains examples plugins path if --run-examples flag is false', () => { - const env = new Env( + const env3 = new Env( '/some/home/dir', packageInfos, getEnvOptions({ - cliArgs: { runExamples: false }, + cliArgs: { + oss: true, + runExamples: false, + }, }) ); - expect(env.pluginSearchPaths).not.toContain('/some/home/dir/examples'); -}); + expect(env3.pluginSearchPaths).toEqual(['/some/home/kibana-extra', '/some/home/dir/plugins']); -test('pluginSearchPaths does not contains x-pack/examples plugins path if --run-examples flag is false', () => { - const env = new Env( + const env4 = new Env( '/some/home/dir', packageInfos, getEnvOptions({ - cliArgs: { runExamples: false }, + cliArgs: { + oss: false, + runExamples: true, + }, }) ); - expect(env.pluginSearchPaths).not.toContain('/some/home/dir/x-pack/examples'); + expect(env4.pluginSearchPaths).toEqual(['/some/home/kibana-extra', '/some/home/dir/plugins']); }); diff --git a/packages/kbn-config/src/env.ts b/packages/kbn-config/src/env.ts index 416f409bfcc253..dde77b26fa86f4 100644 --- a/packages/kbn-config/src/env.ts +++ b/packages/kbn-config/src/env.ts @@ -8,7 +8,7 @@ import { resolve, join } from 'path'; import loadJsonFile from 'load-json-file'; -import { getPluginSearchPaths } from '@kbn/plugin-discovery'; +import { getPluginSearchPaths } from '@kbn/repo-packages'; import type { Package } from '@kbn/repo-packages'; import { PackageInfo, EnvironmentMode } from './types'; @@ -101,8 +101,6 @@ export class Env { this.pluginSearchPaths = getPluginSearchPaths({ rootDir: this.homeDir, - oss: options.cliArgs.oss, - examples: options.cliArgs.runExamples, }); this.repoPackages = options.repoPackages; diff --git a/packages/kbn-config/tsconfig.json b/packages/kbn-config/tsconfig.json index 887f6aa96e2278..e9978b43fa8c8d 100644 --- a/packages/kbn-config/tsconfig.json +++ b/packages/kbn-config/tsconfig.json @@ -18,7 +18,6 @@ "@kbn/std", "@kbn/utility-types", "@kbn/i18n", - "@kbn/plugin-discovery", "@kbn/doc-links", "@kbn/repo-packages" ], diff --git a/packages/kbn-datemath/package.json b/packages/kbn-datemath/package.json index e6c119d7a1f885..38422694d88fe8 100644 --- a/packages/kbn-datemath/package.json +++ b/packages/kbn-datemath/package.json @@ -1,8 +1,8 @@ { "name": "@kbn/datemath", - "version": "5.0.4", + "version": "1.0.0", "description": "elasticsearch datemath parser, used in kibana", - "license": "Apache-2.0", + "license": "SSPL-1.0 OR Elastic License 2.0", "peerDependencies": { "moment": "^2.24.0" } diff --git a/packages/kbn-dev-utils/src/plugin_list/discover_plugins.ts b/packages/kbn-dev-utils/src/plugin_list/discover_plugins.ts index f86d535e92914f..d6d6b75729fca5 100644 --- a/packages/kbn-dev-utils/src/plugin_list/discover_plugins.ts +++ b/packages/kbn-dev-utils/src/plugin_list/discover_plugins.ts @@ -12,7 +12,7 @@ import Fs from 'fs'; import MarkdownIt from 'markdown-it'; import cheerio from 'cheerio'; import { REPO_ROOT } from '@kbn/repo-info'; -import { simpleKibanaPlatformPluginDiscovery } from '@kbn/plugin-discovery'; +import { getPackages, getPluginPackagesFilter } from '@kbn/repo-packages'; import { extractAsciidocInfo } from './extract_asciidoc_info'; @@ -34,9 +34,12 @@ const getReadmeName = (directory: string) => const getReadmeAsciidocName = (directory: string) => Fs.readdirSync(directory).find((name) => name.toLowerCase() === 'readme.asciidoc'); -export const discoverPlugins = (pluginsRootDir: string): Plugins => - simpleKibanaPlatformPluginDiscovery([pluginsRootDir], []).map( - ({ directory, manifest: { id } }): Plugin => { +export const discoverPlugins = (pluginDir: string): Plugins => + getPackages(REPO_ROOT) + .filter(getPluginPackagesFilter()) + .filter((pkg) => pkg.normalizedRepoRelativeDir.startsWith(pluginDir + '/')) + .map((pkg): Plugin => { + const directory = Path.resolve(REPO_ROOT, pkg.normalizedRepoRelativeDir); const readmeName = getReadmeName(directory); const readmeAsciidocName = getReadmeAsciidocName(directory); @@ -68,11 +71,10 @@ export const discoverPlugins = (pluginsRootDir: string): Plugins => } return { - id, + id: pkg.manifest.plugin.id, relativeReadmePath, relativeDir: relativeReadmePath || Path.relative(REPO_ROOT, directory), readmeSnippet, readmeAsciidocAnchor, }; - } - ); + }); diff --git a/packages/kbn-dev-utils/src/plugin_list/run_plugin_list_cli.ts b/packages/kbn-dev-utils/src/plugin_list/run_plugin_list_cli.ts index 69bcd3389bf1c2..b981f62e988327 100644 --- a/packages/kbn-dev-utils/src/plugin_list/run_plugin_list_cli.ts +++ b/packages/kbn-dev-utils/src/plugin_list/run_plugin_list_cli.ts @@ -14,18 +14,16 @@ import { run } from '@kbn/dev-cli-runner'; import { discoverPlugins } from './discover_plugins'; import { generatePluginList } from './generate_plugin_list'; -const OSS_PLUGIN_DIR = Path.resolve(REPO_ROOT, 'src/plugins'); -const XPACK_PLUGIN_DIR = Path.resolve(REPO_ROOT, 'x-pack/plugins'); const OUTPUT_PATH = Path.resolve(REPO_ROOT, 'docs/developer/plugin-list.asciidoc'); export function runPluginListCli() { run(async ({ log }) => { log.info('looking for oss plugins'); - const ossPlugins = discoverPlugins(OSS_PLUGIN_DIR); + const ossPlugins = discoverPlugins('src/plugins'); log.success(`found ${ossPlugins.length} plugins`); log.info('looking for x-pack plugins'); - const xpackPlugins = discoverPlugins(XPACK_PLUGIN_DIR); + const xpackPlugins = discoverPlugins('x-pack/plugins'); log.success(`found ${xpackPlugins.length} plugins`); log.info('writing plugin list to', OUTPUT_PATH); diff --git a/packages/kbn-dev-utils/tsconfig.json b/packages/kbn-dev-utils/tsconfig.json index d66b40e46e31a7..5fd26e3590aba0 100644 --- a/packages/kbn-dev-utils/tsconfig.json +++ b/packages/kbn-dev-utils/tsconfig.json @@ -13,8 +13,8 @@ "kbn_references": [ "@kbn/dev-cli-runner", "@kbn/dev-cli-errors", - "@kbn/plugin-discovery", "@kbn/repo-info", + "@kbn/repo-packages", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 0b253cedbc6722..845e5be7d8b7bd 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -124,6 +124,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { }, enterpriseSearch: { apiKeys: `${KIBANA_DOCS}api-keys.html`, + behavioralAnalytics: `${ENTERPRISE_SEARCH_DOCS}analytics-overview.html`, behavioralAnalyticsEvents: `${ENTERPRISE_SEARCH_DOCS}analytics-events.html`, bulkApi: `${ELASTICSEARCH_DOCS}docs-bulk.html`, configuration: `${ENTERPRISE_SEARCH_DOCS}configuration.html`, @@ -135,6 +136,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { crawlerOverview: `${ENTERPRISE_SEARCH_DOCS}crawler.html`, deployTrainedModels: `${MACHINE_LEARNING_DOCS}ml-nlp-deploy-models.html`, documentLevelSecurity: `${ELASTICSEARCH_DOCS}document-level-security.html`, + engines: `${ENTERPRISE_SEARCH_DOCS}engines.html`, ingestPipelines: `${ENTERPRISE_SEARCH_DOCS}ingest-pipelines.html`, languageAnalyzers: `${ELASTICSEARCH_DOCS}analysis-lang-analyzer.html`, languageClients: `${ENTERPRISE_SEARCH_DOCS}programming-language-clients.html`, @@ -240,6 +242,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { sum: `${ELASTICSEARCH_DOCS}search-aggregations-metrics-sum-aggregation.html`, top_hits: `${ELASTICSEARCH_DOCS}search-aggregations-metrics-top-hits-aggregation.html`, top_metrics: `${ELASTICSEARCH_DOCS}search-aggregations-metrics-top-metrics.html`, + change_point: `${ELASTICSEARCH_DOCS}search-aggregations-change-point-aggregation.html`, }, runtimeFields: { overview: `${ELASTICSEARCH_DOCS}runtime.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index dbfb37905172f6..6d2cc1e119594d 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -109,6 +109,7 @@ export interface DocLinks { }; readonly enterpriseSearch: { readonly apiKeys: string; + readonly behavioralAnalytics: string; readonly behavioralAnalyticsEvents: string; readonly bulkApi: string; readonly configuration: string; @@ -120,6 +121,7 @@ export interface DocLinks { readonly crawlerOverview: string; readonly deployTrainedModels: string; readonly documentLevelSecurity: string; + readonly engines: string; readonly ingestPipelines: string; readonly languageAnalyzers: string; readonly languageClients: string; @@ -217,6 +219,7 @@ export interface DocLinks { readonly std_dev: string; readonly sum: string; readonly top_hits: string; + readonly change_point: string; }; readonly runtimeFields: { readonly overview: string; diff --git a/packages/kbn-docs-utils/src/build_api_declarations/buid_api_declaration.test.ts b/packages/kbn-docs-utils/src/build_api_declarations/buid_api_declaration.test.ts index 8cea39236ee861..f4f2cd013c65ae 100644 --- a/packages/kbn-docs-utils/src/build_api_declarations/buid_api_declaration.test.ts +++ b/packages/kbn-docs-utils/src/build_api_declarations/buid_api_declaration.test.ts @@ -48,7 +48,7 @@ it('Test number primitive doc def', () => { const def = buildApiDeclarationTopNode(node!, { plugins, log, - currentPluginId: plugins[0].manifest.id, + currentPluginId: plugins[0].id, scope: ApiScope.CLIENT, captureReferences: false, }); @@ -62,7 +62,7 @@ it('Test a constructor type declaration inside an interface', () => { const def = buildApiDeclarationTopNode(node!, { plugins, log, - currentPluginId: plugins[0].manifest.id, + currentPluginId: plugins[0].id, scope: ApiScope.CLIENT, captureReferences: false, }); @@ -80,7 +80,7 @@ it('Function type is exported as type with signature', () => { const def = buildApiDeclarationTopNode(node!, { plugins, log, - currentPluginId: plugins[0].manifest.id, + currentPluginId: plugins[0].id, scope: ApiScope.CLIENT, captureReferences: false, }); @@ -95,7 +95,7 @@ it('Test Interface Kind doc def', () => { const def = buildApiDeclarationTopNode(node!, { plugins, log, - currentPluginId: plugins[0].manifest.id, + currentPluginId: plugins[0].id, scope: ApiScope.CLIENT, captureReferences: false, }); @@ -111,7 +111,7 @@ it('Test union export', () => { const def = buildApiDeclarationTopNode(node!, { plugins, log, - currentPluginId: plugins[0].manifest.id, + currentPluginId: plugins[0].id, scope: ApiScope.CLIENT, captureReferences: false, }); @@ -124,7 +124,7 @@ it('Function inside interface has a label', () => { const def = buildApiDeclarationTopNode(node!, { plugins, log, - currentPluginId: plugins[0].manifest.id, + currentPluginId: plugins[0].id, scope: ApiScope.CLIENT, captureReferences: false, }); @@ -142,7 +142,7 @@ it.skip('Test ReactElement signature', () => { const def = buildApiDeclarationTopNode(node!, { plugins, log, - currentPluginId: plugins[0].manifest.id, + currentPluginId: plugins[0].id, scope: ApiScope.CLIENT, captureReferences: false, }); diff --git a/packages/kbn-docs-utils/src/build_api_declarations/extract_import_refs.test.ts b/packages/kbn-docs-utils/src/build_api_declarations/extract_import_refs.test.ts index 592d0591846b1f..df71dc09d66599 100644 --- a/packages/kbn-docs-utils/src/build_api_declarations/extract_import_refs.test.ts +++ b/packages/kbn-docs-utils/src/build_api_declarations/extract_import_refs.test.ts @@ -50,7 +50,7 @@ it('test extractImportReference', () => { it('test extractImportReference with a package', () => { const results = extractImportReferences( - `(param: string) => import("Users/foo/node_modules/${packageA.manifest.id}/target_types").Bar`, + `(param: string) => import("Users/foo/node_modules/${packageA.id}/target_types").Bar`, plugins, log ); @@ -58,9 +58,9 @@ it('test extractImportReference with a package', () => { expect(results[0]).toBe('(param: string) => '); expect(results[1]).toEqual({ text: 'Bar', - docId: getPluginApiDocId(packageA.manifest.id), + docId: getPluginApiDocId(packageA.id), section: 'def-common.Bar', - pluginId: packageA.manifest.id, + pluginId: packageA.id, scope: ApiScope.COMMON, }); }); diff --git a/packages/kbn-docs-utils/src/build_api_declarations/extract_import_refs.ts b/packages/kbn-docs-utils/src/build_api_declarations/extract_import_refs.ts index e72367f5fd783d..46acb50bd17add 100644 --- a/packages/kbn-docs-utils/src/build_api_declarations/extract_import_refs.ts +++ b/packages/kbn-docs-utils/src/build_api_declarations/extract_import_refs.ts @@ -59,9 +59,9 @@ export function extractImportReferences( id: name, }); texts.push({ - pluginId: plugin.manifest.id, + pluginId: plugin.id, scope: getScopeFromPath(path, plugin, log), - docId: getPluginApiDocId(plugin.manifest.id, { + docId: getPluginApiDocId(plugin.id, { serviceFolders: plugin.manifest.serviceFolders, apiPath: path, directory: plugin.directory, diff --git a/packages/kbn-docs-utils/src/build_api_declarations/get_references.ts b/packages/kbn-docs-utils/src/build_api_declarations/get_references.ts index d92adbcac37d25..904bbb3a654548 100644 --- a/packages/kbn-docs-utils/src/build_api_declarations/get_references.ts +++ b/packages/kbn-docs-utils/src/build_api_declarations/get_references.ts @@ -35,9 +35,9 @@ export function getReferences({ node, plugins, currentPluginId, log }: Opts): Ap // Don't include references from inside the plugin itself, we only care about // external references (if it's only used internally, it shouldn't be exported). - if (refPlugin && refPlugin.manifest.id !== currentPluginId) { + if (refPlugin && refPlugin.id !== currentPluginId) { refs.push({ - plugin: refPlugin.manifest.id, + plugin: refPlugin.id, path: getSourceForNode(ref), }); } diff --git a/packages/kbn-docs-utils/src/build_api_docs_cli.ts b/packages/kbn-docs-utils/src/build_api_docs_cli.ts index 620097c12b3b3d..c5db0718927cac 100644 --- a/packages/kbn-docs-utils/src/build_api_docs_cli.ts +++ b/packages/kbn-docs-utils/src/build_api_docs_cli.ts @@ -94,7 +94,7 @@ export function runBuildApiDocsCli() { const allPluginStats: { [key: string]: PluginMetaInfo & ApiStats & EslintDisableCounts } = {}; for (const plugin of plugins) { - const id = plugin.manifest.id; + const id = plugin.id; const pluginApi = pluginApiMap[id]; const paths = pathsByPlugin.get(plugin) ?? []; @@ -118,11 +118,11 @@ export function runBuildApiDocsCli() { // Note that the filtering is done here, and not above because the entire public plugin API has to // be parsed in order to correctly determine reference links, and ensure that `removeBrokenLinks` // doesn't remove more links than necessary. - if (pluginFilter && !pluginFilter.includes(plugin.manifest.id)) { + if (pluginFilter && !pluginFilter.includes(plugin.id)) { continue; } - const id = plugin.manifest.id; + const id = plugin.id; const pluginApi = pluginApiMap[id]; const pluginStats = allPluginStats[id]; const pluginTeam = plugin.manifest.owner.name; @@ -212,13 +212,13 @@ export function runBuildApiDocsCli() { d.label )}`; - if (collectReferences && pluginFilter?.includes(plugin.manifest.id)) { + if (collectReferences && pluginFilter?.includes(plugin.id)) { if (referencedDeprecations[id] && pluginStats.deprecatedAPIsReferencedCount > 0) { log.info(`${referencedDeprecations[id].length} deprecated APIs used`); // eslint-disable-next-line no-console console.table(referencedDeprecations[id]); } else { - log.info(`No referenced deprecations for plugin ${plugin.manifest.id}`); + log.info(`No referenced deprecations for plugin ${plugin.id}`); } if (pluginStats.noReferences.length > 0) { // eslint-disable-next-line no-console @@ -229,7 +229,7 @@ export function runBuildApiDocsCli() { })) ); } else { - log.info(`No unused APIs for plugin ${plugin.manifest.id}`); + log.info(`No unused APIs for plugin ${plugin.id}`); } } diff --git a/packages/kbn-docs-utils/src/find_plugins.ts b/packages/kbn-docs-utils/src/find_plugins.ts index a6f0a75cfe7a5d..30a63b55172e12 100644 --- a/packages/kbn-docs-utils/src/find_plugins.ts +++ b/packages/kbn-docs-utils/src/find_plugins.ts @@ -7,78 +7,73 @@ */ import Path from 'path'; -import globby from 'globby'; -import loadJsonFile from 'load-json-file'; - -import { getPluginSearchPaths, simpleKibanaPlatformPluginDiscovery } from '@kbn/plugin-discovery'; +import { getPackages, getPluginPackagesFilter, type Package } from '@kbn/repo-packages'; import { REPO_ROOT } from '@kbn/repo-info'; import { ApiScope, PluginOrPackage } from './types'; +function toApiScope(pkg: Package): ApiScope { + switch (pkg.manifest.type) { + case 'shared-browser': + case 'shared-scss': + return ApiScope.CLIENT; + case 'shared-server': + return ApiScope.SERVER; + case 'test-helper': + case 'functional-tests': + case 'shared-common': + return ApiScope.COMMON; + case 'plugin': + return pkg.manifest.plugin.server && !pkg.manifest.plugin.browser + ? ApiScope.SERVER + : !pkg.manifest.plugin.server && pkg.manifest.plugin.browser + ? ApiScope.CLIENT + : ApiScope.COMMON; + } +} + +function toPluginOrPackage(pkg: Package): PluginOrPackage { + return { + id: pkg.isPlugin() ? pkg.manifest.plugin.id : pkg.manifest.id, + directory: Path.resolve(REPO_ROOT, pkg.normalizedRepoRelativeDir), + manifestPath: Path.resolve(REPO_ROOT, pkg.normalizedRepoRelativeDir, 'kibana.jsonc'), + isPlugin: pkg.isPlugin(), + manifest: { + id: pkg.isPlugin() ? pkg.manifest.plugin.id : pkg.manifest.id, + pluginId: pkg.isPlugin() ? pkg.manifest.plugin.id : undefined, + owner: { + name: pkg.manifest.owner?.[0] ?? '[Owner missing]', + githubTeam: pkg.manifest.owner?.[0]?.split('@elastic/')[1], + }, + serviceFolders: pkg.manifest.serviceFolders || [], + description: pkg.manifest.description || undefined, + }, + scope: toApiScope(pkg), + }; +} + export function findPlugins(): PluginOrPackage[] { - const pluginSearchPaths = getPluginSearchPaths({ - rootDir: REPO_ROOT, - oss: false, - examples: false, - }); + const packages = getPackages(REPO_ROOT); + const plugins = packages.filter( + getPluginPackagesFilter({ + examples: false, + testPlugins: false, + }) + ); + const core = packages.find((p) => p.manifest.id === '@kbn/core'); + + if (!core) { + throw new Error('unable to find @kbn/core'); + } - return ( - simpleKibanaPlatformPluginDiscovery(pluginSearchPaths, [ - // discover "core" as a plugin - Path.resolve(REPO_ROOT, 'src/core'), - ]).map((p) => ({ ...p, isPlugin: true, importPath: p.directory })) as PluginOrPackage[] - ).concat(...findPackages()); + return [...[core, ...plugins].map(toPluginOrPackage), ...findPackages()]; } /** * Helper to find packages. */ export function findPackages(): PluginOrPackage[] { - const packagePaths = globby - .sync(Path.resolve(REPO_ROOT, '{x-pack/,}packages/**/package.json'), { absolute: true }) - .map((path) => - // absolute paths returned from globby are using normalize or - // something so the path separators are `/` even on windows, - // Path.resolve solves this - Path.resolve(path) - ); - - if (packagePaths.length === 0) { - throw new Error('No packages found!'); - } - - return packagePaths.reduce((acc, path) => { - const manifest: { name: string; author?: string; main?: string; browser?: string } = - loadJsonFile.sync(path); - if (manifest.name === undefined) return acc; - - let scope = ApiScope.COMMON; - if (manifest.main && !manifest.browser) { - scope = ApiScope.SERVER; - } else if (manifest.browser && !manifest.main) { - scope = ApiScope.CLIENT; - } - - let ownerName = '[Owner missing]'; - // Some of these author fields have "" in the name which mdx chokes on. Removing the < and > seems to work. - if (Array.isArray(manifest.author)) { - ownerName = manifest.author.map((d) => d.replace(/[<>]/gi, '')).join(', '); - } else if (typeof manifest.author === 'string') { - ownerName = manifest.author.replace(/[<>]/gi, ''); - } - - acc.push({ - directory: Path.dirname(path), - manifestPath: path, - manifest: { - ...manifest, - id: manifest.name, - serviceFolders: [], - owner: { name: ownerName }, - }, - isPlugin: false, - scope, - }); - return acc; - }, [] as PluginOrPackage[]); + return getPackages(REPO_ROOT) + .filter((p) => !p.isPlugin()) + .map(toPluginOrPackage); } diff --git a/packages/kbn-docs-utils/src/get_plugin_api.ts b/packages/kbn-docs-utils/src/get_plugin_api.ts index b8850059aa366a..b4a660e8db617e 100644 --- a/packages/kbn-docs-utils/src/get_plugin_api.ts +++ b/packages/kbn-docs-utils/src/get_plugin_api.ts @@ -29,7 +29,7 @@ export function getPluginApi( const server = getDeclarations(project, plugin, ApiScope.SERVER, plugins, log, captureReferences); const common = getDeclarations(project, plugin, ApiScope.COMMON, plugins, log, captureReferences); return { - id: plugin.manifest.id, + id: plugin.id, client, server, common, @@ -58,7 +58,7 @@ function getDeclarations( const apiDec = buildApiDeclarationTopNode(node, { plugins, log, - currentPluginId: plugin.manifest.id, + currentPluginId: plugin.id, scope, captureReferences, }); diff --git a/packages/kbn-docs-utils/src/get_plugin_api_map.ts b/packages/kbn-docs-utils/src/get_plugin_api_map.ts index 974941f09c0624..ee8d6301495511 100644 --- a/packages/kbn-docs-utils/src/get_plugin_api_map.ts +++ b/packages/kbn-docs-utils/src/get_plugin_api_map.ts @@ -37,14 +37,8 @@ export function getPluginApiMap( const pluginApiMap: { [key: string]: PluginApi } = {}; plugins.forEach((plugin) => { const captureReferences = - collectReferences && (!pluginFilter || pluginFilter.indexOf(plugin.manifest.id) >= 0); - pluginApiMap[plugin.manifest.id] = getPluginApi( - project, - plugin, - plugins, - log, - captureReferences - ); + collectReferences && (!pluginFilter || pluginFilter.indexOf(plugin.id) >= 0); + pluginApiMap[plugin.id] = getPluginApi(project, plugin, plugins, log, captureReferences); }); // Mapping of plugin id to the missing source API id to all the plugin API items that referenced this item. @@ -54,7 +48,7 @@ export function getPluginApiMap( const adoptionTrackedAPIs: AdoptionTrackedAPIsByPlugin = {}; plugins.forEach((plugin) => { - const id = plugin.manifest.id; + const id = plugin.id; const pluginApi = pluginApiMap[id]; removeBrokenLinks(pluginApi, missingApiItems, pluginApiMap, log); collectDeprecations(pluginApi, referencedDeprecations, unreferencedDeprecations); diff --git a/packages/kbn-docs-utils/src/integration_tests/kibana_platform_plugin_mock.ts b/packages/kbn-docs-utils/src/integration_tests/kibana_platform_plugin_mock.ts index c373b9be0c6ffd..1df23fd806f8bb 100644 --- a/packages/kbn-docs-utils/src/integration_tests/kibana_platform_plugin_mock.ts +++ b/packages/kbn-docs-utils/src/integration_tests/kibana_platform_plugin_mock.ts @@ -12,6 +12,7 @@ import { PluginOrPackage } from '../types'; export function getKibanaPlatformPlugin(id: string, dir?: string): PluginOrPackage { const directory = dir ?? Path.resolve(__dirname, '__fixtures__/src/plugin_a'); return { + id, manifest: { id, owner: { @@ -28,6 +29,7 @@ export function getKibanaPlatformPlugin(id: string, dir?: string): PluginOrPacka export function getKibanaPlatformPackage(id: string, importPath?: string): PluginOrPackage { const directory = Path.resolve(__dirname, '__fixtures__/src/plugin_a'); return { + id, manifest: { id, owner: { diff --git a/packages/kbn-docs-utils/src/mdx/write_deprecations_due_by_team.ts b/packages/kbn-docs-utils/src/mdx/write_deprecations_due_by_team.ts index d225f5d54693d1..ca84ec88dc7907 100644 --- a/packages/kbn-docs-utils/src/mdx/write_deprecations_due_by_team.ts +++ b/packages/kbn-docs-utils/src/mdx/write_deprecations_due_by_team.ts @@ -32,7 +32,7 @@ export async function writeDeprecationDueByTeam( ); if (!dueDeprecations || dueDeprecations.length === 0) return teamMap; - const pluginMetaInfo = plugins.find((p) => p.manifest.id === pluginId); + const pluginMetaInfo = plugins.find((p) => p.id === pluginId); if (!pluginMetaInfo || !pluginMetaInfo.manifest.owner.name) return teamMap; if (!teamMap[pluginMetaInfo.manifest.owner.name]) { diff --git a/packages/kbn-docs-utils/src/types.ts b/packages/kbn-docs-utils/src/types.ts index 09ff30b9b9da25..40faadb8c41f12 100644 --- a/packages/kbn-docs-utils/src/types.ts +++ b/packages/kbn-docs-utils/src/types.ts @@ -7,8 +7,10 @@ */ export interface PluginOrPackage { + id: string; manifest: { id: string; + pluginId?: string; description?: string; owner: { name: string; githubTeam?: string }; serviceFolders: readonly string[]; diff --git a/packages/kbn-docs-utils/src/utils.test.ts b/packages/kbn-docs-utils/src/utils.test.ts index 5ae2c1db624950..7de66dfa949f6d 100644 --- a/packages/kbn-docs-utils/src/utils.test.ts +++ b/packages/kbn-docs-utils/src/utils.test.ts @@ -77,13 +77,13 @@ it('test removeBrokenLinks', () => { const pluginApiMap: { [key: string]: PluginApi } = {}; plugins.map((plugin) => { - pluginApiMap[plugin.manifest.id] = getPluginApi(project, plugin, plugins, log, false); + pluginApiMap[plugin.id] = getPluginApi(project, plugin, plugins, log, false); }); const missingApiItems: { [key: string]: { [key: string]: string[] } } = {}; plugins.forEach((plugin) => { - const id = plugin.manifest.id; + const id = plugin.id; const pluginApi = pluginApiMap[id]; removeBrokenLinks(pluginApi, missingApiItems, pluginApiMap, log); }); diff --git a/packages/kbn-docs-utils/src/utils.ts b/packages/kbn-docs-utils/src/utils.ts index c479228533f495..a7de65b68ad0f3 100644 --- a/packages/kbn-docs-utils/src/utils.ts +++ b/packages/kbn-docs-utils/src/utils.ts @@ -37,7 +37,7 @@ export function getPluginForPath( ): PluginOrPackage | undefined { if (filePath.indexOf('@') >= 0) { return plugins.find( - (plugin) => !plugin.isPlugin && filePath.indexOf(plugin.manifest.id + path.sep) >= 0 + (plugin) => !plugin.isPlugin && filePath.indexOf(plugin.id + path.sep) >= 0 ); } else { return plugins.find((plugin) => filePath.startsWith(plugin.directory + path.sep)); diff --git a/packages/kbn-docs-utils/tsconfig.json b/packages/kbn-docs-utils/tsconfig.json index 6f64737de0d4dc..fa23110abcb1fd 100644 --- a/packages/kbn-docs-utils/tsconfig.json +++ b/packages/kbn-docs-utils/tsconfig.json @@ -15,7 +15,6 @@ "target/**/*", ], "kbn_references": [ - "@kbn/plugin-discovery", "@kbn/tooling-log", "@kbn/dev-cli-runner", "@kbn/dev-cli-errors", @@ -23,5 +22,6 @@ "@kbn/repo-info", "@kbn/std", "@kbn/get-repo-files", + "@kbn/repo-packages", ] } diff --git a/packages/kbn-eslint-config/.eslintrc.js b/packages/kbn-eslint-config/.eslintrc.js index 3b60aeb0303dc3..79369e3ed2caef 100644 --- a/packages/kbn-eslint-config/.eslintrc.js +++ b/packages/kbn-eslint-config/.eslintrc.js @@ -88,7 +88,7 @@ module.exports = { from: 'styled-components', to: false, exclude: USES_STYLED_COMPONENTS, - disallowedMessage: `Prefer using @emotion/react instead. To use styled-components, ensure you plugin is enabled in @kbn/dev-utils/src/babel.ts.` + disallowedMessage: `Prefer using @emotion/react instead. To use styled-components, ensure you plugin is enabled in packages/kbn-babel-preset/styled_components_files.js.` }, ...[ '@elastic/eui/dist/eui_theme_light.json', diff --git a/packages/kbn-eslint-config/package.json b/packages/kbn-eslint-config/package.json index 76082ec00ee44f..8ad447c6c2f2c3 100644 --- a/packages/kbn-eslint-config/package.json +++ b/packages/kbn-eslint-config/package.json @@ -9,7 +9,7 @@ }, "keywords": [], "author": "Spencer Alger ", - "license": "Apache-2.0", + "license": "SSPL-1.0 OR Elastic License 2.0", "bugs": { "url": "https://github.com/elastic/kibana/tree/main/packages/kbn-eslint-config" }, diff --git a/packages/kbn-eslint-plugin-imports/src/rules/no_boundary_crossing.ts b/packages/kbn-eslint-plugin-imports/src/rules/no_boundary_crossing.ts index 832b4d2e3c67e9..db4be34ba01093 100644 --- a/packages/kbn-eslint-plugin-imports/src/rules/no_boundary_crossing.ts +++ b/packages/kbn-eslint-plugin-imports/src/rules/no_boundary_crossing.ts @@ -19,17 +19,17 @@ import { getSourcePath } from '../helpers/source'; import { getRepoSourceClassifier } from '../helpers/repo_source_classifier'; import { getImportResolver } from '../get_import_resolver'; -const ANY_FILE_IN_BAZEL = Symbol(); +const ANY = Symbol(); -const IMPORTABLE_FROM: Record = { +const IMPORTABLE_FROM: Record = { 'non-package': ['non-package', 'server package', 'browser package', 'common package', 'static'], 'server package': ['common package', 'server package', 'static'], 'browser package': ['common package', 'browser package', 'static'], 'common package': ['common package', 'static'], static: [], - 'tests or mocks': ANY_FILE_IN_BAZEL, - tooling: ANY_FILE_IN_BAZEL, + 'tests or mocks': ANY, + tooling: ANY, }; const toList = (strings: string[]) => { @@ -89,7 +89,6 @@ export const NoBoundaryCrossingRule: Rule.RuleModule = { }, messages: { TYPE_MISMATCH: `"{{importedType}}" code can not be imported from "{{ownType}}" code.{{suggestion}}`, - FILE_OUTSIDE_OF_PACKAGE: `"{{ownType}}" code can import any code already within packages, but not files outside of packages.`, }, }, create(context) { @@ -119,24 +118,7 @@ export const NoBoundaryCrossingRule: Rule.RuleModule = { const imported = classifier.classify(result.absolute); - if (importable === ANY_FILE_IN_BAZEL) { - if (type === 'jest' && imported.repoRel === 'package.json') { - // we allow jest.mock() calls to mock out the `package.json` file... it's a very - // specific exception for a very specific implementation - return; - } - - if (self.pkgInfo?.isBazelPackage ? imported.pkgInfo?.isBazelPackage : true) { - return; - } - - context.report({ - node: node as ESTree.Node, - messageId: 'FILE_OUTSIDE_OF_PACKAGE', - data: { - ownType: self.type, - }, - }); + if (importable === ANY) { return; } diff --git a/packages/kbn-eslint-plugin-imports/src/rules/uniform_imports.ts b/packages/kbn-eslint-plugin-imports/src/rules/uniform_imports.ts index d853c791640e5c..6855a1359f43eb 100644 --- a/packages/kbn-eslint-plugin-imports/src/rules/uniform_imports.ts +++ b/packages/kbn-eslint-plugin-imports/src/rules/uniform_imports.ts @@ -9,7 +9,6 @@ import Path from 'path'; import Eslint from 'eslint'; -import { REPO_ROOT } from '@kbn/repo-info'; import { getRelativeImportReq, getPackageRelativeImportReq } from '@kbn/import-resolver'; import { report } from '../helpers/report'; @@ -17,13 +16,6 @@ import { visitAllImportStatements } from '../helpers/visit_all_import_statements import { getSourcePath } from '../helpers/source'; import { getImportResolver } from '../get_import_resolver'; -// TODO: get rid of all the special cases in here by moving more things to packages - -const SETUP_NODE_ENV_DIR = Path.resolve(REPO_ROOT, 'src/setup_node_env'); -const PKGJSON_PATH = Path.resolve(REPO_ROOT, 'package.json'); -const XPACK_PKGJSON_PATH = Path.resolve(REPO_ROOT, 'x-pack/package.json'); -const KBN_PM_SCRIPT = Path.resolve(REPO_ROOT, 'packages/kbn-pm/dist/index.js'); - export const UniformImportsRule: Eslint.Rule.RuleModule = { meta: { fixable: 'code', @@ -48,33 +40,8 @@ export const UniformImportsRule: Eslint.Rule.RuleModule = { return; } - const { absolute } = result; - // don't mess with imports to the kbn/pm script for now - if (absolute === KBN_PM_SCRIPT) { - return; - } - const { pkgId } = result; - if (ownPackageId && !pkgId) { - // special cases, files that aren't in packages but packages are allowed to import them - if ( - absolute === PKGJSON_PATH || - absolute === XPACK_PKGJSON_PATH || - absolute.startsWith(SETUP_NODE_ENV_DIR) - ) { - return; - } - - if (resolver.isBazelPackage(ownPackageId)) { - report(context, { - node, - message: `Package [${ownPackageId}] can only import other packages`, - }); - return; - } - } - if (pkgId === ownPackageId || !pkgId) { const correct = getRelativeImportReq({ ...result, diff --git a/packages/kbn-find-used-node-modules/src/find_used_node_modules.test.ts b/packages/kbn-find-used-node-modules/src/find_used_node_modules.test.ts index c336927c9e6d3c..86665557605d87 100644 --- a/packages/kbn-find-used-node-modules/src/find_used_node_modules.test.ts +++ b/packages/kbn-find-used-node-modules/src/find_used_node_modules.test.ts @@ -6,47 +6,44 @@ * Side Public License, v 1. */ -import * as Rx from 'rxjs'; import { findUsedNodeModules } from './find_used_node_modules'; import { ImportResolver } from '@kbn/import-resolver'; +import { ImportLocator } from '@kbn/import-locator'; jest.mock('./fs'); -const FILES: Record = { - '/foo.js': ` - require('./bar.js') - `, - '/bar.js': ` - require('./box') - `, - '/box.js': ` - require('foo') - `, -}; - class MockResolver extends ImportResolver { constructor() { - super('/', new Map(), new Map()); + super('/', new Map()); } - isBazelPackage = jest.fn(); resolve = jest.fn(); } +class MockLocator extends ImportLocator { + read = jest.fn(); +} + +const REQS: Map = new Map( + Object.entries({ + '/foo.js': ['./bar.js'], + '/bar.js': ['./box'], + '/box.js': ['foo'], + }) +); + const RESOLVER = new MockResolver(); +const LOCATOR = new MockLocator(); beforeEach(() => { jest.resetAllMocks(); - jest.requireMock('./fs').readFile$.mockImplementation((path: string) => { - if (Object.hasOwn(FILES, path)) { - return Rx.of(FILES[path]); - } - return Rx.throwError(() => { - const error: any = new Error(`ENOENT, missing file [${path}]`); - error.code = 'ENOENT'; - return error; - }); + LOCATOR.read.mockImplementation(async (path: string) => { + const reqs = REQS.get(path); + if (reqs === undefined) { + throw new Error('unexpected path passed to ImportLocator#read()'); + } + return new Set(reqs); }); }); @@ -58,6 +55,7 @@ describe('findUsedNodeModules()', () => { const results = await findUsedNodeModules({ entryPaths: ['/foo.js'], + locator: LOCATOR, resolver: RESOLVER, findUsedPeers: false, }); @@ -81,6 +79,7 @@ describe('findUsedNodeModules()', () => { const results = await findUsedNodeModules({ entryPaths: ['/foo.js'], + locator: LOCATOR, resolver: RESOLVER, findUsedPeers: false, }); @@ -110,6 +109,7 @@ describe('findUsedNodeModules()', () => { const results = await findUsedNodeModules({ entryPaths: ['/foo.js'], + locator: LOCATOR, resolver: RESOLVER, findUsedPeers: false, }); @@ -139,11 +139,13 @@ describe('findUsedNodeModules()', () => { const results = await findUsedNodeModules({ entryPaths: ['/foo.js'], + locator: LOCATOR, resolver: RESOLVER, findUsedPeers: false, }); - expect(RESOLVER.resolve).toHaveBeenCalledTimes(2); expect(results).toEqual(['@foo/box']); + expect(RESOLVER.resolve).toHaveBeenCalledTimes(2); + expect(LOCATOR.read).toHaveBeenCalledTimes(2); }); it('does traverse node_modules which are also bazel packages', async () => { @@ -158,7 +160,7 @@ describe('findUsedNodeModules()', () => { if (req === './box') { return { type: 'file', - nodeModule: '@foo/box', + pkgId: '@foo/box', absolute: '/box.js', }; } @@ -174,16 +176,14 @@ describe('findUsedNodeModules()', () => { throw new Error('unexpected request'); }); - RESOLVER.isBazelPackage.mockImplementation((pkgId) => { - return pkgId === '@foo/box'; - }); - const results = await findUsedNodeModules({ entryPaths: ['/foo.js'], + locator: LOCATOR, resolver: RESOLVER, findUsedPeers: false, }); expect(RESOLVER.resolve).toHaveBeenCalledTimes(3); + expect(LOCATOR.read).toHaveBeenCalledTimes(3); expect(results).toEqual(['@foo/box', '@foo/core']); }); }); diff --git a/packages/kbn-find-used-node-modules/src/find_used_node_modules.ts b/packages/kbn-find-used-node-modules/src/find_used_node_modules.ts index 0ecb7f10bb090a..403532d0fc529b 100644 --- a/packages/kbn-find-used-node-modules/src/find_used_node_modules.ts +++ b/packages/kbn-find-used-node-modules/src/find_used_node_modules.ts @@ -7,9 +7,12 @@ */ import Path from 'path'; +import Fs from 'fs'; import * as Rx from 'rxjs'; import type { ImportResolver } from '@kbn/import-resolver'; +import type { ImportLocator } from '@kbn/import-locator'; +import { REPO_ROOT } from '@kbn/repo-info'; import { readFile$ } from './fs'; @@ -17,7 +20,32 @@ function isObj(v: any): v is Record { return typeof v === 'object' && v !== null; } +function findPkgJsonUpDeep(path: string): string | null { + const dir = Path.dirname(path); + if (dir === '/' || dir === REPO_ROOT || dir === path) { + return null; + } + + const candidate = Path.resolve(dir, 'package.json'); + if (Fs.existsSync(candidate)) { + return candidate; + } + + return findPkgJsonUpDeep(dir); +} + +function findPkgJson(dep: string, paths: Iterable) { + for (const path of paths) { + const value = findPkgJsonUpDeep(path); + if (value !== null) { + return value; + } + } + throw new Error(`Unable to find package.json file for ${dep}`); +} + interface Options { + locator: ImportLocator; resolver: ImportResolver; entryPaths: string[]; findUsedPeers: boolean; @@ -44,8 +72,6 @@ interface Options { * was much slower and lead to extra entries in package.json. */ -import { getImportRequests } from './get_import_requests'; - export async function findUsedNodeModules(options: Options) { const results = new Set(); const entryPathsIntoNodeModules = new Map>(); @@ -61,13 +87,12 @@ export async function findUsedNodeModules(options: Options) { Rx.tap(() => { inputs += 1; }), - Rx.mergeMap((path) => readFile$(path, 'utf8').pipe(Rx.map((code) => ({ code, path })))), - Rx.mergeMap(async ({ path, code }) => { - const reqs = getImportRequests(code); + Rx.mergeMap(async (path) => { + const reqs = await options.locator.read(path); const dirname = Path.dirname(path); for (const req of reqs) { - // resolve the request to it's actual file on dist + // resolve the request to it's actual file on disk const result = options.resolver.resolve(req, dirname); // ignore non-file resolution results, these represent files which aren't on @@ -102,13 +127,13 @@ export async function findUsedNodeModules(options: Options) { if ( !result.nodeModule || result.nodeModule === options.thisNodeModule || - options.resolver.isBazelPackage(result.nodeModule) + options.resolver.isRepoPkg(result.nodeModule) ) { path$.next(result.absolute); continue; } } - }, 40), + }, 200), Rx.tap(() => { outputs += 1; if (inputs === outputs) { @@ -133,8 +158,7 @@ export async function findUsedNodeModules(options: Options) { return Rx.EMPTY; } - const pkgPath = require.resolve(`${dep}/package.json`); - return readFile$(pkgPath, 'utf8').pipe( + return readFile$(findPkgJson(dep, entryPaths), 'utf8').pipe( Rx.mergeMap((pkgJson) => { const pkg = JSON.parse(pkgJson); @@ -153,6 +177,7 @@ export async function findUsedNodeModules(options: Options) { }, 50), Rx.concatMap(async ({ entryPaths, dep, peerDeps }) => { const usedInside = await findUsedNodeModules({ + locator: options.locator, resolver: options.resolver, entryPaths: Array.from(entryPaths), findUsedPeers: false, diff --git a/packages/kbn-find-used-node-modules/tsconfig.json b/packages/kbn-find-used-node-modules/tsconfig.json index b43f686f338548..22a4d189a4145d 100644 --- a/packages/kbn-find-used-node-modules/tsconfig.json +++ b/packages/kbn-find-used-node-modules/tsconfig.json @@ -13,6 +13,8 @@ "kbn_references": [ "@kbn/import-resolver", "@kbn/babel-preset", + "@kbn/import-locator", + "@kbn/repo-info", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-flot-charts/lib/jquery_flot_axislabels.js b/packages/kbn-flot-charts/lib/jquery_flot_axislabels.js index cda8038953c76b..27cc7c92eff6cf 100644 --- a/packages/kbn-flot-charts/lib/jquery_flot_axislabels.js +++ b/packages/kbn-flot-charts/lib/jquery_flot_axislabels.js @@ -380,7 +380,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. if (!opts.axisLabelUseHtml && navigator.appName == 'Microsoft Internet Explorer') { var ua = navigator.userAgent; - var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); + var re = /MSIE ([0-9]{1,}[.0-9]{0,})/; if (re.exec(ua) != null) { rv = parseFloat(RegExp.$1); } diff --git a/packages/kbn-generate/src/commands/codeowners_command.ts b/packages/kbn-generate/src/commands/codeowners_command.ts index 47352996886606..733e123815dce2 100644 --- a/packages/kbn-generate/src/commands/codeowners_command.ts +++ b/packages/kbn-generate/src/commands/codeowners_command.ts @@ -26,24 +26,57 @@ const GENERATED_START = ` `; +const GENERATED_TRAILER = ` + +# Design (at the bottom for specificity of SASS files) +**/*.scss @elastic/kibana-design +`; + +function normalizeDir(dirish: string): string { + const trim = dirish.trim(); + if (trim.startsWith('/')) { + return normalizeDir(trim.slice(1)); + } + + if (trim.endsWith('/')) { + return normalizeDir(trim.slice(0, -1)); + } + + return trim; +} + export const CodeownersCommand: GenerateCommand = { name: 'codeowners', description: 'Update the codeowners file based on the package manifest files', usage: 'node scripts/generate codeowners', async run({ log }) { + const pkgs = getPackages(REPO_ROOT); const coPath = Path.resolve(REPO_ROOT, REL); const codeowners = await Fsp.readFile(coPath, 'utf8'); - const pkgs = getPackages(REPO_ROOT); - - let genStart = codeowners.indexOf(GENERATED_START); + let genStart: number | undefined = codeowners.indexOf(GENERATED_START); if (genStart === -1) { - genStart = codeowners.length; + genStart = undefined; log.warning(`${REL} doesn't include the expected start-marker for injecting generated text`); } - const newCodeowners = `${codeowners.slice(0, genStart)}${GENERATED_START}${pkgs + const pkgDirs = new Set(pkgs.map((pkg) => pkg.normalizedRepoRelativeDir)); + const lines = []; + + for (const line of codeowners.slice(0, genStart).split('\n')) { + if (line.startsWith('#') || !line.trim()) { + lines.push(line); + continue; + } + + const dir = normalizeDir(line.split('@')[0]); + if (!pkgDirs.has(dir)) { + lines.push(line); + } + } + + const newCodeowners = `${lines.join('\n')}${GENERATED_START}${pkgs .map((pkg) => `${pkg.normalizedRepoRelativeDir} ${pkg.manifest.owner.join(' ')}`) - .join('\n')}\n`; + .join('\n')}${GENERATED_TRAILER}`; if (codeowners === newCodeowners) { log.success(`${REL} is already up-to-date`); diff --git a/packages/kbn-generate/src/commands/package_command.ts b/packages/kbn-generate/src/commands/package_command.ts index 115834dd143402..efa92cc7d9301a 100644 --- a/packages/kbn-generate/src/commands/package_command.ts +++ b/packages/kbn-generate/src/commands/package_command.ts @@ -171,7 +171,7 @@ export const PackageCommand: GenerateCommand = { addDeps[pkgId] = `link:${normalizedRepoRelativeDir}`; delete removeDeps[pkgId]; - await Fsp.writeFile(packageJsonPath, sortPackageJson(JSON.stringify(packageJson))); + await Fsp.writeFile(packageJsonPath, sortPackageJson(packageJson)); log.info('Updated package.json file'); log.success(`Generated ${pkgId}! Please bootstrap to make sure it works.`); diff --git a/packages/kbn-get-repo-files/get_repo_files.ts b/packages/kbn-get-repo-files/get_repo_files.ts new file mode 100644 index 00000000000000..5d85551fa3e34b --- /dev/null +++ b/packages/kbn-get-repo-files/get_repo_files.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { RepoPath } from '@kbn/repo-path'; +import { REPO_ROOT } from '@kbn/repo-info'; +import { getRepoRels } from '@kbn/repo-packages'; + +/** + * List the files in the repo, only including files which are manged by version + * control or "untracked" (new, not committed, and not ignored). + * @param include limit the list to specfic absolute paths + * @param exclude exclude specific absolute paths + */ +export async function getRepoFiles(include?: string[], exclude?: string[]) { + return Array.from( + await getRepoRels(REPO_ROOT, include, exclude), + (rel) => new RepoPath(REPO_ROOT, rel) + ); +} diff --git a/packages/kbn-get-repo-files/index.ts b/packages/kbn-get-repo-files/index.ts deleted file mode 100644 index 0d33a512abda59..00000000000000 --- a/packages/kbn-get-repo-files/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export { getRepoFiles, getRepoFilesSync } from './src/get_repo_files'; diff --git a/packages/kbn-get-repo-files/package.json b/packages/kbn-get-repo-files/package.json index d16a1b7dbe6685..ce7f14b2a601ae 100644 --- a/packages/kbn-get-repo-files/package.json +++ b/packages/kbn-get-repo-files/package.json @@ -2,5 +2,6 @@ "name": "@kbn/get-repo-files", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "SSPL-1.0 OR Elastic License 2.0", + "main": "./get_repo_files" } diff --git a/packages/kbn-get-repo-files/src/get_repo_files.ts b/packages/kbn-get-repo-files/src/get_repo_files.ts deleted file mode 100644 index b68e1b1e40bdfb..00000000000000 --- a/packages/kbn-get-repo-files/src/get_repo_files.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; -import Fs from 'fs'; - -import execa from 'execa'; -import { REPO_ROOT } from '@kbn/repo-info'; -import { RepoPath } from '@kbn/repo-path'; - -function parseLsFilesOutput(output: string) { - const paths = new Map(); - const files = new Set(); - - for (const line of output.split('\n').map((l) => l.trim())) { - if (!line) { - continue; - } - - const repoRel = line.slice(2); // trim the single char status and separating space from the line - const existingPath = paths.get(repoRel); - const path = existingPath ?? new RepoPath(REPO_ROOT, repoRel); - if (!existingPath) { - paths.set(repoRel, path); - } - - if (line.startsWith('C ')) { - // this line indicates that the previous path is changed in the working - // tree, so we need to determine if it was deleted and remove it if so - if (!Fs.existsSync(path.abs)) { - files.delete(path); - } - } else { - files.add(path); - } - } - - return files; -} - -function getGitFlags(include?: string[], exclude?: string[]) { - return [ - 'ls-files', - '-comt', - '--exclude-standard', - include?.map((p) => Path.relative(REPO_ROOT, p)) ?? [], - exclude?.map((p) => `--exclude=${Path.relative(REPO_ROOT, p)}`) ?? [], - ].flat(); -} - -/** - * List the files in the repo, only including files which are manged by version - * control or "untracked" (new, not committed, and not ignored). - * @param include limit the list to specfic absolute paths - * @param exclude exclude specific absolute paths - */ -export async function getRepoFiles(include?: string[], exclude?: string[]) { - const proc = await execa('git', getGitFlags(include, exclude), { - cwd: REPO_ROOT, - stdio: ['ignore', 'pipe', 'pipe'], - buffer: true, - }); - - return parseLsFilesOutput(proc.stdout); -} - -/** - * Synchronously list the files in the repo, only including files which are manged by version - * control or "untracked" (new, not committed, and not ignored). - * @param include limit the list to specfic absolute paths - * @param exclude exclude specific absolute paths - */ -export function getRepoFilesSync(include?: string[], exclude?: string[]) { - const proc = execa.sync('git', getGitFlags(include, exclude), { - cwd: REPO_ROOT, - stdio: ['ignore', 'pipe', 'pipe'], - buffer: true, - }); - - return parseLsFilesOutput(proc.stdout); -} diff --git a/packages/kbn-get-repo-files/tsconfig.json b/packages/kbn-get-repo-files/tsconfig.json index 4c74f7e7042c50..f561cd779b3a97 100644 --- a/packages/kbn-get-repo-files/tsconfig.json +++ b/packages/kbn-get-repo-files/tsconfig.json @@ -2,17 +2,20 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "target/types", + "checkJs": true, "types": [ "jest", "node" ] }, "include": [ + "**/*.js", "**/*.ts" ], "kbn_references": [ "@kbn/repo-info", "@kbn/repo-path", + "@kbn/repo-packages", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-guided-onboarding/src/components/landing_page/__snapshots__/guide_cards.test.tsx.snap b/packages/kbn-guided-onboarding/src/components/landing_page/__snapshots__/guide_cards.test.tsx.snap index 55fa0c49d49a1a..dd633872933f44 100644 --- a/packages/kbn-guided-onboarding/src/components/landing_page/__snapshots__/guide_cards.test.tsx.snap +++ b/packages/kbn-guided-onboarding/src/components/landing_page/__snapshots__/guide_cards.test.tsx.snap @@ -3,7 +3,7 @@ exports[`guide cards snapshots should render all cards 1`] = ` , + } + } + />, } } guidesState={Array []} @@ -68,7 +76,15 @@ exports[`guide cards snapshots should render all cards 1`] = ` "order": 3, "solution": "security", "telemetryId": "onboarding--security--siem", - "title": "Detect threats in my data with SIEM", + "title": , + } + } + />, } } guidesState={Array []} @@ -117,7 +133,15 @@ exports[`guide cards snapshots should render all cards 1`] = ` "order": 5, "solution": "observability", "telemetryId": "onboarding--observability--apm", - "title": "Monitor my application performance (APM / tracing)", + "title": , + } + } + />, } } guidesState={Array []} @@ -143,7 +167,15 @@ exports[`guide cards snapshots should render all cards 1`] = ` "order": 6, "solution": "security", "telemetryId": "onboarding--security--hosts", - "title": "Secure my hosts with endpoint security", + "title": , + } + } + />, } } guidesState={Array []} @@ -166,7 +198,15 @@ exports[`guide cards snapshots should render all cards 1`] = ` "order": 7, "solution": "search", "telemetryId": "onboarding--search--database", - "title": "Search across databases and business systems", + "title": , + } + } + />, } } guidesState={Array []} @@ -218,7 +258,15 @@ exports[`guide cards snapshots should render all cards 1`] = ` "order": 9, "solution": "security", "telemetryId": "onboarding--security--cloud", - "title": "Secure my cloud assets with posture management", + "title": , + } + } + />, } } guidesState={Array []} diff --git a/packages/kbn-guided-onboarding/src/components/landing_page/guide_card.tsx b/packages/kbn-guided-onboarding/src/components/landing_page/guide_card.tsx index ca0891a0f28082..559af288c5575c 100644 --- a/packages/kbn-guided-onboarding/src/components/landing_page/guide_card.tsx +++ b/packages/kbn-guided-onboarding/src/components/landing_page/guide_card.tsx @@ -9,7 +9,15 @@ import React, { useCallback, useState } from 'react'; import { css } from '@emotion/react'; -import { EuiCard, EuiFlexGroup, EuiFlexItem, EuiIcon, EuiSpacer, EuiTextColor } from '@elastic/eui'; +import { + EuiCard, + EuiFlexGroup, + EuiFlexItem, + EuiIcon, + EuiSpacer, + EuiTextColor, + useEuiTheme, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { GuideState } from '../../types'; @@ -55,6 +63,7 @@ export const GuideCard = ({ activeFilter, }: GuideCardsProps & { card: GuideCardConstants }) => { const [isLoading, setIsLoading] = useState(false); + const { euiTheme } = useEuiTheme(); let guideState: GuideState | undefined; if (card.guideId) { guideState = guidesState.find((state) => state.guideId === card.guideId); @@ -102,9 +111,9 @@ export const GuideCard = ({ )} {isComplete && ( - + - + @@ -115,6 +124,7 @@ export const GuideCard = ({ )} + {card.navigateTo && } } /> diff --git a/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.constants.ts b/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.constants.ts deleted file mode 100644 index a74f80114a2167..00000000000000 --- a/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.constants.ts +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { i18n } from '@kbn/i18n'; -import { GuideId } from '../../..'; -import { GuideCardSolutions } from './guide_cards'; - -export interface GuideCardConstants { - solution: GuideCardSolutions; - title: string; - // if present, guideId indicates which guide is opened when clicking the card - guideId?: GuideId; - // if present, navigateTo indicates where the user will be redirected, when clicking the card - navigateTo?: { - appId: string; - path?: string; - }; - // duplicate the telemetry id from the guide config to not load the config from the endpoint - // this might change if we decide to use the guide config for the cards - // see this issue https://github.com/elastic/kibana/issues/146672 - telemetryId: string; - order: number; -} - -export const guideCards: GuideCardConstants[] = [ - { - solution: 'search', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.appSearch.title', { - defaultMessage: 'Build an application on top of Elasticsearch', - }), - guideId: 'appSearch', - telemetryId: 'onboarding--search--application', - order: 1, - }, - { - solution: 'search', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.websiteSearch.title', { - defaultMessage: 'Add search to my website', - }), - guideId: 'websiteSearch', - telemetryId: 'onboarding--search--website', - order: 4, - }, - { - solution: 'search', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.databaseSearch.title', { - defaultMessage: 'Search across databases and business systems', - }), - guideId: 'databaseSearch', - telemetryId: 'onboarding--search--database', - order: 7, - }, - { - solution: 'observability', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.logsObservability.title', { - defaultMessage: 'Collect and analyze my logs', - }), - navigateTo: { - appId: 'integrations', - path: '/browse?q=log', - }, - telemetryId: 'onboarding--observability--logs', - order: 2, - }, - { - solution: 'observability', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.apmObservability.title', { - defaultMessage: 'Monitor my application performance (APM / tracing)', - }), - navigateTo: { - appId: 'home', - path: '#/tutorial/apm', - }, - telemetryId: 'onboarding--observability--apm', - order: 5, - }, - { - solution: 'observability', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.hostsObservability.title', { - defaultMessage: 'Monitor my host metrics', - }), - navigateTo: { - appId: 'integrations', - path: '/browse/os_system', - }, - telemetryId: 'onboarding--observability--hosts', - order: 8, - }, - { - solution: 'observability', - title: i18n.translate( - 'guidedOnboardingPackage.gettingStarted.cards.kubernetesObservability.title', - { - defaultMessage: 'Monitor Kubernetes clusters', - } - ), - guideId: 'kubernetes', - telemetryId: 'onboarding--observability--kubernetes', - order: 11, - }, - { - solution: 'security', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.siemSecurity.title', { - defaultMessage: 'Detect threats in my data with SIEM', - }), - guideId: 'siem', - telemetryId: 'onboarding--security--siem', - order: 3, - }, - { - solution: 'security', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.hostsSecurity.title', { - defaultMessage: 'Secure my hosts with endpoint security', - }), - navigateTo: { - appId: 'integrations', - path: '/detail/endpoint/overview', - }, - telemetryId: 'onboarding--security--hosts', - order: 6, - }, - { - solution: 'security', - title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.cloudSecurity.title', { - defaultMessage: 'Secure my cloud assets with posture management', - }), - navigateTo: { - appId: 'integrations', - path: '/detail/cloud_security_posture/overview', - }, - telemetryId: 'onboarding--security--cloud', - order: 9, - }, -].sort((cardA, cardB) => cardA.order - cardB.order) as GuideCardConstants[]; diff --git a/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.constants.tsx b/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.constants.tsx new file mode 100644 index 00000000000000..5603072b3447b5 --- /dev/null +++ b/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.constants.tsx @@ -0,0 +1,177 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import React, { ReactNode } from 'react'; +import { GuideId } from '../../..'; +import { GuideCardSolutions } from './guide_cards'; + +export interface GuideCardConstants { + solution: GuideCardSolutions; + title: string | ReactNode; + // if present, guideId indicates which guide is opened when clicking the card + guideId?: GuideId; + // if present, navigateTo indicates where the user will be redirected, when clicking the card + navigateTo?: { + appId: string; + path?: string; + }; + // duplicate the telemetry id from the guide config to not load the config from the endpoint + // this might change if we decide to use the guide config for the cards + // see this issue https://github.com/elastic/kibana/issues/146672 + telemetryId: string; + order: number; +} + +export const guideCards: GuideCardConstants[] = [ + { + solution: 'search', + title: ( + , + }} + /> + ), + guideId: 'appSearch', + telemetryId: 'onboarding--search--application', + order: 1, + }, + { + solution: 'search', + title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.websiteSearch.title', { + defaultMessage: 'Add search to my website', + }), + guideId: 'websiteSearch', + telemetryId: 'onboarding--search--website', + order: 4, + }, + { + solution: 'search', + title: ( + , + }} + /> + ), + guideId: 'databaseSearch', + telemetryId: 'onboarding--search--database', + order: 7, + }, + { + solution: 'observability', + title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.logsObservability.title', { + defaultMessage: 'Collect and analyze my logs', + }), + navigateTo: { + appId: 'integrations', + path: '/browse?q=log', + }, + telemetryId: 'onboarding--observability--logs', + order: 2, + }, + { + solution: 'observability', + title: ( + , + }} + /> + ), + navigateTo: { + appId: 'home', + path: '#/tutorial/apm', + }, + telemetryId: 'onboarding--observability--apm', + order: 5, + }, + { + solution: 'observability', + title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.hostsObservability.title', { + defaultMessage: 'Monitor my host metrics', + }), + navigateTo: { + appId: 'integrations', + path: '/browse/os_system', + }, + telemetryId: 'onboarding--observability--hosts', + order: 8, + }, + { + solution: 'observability', + title: i18n.translate( + 'guidedOnboardingPackage.gettingStarted.cards.kubernetesObservability.title', + { + defaultMessage: 'Monitor Kubernetes clusters', + } + ), + guideId: 'kubernetes', + telemetryId: 'onboarding--observability--kubernetes', + order: 11, + }, + { + solution: 'security', + title: ( + , + }} + /> + ), + guideId: 'siem', + telemetryId: 'onboarding--security--siem', + order: 3, + }, + { + solution: 'security', + title: ( + , + }} + /> + ), + navigateTo: { + appId: 'integrations', + path: '/detail/endpoint/overview', + }, + telemetryId: 'onboarding--security--hosts', + order: 6, + }, + { + solution: 'security', + title: ( + , + }} + /> + ), + navigateTo: { + appId: 'integrations', + path: '/detail/cloud_security_posture/overview', + }, + telemetryId: 'onboarding--security--cloud', + order: 9, + }, +].sort((cardA, cardB) => cardA.order - cardB.order) as GuideCardConstants[]; diff --git a/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.tsx b/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.tsx index 45d32d8089ef3c..1f3269c5965034 100644 --- a/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.tsx +++ b/packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.tsx @@ -27,7 +27,7 @@ export interface GuideCardsProps { } export const GuideCards = (props: GuideCardsProps) => { return ( - + {guideCards.map((card, index) => ( diff --git a/packages/kbn-handlebars/index.test.ts b/packages/kbn-handlebars/index.test.ts index bdaebca946533f..d95c6a1c8304a6 100644 --- a/packages/kbn-handlebars/index.test.ts +++ b/packages/kbn-handlebars/index.test.ts @@ -506,12 +506,13 @@ describe('blocks', () => { it('should call multiple decorators in the same program body in the expected order and get the expected output', () => { let decoratorCall = 0; let progCall = 0; - expectTemplate('{{*decorator}}con{{*decorator}}tent') - .beforeRender(() => { + expectTemplate('{{*decorator}}con{{*decorator}}tent', { + beforeRender() { // ensure the counters are reset between EVAL/AST render calls decoratorCall = 0; progCall = 0; - }) + }, + }) .withInput({ decoratorCall: 0, progCall: 0, diff --git a/packages/kbn-handlebars/index.ts b/packages/kbn-handlebars/index.ts index bd315841582cea..a00dbdbb37a64a 100644 --- a/packages/kbn-handlebars/index.ts +++ b/packages/kbn-handlebars/index.ts @@ -3,150 +3,8 @@ * See `packages/kbn-handlebars/LICENSE` for more information. */ -// The handlebars module uses `export =`, so we should technically use `import Handlebars = require('handlebars')`, but Babel will not allow this. -import Handlebars from 'handlebars'; -import { - createProtoAccessControl, - resultIsAllowed, - // @ts-expect-error: Could not find a declaration file for module -} from 'handlebars/dist/cjs/handlebars/internal/proto-access'; -// @ts-expect-error: Could not find a declaration file for module -import AST from 'handlebars/dist/cjs/handlebars/compiler/ast'; -// @ts-expect-error: Could not find a declaration file for module -import { indexOf, createFrame } from 'handlebars/dist/cjs/handlebars/utils'; -// @ts-expect-error: Could not find a declaration file for module -import { moveHelperToHooks } from 'handlebars/dist/cjs/handlebars/helpers'; - -const originalCreate = Handlebars.create; - -/** - * A custom version of the Handlesbars module with an extra `compileAST` function and fixed typings. - */ -declare module 'handlebars' { - export function compileAST( - input: string | hbs.AST.Program, - options?: ExtendedCompileOptions - ): (context?: any, options?: ExtendedRuntimeOptions) => string; - - // -------------------------------------------------------- - // Override/Extend inherited types below that are incorrect - // -------------------------------------------------------- - - export interface TemplateDelegate { - (context?: T, options?: RuntimeOptions): string; // Override to ensure `context` is optional - blockParams?: number; // TODO: Can this really be optional? - partials?: any; // TODO: Narrow type to something better than any? - } - - export interface HelperOptions { - name: string; - loc: { start: hbs.AST.SourceLocation['start']; end: hbs.AST.SourceLocation['end'] }; - lookupProperty: LookupProperty; - } - - export interface HelperDelegate { - // eslint-disable-next-line @typescript-eslint/prefer-function-type - (...params: any[]): any; - } - - export function registerPartial(spec: { [name: string]: Handlebars.Template }): void; // Ensure `spec` object values can be strings -} - -const kHelper = Symbol('helper'); -const kAmbiguous = Symbol('ambiguous'); -const kSimple = Symbol('simple'); -type NodeType = typeof kHelper | typeof kAmbiguous | typeof kSimple; - -type LookupProperty = (parent: { [name: string]: any }, propertyName: string) => T; - -type ProcessableStatementNode = - | hbs.AST.MustacheStatement - | hbs.AST.PartialStatement - | hbs.AST.SubExpression; -type ProcessableBlockStatementNode = hbs.AST.BlockStatement | hbs.AST.PartialBlockStatement; -type ProcessableNode = ProcessableStatementNode | ProcessableBlockStatementNode; -type ProcessableNodeWithPathParts = ProcessableNode & { path: hbs.AST.PathExpression }; -type ProcessableNodeWithPathPartsOrLiteral = ProcessableNode & { - path: hbs.AST.PathExpression | hbs.AST.Literal; -}; - -interface Helper { - fn?: Handlebars.HelperDelegate; - context: any[]; - params: any[]; - options: AmbiguousHelperOptions; -} - -export type NonBlockHelperOptions = Omit; -export type AmbiguousHelperOptions = Handlebars.HelperOptions | NonBlockHelperOptions; - -export interface DecoratorOptions extends Omit { - args?: any[]; -} - -/** - * If the `unsafe-eval` CSP is set, this string constant will be `compile`, - * otherwise `compileAST`. - * - * This can be used to call the more optimized `compile` function in - * environments that support it, or fall back to `compileAST` on environments - * that don't. - */ -export const compileFnName: 'compile' | 'compileAST' = allowUnsafeEval() ? 'compile' : 'compileAST'; - -/** - * Supported Handlebars compile options. - * - * This is a subset of all the compile options supported by the upstream - * Handlebars module. - */ -export type ExtendedCompileOptions = Pick< - CompileOptions, - | 'data' - | 'knownHelpers' - | 'knownHelpersOnly' - | 'noEscape' - | 'strict' - | 'assumeObjects' - | 'preventIndent' - | 'explicitPartialContext' ->; - -/** - * Supported Handlebars runtime options - * - * This is a subset of all the runtime options supported by the upstream - * Handlebars module. - */ -export type ExtendedRuntimeOptions = Pick< - RuntimeOptions, - 'data' | 'helpers' | 'partials' | 'decorators' | 'blockParams' ->; - -/** - * According to the [decorator docs]{@link https://github.com/handlebars-lang/handlebars.js/blob/4.x/docs/decorators-api.md}, - * a decorator will be called with a different set of arugments than what's actually happening in the upstream code. - * So here I assume that the docs are wrong and that the upstream code is correct. In reality, `context` is the last 4 - * documented arguments rolled into one object. - */ -export type DecoratorFunction = ( - prog: Handlebars.TemplateDelegate, - props: Record, - container: Container, - options: any -) => any; - -export interface HelpersHash { - [name: string]: Handlebars.HelperDelegate; -} - -export interface PartialsHash { - [name: string]: HandlebarsTemplateDelegate; -} - -export interface DecoratorsHash { - [name: string]: DecoratorFunction; -} +import { Handlebars } from './src/handlebars'; +import { allowUnsafeEval } from './src/utils'; // The handlebars module uses `export =`, so it can't be re-exported using `export *`. // However, because of Babel, we're not allowed to use `export =` ourselves. @@ -156,866 +14,17 @@ export interface DecoratorsHash { export default Handlebars; /** - * Creates an isolated Handlebars environment. - * - * Each environment has its own helpers. - * This is only necessary for use cases that demand distinct helpers. - * Most use cases can use the root Handlebars environment directly. - * - * @returns A sandboxed/scoped version of the @kbn/handlebars module - */ -export function create(): typeof Handlebars { - const SandboxedHandlebars = originalCreate.call(Handlebars) as typeof Handlebars; - // When creating new Handlebars environments, ensure the custom compileAST function is present in the new environment as well - SandboxedHandlebars.compileAST = Handlebars.compileAST; - return SandboxedHandlebars; -} - -Handlebars.create = create; - -/** - * Compiles the given Handlbars template without the use of `eval`. + * If the `unsafe-eval` CSP is set, this string constant will be `compile`, + * otherwise `compileAST`. * - * @returns A render function with the same API as the return value from the regular Handlebars `compile` function. + * This can be used to call the more optimized `compile` function in + * environments that support it, or fall back to `compileAST` on environments + * that don't. */ -Handlebars.compileAST = function ( - input: string | hbs.AST.Program, - options?: ExtendedCompileOptions -) { - if (input == null || (typeof input !== 'string' && input.type !== 'Program')) { - throw new Handlebars.Exception( - `You must pass a string or Handlebars AST to Handlebars.compileAST. You passed ${input}` - ); - } - - // If `Handlebars.compileAST` is reassigned, `this` will be undefined. - const helpers = (this ?? Handlebars).helpers; - const partials = (this ?? Handlebars).partials; - const decorators = (this ?? Handlebars).decorators as DecoratorsHash; - - const visitor = new ElasticHandlebarsVisitor(this, input, options, helpers, partials, decorators); - return (context: any, runtimeOptions?: ExtendedRuntimeOptions) => - visitor.render(context, runtimeOptions); -}; - -interface Container { - helpers: HelpersHash; - partials: PartialsHash; - decorators: DecoratorsHash; - strict: (obj: { [name: string]: any }, name: string, loc: hbs.AST.SourceLocation) => any; - lookupProperty: LookupProperty; - lambda: (current: any, context: any) => any; - data: (value: any, depth: number) => any; - hooks: { - helperMissing?: Handlebars.HelperDelegate; - blockHelperMissing?: Handlebars.HelperDelegate; - }; -} - -class ElasticHandlebarsVisitor extends Handlebars.Visitor { - private env: typeof Handlebars; - private contexts: any[] = []; - private output: any[] = []; - private template?: string; - private compileOptions: ExtendedCompileOptions; - private runtimeOptions?: ExtendedRuntimeOptions; - private initialHelpers: HelpersHash; - private initialPartials: PartialsHash; - private initialDecorators: DecoratorsHash; - private blockParamNames: any[][] = []; - private blockParamValues: any[][] = []; - private ast?: hbs.AST.Program; - private container: Container; - private defaultHelperOptions: Pick; - private processedRootDecorators = false; // Root decorators should not have access to input arguments. This flag helps us detect them. - private processedDecoratorsForProgram = new Set(); // It's important that a given program node only has its decorators run once, we use this Map to keep track of them - - constructor( - env: typeof Handlebars, - input: string | hbs.AST.Program, - options: ExtendedCompileOptions = {}, - helpers: HelpersHash, - partials: PartialsHash, - decorators: DecoratorsHash - ) { - super(); - - this.env = env; - - if (typeof input !== 'string' && input.type === 'Program') { - this.ast = input; - } else { - this.template = input as string; - } - - this.compileOptions = Object.assign( - { - data: true, - }, - options - ); - - this.compileOptions.knownHelpers = Object.assign( - Object.create(null), - { - helperMissing: true, - blockHelperMissing: true, - each: true, - if: true, - unless: true, - with: true, - log: true, - lookup: true, - }, - this.compileOptions.knownHelpers - ); - - this.initialHelpers = Object.assign({}, helpers); - this.initialPartials = Object.assign({}, partials); - this.initialDecorators = Object.assign({}, decorators); - - const protoAccessControl = createProtoAccessControl({}); - - const container: Container = (this.container = { - helpers: {}, - partials: {}, - decorators: {}, - strict(obj, name, loc) { - if (!obj || !(name in obj)) { - throw new Handlebars.Exception('"' + name + '" not defined in ' + obj, { - loc, - } as hbs.AST.Node); - } - return container.lookupProperty(obj, name); - }, - // this function is lifted from the handlebars source and slightly modified (lib/handlebars/runtime.js) - lookupProperty(parent, propertyName) { - const result = parent[propertyName]; - if (result == null) { - return result; - } - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return result; - } - - if (resultIsAllowed(result, protoAccessControl, propertyName)) { - return result; - } - return undefined; - }, - // this function is lifted from the handlebars source and slightly modified (lib/handlebars/runtime.js) - lambda(current, context) { - return typeof current === 'function' ? current.call(context) : current; - }, - data(value: any, depth: number) { - while (value && depth--) { - value = value._parent; - } - return value; - }, - hooks: {}, - }); - - this.defaultHelperOptions = { - lookupProperty: container.lookupProperty, - }; - } - - render(context: any, options: ExtendedRuntimeOptions = {}): string { - this.contexts = [context]; - this.output = []; - this.runtimeOptions = Object.assign({}, options); - this.container.helpers = Object.assign(this.initialHelpers, options.helpers); - this.container.partials = Object.assign(this.initialPartials, options.partials); - this.container.decorators = Object.assign( - this.initialDecorators, - options.decorators as DecoratorsHash - ); - this.container.hooks = {}; - this.processedRootDecorators = false; - this.processedDecoratorsForProgram.clear(); - - if (this.compileOptions.data) { - this.runtimeOptions.data = initData(context, this.runtimeOptions.data); - } - - const keepHelperInHelpers = false; - moveHelperToHooks(this.container, 'helperMissing', keepHelperInHelpers); - moveHelperToHooks(this.container, 'blockHelperMissing', keepHelperInHelpers); - - if (!this.ast) { - this.ast = Handlebars.parse(this.template!); - } - - // The `defaultMain` function contains the default behavior: - // - // Generate a "program" function based on the root `Program` in the AST and - // call it. This will start the processing of all the child nodes in the - // AST. - const defaultMain: Handlebars.TemplateDelegate = (_context) => { - const prog = this.generateProgramFunction(this.ast!); - return prog(_context, this.runtimeOptions); - }; - - // Run any decorators that might exist on the root: - // - // The `defaultMain` function is passed in, and if there are no root - // decorators, or if the decorators chooses to do so, the same function is - // returned from `processDecorators` and the default behavior is retained. - // - // Alternatively any of the root decorators might call the `defaultMain` - // function themselves, process its return value, and return a completely - // different `main` function. - const main = this.processDecorators(this.ast, defaultMain); - this.processedRootDecorators = true; - - // Call the `main` function and add the result to the final output. - const result = main(this.context, options); - - if (main === defaultMain) { - this.output.push(result); - return this.output.join(''); - } else { - // We normally expect the return value of `main` to be a string. However, - // if a decorator is used to override the `defaultMain` function, the - // return value can be any type. To match the upstream handlebars project - // behavior, we want the result of rendering the template to be the - // literal value returned by the decorator. - // - // Since the output array in this case always will be empty, we just - // return that single value instead of attempting to join all the array - // elements as strings. - return result; - } - } - - // ********************************************** // - // *** Visitor AST Traversal Functions *** // - // ********************************************** // - - Program(program: hbs.AST.Program) { - this.blockParamNames.unshift(program.blockParams); - super.Program(program); - this.blockParamNames.shift(); - } - - MustacheStatement(mustache: hbs.AST.MustacheStatement) { - this.processStatementOrExpression(mustache); - } - - BlockStatement(block: hbs.AST.BlockStatement) { - this.processStatementOrExpression(block); - } - - PartialStatement(partial: hbs.AST.PartialStatement) { - this.invokePartial(partial); - } - - PartialBlockStatement(partial: hbs.AST.PartialBlockStatement) { - this.invokePartial(partial); - } - - // This space is intentionally left blank: We want to override the Visitor - // class implementation of this method, but since we handle decorators - // separately before traversing the nodes, we just want to make this a no-op. - DecoratorBlock(decorator: hbs.AST.DecoratorBlock) {} - - // This space is intentionally left blank: We want to override the Visitor - // class implementation of this method, but since we handle decorators - // separately before traversing the nodes, we just want to make this a no-op. - Decorator(decorator: hbs.AST.Decorator) {} - - SubExpression(sexpr: hbs.AST.SubExpression) { - this.processStatementOrExpression(sexpr); - } - - PathExpression(path: hbs.AST.PathExpression) { - const blockParamId = - !path.depth && !AST.helpers.scopedId(path) && this.blockParamIndex(path.parts[0]); - - let result; - if (blockParamId) { - result = this.lookupBlockParam(blockParamId, path); - } else if (path.data) { - result = this.lookupData(this.runtimeOptions!.data, path); - } else { - result = this.resolvePath(this.contexts[path.depth], path); - } - - this.output.push(result); - } - - ContentStatement(content: hbs.AST.ContentStatement) { - this.output.push(content.value); - } - - StringLiteral(string: hbs.AST.StringLiteral) { - this.output.push(string.value); - } - - NumberLiteral(number: hbs.AST.NumberLiteral) { - this.output.push(number.value); - } - - BooleanLiteral(bool: hbs.AST.BooleanLiteral) { - this.output.push(bool.value); - } - - UndefinedLiteral() { - this.output.push(undefined); - } - - NullLiteral() { - this.output.push(null); - } - - // ********************************************** // - // *** Visitor AST Helper Functions *** // - // ********************************************** // - - /** - * Special code for decorators, since they have to be executed ahead of time (before the wrapping program). - * So we have to look into the program AST body and see if it contains any decorators that we have to process - * before we can finish processing of the wrapping program. - */ - private processDecorators(program: hbs.AST.Program, prog: Handlebars.TemplateDelegate) { - if (!this.processedDecoratorsForProgram.has(program)) { - this.processedDecoratorsForProgram.add(program); - const props = {}; - for (const node of program.body) { - if (isDecorator(node)) { - prog = this.processDecorator(node, prog, props); - } - } - } - - return prog; - } - - private processDecorator( - decorator: hbs.AST.DecoratorBlock | hbs.AST.Decorator, - prog: Handlebars.TemplateDelegate, - props: Record - ) { - const options = this.setupDecoratorOptions(decorator); - - const result = this.container.lookupProperty( - this.container.decorators, - options.name - )(prog, props, this.container, options); - - return Object.assign(result || prog, props); - } - - private processStatementOrExpression(node: ProcessableNodeWithPathPartsOrLiteral) { - // Calling `transformLiteralToPath` has side-effects! - // It converts a node from type `ProcessableNodeWithPathPartsOrLiteral` to `ProcessableNodeWithPathParts` - transformLiteralToPath(node); - - switch (this.classifyNode(node as ProcessableNodeWithPathParts)) { - case kSimple: - this.processSimpleNode(node as ProcessableNodeWithPathParts); - break; - case kHelper: - this.processHelperNode(node as ProcessableNodeWithPathParts); - break; - case kAmbiguous: - this.processAmbiguousNode(node as ProcessableNodeWithPathParts); - break; - } - } - - // Liftet from lib/handlebars/compiler/compiler.js (original name: classifySexpr) - private classifyNode(node: { path: hbs.AST.PathExpression }): NodeType { - const isSimple = AST.helpers.simpleId(node.path); - const isBlockParam = isSimple && !!this.blockParamIndex(node.path.parts[0]); - - // a mustache is an eligible helper if: - // * its id is simple (a single part, not `this` or `..`) - let isHelper = !isBlockParam && AST.helpers.helperExpression(node); - - // if a mustache is an eligible helper but not a definite - // helper, it is ambiguous, and will be resolved in a later - // pass or at runtime. - let isEligible = !isBlockParam && (isHelper || isSimple); - - // if ambiguous, we can possibly resolve the ambiguity now - // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. - if (isEligible && !isHelper) { - const name = node.path.parts[0]; - const options = this.compileOptions; - if (options.knownHelpers && options.knownHelpers[name]) { - isHelper = true; - } else if (options.knownHelpersOnly) { - isEligible = false; - } - } - - if (isHelper) { - return kHelper; - } else if (isEligible) { - return kAmbiguous; - } else { - return kSimple; - } - } - - // Liftet from lib/handlebars/compiler/compiler.js - private blockParamIndex(name: string): [number, any] | undefined { - for (let depth = 0, len = this.blockParamNames.length; depth < len; depth++) { - const blockParams = this.blockParamNames[depth]; - const param = blockParams && indexOf(blockParams, name); - if (blockParams && param >= 0) { - return [depth, param]; - } - } - } - - // Looks up the value of `parts` on the given block param and pushes - // it onto the stack. - private lookupBlockParam(blockParamId: [number, any], path: hbs.AST.PathExpression) { - const value = this.blockParamValues[blockParamId[0]][blockParamId[1]]; - return this.resolvePath(value, path, 1); - } - - // Push the data lookup operator - private lookupData(data: any, path: hbs.AST.PathExpression) { - if (path.depth) { - data = this.container.data(data, path.depth); - } - - return this.resolvePath(data, path); - } - - private processSimpleNode(node: ProcessableNodeWithPathParts) { - const path = node.path; - // @ts-expect-error strict is not a valid property on PathExpression, but we used in the same way it's also used in the original handlebars - path.strict = true; - const result = this.resolveNodes(path)[0]; - const lambdaResult = this.container.lambda(result, this.context); - - if (isBlock(node)) { - this.blockValue(node, lambdaResult); - } else { - this.output.push(lambdaResult); - } - } - - // The purpose of this opcode is to take a block of the form - // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and - // replace it on the stack with the result of properly - // invoking blockHelperMissing. - private blockValue(node: hbs.AST.BlockStatement, value: any) { - const name = node.path.original; - const options = this.setupParams(node, name); - - const result = this.container.hooks.blockHelperMissing!.call(this.context, value, options); - - this.output.push(result); - } - - private processHelperNode(node: ProcessableNodeWithPathParts) { - const path = node.path; - const name = path.parts[0]; - - if (this.compileOptions.knownHelpers && this.compileOptions.knownHelpers[name]) { - this.invokeKnownHelper(node); - } else if (this.compileOptions.knownHelpersOnly) { - throw new Handlebars.Exception( - 'You specified knownHelpersOnly, but used the unknown helper ' + name, - node - ); - } else { - this.invokeHelper(node); - } - } - - // This operation is used when the helper is known to exist, - // so a `helperMissing` fallback is not required. - private invokeKnownHelper(node: ProcessableNodeWithPathParts) { - const name = node.path.parts[0]; - const helper = this.setupHelper(node, name); - // TypeScript: `helper.fn` might be `undefined` at this point, but to match the upstream behavior we call it without any guards - const result = helper.fn!.call(helper.context, ...helper.params, helper.options); - this.output.push(result); - } - - // Pops off the helper's parameters, invokes the helper, - // and pushes the helper's return value onto the stack. - // - // If the helper is not found, `helperMissing` is called. - private invokeHelper(node: ProcessableNodeWithPathParts) { - const path = node.path; - const name = path.original; - const isSimple = AST.helpers.simpleId(path); - const helper = this.setupHelper(node, name); - - const loc = isSimple && helper.fn ? node.loc : path.loc; - helper.fn = (isSimple && helper.fn) || this.resolveNodes(path)[0]; - - if (!helper.fn) { - if (this.compileOptions.strict) { - helper.fn = this.container.strict(helper.context, name, loc); - } else { - helper.fn = this.container.hooks.helperMissing; - } - } - - // TypeScript: `helper.fn` might be `undefined` at this point, but to match the upstream behavior we call it without any guards - const result = helper.fn!.call(helper.context, ...helper.params, helper.options); - - this.output.push(result); - } - - private invokePartial(partial: hbs.AST.PartialStatement | hbs.AST.PartialBlockStatement) { - const { params } = partial; - if (params.length > 1) { - throw new Handlebars.Exception( - `Unsupported number of partial arguments: ${params.length}`, - partial - ); - } - - const isDynamic = partial.name.type === 'SubExpression'; - const name = isDynamic - ? this.resolveNodes(partial.name).join('') - : (partial.name as hbs.AST.PathExpression).original; - - const options: AmbiguousHelperOptions & Handlebars.ResolvePartialOptions = this.setupParams( - partial, - name - ); - options.helpers = this.container.helpers; - options.partials = this.container.partials; - options.decorators = this.container.decorators; - - let partialBlock; - if ('fn' in options && options.fn !== noop) { - const { fn } = options; - const currentPartialBlock = options.data?.['partial-block']; - options.data = createFrame(options.data); - - // Wrapper function to get access to currentPartialBlock from the closure - partialBlock = options.data['partial-block'] = function partialBlockWrapper( - context: any, - wrapperOptions: { data?: Handlebars.HelperOptions['data'] } = {} - ) { - // Restore the partial-block from the closure for the execution of the block - // i.e. the part inside the block of the partial call. - wrapperOptions.data = createFrame(wrapperOptions.data); - wrapperOptions.data['partial-block'] = currentPartialBlock; - return fn(context, wrapperOptions); - }; - - if (fn.partials) { - options.partials = Object.assign({}, options.partials, fn.partials); - } - } - - let context = {}; - if (params.length === 0 && !this.compileOptions.explicitPartialContext) { - context = this.context; - } else if (params.length === 1) { - context = this.resolveNodes(params[0])[0]; - } - - if (Object.keys(options.hash).length > 0) { - // TODO: context can be an array, but maybe never when we have a hash??? - context = Object.assign({}, context, options.hash); - } - - const partialTemplate: Handlebars.Template | undefined = - this.container.partials[name] ?? - partialBlock ?? - Handlebars.VM.resolvePartial(undefined, undefined, options); - - if (partialTemplate === undefined) { - throw new Handlebars.Exception(`The partial ${name} could not be found`); - } - - let render; - if (typeof partialTemplate === 'string') { - render = this.env.compileAST(partialTemplate, this.compileOptions); - if (name in this.container.partials) { - this.container.partials[name] = render; - } - } else { - render = partialTemplate; - } - - let result = render(context, options); - - if ('indent' in partial) { - result = - partial.indent + - (this.compileOptions.preventIndent - ? result - : result.replace(/\n(?!$)/g, `\n${(partial as hbs.AST.PartialStatement).indent}`)); // indent each line, ignoring any trailing linebreak - } - - this.output.push(result); - } - - private processAmbiguousNode(node: ProcessableNodeWithPathParts) { - const name = node.path.parts[0]; - const helper = this.setupHelper(node, name); - let { fn: helperFn } = helper; - - const loc = helperFn ? node.loc : node.path.loc; - helperFn = helperFn ?? this.resolveNodes(node.path)[0]; - - if (helperFn === undefined) { - if (this.compileOptions.strict) { - helperFn = this.container.strict(helper.context, name, loc); - } else { - helperFn = - helper.context != null - ? this.container.lookupProperty(helper.context, name) - : helper.context; - if (helperFn == null) helperFn = this.container.hooks.helperMissing; - } - } - - const helperResult = - typeof helperFn === 'function' - ? helperFn.call(helper.context, ...helper.params, helper.options) - : helperFn; - - if (isBlock(node)) { - const result = helper.fn - ? helperResult - : this.container.hooks.blockHelperMissing!.call(this.context, helperResult, helper.options); - if (result != null) { - this.output.push(result); - } - } else { - if ( - (node as hbs.AST.MustacheStatement).escaped === false || - this.compileOptions.noEscape === true || - typeof helperResult !== 'string' - ) { - this.output.push(helperResult); - } else { - this.output.push(Handlebars.escapeExpression(helperResult)); - } - } - } - - private setupHelper(node: ProcessableNode, helperName: string): Helper { - return { - fn: this.container.lookupProperty(this.container.helpers, helperName), - context: this.context, - params: this.resolveNodes(node.params), - options: this.setupParams(node, helperName), - }; - } - - private setupDecoratorOptions(decorator: hbs.AST.Decorator | hbs.AST.DecoratorBlock) { - // TypeScript: The types indicate that `decorator.path` technically can be an `hbs.AST.Literal`. However, the upstream codebase always treats it as an `hbs.AST.PathExpression`, so we do too. - const name = (decorator.path as hbs.AST.PathExpression).original; - const options = toDecoratorOptions(this.setupParams(decorator, name)); - - if (decorator.params.length > 0) { - if (!this.processedRootDecorators) { - // When processing the root decorators, temporarily remove the root context so it's not accessible to the decorator - const context = this.contexts.shift(); - options.args = this.resolveNodes(decorator.params); - this.contexts.unshift(context); - } else { - options.args = this.resolveNodes(decorator.params); - } - } else { - options.args = []; - } - - return options; - } - - private setupParams(node: ProcessableBlockStatementNode, name: string): Handlebars.HelperOptions; - private setupParams(node: ProcessableStatementNode, name: string): NonBlockHelperOptions; - private setupParams(node: ProcessableNode, name: string): AmbiguousHelperOptions; - private setupParams(node: ProcessableNode, name: string): AmbiguousHelperOptions { - const options = { - name, - hash: this.getHash(node), - data: this.runtimeOptions!.data, - loc: { start: node.loc.start, end: node.loc.end }, - ...this.defaultHelperOptions, - }; - - if (isBlock(node)) { - (options as Handlebars.HelperOptions).fn = node.program - ? this.processDecorators(node.program, this.generateProgramFunction(node.program)) - : noop; - (options as Handlebars.HelperOptions).inverse = node.inverse - ? this.processDecorators(node.inverse, this.generateProgramFunction(node.inverse)) - : noop; - } - - return options; - } - - private generateProgramFunction(program: hbs.AST.Program) { - if (!program) return noop; - - const prog: Handlebars.TemplateDelegate = ( - nextContext: any, - runtimeOptions: ExtendedRuntimeOptions = {} - ) => { - runtimeOptions = Object.assign({}, runtimeOptions); - - // inherit data in blockParams from parent program - runtimeOptions.data = runtimeOptions.data || this.runtimeOptions!.data; - if (runtimeOptions.blockParams) { - runtimeOptions.blockParams = runtimeOptions.blockParams.concat( - this.runtimeOptions!.blockParams - ); - } - - // inherit partials from parent program - runtimeOptions.partials = runtimeOptions.partials || this.runtimeOptions!.partials; - - // stash parent program data - const tmpRuntimeOptions = this.runtimeOptions; - this.runtimeOptions = runtimeOptions; - const shiftContext = nextContext !== this.context; - if (shiftContext) this.contexts.unshift(nextContext); - this.blockParamValues.unshift(runtimeOptions.blockParams || []); - - // execute child program - const result = this.resolveNodes(program).join(''); - - // unstash parent program data - this.blockParamValues.shift(); - if (shiftContext) this.contexts.shift(); - this.runtimeOptions = tmpRuntimeOptions; - - // return result of child program - return result; - }; - - prog.blockParams = program.blockParams?.length ?? 0; - return prog; - } - - private getHash(statement: { hash?: hbs.AST.Hash }) { - const result: { [key: string]: any } = {}; - if (!statement.hash) return result; - for (const { key, value } of statement.hash.pairs) { - result[key] = this.resolveNodes(value)[0]; - } - return result; - } - - private resolvePath(obj: any, path: hbs.AST.PathExpression, index = 0) { - if (this.compileOptions.strict || this.compileOptions.assumeObjects) { - return this.strictLookup(obj, path); - } - - for (; index < path.parts.length; index++) { - if (obj == null) return; - obj = this.container.lookupProperty(obj, path.parts[index]); - } - - return obj; - } - - private strictLookup(obj: any, path: hbs.AST.PathExpression) { - // @ts-expect-error strict is not a valid property on PathExpression, but we used in the same way it's also used in the original handlebars - const requireTerminal = this.compileOptions.strict && path.strict; - const len = path.parts.length - (requireTerminal ? 1 : 0); - - for (let i = 0; i < len; i++) { - obj = this.container.lookupProperty(obj, path.parts[i]); - } - - if (requireTerminal) { - return this.container.strict(obj, path.parts[len], path.loc); - } else { - return obj; - } - } - - private resolveNodes(nodes: hbs.AST.Node | hbs.AST.Node[]): any[] { - const currentOutput = this.output; - this.output = []; - - if (Array.isArray(nodes)) { - this.acceptArray(nodes); - } else { - this.accept(nodes); - } - - const result = this.output; - - this.output = currentOutput; - - return result; - } - - private get context() { - return this.contexts[0]; - } -} - -// ********************************************** // -// *** Utilily Functions *** // -// ********************************************** // - -function isBlock(node: hbs.AST.Node): node is hbs.AST.BlockStatement { - return 'program' in node || 'inverse' in node; -} - -function isDecorator(node: hbs.AST.Node): node is hbs.AST.Decorator | hbs.AST.DecoratorBlock { - return node.type === 'Decorator' || node.type === 'DecoratorBlock'; -} - -function toDecoratorOptions(options: AmbiguousHelperOptions) { - // There's really no tests/documentation on this, but to match the upstream codebase we'll remove `lookupProperty` from the decorator context - delete (options as any).lookupProperty; - - return options as DecoratorOptions; -} - -function noop() { - return ''; -} - -// liftet from handlebars lib/handlebars/runtime.js -function initData(context: any, data: any) { - if (!data || !('root' in data)) { - data = data ? createFrame(data) : {}; - data.root = context; - } - return data; -} - -// liftet from handlebars lib/handlebars/compiler/compiler.js -function transformLiteralToPath(node: { path: hbs.AST.PathExpression | hbs.AST.Literal }) { - const pathIsLiteral = 'parts' in node.path === false; - - if (pathIsLiteral) { - const literal = node.path; - // @ts-expect-error: Not all `hbs.AST.Literal` sub-types has an `original` property, but that's ok, in that case we just want `undefined` - const original = literal.original; - // Casting to string here to make false and 0 literal values play nicely with the rest - // of the system. - node.path = { - type: 'PathExpression', - data: false, - depth: 0, - parts: [original + ''], - original: original + '', - loc: literal.loc, - }; - } -} +export const compileFnName: 'compile' | 'compileAST' = allowUnsafeEval() ? 'compile' : 'compileAST'; -function allowUnsafeEval() { - try { - new Function(); - return true; - } catch (e) { - return false; - } -} +export type { + DecoratorFunction, + ExtendedCompileOptions, + ExtendedRuntimeOptions, +} from './src/types'; diff --git a/packages/kbn-handlebars/src/__jest__/test_bench.ts b/packages/kbn-handlebars/src/__jest__/test_bench.ts index c1407734f4fbee..fa2626d11fbafc 100644 --- a/packages/kbn-handlebars/src/__jest__/test_bench.ts +++ b/packages/kbn-handlebars/src/__jest__/test_bench.ts @@ -3,12 +3,13 @@ * See `packages/kbn-handlebars/LICENSE` for more information. */ -import Handlebars, { - type DecoratorFunction, - type DecoratorsHash, - type ExtendedCompileOptions, - type ExtendedRuntimeOptions, -} from '../..'; +import Handlebars from '../..'; +import type { + DecoratorFunction, + DecoratorsHash, + ExtendedCompileOptions, + ExtendedRuntimeOptions, +} from '../types'; type CompileFns = 'compile' | 'compileAST'; const compileFns: CompileFns[] = ['compile', 'compileAST']; @@ -23,6 +24,7 @@ global.kbnHandlebarsEnv = null; interface TestOptions { beforeEach?: Function; + beforeRender?: Function; } export function expectTemplate(template: string, options?: TestOptions) { @@ -38,7 +40,6 @@ export function forEachCompileFunctionName( class HandlebarsTestBench { private template: string; private options: TestOptions; - private beforeRenderFn: Function = () => {}; private compileOptions?: ExtendedCompileOptions; private runtimeOptions?: ExtendedRuntimeOptions; private helpers: { [name: string]: Handlebars.HelperDelegate | undefined } = {}; @@ -51,11 +52,6 @@ class HandlebarsTestBench { this.options = options; } - beforeRender(fn: Function) { - this.beforeRenderFn = fn; - return this; - } - withCompileOptions(compileOptions?: ExtendedCompileOptions) { this.compileOptions = compileOptions; return this; @@ -158,16 +154,14 @@ class HandlebarsTestBench { private compileAndExecuteEval() { const renderEval = this.compileEval(); - const runtimeOptions: ExtendedRuntimeOptions = Object.assign( - { - helpers: this.helpers, - partials: this.partials, - decorators: this.decorators, - }, - this.runtimeOptions - ); + const runtimeOptions: ExtendedRuntimeOptions = { + helpers: this.helpers as Record, + partials: this.partials as Record, + decorators: this.decorators, + ...this.runtimeOptions, + }; - this.beforeRenderFn(); + this.execBeforeRender(); return renderEval(this.input, runtimeOptions); } @@ -175,16 +169,14 @@ class HandlebarsTestBench { private compileAndExecuteAST() { const renderAST = this.compileAST(); - const runtimeOptions: ExtendedRuntimeOptions = Object.assign( - { - helpers: this.helpers, - partials: this.partials, - decorators: this.decorators, - }, - this.runtimeOptions - ); + const runtimeOptions: ExtendedRuntimeOptions = { + helpers: this.helpers as Record, + partials: this.partials as Record, + decorators: this.decorators, + ...this.runtimeOptions, + }; - this.beforeRenderFn(); + this.execBeforeRender(); return renderAST(this.input, runtimeOptions); } @@ -199,6 +191,10 @@ class HandlebarsTestBench { return handlebarsEnv.compileAST(this.template, this.compileOptions); } + private execBeforeRender() { + this.options.beforeRender?.(); + } + private execBeforeEach() { if (this.options.beforeEach) { this.options.beforeEach(); diff --git a/packages/kbn-handlebars/src/handlebars.ts b/packages/kbn-handlebars/src/handlebars.ts new file mode 100644 index 00000000000000..91f6f33a6069e0 --- /dev/null +++ b/packages/kbn-handlebars/src/handlebars.ts @@ -0,0 +1,53 @@ +/* + * Elasticsearch B.V licenses this file to you under the MIT License. + * See `packages/kbn-handlebars/LICENSE` for more information. + */ + +// The handlebars module uses `export =`, so we should technically use `import Handlebars = require('handlebars')`, but Babel will not allow this: +// https://www.typescriptlang.org/docs/handbook/modules.html#export--and-import--require +import Handlebars from 'handlebars'; + +import type { ExtendedCompileOptions, ExtendedRuntimeOptions } from './types'; +import { ElasticHandlebarsVisitor } from './visitor'; + +const originalCreate = Handlebars.create; + +export { Handlebars }; + +/** + * Creates an isolated Handlebars environment. + * + * Each environment has its own helpers. + * This is only necessary for use cases that demand distinct helpers. + * Most use cases can use the root Handlebars environment directly. + * + * @returns A sandboxed/scoped version of the @kbn/handlebars module + */ +Handlebars.create = function (): typeof Handlebars { + const SandboxedHandlebars = originalCreate.call(Handlebars) as typeof Handlebars; + // When creating new Handlebars environments, ensure the custom compileAST function is present in the new environment as well + SandboxedHandlebars.compileAST = Handlebars.compileAST; + return SandboxedHandlebars; +}; + +/** + * Compiles the given Handlbars template without the use of `eval`. + * + * @returns A render function with the same API as the return value from the regular Handlebars `compile` function. + */ +Handlebars.compileAST = function ( + input: string | hbs.AST.Program, + options?: ExtendedCompileOptions +) { + if (input == null || (typeof input !== 'string' && input.type !== 'Program')) { + throw new Handlebars.Exception( + `You must pass a string or Handlebars AST to Handlebars.compileAST. You passed ${input}` + ); + } + + // If `Handlebars.compileAST` is reassigned, `this` will be undefined. + const visitor = new ElasticHandlebarsVisitor(this ?? Handlebars, input, options); + + return (context: any, runtimeOptions?: ExtendedRuntimeOptions) => + visitor.render(context, runtimeOptions); +}; diff --git a/packages/kbn-handlebars/src/symbols.ts b/packages/kbn-handlebars/src/symbols.ts new file mode 100644 index 00000000000000..85a8f2f311ab00 --- /dev/null +++ b/packages/kbn-handlebars/src/symbols.ts @@ -0,0 +1,8 @@ +/* + * Elasticsearch B.V licenses this file to you under the MIT License. + * See `packages/kbn-handlebars/LICENSE` for more information. + */ + +export const kHelper = Symbol('helper'); +export const kAmbiguous = Symbol('ambiguous'); +export const kSimple = Symbol('simple'); diff --git a/packages/kbn-handlebars/src/types.ts b/packages/kbn-handlebars/src/types.ts new file mode 100644 index 00000000000000..fa11a0172e0dc6 --- /dev/null +++ b/packages/kbn-handlebars/src/types.ts @@ -0,0 +1,136 @@ +/* + * Elasticsearch B.V licenses this file to you under the MIT License. + * See `packages/kbn-handlebars/LICENSE` for more information. + */ + +import { kHelper, kAmbiguous, kSimple } from './symbols'; + +/** + * A custom version of the Handlesbars module with an extra `compileAST` function and fixed typings. + */ +declare module 'handlebars' { + export function compileAST( + input: string | hbs.AST.Program, + options?: ExtendedCompileOptions + ): (context?: any, options?: ExtendedRuntimeOptions) => string; + + // -------------------------------------------------------- + // Override/Extend inherited types below that are incorrect + // -------------------------------------------------------- + + export interface TemplateDelegate { + (context?: T, options?: RuntimeOptions): string; // Override to ensure `context` is optional + blockParams?: number; // TODO: Can this really be optional? + partials?: any; // TODO: Narrow type to something better than any? + } + + export interface HelperOptions { + name: string; + loc: { start: hbs.AST.SourceLocation['start']; end: hbs.AST.SourceLocation['end'] }; + lookupProperty: LookupProperty; + } + + export interface HelperDelegate { + // eslint-disable-next-line @typescript-eslint/prefer-function-type + (...params: any[]): any; + } + + export function registerPartial(spec: { [name: string]: Handlebars.Template }): void; // Ensure `spec` object values can be strings +} + +export type NodeType = typeof kHelper | typeof kAmbiguous | typeof kSimple; + +type LookupProperty = (parent: { [name: string]: any }, propertyName: string) => T; + +export type ProcessableStatementNode = + | hbs.AST.MustacheStatement + | hbs.AST.PartialStatement + | hbs.AST.SubExpression; +export type ProcessableBlockStatementNode = hbs.AST.BlockStatement | hbs.AST.PartialBlockStatement; +export type ProcessableNode = ProcessableStatementNode | ProcessableBlockStatementNode; +export type ProcessableNodeWithPathParts = ProcessableNode & { path: hbs.AST.PathExpression }; +export type ProcessableNodeWithPathPartsOrLiteral = ProcessableNode & { + path: hbs.AST.PathExpression | hbs.AST.Literal; +}; + +export interface Helper { + fn?: Handlebars.HelperDelegate; + context: any[]; + params: any[]; + options: AmbiguousHelperOptions; +} + +export type NonBlockHelperOptions = Omit; +export type AmbiguousHelperOptions = Handlebars.HelperOptions | NonBlockHelperOptions; + +export interface DecoratorOptions extends Omit { + args?: any[]; +} + +/** + * Supported Handlebars compile options. + * + * This is a subset of all the compile options supported by the upstream + * Handlebars module. + */ +export type ExtendedCompileOptions = Pick< + CompileOptions, + | 'data' + | 'knownHelpers' + | 'knownHelpersOnly' + | 'noEscape' + | 'strict' + | 'assumeObjects' + | 'preventIndent' + | 'explicitPartialContext' +>; + +/** + * Supported Handlebars runtime options + * + * This is a subset of all the runtime options supported by the upstream + * Handlebars module. + */ +export type ExtendedRuntimeOptions = Pick< + RuntimeOptions, + 'data' | 'helpers' | 'partials' | 'decorators' | 'blockParams' +>; + +/** + * According to the [decorator docs]{@link https://github.com/handlebars-lang/handlebars.js/blob/4.x/docs/decorators-api.md}, + * a decorator will be called with a different set of arugments than what's actually happening in the upstream code. + * So here I assume that the docs are wrong and that the upstream code is correct. In reality, `context` is the last 4 + * documented arguments rolled into one object. + */ +export type DecoratorFunction = ( + prog: Handlebars.TemplateDelegate, + props: Record, + container: Container, + options: any +) => any; + +export interface HelpersHash { + [name: string]: Handlebars.HelperDelegate; +} + +export interface PartialsHash { + [name: string]: HandlebarsTemplateDelegate; +} + +export interface DecoratorsHash { + [name: string]: DecoratorFunction; +} + +export interface Container { + helpers: HelpersHash; + partials: PartialsHash; + decorators: DecoratorsHash; + strict: (obj: { [name: string]: any }, name: string, loc: hbs.AST.SourceLocation) => any; + lookupProperty: LookupProperty; + lambda: (current: any, context: any) => any; + data: (value: any, depth: number) => any; + hooks: { + helperMissing?: Handlebars.HelperDelegate; + blockHelperMissing?: Handlebars.HelperDelegate; + }; +} diff --git a/packages/kbn-handlebars/src/utils.ts b/packages/kbn-handlebars/src/utils.ts new file mode 100644 index 00000000000000..f55bd98abf0b30 --- /dev/null +++ b/packages/kbn-handlebars/src/utils.ts @@ -0,0 +1,69 @@ +/* + * Elasticsearch B.V licenses this file to you under the MIT License. + * See `packages/kbn-handlebars/LICENSE` for more information. + */ + +// @ts-expect-error: Could not find a declaration file for module +import { createFrame } from 'handlebars/dist/cjs/handlebars/utils'; + +import type { AmbiguousHelperOptions, DecoratorOptions } from './types'; + +export function isBlock(node: hbs.AST.Node): node is hbs.AST.BlockStatement { + return 'program' in node || 'inverse' in node; +} + +export function isDecorator( + node: hbs.AST.Node +): node is hbs.AST.Decorator | hbs.AST.DecoratorBlock { + return node.type === 'Decorator' || node.type === 'DecoratorBlock'; +} + +export function toDecoratorOptions(options: AmbiguousHelperOptions) { + // There's really no tests/documentation on this, but to match the upstream codebase we'll remove `lookupProperty` from the decorator context + delete (options as any).lookupProperty; + + return options as DecoratorOptions; +} + +export function noop() { + return ''; +} + +// liftet from handlebars lib/handlebars/runtime.js +export function initData(context: any, data: any) { + if (!data || !('root' in data)) { + data = data ? createFrame(data) : {}; + data.root = context; + } + return data; +} + +// liftet from handlebars lib/handlebars/compiler/compiler.js +export function transformLiteralToPath(node: { path: hbs.AST.PathExpression | hbs.AST.Literal }) { + const pathIsLiteral = 'parts' in node.path === false; + + if (pathIsLiteral) { + const literal = node.path; + // @ts-expect-error: Not all `hbs.AST.Literal` sub-types has an `original` property, but that's ok, in that case we just want `undefined` + const original = literal.original; + // Casting to string here to make false and 0 literal values play nicely with the rest + // of the system. + node.path = { + type: 'PathExpression', + data: false, + depth: 0, + parts: [original + ''], + original: original + '', + loc: literal.loc, + }; + } +} + +export function allowUnsafeEval() { + try { + new Function(); + return true; + } catch (e) { + return false; + } +} diff --git a/packages/kbn-handlebars/src/visitor.ts b/packages/kbn-handlebars/src/visitor.ts new file mode 100644 index 00000000000000..c5962f4beb4dbe --- /dev/null +++ b/packages/kbn-handlebars/src/visitor.ts @@ -0,0 +1,777 @@ +/* + * Elasticsearch B.V licenses this file to you under the MIT License. + * See `packages/kbn-handlebars/LICENSE` for more information. + */ + +import Handlebars from 'handlebars'; +import { + createProtoAccessControl, + resultIsAllowed, + // @ts-expect-error: Could not find a declaration file for module +} from 'handlebars/dist/cjs/handlebars/internal/proto-access'; +// @ts-expect-error: Could not find a declaration file for module +import AST from 'handlebars/dist/cjs/handlebars/compiler/ast'; +// @ts-expect-error: Could not find a declaration file for module +import { indexOf, createFrame } from 'handlebars/dist/cjs/handlebars/utils'; +// @ts-expect-error: Could not find a declaration file for module +import { moveHelperToHooks } from 'handlebars/dist/cjs/handlebars/helpers'; + +import type { + AmbiguousHelperOptions, + Container, + DecoratorFunction, + DecoratorsHash, + ExtendedCompileOptions, + ExtendedRuntimeOptions, + Helper, + HelpersHash, + NodeType, + NonBlockHelperOptions, + ProcessableBlockStatementNode, + ProcessableNode, + ProcessableNodeWithPathParts, + ProcessableNodeWithPathPartsOrLiteral, + ProcessableStatementNode, +} from './types'; +import { kAmbiguous, kHelper, kSimple } from './symbols'; +import { + initData, + isBlock, + isDecorator, + noop, + toDecoratorOptions, + transformLiteralToPath, +} from './utils'; + +export class ElasticHandlebarsVisitor extends Handlebars.Visitor { + private env: typeof Handlebars; + private contexts: any[] = []; + private output: any[] = []; + private template?: string; + private compileOptions: ExtendedCompileOptions; + private runtimeOptions?: ExtendedRuntimeOptions; + private blockParamNames: any[][] = []; + private blockParamValues: any[][] = []; + private ast?: hbs.AST.Program; + private container: Container; + private defaultHelperOptions: Pick; + private processedRootDecorators = false; // Root decorators should not have access to input arguments. This flag helps us detect them. + private processedDecoratorsForProgram = new Set(); // It's important that a given program node only has its decorators run once, we use this Map to keep track of them + + constructor( + env: typeof Handlebars, + input: string | hbs.AST.Program, + options: ExtendedCompileOptions = {} + ) { + super(); + + this.env = env; + + if (typeof input !== 'string' && input.type === 'Program') { + this.ast = input; + } else { + this.template = input as string; + } + + this.compileOptions = { data: true, ...options }; + this.compileOptions.knownHelpers = Object.assign( + Object.create(null), + { + helperMissing: true, + blockHelperMissing: true, + each: true, + if: true, + unless: true, + with: true, + log: true, + lookup: true, + }, + this.compileOptions.knownHelpers + ); + + const protoAccessControl = createProtoAccessControl({}); + + const container: Container = (this.container = { + helpers: {}, + partials: {}, + decorators: {}, + strict(obj, name, loc) { + if (!obj || !(name in obj)) { + throw new Handlebars.Exception('"' + name + '" not defined in ' + obj, { + loc, + } as hbs.AST.Node); + } + return container.lookupProperty(obj, name); + }, + // this function is lifted from the handlebars source and slightly modified (lib/handlebars/runtime.js) + lookupProperty(parent, propertyName) { + const result = parent[propertyName]; + if (result == null) { + return result; + } + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return result; + } + + if (resultIsAllowed(result, protoAccessControl, propertyName)) { + return result; + } + return undefined; + }, + // this function is lifted from the handlebars source and slightly modified (lib/handlebars/runtime.js) + lambda(current, context) { + return typeof current === 'function' ? current.call(context) : current; + }, + data(value: any, depth: number) { + while (value && depth--) { + value = value._parent; + } + return value; + }, + hooks: {}, + }); + + this.defaultHelperOptions = { + lookupProperty: container.lookupProperty, + }; + } + + render(context: any, options: ExtendedRuntimeOptions = {}): string { + this.contexts = [context]; + this.output = []; + this.runtimeOptions = { ...options }; + this.container.helpers = { + ...this.env.helpers, + ...(options.helpers as HelpersHash), + }; + this.container.partials = { ...this.env.partials, ...options.partials }; + this.container.decorators = { + ...(this.env.decorators as DecoratorsHash), + ...(options.decorators as DecoratorsHash), + }; + this.container.hooks = {}; + this.processedRootDecorators = false; + this.processedDecoratorsForProgram.clear(); + + if (this.compileOptions.data) { + this.runtimeOptions.data = initData(context, this.runtimeOptions.data); + } + + const keepHelperInHelpers = false; + moveHelperToHooks(this.container, 'helperMissing', keepHelperInHelpers); + moveHelperToHooks(this.container, 'blockHelperMissing', keepHelperInHelpers); + + if (!this.ast) { + this.ast = Handlebars.parse(this.template!); + } + + // The `defaultMain` function contains the default behavior: + // + // Generate a "program" function based on the root `Program` in the AST and + // call it. This will start the processing of all the child nodes in the + // AST. + const defaultMain: Handlebars.TemplateDelegate = (_context) => { + const prog = this.generateProgramFunction(this.ast!); + return prog(_context, this.runtimeOptions); + }; + + // Run any decorators that might exist on the root: + // + // The `defaultMain` function is passed in, and if there are no root + // decorators, or if the decorators chooses to do so, the same function is + // returned from `processDecorators` and the default behavior is retained. + // + // Alternatively any of the root decorators might call the `defaultMain` + // function themselves, process its return value, and return a completely + // different `main` function. + const main = this.processDecorators(this.ast, defaultMain); + this.processedRootDecorators = true; + + // Call the `main` function and add the result to the final output. + const result = main(this.context, options); + + if (main === defaultMain) { + this.output.push(result); + return this.output.join(''); + } else { + // We normally expect the return value of `main` to be a string. However, + // if a decorator is used to override the `defaultMain` function, the + // return value can be any type. To match the upstream handlebars project + // behavior, we want the result of rendering the template to be the + // literal value returned by the decorator. + // + // Since the output array in this case always will be empty, we just + // return that single value instead of attempting to join all the array + // elements as strings. + return result; + } + } + + // ********************************************** // + // *** Visitor AST Traversal Functions *** // + // ********************************************** // + + Program(program: hbs.AST.Program) { + this.blockParamNames.unshift(program.blockParams); + super.Program(program); + this.blockParamNames.shift(); + } + + MustacheStatement(mustache: hbs.AST.MustacheStatement) { + this.processStatementOrExpression(mustache); + } + + BlockStatement(block: hbs.AST.BlockStatement) { + this.processStatementOrExpression(block); + } + + PartialStatement(partial: hbs.AST.PartialStatement) { + this.invokePartial(partial); + } + + PartialBlockStatement(partial: hbs.AST.PartialBlockStatement) { + this.invokePartial(partial); + } + + // This space is intentionally left blank: We want to override the Visitor + // class implementation of this method, but since we handle decorators + // separately before traversing the nodes, we just want to make this a no-op. + DecoratorBlock(decorator: hbs.AST.DecoratorBlock) {} + + // This space is intentionally left blank: We want to override the Visitor + // class implementation of this method, but since we handle decorators + // separately before traversing the nodes, we just want to make this a no-op. + Decorator(decorator: hbs.AST.Decorator) {} + + SubExpression(sexpr: hbs.AST.SubExpression) { + this.processStatementOrExpression(sexpr); + } + + PathExpression(path: hbs.AST.PathExpression) { + const blockParamId = + !path.depth && !AST.helpers.scopedId(path) && this.blockParamIndex(path.parts[0]); + + let result; + if (blockParamId) { + result = this.lookupBlockParam(blockParamId, path); + } else if (path.data) { + result = this.lookupData(this.runtimeOptions!.data, path); + } else { + result = this.resolvePath(this.contexts[path.depth], path); + } + + this.output.push(result); + } + + ContentStatement(content: hbs.AST.ContentStatement) { + this.output.push(content.value); + } + + StringLiteral(string: hbs.AST.StringLiteral) { + this.output.push(string.value); + } + + NumberLiteral(number: hbs.AST.NumberLiteral) { + this.output.push(number.value); + } + + BooleanLiteral(bool: hbs.AST.BooleanLiteral) { + this.output.push(bool.value); + } + + UndefinedLiteral() { + this.output.push(undefined); + } + + NullLiteral() { + this.output.push(null); + } + + // ********************************************** // + // *** Visitor AST Helper Functions *** // + // ********************************************** // + + /** + * Special code for decorators, since they have to be executed ahead of time (before the wrapping program). + * So we have to look into the program AST body and see if it contains any decorators that we have to process + * before we can finish processing of the wrapping program. + */ + private processDecorators(program: hbs.AST.Program, prog: Handlebars.TemplateDelegate) { + if (!this.processedDecoratorsForProgram.has(program)) { + this.processedDecoratorsForProgram.add(program); + const props = {}; + for (const node of program.body) { + if (isDecorator(node)) { + prog = this.processDecorator(node, prog, props); + } + } + } + + return prog; + } + + private processDecorator( + decorator: hbs.AST.DecoratorBlock | hbs.AST.Decorator, + prog: Handlebars.TemplateDelegate, + props: Record + ) { + const options = this.setupDecoratorOptions(decorator); + + const result = this.container.lookupProperty( + this.container.decorators, + options.name + )(prog, props, this.container, options); + + return Object.assign(result || prog, props); + } + + private processStatementOrExpression(node: ProcessableNodeWithPathPartsOrLiteral) { + // Calling `transformLiteralToPath` has side-effects! + // It converts a node from type `ProcessableNodeWithPathPartsOrLiteral` to `ProcessableNodeWithPathParts` + transformLiteralToPath(node); + + switch (this.classifyNode(node as ProcessableNodeWithPathParts)) { + case kSimple: + this.processSimpleNode(node as ProcessableNodeWithPathParts); + break; + case kHelper: + this.processHelperNode(node as ProcessableNodeWithPathParts); + break; + case kAmbiguous: + this.processAmbiguousNode(node as ProcessableNodeWithPathParts); + break; + } + } + + // Liftet from lib/handlebars/compiler/compiler.js (original name: classifySexpr) + private classifyNode(node: { path: hbs.AST.PathExpression }): NodeType { + const isSimple = AST.helpers.simpleId(node.path); + const isBlockParam = isSimple && !!this.blockParamIndex(node.path.parts[0]); + + // a mustache is an eligible helper if: + // * its id is simple (a single part, not `this` or `..`) + let isHelper = !isBlockParam && AST.helpers.helperExpression(node); + + // if a mustache is an eligible helper but not a definite + // helper, it is ambiguous, and will be resolved in a later + // pass or at runtime. + let isEligible = !isBlockParam && (isHelper || isSimple); + + // if ambiguous, we can possibly resolve the ambiguity now + // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. + if (isEligible && !isHelper) { + const name = node.path.parts[0]; + const options = this.compileOptions; + if (options.knownHelpers && options.knownHelpers[name]) { + isHelper = true; + } else if (options.knownHelpersOnly) { + isEligible = false; + } + } + + if (isHelper) { + return kHelper; + } else if (isEligible) { + return kAmbiguous; + } else { + return kSimple; + } + } + + // Liftet from lib/handlebars/compiler/compiler.js + private blockParamIndex(name: string): [number, any] | undefined { + for (let depth = 0, len = this.blockParamNames.length; depth < len; depth++) { + const blockParams = this.blockParamNames[depth]; + const param = blockParams && indexOf(blockParams, name); + if (blockParams && param >= 0) { + return [depth, param]; + } + } + } + + // Looks up the value of `parts` on the given block param and pushes + // it onto the stack. + private lookupBlockParam(blockParamId: [number, any], path: hbs.AST.PathExpression) { + const value = this.blockParamValues[blockParamId[0]][blockParamId[1]]; + return this.resolvePath(value, path, 1); + } + + // Push the data lookup operator + private lookupData(data: any, path: hbs.AST.PathExpression) { + if (path.depth) { + data = this.container.data(data, path.depth); + } + + return this.resolvePath(data, path); + } + + private processSimpleNode(node: ProcessableNodeWithPathParts) { + const path = node.path; + // @ts-expect-error strict is not a valid property on PathExpression, but we used in the same way it's also used in the original handlebars + path.strict = true; + const result = this.resolveNodes(path)[0]; + const lambdaResult = this.container.lambda(result, this.context); + + if (isBlock(node)) { + this.blockValue(node, lambdaResult); + } else { + this.output.push(lambdaResult); + } + } + + // The purpose of this opcode is to take a block of the form + // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and + // replace it on the stack with the result of properly + // invoking blockHelperMissing. + private blockValue(node: hbs.AST.BlockStatement, value: any) { + const name = node.path.original; + const options = this.setupParams(node, name); + + const result = this.container.hooks.blockHelperMissing!.call(this.context, value, options); + + this.output.push(result); + } + + private processHelperNode(node: ProcessableNodeWithPathParts) { + const path = node.path; + const name = path.parts[0]; + + if (this.compileOptions.knownHelpers && this.compileOptions.knownHelpers[name]) { + this.invokeKnownHelper(node); + } else if (this.compileOptions.knownHelpersOnly) { + throw new Handlebars.Exception( + 'You specified knownHelpersOnly, but used the unknown helper ' + name, + node + ); + } else { + this.invokeHelper(node); + } + } + + // This operation is used when the helper is known to exist, + // so a `helperMissing` fallback is not required. + private invokeKnownHelper(node: ProcessableNodeWithPathParts) { + const name = node.path.parts[0]; + const helper = this.setupHelper(node, name); + // TypeScript: `helper.fn` might be `undefined` at this point, but to match the upstream behavior we call it without any guards + const result = helper.fn!.call(helper.context, ...helper.params, helper.options); + this.output.push(result); + } + + // Pops off the helper's parameters, invokes the helper, + // and pushes the helper's return value onto the stack. + // + // If the helper is not found, `helperMissing` is called. + private invokeHelper(node: ProcessableNodeWithPathParts) { + const path = node.path; + const name = path.original; + const isSimple = AST.helpers.simpleId(path); + const helper = this.setupHelper(node, name); + + const loc = isSimple && helper.fn ? node.loc : path.loc; + helper.fn = (isSimple && helper.fn) || this.resolveNodes(path)[0]; + + if (!helper.fn) { + if (this.compileOptions.strict) { + helper.fn = this.container.strict(helper.context, name, loc); + } else { + helper.fn = this.container.hooks.helperMissing; + } + } + + // TypeScript: `helper.fn` might be `undefined` at this point, but to match the upstream behavior we call it without any guards + const result = helper.fn!.call(helper.context, ...helper.params, helper.options); + + this.output.push(result); + } + + private invokePartial(partial: hbs.AST.PartialStatement | hbs.AST.PartialBlockStatement) { + const { params } = partial; + if (params.length > 1) { + throw new Handlebars.Exception( + `Unsupported number of partial arguments: ${params.length}`, + partial + ); + } + + const isDynamic = partial.name.type === 'SubExpression'; + const name = isDynamic + ? this.resolveNodes(partial.name).join('') + : (partial.name as hbs.AST.PathExpression).original; + + const options: AmbiguousHelperOptions & Handlebars.ResolvePartialOptions = this.setupParams( + partial, + name + ); + options.helpers = this.container.helpers; + options.partials = this.container.partials; + options.decorators = this.container.decorators; + + let partialBlock; + if ('fn' in options && options.fn !== noop) { + const { fn } = options; + const currentPartialBlock = options.data?.['partial-block']; + options.data = createFrame(options.data); + + // Wrapper function to get access to currentPartialBlock from the closure + partialBlock = options.data['partial-block'] = function partialBlockWrapper( + context: any, + wrapperOptions: { data?: Handlebars.HelperOptions['data'] } = {} + ) { + // Restore the partial-block from the closure for the execution of the block + // i.e. the part inside the block of the partial call. + wrapperOptions.data = createFrame(wrapperOptions.data); + wrapperOptions.data['partial-block'] = currentPartialBlock; + return fn(context, wrapperOptions); + }; + + if (fn.partials) { + options.partials = { ...options.partials, ...fn.partials }; + } + } + + let context = {}; + if (params.length === 0 && !this.compileOptions.explicitPartialContext) { + context = this.context; + } else if (params.length === 1) { + context = this.resolveNodes(params[0])[0]; + } + + if (Object.keys(options.hash).length > 0) { + // TODO: context can be an array, but maybe never when we have a hash??? + context = Object.assign({}, context, options.hash); + } + + const partialTemplate: Handlebars.Template | undefined = + this.container.partials[name] ?? + partialBlock ?? + Handlebars.VM.resolvePartial(undefined, undefined, options); + + if (partialTemplate === undefined) { + throw new Handlebars.Exception(`The partial ${name} could not be found`); + } + + let render; + if (typeof partialTemplate === 'string') { + render = this.env.compileAST(partialTemplate, this.compileOptions); + if (name in this.container.partials) { + this.container.partials[name] = render; + } + } else { + render = partialTemplate; + } + + let result = render(context, options); + + if ('indent' in partial) { + result = + partial.indent + + (this.compileOptions.preventIndent + ? result + : result.replace(/\n(?!$)/g, `\n${partial.indent}`)); // indent each line, ignoring any trailing linebreak + } + + this.output.push(result); + } + + private processAmbiguousNode(node: ProcessableNodeWithPathParts) { + const name = node.path.parts[0]; + const helper = this.setupHelper(node, name); + let { fn: helperFn } = helper; + + const loc = helperFn ? node.loc : node.path.loc; + helperFn = helperFn ?? this.resolveNodes(node.path)[0]; + + if (helperFn === undefined) { + if (this.compileOptions.strict) { + helperFn = this.container.strict(helper.context, name, loc); + } else { + helperFn = + helper.context != null + ? this.container.lookupProperty(helper.context, name) + : helper.context; + if (helperFn == null) helperFn = this.container.hooks.helperMissing; + } + } + + const helperResult = + typeof helperFn === 'function' + ? helperFn.call(helper.context, ...helper.params, helper.options) + : helperFn; + + if (isBlock(node)) { + const result = helper.fn + ? helperResult + : this.container.hooks.blockHelperMissing!.call(this.context, helperResult, helper.options); + if (result != null) { + this.output.push(result); + } + } else { + if ( + (node as hbs.AST.MustacheStatement).escaped === false || + this.compileOptions.noEscape === true || + typeof helperResult !== 'string' + ) { + this.output.push(helperResult); + } else { + this.output.push(Handlebars.escapeExpression(helperResult)); + } + } + } + + private setupHelper(node: ProcessableNode, helperName: string): Helper { + return { + fn: this.container.lookupProperty(this.container.helpers, helperName), + context: this.context, + params: this.resolveNodes(node.params), + options: this.setupParams(node, helperName), + }; + } + + private setupDecoratorOptions(decorator: hbs.AST.Decorator | hbs.AST.DecoratorBlock) { + // TypeScript: The types indicate that `decorator.path` technically can be an `hbs.AST.Literal`. However, the upstream codebase always treats it as an `hbs.AST.PathExpression`, so we do too. + const name = (decorator.path as hbs.AST.PathExpression).original; + const options = toDecoratorOptions(this.setupParams(decorator, name)); + + if (decorator.params.length > 0) { + if (!this.processedRootDecorators) { + // When processing the root decorators, temporarily remove the root context so it's not accessible to the decorator + const context = this.contexts.shift(); + options.args = this.resolveNodes(decorator.params); + this.contexts.unshift(context); + } else { + options.args = this.resolveNodes(decorator.params); + } + } else { + options.args = []; + } + + return options; + } + + private setupParams(node: ProcessableBlockStatementNode, name: string): Handlebars.HelperOptions; + private setupParams(node: ProcessableStatementNode, name: string): NonBlockHelperOptions; + private setupParams(node: ProcessableNode, name: string): AmbiguousHelperOptions; + private setupParams(node: ProcessableNode, name: string): AmbiguousHelperOptions { + const options = { + name, + hash: this.getHash(node), + data: this.runtimeOptions!.data, + loc: { start: node.loc.start, end: node.loc.end }, + ...this.defaultHelperOptions, + }; + + if (isBlock(node)) { + (options as Handlebars.HelperOptions).fn = node.program + ? this.processDecorators(node.program, this.generateProgramFunction(node.program)) + : noop; + (options as Handlebars.HelperOptions).inverse = node.inverse + ? this.processDecorators(node.inverse, this.generateProgramFunction(node.inverse)) + : noop; + } + + return options; + } + + private generateProgramFunction(program: hbs.AST.Program) { + if (!program) return noop; + + const prog: Handlebars.TemplateDelegate = ( + nextContext: any, + runtimeOptions: ExtendedRuntimeOptions = {} + ) => { + runtimeOptions = { ...runtimeOptions }; + + // inherit data in blockParams from parent program + runtimeOptions.data = runtimeOptions.data || this.runtimeOptions!.data; + if (runtimeOptions.blockParams) { + runtimeOptions.blockParams = runtimeOptions.blockParams.concat( + this.runtimeOptions!.blockParams + ); + } + + // inherit partials from parent program + runtimeOptions.partials = runtimeOptions.partials || this.runtimeOptions!.partials; + + // stash parent program data + const tmpRuntimeOptions = this.runtimeOptions; + this.runtimeOptions = runtimeOptions; + const shiftContext = nextContext !== this.context; + if (shiftContext) this.contexts.unshift(nextContext); + this.blockParamValues.unshift(runtimeOptions.blockParams || []); + + // execute child program + const result = this.resolveNodes(program).join(''); + + // unstash parent program data + this.blockParamValues.shift(); + if (shiftContext) this.contexts.shift(); + this.runtimeOptions = tmpRuntimeOptions; + + // return result of child program + return result; + }; + + prog.blockParams = program.blockParams?.length ?? 0; + return prog; + } + + private getHash(statement: { hash?: hbs.AST.Hash }) { + const result: { [key: string]: any } = {}; + if (!statement.hash) return result; + for (const { key, value } of statement.hash.pairs) { + result[key] = this.resolveNodes(value)[0]; + } + return result; + } + + private resolvePath(obj: any, path: hbs.AST.PathExpression, index = 0) { + if (this.compileOptions.strict || this.compileOptions.assumeObjects) { + return this.strictLookup(obj, path); + } + + for (; index < path.parts.length; index++) { + if (obj == null) return; + obj = this.container.lookupProperty(obj, path.parts[index]); + } + + return obj; + } + + private strictLookup(obj: any, path: hbs.AST.PathExpression) { + // @ts-expect-error strict is not a valid property on PathExpression, but we used in the same way it's also used in the original handlebars + const requireTerminal = this.compileOptions.strict && path.strict; + const len = path.parts.length - (requireTerminal ? 1 : 0); + + for (let i = 0; i < len; i++) { + obj = this.container.lookupProperty(obj, path.parts[i]); + } + + if (requireTerminal) { + return this.container.strict(obj, path.parts[len], path.loc); + } else { + return obj; + } + } + + private resolveNodes(nodes: hbs.AST.Node | hbs.AST.Node[]): any[] { + const currentOutput = this.output; + this.output = []; + + if (Array.isArray(nodes)) { + this.acceptArray(nodes); + } else { + this.accept(nodes); + } + + const result = this.output; + + this.output = currentOutput; + + return result; + } + + private get context() { + return this.contexts[0]; + } +} diff --git a/packages/kbn-import-locator/import_locator.ts b/packages/kbn-import-locator/import_locator.ts index 053fbc48a354a3..2cadc2a64c06a6 100644 --- a/packages/kbn-import-locator/import_locator.ts +++ b/packages/kbn-import-locator/import_locator.ts @@ -30,9 +30,9 @@ export class ImportLocator { } const imports = new Set(); - const queue: Ts.Node[] = [ - Ts.createSourceFile(path, strippedContent, Ts.ScriptTarget.Latest, true), - ]; + const sourceFile = Ts.createSourceFile(path, strippedContent, Ts.ScriptTarget.Latest, true); + + const queue: Ts.Node[] = [sourceFile]; const addNodeToQueue = (n: Ts.Node) => { queue.push(n); }; diff --git a/packages/kbn-import-locator/strip_source_code.ts b/packages/kbn-import-locator/strip_source_code.ts index f12810970c49b3..68944d216b43fc 100644 --- a/packages/kbn-import-locator/strip_source_code.ts +++ b/packages/kbn-import-locator/strip_source_code.ts @@ -35,31 +35,30 @@ import { SyntaxKind } from 'typescript'; import type { Scanner } from 'typescript'; +const TYPE_IMPORT_COMMENT_RE = /\{(.*import.*\(.*["'].*)\}/g; + export function stripSourceCode(scanner: Scanner, contents: string): string { scanner.setText(contents); let token = scanner.scan(); - const statements = []; + const statements: string[] = []; let start = null; while (token !== SyntaxKind.EndOfFileToken) { const potentialStart = scanner.getStartPos(); switch (token) { case SyntaxKind.MultiLineCommentTrivia: case SyntaxKind.SingleLineCommentTrivia: { - const isMultiLineCommentTrivia = token === SyntaxKind.MultiLineCommentTrivia; - const start = potentialStart + 2; + const isMultiline = token === SyntaxKind.MultiLineCommentTrivia; + const start = potentialStart; token = scanner.scan(); - const end = scanner.getStartPos() - (isMultiLineCommentTrivia ? 2 : 0); - const comment = contents.substring(start, end).trim(); - if (comment === 'nx-ignore-next-line') { - // reading till the end of the line - while (token === SyntaxKind.WhitespaceTrivia || token === SyntaxKind.NewLineTrivia) { - token = scanner.scan(); - } + if (!isMultiline) { + break; + } - // ignore next line - while (token !== SyntaxKind.NewLineTrivia && token !== SyntaxKind.EndOfFileToken) { - token = scanner.scan(); - } + const end = scanner.getStartPos(); + const comment = contents.substring(start, end); + // preserve multi-line comments which import types + for (const match of comment.matchAll(TYPE_IMPORT_COMMENT_RE)) { + statements.push(match[1]); } break; } diff --git a/packages/kbn-import-resolver/src/__fixtures__/packages/box/kibana.jsonc b/packages/kbn-import-resolver/src/__fixtures__/packages/box/kibana.jsonc new file mode 100644 index 00000000000000..77c5dd64e45b5c --- /dev/null +++ b/packages/kbn-import-resolver/src/__fixtures__/packages/box/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "id": "@kbn/box", + "type": "shared-common", + "description": "test fixture", + "devOnly": false, + "owner": "@elastic/kibana-operations", +} diff --git a/packages/kbn-import-resolver/src/__fixtures__/src/bar/kibana.jsonc b/packages/kbn-import-resolver/src/__fixtures__/src/bar/kibana.jsonc new file mode 100644 index 00000000000000..c60de4be4ba433 --- /dev/null +++ b/packages/kbn-import-resolver/src/__fixtures__/src/bar/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "id": "@kbn/bar", + "type": "shared-common", + "description": "test fixture", + "devOnly": false, + "owner": "@elastic/kibana-operations", +} diff --git a/packages/kbn-import-resolver/src/import_resolver.ts b/packages/kbn-import-resolver/src/import_resolver.ts index 222350bebb38c1..2ad76e9b5a7eb7 100644 --- a/packages/kbn-import-resolver/src/import_resolver.ts +++ b/packages/kbn-import-resolver/src/import_resolver.ts @@ -7,12 +7,10 @@ */ import Path from 'path'; -import Fs from 'fs'; import Resolve from 'resolve'; -import { readPackageManifest, type KibanaPackageManifest } from '@kbn/repo-packages'; import { REPO_ROOT } from '@kbn/repo-info'; -import { readPackageMap, PackageMap } from '@kbn/repo-packages'; +import { getPackages, type Package } from '@kbn/repo-packages'; import { safeStat, readFileSync } from './helpers/fs'; import { ResolveResult } from './resolve_result'; @@ -22,21 +20,8 @@ import { memoize } from './helpers/memoize'; const NODE_MODULE_SEG = Path.sep + 'node_modules' + Path.sep; export class ImportResolver { - static create(repoRoot: string) { - const pkgMap = readPackageMap(); - - const manifests = new Map( - Array.from(pkgMap.entries()).flatMap(([id, repoRelPath]) => { - const manifestPath = Path.resolve(repoRoot, repoRelPath, 'kibana.jsonc'); - if (!Fs.existsSync(manifestPath)) { - return []; - } - - return [[id, readPackageManifest(manifestPath)] as const]; - }) - ); - - return new ImportResolver(repoRoot, pkgMap, manifests); + static create(repoRoot: string, packages: Package[] = getPackages(repoRoot)) { + return new ImportResolver(repoRoot, new Map(packages.map((p) => [p.id, p]))); } private safeStat = memoize(safeStat); @@ -69,32 +54,33 @@ export class ImportResolver { * Map of package ids to normalized root-relative directories * for each package */ - private readonly pkgMap: PackageMap, - /** - * Map of package ids to pkg manifests, if there is no manifest it is - * assumed to be a legacy plugin - */ - private readonly pkgManifests: Map + private readonly pkgsById: Map ) { - // invert the pkgMap, we will update this map with new results as we determine them. - this._dirToPkgId = new Map(Array.from(this.pkgMap).map(([k, v]) => [v, k])); + this._dirToPkg = new Map( + Array.from(this.pkgsById.values()).map((p) => [p.normalizedRepoRelativeDir, p]) + ); } - private readonly _dirToPkgId: Map; - private pkgIdForDir(dir: string): string | null { - const cached = this._dirToPkgId.get(dir); + /** + * map of repoRels and the packages they point to or are contained within. + * This map is initially populated with the position of the packages, and + * from then on serves as a cache for `pkgForDir(dir)` + */ + private readonly _dirToPkg: Map; + private pkgForDir(dir: string): Package | null { + const cached = this._dirToPkg.get(dir); if (cached !== undefined) { return cached; } const parent = Path.dirname(dir); if (parent === '.') { - this._dirToPkgId.set(dir, null); + this._dirToPkg.set(dir, null); return null; } - const pkgId = this.pkgIdForDir(parent); - this._dirToPkgId.set(dir, pkgId); + const pkgId = this.pkgForDir(parent); + this._dirToPkg.set(dir, pkgId); return pkgId; } @@ -104,7 +90,7 @@ export class ImportResolver { return null; } - return this.pkgIdForDir(Path.dirname(relative)); + return this.pkgForDir(Path.dirname(relative))?.id ?? null; } getPackageManifestForPath(path: string) { @@ -113,20 +99,15 @@ export class ImportResolver { } getAbsolutePackageDir(pkgId: string) { - const dir = this.pkgMap.get(pkgId); - return dir ? Path.resolve(this.cwd, dir) : null; + return this.pkgsById.get(pkgId)?.directory ?? null; } - /** - * Is the package a bazel package? - * @deprecated - */ - isBazelPackage(pkgId: string) { - return !!this.getPkgManifest(pkgId); + isRepoPkg(pkgId: string) { + return this.pkgsById.has(pkgId); } getPkgManifest(pkgId: string) { - return this.pkgManifests.get(pkgId); + return this.pkgsById.get(pkgId)?.manifest; } private shouldIgnore(req: string): boolean { @@ -274,17 +255,15 @@ export class ImportResolver { if (req[0] !== '.') { const parts = req.split('/'); const pkgId = parts[0].startsWith('@') ? `${parts[0]}/${parts[1]}` : `${parts[0]}`; - if (this.pkgMap.has(pkgId)) { - const pkgDir = this.getAbsolutePackageDir(pkgId); - if (pkgDir) { - return this.resolve( - `./${Path.relative( - dirname, - parts.length > 2 ? Path.resolve(pkgDir, ...parts.slice(2)) : pkgDir - )}`, - dirname - ); - } + const pkgDir = this.getAbsolutePackageDir(pkgId); + if (pkgDir) { + return this.resolve( + `./${Path.relative( + dirname, + parts.length > 2 ? Path.resolve(pkgDir, ...parts.slice(2)) : pkgDir + )}`, + dirname + ); } } diff --git a/packages/kbn-import-resolver/src/integration_tests/import_resolver.test.ts b/packages/kbn-import-resolver/src/integration_tests/import_resolver.test.ts index 4fbedcaf385109..e26e37e1495e58 100644 --- a/packages/kbn-import-resolver/src/integration_tests/import_resolver.test.ts +++ b/packages/kbn-import-resolver/src/integration_tests/import_resolver.test.ts @@ -7,6 +7,7 @@ */ import Path from 'path'; +import { Package } from '@kbn/repo-packages'; import { createAbsolutePathSerializer } from '@kbn/jest-serializers'; import { ImportResolver } from '../import_resolver'; @@ -15,40 +16,17 @@ const FIXTURES_DIR = Path.resolve(__dirname, '../__fixtures__'); expect.addSnapshotSerializer(createAbsolutePathSerializer()); -const resolver = new ImportResolver( - FIXTURES_DIR, - new Map([ - ['@synth/bar', 'src/bar'], - ['@pkg/box', 'packages/box'], - ]), - new Map([ - [ - '@pkg/box', - { - id: '@pkg/box', - type: 'shared-common', - owner: [], - }, - ], - ]) -); +const resolver = ImportResolver.create(FIXTURES_DIR, [ + Package.fromManifest(FIXTURES_DIR, Path.resolve(FIXTURES_DIR, 'packages/box/kibana.jsonc')), + Package.fromManifest(FIXTURES_DIR, Path.resolve(FIXTURES_DIR, 'src/bar/kibana.jsonc')), +]); describe('#resolve()', () => { - it('resolves imports to synth packages', () => { - expect(resolver.resolve('@synth/bar', FIXTURES_DIR)).toMatchInlineSnapshot(` - Object { - "absolute": /packages/kbn-import-resolver/src/__fixtures__/src/bar/index.js, - "pkgId": "@synth/bar", - "type": "file", - } - `); - }); - - it('resolves imports to bazel packages', () => { - expect(resolver.resolve('@pkg/box', FIXTURES_DIR)).toMatchInlineSnapshot(` + it('resolves imports to packages', () => { + expect(resolver.resolve('@kbn/box', FIXTURES_DIR)).toMatchInlineSnapshot(` Object { "absolute": /packages/kbn-import-resolver/src/__fixtures__/packages/box/index.js, - "pkgId": "@pkg/box", + "pkgId": "@kbn/box", "type": "file", } `); @@ -77,7 +55,7 @@ describe('#resolve()', () => { expect(resolver.resolve('./bar', Path.resolve(FIXTURES_DIR, 'src/bar'))).toMatchInlineSnapshot(` Object { "absolute": /packages/kbn-import-resolver/src/__fixtures__/src/bar/bar.js, - "pkgId": "@synth/bar", + "pkgId": "@kbn/bar", "type": "file", } `); @@ -131,16 +109,14 @@ describe('#resolve()', () => { }); describe('#getPackageIdForPath()', () => { - it('returns package id for bazel package', () => { + it('returns package id for package', () => { expect( resolver.getPackageIdForPath(Path.resolve(FIXTURES_DIR, 'packages/box/index.js')) - ).toMatchInlineSnapshot(`"@pkg/box"`); - }); + ).toMatchInlineSnapshot(`"@kbn/box"`); - it('returns package id for synth package', () => { expect( resolver.getPackageIdForPath(Path.resolve(FIXTURES_DIR, 'src/bar/index.js')) - ).toMatchInlineSnapshot(`"@synth/bar"`); + ).toMatchInlineSnapshot(`"@kbn/bar"`); }); it('returns null for files outside of a package', () => { @@ -151,13 +127,11 @@ describe('#getPackageIdForPath()', () => { }); describe('#getAbsolutePackageDir()', () => { - it('returns path for bazel package', () => { - expect(resolver.getAbsolutePackageDir('@pkg/box')).toMatchInlineSnapshot( + it('returns path for package', () => { + expect(resolver.getAbsolutePackageDir('@kbn/box')).toMatchInlineSnapshot( `/packages/kbn-import-resolver/src/__fixtures__/packages/box` ); - }); - it('returns path for synth package', () => { - expect(resolver.getAbsolutePackageDir('@synth/bar')).toMatchInlineSnapshot( + expect(resolver.getAbsolutePackageDir('@kbn/bar')).toMatchInlineSnapshot( `/packages/kbn-import-resolver/src/__fixtures__/src/bar` ); }); @@ -168,18 +142,3 @@ describe('#getAbsolutePackageDir()', () => { expect(resolver.getAbsolutePackageDir('@kbn/invalid')).toMatchInlineSnapshot(`null`); }); }); - -describe('#isBazelPackage()', () => { - it('returns true for bazel packages', () => { - expect(resolver.isBazelPackage('@pkg/box')).toBe(true); - }); - it('returns false for synth packages', () => { - expect(resolver.isBazelPackage('@synth/bar')).toBe(false); - }); - it('returns false for node_modules packages', () => { - expect(resolver.isBazelPackage('foo')).toBe(false); - }); - it('returns false for unknown packages', () => { - expect(resolver.isBazelPackage('@kbn/invalid')).toBe(false); - }); -}); diff --git a/packages/kbn-json-ast/README.md b/packages/kbn-json-ast/README.md index b45ab336280781..81752d81e85310 100644 --- a/packages/kbn-json-ast/README.md +++ b/packages/kbn-json-ast/README.md @@ -1,3 +1,3 @@ # @kbn/json-ast -Tools for parsing and mutating JSON files without rewriting the whole file. JSON-C is also supported so that we can update kibana.jsonc and tsconfig.json files. \ No newline at end of file +Tools for parsing and mutating JSON files without rewriting the whole file. JSON-C is also supported so that we can update kibana.jsonc and tsconfig.json files. diff --git a/packages/kbn-json-ast/index.ts b/packages/kbn-json-ast/index.ts index 9999b1a0c4e57a..e0fab5a3fd4f7c 100644 --- a/packages/kbn-json-ast/index.ts +++ b/packages/kbn-json-ast/index.ts @@ -14,5 +14,5 @@ export { removeAllReferences, } from './src/references'; export { setExtends } from './src/extends'; -export { setProp } from './src/props'; +export { setProp, getPropFromSource as getProp, removeProp } from './src/props'; export { snip } from './src/snip'; diff --git a/packages/kbn-json-ast/src/ends.ts b/packages/kbn-json-ast/src/ends.ts index 4d0d23076fc74f..220612463cd8b3 100644 --- a/packages/kbn-json-ast/src/ends.ts +++ b/packages/kbn-json-ast/src/ends.ts @@ -8,6 +8,9 @@ import * as T from '@babel/types'; +/** + * Determine the start and end position of the given node + */ export function getEnds(node: T.Node): [number, number] { const { start, end } = node; if (start == null || end == null) { @@ -16,13 +19,16 @@ export function getEnds(node: T.Node): [number, number] { return [start, end]; } +/** + * Get the ends of the node, and then expand them to include all the leading whitespace or newlines, and any trailing commas or whitespace + */ export function getExpandedEnds(source: string, node: T.Node): [number, number] { let [start, end] = getEnds(node); while (source[start - 1] === ' ' || source[start - 1] === '\n') { start -= 1; } - while (source[end] === ',') { + while (source[end] === ' ' || source[end] === ',') { end += 1; } diff --git a/packages/kbn-json-ast/src/props.ts b/packages/kbn-json-ast/src/props.ts index 6fcd136d196b98..767b986b82d631 100644 --- a/packages/kbn-json-ast/src/props.ts +++ b/packages/kbn-json-ast/src/props.ts @@ -10,7 +10,7 @@ import { getAst } from './ast'; import { stringify, redentJson } from './json'; import { snip } from './snip'; import { T } from './babel'; -import { getEnds } from './ends'; +import { getEnds, getExpandedEnds } from './ends'; export function getProp(obj: T.ObjectExpression, name: string) { return obj.properties.find((p): p is T.ObjectProperty & { key: T.StringLiteral } => { @@ -26,6 +26,28 @@ export function getEndOfLastProp(obj: T.ObjectExpression) { return obj.properties.reduce((acc, prop) => Math.max(acc, getEnds(prop)[1]), 0); } +/** + * Removes a property from a JSONc object. If the property does not exist the source is just returned + */ +export function removeProp( + /** the jsonc to modify */ + source: string, + /** The key to set */ + key: string, + /** extra key-value options */ + opts?: { + node?: T.ObjectExpression; + } +) { + const ast = opts?.node ?? getAst(source); + const prop = getProp(ast, key); + if (!prop) { + return source; + } + + return snip(source, [getExpandedEnds(source, prop)]); +} + export function setProp( /** the jsonc to modify */ source: string, @@ -33,9 +55,12 @@ export function setProp( key: string, /** the value of the key */ value: any, + /** extra key-value options */ opts?: { /** by default, if the key isn't already in the json, it will be added at the bottom. Set this to true to add the key at the top instead */ insertAtTop?: boolean; + /** by default, if the key isn't already in the json, it will be added at the bottom. Set this to an existing property node to have the key added after this node */ + insertAfter?: T.ObjectProperty; /** In order to set the property an object other than the root object, parse the source and pass the node of the desired object here (make sure to also pass spaces) */ node?: T.ObjectExpression; /** This overrides the default " " spacing used for multi line or new properties that are added */ @@ -55,11 +80,15 @@ export function setProp( if (opts?.insertAtTop) { const [start] = getEnds(ast.properties[0]); return snip(source, [[start, start, `${newPropJson},\n${spaces}`]]); + } else { + const insertAt = opts?.insertAfter ? getEnds(opts.insertAfter)[1] : getEndOfLastProp(ast); + return snip(source, [[insertAt, insertAt, `,\n${spaces}${newPropJson}`]]); } - - const endOfLastProp = getEndOfLastProp(ast); - return snip(source, [[endOfLastProp, endOfLastProp, `,\n${spaces}${newPropJson}`]]); } return snip(source, [[...getEnds(prop), newPropJson]]); } + +export function getPropFromSource(source: string, name: string) { + return getProp(getAst(source), name); +} diff --git a/packages/kbn-json-ast/src/references.test.ts b/packages/kbn-json-ast/src/references.test.ts index cd3a071bddac32..a5e780c957522d 100644 --- a/packages/kbn-json-ast/src/references.test.ts +++ b/packages/kbn-json-ast/src/references.test.ts @@ -129,7 +129,7 @@ describe('removeReferences()', () => { ) ).toMatchInlineSnapshot(` "{ - \\"kbn_references\\": [ \\"baz\\"] + \\"kbn_references\\": [\\"baz\\"] }" `); expect( diff --git a/packages/kbn-lint-packages-cli/README.md b/packages/kbn-lint-packages-cli/README.md index 5cb8862015f9d3..72820451685d39 100644 --- a/packages/kbn-lint-packages-cli/README.md +++ b/packages/kbn-lint-packages-cli/README.md @@ -1,3 +1,3 @@ -# @kbn/package-linter-cli +# @kbn/lint-packages-cli -CLI for running the package linter, which just validates a couple rules for each package. \ No newline at end of file +CLI for running the package linter, which just validates a couple rules for each package. diff --git a/packages/kbn-lint-packages-cli/migrate_plugins_to_package.ts b/packages/kbn-lint-packages-cli/migrate_plugins_to_package.ts new file mode 100644 index 00000000000000..de8e7d8e922da6 --- /dev/null +++ b/packages/kbn-lint-packages-cli/migrate_plugins_to_package.ts @@ -0,0 +1,151 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import Fs from 'fs'; +import Fsp from 'fs/promises'; +import Path from 'path'; + +import { REPO_ROOT } from '@kbn/repo-info'; +import { asyncMapWithLimit } from '@kbn/std'; +import { RepoPath } from '@kbn/repo-path'; +import { type PluginPackageManifest } from '@kbn/repo-packages'; + +function isObj(v: unknown): v is Record { + return typeof v === 'object' && v !== null; +} + +function convertPluginIdToPackageId(pluginId: string) { + if (pluginId === 'core') { + // core is the only non-plugin + return `@kbn/core`; + } + + return `@kbn/${pluginId + .split('') + .flatMap((c) => (c.toUpperCase() === c ? `-${c.toLowerCase()}` : c)) + .join('')}-plugin` + .replace(/-\w(-\w)+-/g, (match) => `-${match.split('-').join('')}-`) + .replace(/-plugin-plugin$/, '-plugin'); +} + +function normalizeDir(dir: string): string { + if (dir.startsWith('./')) { + return normalizeDir(dir.slice(2)); + } + + if (dir !== '/' && dir.endsWith('/')) { + return normalizeDir(dir.slice(0, -1)); + } + + if (!dir.startsWith('/')) { + return normalizeDir(`/${dir}`); + } + + return dir; +} + +function getPluginManifest(dir: string, legacy: any, owners: string[]): PluginPackageManifest { + return { + type: 'plugin', + id: convertPluginIdToPackageId(legacy.id), + owner: owners, + description: legacy.description || undefined, + serviceFolders: legacy.serviceFolders, + plugin: { + id: legacy.id, + type: legacy.type, + server: legacy.server ?? Fs.existsSync(Path.resolve(dir, 'server')), + browser: legacy.ui ?? Fs.existsSync(Path.resolve(dir, 'public')), + configPath: legacy.configPath, + enabledOnAnonymousPages: legacy.enabledOnAnonymousPages, + requiredPlugins: legacy.requiredPlugins?.length ? legacy.requiredPlugins : undefined, + optionalPlugins: legacy.optionalPlugins?.length ? legacy.optionalPlugins : undefined, + requiredBundles: legacy.requiredBundles?.length ? legacy.requiredBundles : undefined, + extraPublicDirs: legacy.extraPublicDirs?.length ? legacy.extraPublicDirs : undefined, + }, + }; +} + +export async function migratePluginsToPackages(legacyManifests: RepoPath[]) { + const CODEOWNERS = new Map( + (await Fsp.readFile(Path.resolve(REPO_ROOT, '.github/CODEOWNERS'), 'utf8')) + .split('\n') + .flatMap((line) => { + const trim = line.trim(); + if (!trim || trim.startsWith('#')) { + return []; + } + + const [dir, ...pings] = trim.split('@'); + return [ + [ + normalizeDir(dir.trim()), + ['', ...pings] + .join('@') + .split(' ') + .map((h) => h.trim()), + ], + ]; + }) + ); + + function getCodeowners(dir: string): string[] | null { + const codeowner = CODEOWNERS.get(normalizeDir(dir)); + if (!codeowner) { + const parent = Path.dirname(dir); + if (parent !== dir) { + return getCodeowners(parent); + } else { + return null; + } + } + + return codeowner; + } + + const rewrites: Array<[old: string, path: string, content: string]> = []; + for (const legacy of legacyManifests) { + const json = JSON.parse(Fs.readFileSync(legacy.abs, 'utf8')); + const dir = Path.dirname(legacy.abs); + const repoRelDir = Path.dirname(legacy.repoRel); + const codeowners = getCodeowners(repoRelDir); + + const owners = + codeowners ?? + (isObj(json.owner) && json.owner.githubTeam + ? [ + `@elastic/${ + json.owner.githubTeam.startsWith('@elastic/') + ? json.owner.githubTeam.slice(9) + : json.owner.githubTeam + }`, + ] + : undefined); + + if (!owners) { + throw new Error(`unable to determine owner for ${legacy.repoRel}`); + } + + const manifest = getPluginManifest(dir, json, owners); + if (manifest.owner.length === 1) { + // unwrap arrays for single owners + (manifest as any).owner = manifest.owner[0]; + } + + rewrites.push([ + Path.resolve(dir, 'kibana.json'), + Path.resolve(dir, 'kibana.jsonc'), + JSON.stringify(manifest, null, 2) + '\n', + ]); + } + + await asyncMapWithLimit(rewrites, 30, async ([old, path, content]) => { + await Fsp.unlink(old); + await Fsp.writeFile(path, content); + }); +} diff --git a/packages/kbn-lint-packages-cli/rules/constant_version.ts b/packages/kbn-lint-packages-cli/rules/constant_version.ts new file mode 100644 index 00000000000000..02f070d624a6db --- /dev/null +++ b/packages/kbn-lint-packages-cli/rules/constant_version.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { PackageRule } from '@kbn/repo-linter'; +import { setProp, getProp } from '@kbn/json-ast'; + +export const constantVersionRule = PackageRule.create('constantVersion', { + async check({ pkg }) { + if (pkg.pkg && pkg.pkg.version !== '1.0.0') { + this.err('The "version" in the package.json file must be "1.0.0"', { + 'package.json': (source) => + setProp(source, 'version', '1.0.0', { + insertAfter: getProp(source, 'name'), + }), + }); + } + }, +}); diff --git a/packages/kbn-lint-packages-cli/rules/index.ts b/packages/kbn-lint-packages-cli/rules/index.ts index 65f16c71d74f38..0a72ca66543d4b 100644 --- a/packages/kbn-lint-packages-cli/rules/index.ts +++ b/packages/kbn-lint-packages-cli/rules/index.ts @@ -9,6 +9,13 @@ import type { PackageRule } from '@kbn/repo-linter'; import { matchingPackageNameRule } from './matching_package_name'; +import { constantVersionRule } from './constant_version'; +import { noLicenseRule } from './no_license'; import { noBasenameCollisionsRule } from './no_basename_collisions'; -export const RULES: PackageRule[] = [matchingPackageNameRule, noBasenameCollisionsRule]; +export const RULES: PackageRule[] = [ + matchingPackageNameRule, + constantVersionRule, + noLicenseRule, + noBasenameCollisionsRule, +]; diff --git a/packages/kbn-lint-packages-cli/rules/no_license.ts b/packages/kbn-lint-packages-cli/rules/no_license.ts new file mode 100644 index 00000000000000..3b28faca0914fa --- /dev/null +++ b/packages/kbn-lint-packages-cli/rules/no_license.ts @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { PackageRule } from '@kbn/repo-linter'; +import { setProp, getProp } from '@kbn/json-ast'; + +const DEFAULT_LICENSE = 'SSPL-1.0 OR Elastic License 2.0'; +const XPACK_LICENSE = 'Elastic License 2.0'; +const LICENSE_EXCEPTIONS = Object.entries({ + MIT: ['@kbn/safer-lodash-set', '@kbn/handlebars', '@kbn/expect'], +}); + +export const noLicenseRule = PackageRule.create('noLicense', { + async check({ pkg }) { + if (!pkg.pkg) { + return; + } + + const exception = LICENSE_EXCEPTIONS.find(([, pkgIds]) => pkgIds.includes(pkg.id)); + const expected = exception + ? exception[0] + : pkg.normalizedRepoRelativeDir.startsWith('x-pack') + ? XPACK_LICENSE + : DEFAULT_LICENSE; + + if (pkg.pkg.license !== expected) { + this.err(`The "license" in the package.json file must be ${expected}`, { + 'package.json': (source) => + setProp(source, 'license', expected, { + insertAfter: getProp(source, 'version') ?? getProp(source, 'name'), + }), + }); + } + }, +}); diff --git a/packages/kbn-lint-packages-cli/run_lint_packages_cli.ts b/packages/kbn-lint-packages-cli/run_lint_packages_cli.ts index a8f49992e74105..73e5f3c469fcd9 100644 --- a/packages/kbn-lint-packages-cli/run_lint_packages_cli.ts +++ b/packages/kbn-lint-packages-cli/run_lint_packages_cli.ts @@ -12,12 +12,16 @@ import { run } from '@kbn/dev-cli-runner'; import { createFailError } from '@kbn/dev-cli-errors'; import { getRepoFiles } from '@kbn/get-repo-files'; import { PackageFileMap } from '@kbn/repo-file-maps'; -import { getPackages } from '@kbn/repo-packages'; +import { updatePackageMap, getPackages } from '@kbn/repo-packages'; import { REPO_ROOT } from '@kbn/repo-info'; import { TS_PROJECTS } from '@kbn/ts-projects'; +import { makeMatcher } from '@kbn/picomatcher'; import { runLintRules, PackageLintTarget } from '@kbn/repo-linter'; import { RULES } from './rules'; +import { migratePluginsToPackages } from './migrate_plugins_to_package'; + +const legacyManifestMatcher = makeMatcher(['**/kibana.json', '!**/{__fixtures__,fixtures}/**']); const kebabCase = (input: string) => input @@ -40,7 +44,26 @@ function getFilter(input: string) { run( async ({ log, flagsReader }) => { const filter = flagsReader.getPositionals(); + let allRepoFiles = await getRepoFiles(); + + const legacyPackageManifests = Array.from(allRepoFiles).filter((f) => + legacyManifestMatcher(f.repoRel) + ); + + if (legacyPackageManifests.length) { + await migratePluginsToPackages(legacyPackageManifests); + log.warning('Migrated legacy plugins to packages'); + allRepoFiles = await getRepoFiles(); + } + + const pkgManifestPaths = Array.from(allRepoFiles) + .filter((f) => f.basename === 'kibana.jsonc') + .map((f) => f.abs); + if (await updatePackageMap(REPO_ROOT, pkgManifestPaths)) { + log.warning('updated package map'); + } const packages = getPackages(REPO_ROOT); + const allTargets = packages .map( (p) => @@ -69,7 +92,7 @@ run( ) ).sort((a, b) => a.repoRel.localeCompare(b.repoRel)); - const fileMap = new PackageFileMap(packages, await getRepoFiles()); + const fileMap = new PackageFileMap(packages, allRepoFiles); const { lintingErrorCount } = await runLintRules(log, toLint, RULES, { fix: flagsReader.boolean('fix'), getFiles: (target) => fileMap.getFiles(target.pkg), diff --git a/packages/kbn-lint-packages-cli/tsconfig.json b/packages/kbn-lint-packages-cli/tsconfig.json index 44df028e66ef57..9370d19eecc1f9 100644 --- a/packages/kbn-lint-packages-cli/tsconfig.json +++ b/packages/kbn-lint-packages-cli/tsconfig.json @@ -24,5 +24,8 @@ "@kbn/repo-file-maps", "@kbn/json-ast", "@kbn/set-map", + "@kbn/std", + "@kbn/repo-path", + "@kbn/picomatcher", ] } diff --git a/packages/kbn-lint-ts-projects-cli/run_lint_ts_projects_cli.ts b/packages/kbn-lint-ts-projects-cli/run_lint_ts_projects_cli.ts index 50ed41b7e66a3a..370f27a904bfc0 100644 --- a/packages/kbn-lint-ts-projects-cli/run_lint_ts_projects_cli.ts +++ b/packages/kbn-lint-ts-projects-cli/run_lint_ts_projects_cli.ts @@ -31,9 +31,9 @@ function getFilter(input: string) { tsProject.path === abs || tsProject.directory === abs || abs.startsWith(tsProject.directory + '/') || - tsProject.pkgInfo?.repoRel === input || - (tsProject.pkgInfo && Path.resolve(REPO_ROOT, tsProject.pkgInfo.repoRel) === abs) || - (tsProject.pkgInfo && abs.startsWith(Path.resolve(REPO_ROOT, tsProject.pkgInfo.repoRel) + '/')); + tsProject.pkg?.normalizedRepoRelativeDir === input || + tsProject.pkg?.directory === abs || + (tsProject.pkg && abs.startsWith(tsProject.pkg.directory + '/')); } function validateProjectOwnership( diff --git a/packages/kbn-optimizer/README.mdx b/packages/kbn-optimizer/README.mdx index f092c4cc5ffba0..1aee759145999a 100644 --- a/packages/kbn-optimizer/README.mdx +++ b/packages/kbn-optimizer/README.mdx @@ -84,7 +84,6 @@ const log = new ToolingLog({ const config = OptimizerConfig.create({ repoRoot: Path.resolve(__dirname, '../../..'), watch: false, - oss: true, dist: true }); diff --git a/packages/kbn-optimizer/jest.integration.config.js b/packages/kbn-optimizer/jest.integration.config.js deleted file mode 100644 index a51f4c588af8c1..00000000000000 --- a/packages/kbn-optimizer/jest.integration.config.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -module.exports = { - preset: '@kbn/test/jest_integration_node', - rootDir: '../..', - roots: ['/packages/kbn-optimizer'], -}; diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index 79670e025b8dcb..d53fed770d6ff4 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -60,7 +60,7 @@ pageLoadAssetSize: files: 22673 filesManagement: 18683 fileUpload: 25664 - fleet: 126917 + fleet: 142263 globalSearch: 29696 globalSearchBar: 50403 globalSearchProviders: 25554 diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/kibana.json b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/kibana.json deleted file mode 100644 index 0aadeb1644fe8e..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/kibana.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "bar", - "ui": true, - "requiredBundles": ["foo"], - "version": "8.0.0", - "owner": { - "name": "Operations" - } -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/index.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/index.scss deleted file mode 100644 index 9603185daf4109..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/index.scss +++ /dev/null @@ -1,4 +0,0 @@ -body { - /* stylelint-disable-next-line color-named */ - color: green; -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/index.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/index.ts deleted file mode 100644 index c58c57ba65785c..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import './legacy/styles.scss'; -import './index.scss'; -import { fooLibFn } from '../../foo/public'; -export * from './lib'; -export { fooLibFn }; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/legacy/_other_styles.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/legacy/_other_styles.scss deleted file mode 100644 index fae6b1e6276617..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/legacy/_other_styles.scss +++ /dev/null @@ -1,4 +0,0 @@ -p { - /* stylelint-disable-next-line color-named */ - background-color: rebeccapurple; -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/legacy/styles.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/legacy/styles.scss deleted file mode 100644 index 89c5d0d7d98c1f..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/legacy/styles.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import './other_styles.scss'; - -body { - width: $globalStyleConstant; -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/lib.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/lib.ts deleted file mode 100644 index a122b782c905be..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/public/lib.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export function barLibFn() { - return 'bar'; -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/kibana.json b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/kibana.json deleted file mode 100644 index ceea6483ab47a0..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/kibana.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "foo", - "owner": { - "name": "Operations" - }, - "ui": true, - "version": "8.0.0" -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/async_import.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/async_import.ts deleted file mode 100644 index 12f54ee9ba6e94..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/async_import.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export function foo() {} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/ext.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/ext.ts deleted file mode 100644 index 25a25a9d1d10b0..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/ext.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export const ext = 'TRUE'; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/index.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/index.ts deleted file mode 100644 index d28a51fe45deec..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export * from './lib'; -export * from './ext'; - -export async function getFoo() { - return await import('./async_import'); -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/lib.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/lib.ts deleted file mode 100644 index d25d1deb919d5f..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/public/lib.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export function fooLibFn() { - return 'foo'; -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/kibana.json b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/kibana.json deleted file mode 100644 index f8b1bf6bcc39ae..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/kibana.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "id": "baz", - "owner": { - "name": "Operations" - }, - "version": "8.0.0" -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/server/index.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/server/index.ts deleted file mode 100644 index d4dcaa77cc47ad..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/server/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export * from './lib'; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/server/lib.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/server/lib.ts deleted file mode 100644 index 9196253a97b390..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/server/lib.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export function bazLibFn() { - return 'baz'; -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7dark.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7dark.scss deleted file mode 100644 index 83995ca65211bd..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7dark.scss +++ /dev/null @@ -1 +0,0 @@ -$globalStyleConstant: 10; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7light.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7light.scss deleted file mode 100644 index 63beb9927b9f57..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7light.scss +++ /dev/null @@ -1 +0,0 @@ -$globalStyleConstant: 11; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8dark.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8dark.scss deleted file mode 100644 index 4040cab1878fc6..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8dark.scss +++ /dev/null @@ -1 +0,0 @@ -$globalStyleConstant: 12; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8light.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8light.scss deleted file mode 100644 index 3918413c068639..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8light.scss +++ /dev/null @@ -1 +0,0 @@ -$globalStyleConstant: 13; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/kibana.json b/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/kibana.json deleted file mode 100644 index e784007bce6d8c..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/kibana.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "id": "test_baz", - "owner": { - "name": "Operations" - }, - "version": "8.0.0" -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/server/index.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/server/index.ts deleted file mode 100644 index d4dcaa77cc47ad..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/server/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export * from './lib'; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/server/lib.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/server/lib.ts deleted file mode 100644 index 9196253a97b390..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/server/lib.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export function bazLibFn() { - return 'baz'; -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/x-pack/baz/kibana.json b/packages/kbn-optimizer/src/__fixtures__/mock_repo/x-pack/baz/kibana.json deleted file mode 100644 index d94123ae7ef023..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/x-pack/baz/kibana.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "id": "baz", - "owner": { "name": "Operations", "githubTeam": "kibana-operations" }, - "ui": true, - "version": "8.0.0" -} diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/x-pack/baz/public/index.ts b/packages/kbn-optimizer/src/__fixtures__/mock_repo/x-pack/baz/public/index.ts deleted file mode 100644 index 2ba46198db497e..00000000000000 --- a/packages/kbn-optimizer/src/__fixtures__/mock_repo/x-pack/baz/public/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -// eslint-disable-next-line no-console -console.log('plugin in an x-pack dir'); diff --git a/packages/kbn-optimizer/src/cli.ts b/packages/kbn-optimizer/src/cli.ts index b0732e931e04f8..e58973ecb9640c 100644 --- a/packages/kbn-optimizer/src/cli.ts +++ b/packages/kbn-optimizer/src/cli.ts @@ -92,13 +92,6 @@ export function runKbnOptimizerCli(options: { defaultLimitsPath: string }) { throw createFlagError('expected --workers to be a number greater than 0'); } - const extraPluginScanDirs = ([] as string[]) - .concat((flags['scan-dir'] as string | string[]) || []) - .map((p) => Path.resolve(p)); - if (!extraPluginScanDirs.every((s) => typeof s === 'string')) { - throw createFlagError('expected --scan-dir to be a string'); - } - const reportStats = flags['report-stats'] ?? false; if (typeof reportStats !== 'boolean') { throw createFlagError('expected --report-stats to have no value'); @@ -135,13 +128,11 @@ export function runKbnOptimizerCli(options: { defaultLimitsPath: string }) { repoRoot: REPO_ROOT, watch, maxWorkerCount, - oss: oss && !(validateLimits || updateLimits), dist: dist || updateLimits, cache, examples: examples && !(validateLimits || updateLimits), testPlugins: testPlugins && !(validateLimits || updateLimits), profileWebpack, - extraPluginScanDirs, inspectWorkers, includeCoreBundle, filter, diff --git a/packages/kbn-optimizer/src/common/bundle.test.ts b/packages/kbn-optimizer/src/common/bundle.test.ts index 5989489bb81ba3..59d730dd661be8 100644 --- a/packages/kbn-optimizer/src/common/bundle.test.ts +++ b/packages/kbn-optimizer/src/common/bundle.test.ts @@ -14,11 +14,15 @@ jest.mock('fs'); const SPEC: BundleSpec = { contextDir: '/foo/bar', - publicDirNames: ['public'], id: 'bar', outputDir: '/foo/bar/target', sourceRoot: '/foo', type: 'plugin', + remoteInfo: { + pkgId: '@kbn/foo-bundle', + targets: ['public'], + }, + ignoreMetrics: false, }; it('creates cache keys', () => { @@ -61,11 +65,15 @@ it('creates cache keys', () => { "banner": undefined, "contextDir": "/foo/bar", "id": "bar", + "ignoreMetrics": false, "manifestPath": undefined, "outputDir": "/foo/bar/target", - "publicDirNames": Array [ - "public", - ], + "remoteInfo": Object { + "pkgId": "@kbn/foo-bundle", + "targets": Array [ + "public", + ], + }, "sourceRoot": "/foo", "type": "plugin", }, @@ -98,12 +106,16 @@ it('parses bundles from JSON specs', () => { }, "contextDir": "/foo/bar", "id": "bar", + "ignoreMetrics": false, "manifestPath": undefined, "outputDir": "/foo/bar/target", "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], + "remoteInfo": Object { + "pkgId": "@kbn/foo-bundle", + "targets": Array [ + "public", + ], + }, "sourceRoot": "/foo", "type": "plugin", }, diff --git a/packages/kbn-optimizer/src/common/bundle.ts b/packages/kbn-optimizer/src/common/bundle.ts index a2f0653d23af75..c7a07928e15241 100644 --- a/packages/kbn-optimizer/src/common/bundle.ts +++ b/packages/kbn-optimizer/src/common/bundle.ts @@ -8,9 +8,10 @@ import Path from 'path'; import Fs from 'fs'; +import { Jsonc } from '@kbn/repo-packages'; import { BundleCache } from './bundle_cache'; -import { UnknownVals } from './ts_helpers'; +import { UnknownVals, isObj } from './ts_helpers'; import { omit } from './obj_helpers'; import { includes } from './array_helpers'; import type { Hashes } from './hashes'; @@ -20,15 +21,13 @@ const VALID_BUNDLE_TYPES = ['plugin' as const, 'entry' as const]; const DEFAULT_IMPLICIT_BUNDLE_DEPS = ['core']; -const isStringArray = (input: any): input is string[] => - Array.isArray(input) && input.every((x) => typeof x === 'string'); +const toStringArray = (input: any): string[] => + Array.isArray(input) && input.every((x) => typeof x === 'string') ? input : []; export interface BundleSpec { readonly type: typeof VALID_BUNDLE_TYPES[0]; /** Unique id for this bundle */ readonly id: string; - /** directory names relative to the contextDir that can be imported from */ - readonly publicDirNames: string[]; /** Absolute path to the plugin source directory */ readonly contextDir: string; /** Absolute path to the root of the repository */ @@ -41,6 +40,15 @@ export interface BundleSpec { readonly manifestPath?: string; /** Maximum allowed page load asset size for the bundles page load asset */ readonly pageLoadAssetSizeLimit?: number; + /** Information about how this bundle can be referenced by other bundles */ + readonly remoteInfo: { + /** the root package id that maps to this bundle */ + pkgId: string; + /** the valid sub-package imports, importing from the root of other bundles is not supported */ + targets: string[]; + }; + /** set this to `true` if the metrics for this bundle should be ignored */ + readonly ignoreMetrics: boolean; } export class Bundle { @@ -48,8 +56,6 @@ export class Bundle { public readonly type: BundleSpec['type']; /** Unique identifier for this bundle */ public readonly id: BundleSpec['id']; - /** directory names relative to the contextDir that can be imported from */ - public readonly publicDirNames: BundleSpec['publicDirNames']; /** * Absolute path to the root of the bundle context (plugin directory) * where the entry is resolved relative to and the default output paths @@ -64,25 +70,30 @@ export class Bundle { public readonly banner: BundleSpec['banner']; /** * Absolute path to a manifest file with "requiredBundles" which will be - * used to allow bundleRefs from this bundle to the exports of another bundle. - * Every bundle mentioned in the `requiredBundles` must be built together. + * used to allow references from this bundle to the exports of another bundle. */ public readonly manifestPath: BundleSpec['manifestPath']; /** Maximum allowed page load asset size for the bundles page load asset */ public readonly pageLoadAssetSizeLimit: BundleSpec['pageLoadAssetSizeLimit']; + /** Information about how this bundle can be references remotely */ + public readonly remoteInfo: BundleSpec['remoteInfo']; public readonly cache: BundleCache; + /** should this bundle's metrics be ignored? */ + public readonly ignoreMetrics: boolean; + constructor(spec: BundleSpec) { this.type = spec.type; this.id = spec.id; - this.publicDirNames = spec.publicDirNames; this.contextDir = spec.contextDir; this.sourceRoot = spec.sourceRoot; this.outputDir = spec.outputDir; this.manifestPath = spec.manifestPath; this.banner = spec.banner; this.pageLoadAssetSizeLimit = spec.pageLoadAssetSizeLimit; + this.remoteInfo = spec.remoteInfo; + this.ignoreMetrics = spec.ignoreMetrics; this.cache = new BundleCache(this.outputDir); } @@ -114,13 +125,14 @@ export class Bundle { return { type: this.type, id: this.id, - publicDirNames: this.publicDirNames, contextDir: this.contextDir, sourceRoot: this.sourceRoot, outputDir: this.outputDir, manifestPath: this.manifestPath, banner: this.banner, pageLoadAssetSizeLimit: this.pageLoadAssetSizeLimit, + remoteInfo: this.remoteInfo, + ignoreMetrics: this.ignoreMetrics, }; } @@ -143,25 +155,23 @@ export class Bundle { json = '{}'; } - let parsedManifest: { requiredPlugins?: string[]; requiredBundles?: string[] }; + let parsed; try { - parsedManifest = JSON.parse(json); + parsed = Jsonc.parse(json); } catch (error) { throw new Error( `unable to parse manifest at [${this.manifestPath}], error: [${error.message}]` ); } - if (typeof parsedManifest === 'object' && parsedManifest) { - const explicit = parsedManifest.requiredBundles || []; - const implicit = [...DEFAULT_IMPLICIT_BUNDLE_DEPS, ...(parsedManifest.requiredPlugins || [])]; - - if (isStringArray(explicit) && isStringArray(implicit)) { - return { - explicit, - implicit, - }; - } + if (isObj(parsed) && isObj(parsed.plugin)) { + return { + explicit: [...toStringArray(parsed.plugin.requiredBundles)], + implicit: [ + ...DEFAULT_IMPLICIT_BUNDLE_DEPS, + ...toStringArray(parsed.plugin.requiredPlugins), + ], + }; } throw new Error( @@ -201,11 +211,6 @@ export function parseBundles(json: string) { throw new Error('`bundles[]` must have a string `id` property'); } - const { publicDirNames } = spec; - if (!Array.isArray(publicDirNames) || !publicDirNames.every((d) => typeof d === 'string')) { - throw new Error('`bundles[]` must have an array of strings `publicDirNames` property'); - } - const { contextDir } = spec; if (!(typeof contextDir === 'string' && Path.isAbsolute(contextDir))) { throw new Error('`bundles[]` must have an absolute path `contextDir` property'); @@ -235,6 +240,11 @@ export function parseBundles(json: string) { } } + const { ignoreMetrics } = spec; + if (!(typeof ignoreMetrics === 'boolean')) { + throw new Error('`bundles[]` must have a boolean `ignoreMetrics` property'); + } + const { pageLoadAssetSizeLimit } = spec; if (pageLoadAssetSizeLimit !== undefined) { if (!(typeof pageLoadAssetSizeLimit === 'number')) { @@ -242,16 +252,38 @@ export function parseBundles(json: string) { } } + const { remoteInfo } = spec; + if (!(typeof remoteInfo === 'object' && remoteInfo !== null)) { + throw new Error('`bundles[]` must have a `remoteInfo` property which is an object'); + } + + const { pkgId, targets } = remoteInfo as UnknownVals; + if (typeof pkgId !== 'string') { + throw new Error('`bundles[].remoteInfo` must have a `pkgId` property which is a string'); + } + if ( + !Array.isArray(targets) || + targets.some((i) => typeof i !== 'string' || i.endsWith('/')) + ) { + throw new Error( + '`bundles[].remoteInfo` must have a `targets` property which is an array of strings that do not end with "/"' + ); + } + return new Bundle({ type, id, - publicDirNames, contextDir, sourceRoot, outputDir, banner, manifestPath, pageLoadAssetSizeLimit, + remoteInfo: { + pkgId, + targets, + }, + ignoreMetrics, }); }); } catch (error) { diff --git a/packages/kbn-optimizer/src/common/bundle_cache.ts b/packages/kbn-optimizer/src/common/bundle_cache.ts index 6a44504d875e22..8e246227eb7fef 100644 --- a/packages/kbn-optimizer/src/common/bundle_cache.ts +++ b/packages/kbn-optimizer/src/common/bundle_cache.ts @@ -18,7 +18,7 @@ export interface State { moduleCount?: number; workUnits?: number; referencedPaths?: string[]; - bundleRefExportIds?: string[]; + remoteBundleImportReqs?: string[]; dllRefKeys?: string[]; } @@ -87,8 +87,8 @@ export class BundleCache { return this.get().referencedPaths; } - public getBundleRefExportIds() { - return this.get().bundleRefExportIds; + public getRemoteBundleImportReqs() { + return this.get().remoteBundleImportReqs; } public getDllRefKeys() { diff --git a/packages/kbn-optimizer/src/common/bundle_refs.ts b/packages/kbn-optimizer/src/common/bundle_refs.ts deleted file mode 100644 index 49628fcf055887..00000000000000 --- a/packages/kbn-optimizer/src/common/bundle_refs.ts +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; - -import { Bundle } from './bundle'; -import { UnknownVals } from './ts_helpers'; - -export interface BundleRef { - bundleId: string; - contextDir: string; - contextPrefix: string; - entry: string; - exportId: string; -} - -export class BundleRefs { - static fromBundles(bundles: Bundle[]) { - return new BundleRefs( - bundles.reduce( - (acc: BundleRef[], b) => [ - ...acc, - ...b.publicDirNames.map( - (name): BundleRef => ({ - bundleId: b.id, - contextDir: b.contextDir, - // Path.resolve converts separators and strips the final separator - contextPrefix: Path.resolve(b.contextDir) + Path.sep, - entry: name, - exportId: `${b.type}/${b.id}/${name}`, - }) - ), - ], - [] - ) - ); - } - - static parseSpec(json: unknown) { - if (typeof json !== 'string') { - throw new Error('expected `bundleRefs` spec to be a JSON string'); - } - - let spec; - try { - spec = JSON.parse(json); - } catch (error) { - throw new Error('`bundleRefs` spec must be valid JSON'); - } - - if (!Array.isArray(spec)) { - throw new Error('`bundleRefs` spec must be an array'); - } - - return new BundleRefs( - spec.map((refSpec: UnknownVals): BundleRef => { - if (typeof refSpec !== 'object' || !refSpec) { - throw new Error('`bundleRefs[]` must be an object'); - } - - const { bundleId } = refSpec; - if (typeof bundleId !== 'string') { - throw new Error('`bundleRefs[].bundleId` must be a string'); - } - - const { contextDir } = refSpec; - if (typeof contextDir !== 'string' || !Path.isAbsolute(contextDir)) { - throw new Error('`bundleRefs[].contextDir` must be an absolute directory'); - } - - const { contextPrefix } = refSpec; - if (typeof contextPrefix !== 'string' || !Path.isAbsolute(contextPrefix)) { - throw new Error('`bundleRefs[].contextPrefix` must be an absolute directory'); - } - - const { entry } = refSpec; - if (typeof entry !== 'string') { - throw new Error('`bundleRefs[].entry` must be a string'); - } - - const { exportId } = refSpec; - if (typeof exportId !== 'string') { - throw new Error('`bundleRefs[].exportId` must be a string'); - } - - return { - bundleId, - contextDir, - contextPrefix, - entry, - exportId, - }; - }) - ); - } - - constructor(private readonly refs: BundleRef[]) {} - - public forBundleIds(bundleIds: string[]) { - return this.refs.filter((r) => bundleIds.includes(r.bundleId)); - } - - public filterByExportIds(exportIds: string[]) { - return this.refs.filter((r) => exportIds.includes(r.exportId)); - } - - public filterByContextPrefix(bundle: Bundle, absolutePath: string) { - return this.refs.filter( - (ref) => ref.bundleId !== bundle.id && absolutePath.startsWith(ref.contextPrefix) - ); - } - - public toSpecJson() { - return JSON.stringify(this.refs); - } -} diff --git a/packages/kbn-optimizer/src/common/bundle_remotes.ts b/packages/kbn-optimizer/src/common/bundle_remotes.ts new file mode 100644 index 00000000000000..e0a9b77ad4a62b --- /dev/null +++ b/packages/kbn-optimizer/src/common/bundle_remotes.ts @@ -0,0 +1,135 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { parseKbnImportReq } from '@kbn/repo-packages'; + +import { Bundle } from './bundle'; +import { isObj } from './ts_helpers'; + +export interface BundleRemote { + readonly bundleType: string; + readonly bundleId: string; + readonly pkgId: string; + readonly targets: readonly string[]; +} + +export class BundleRemotes { + static fromBundles(bundles: Bundle[]) { + return new BundleRemotes( + bundles.map((b) => ({ + bundleType: b.type, + bundleId: b.id, + ...b.remoteInfo, + })) + ); + } + + static parseSpec(json: unknown) { + if (typeof json !== 'string') { + throw new Error('expected `bundleRemotes` spec to be a JSON string'); + } + + let spec; + try { + spec = JSON.parse(json); + } catch (error) { + throw new Error('`bundleRemotes` spec must be valid JSON'); + } + + if (!Array.isArray(spec)) { + throw new Error('`bundleRemotes` spec must be an array'); + } + + return new BundleRemotes( + spec.map((remSpec) => { + if (!isObj(remSpec)) { + throw new Error('`bundleRemotes[]` must be an object'); + } + + const { bundleType, bundleId, pkgId, targets } = remSpec; + if (typeof bundleType !== 'string') { + throw new Error('`bundleRemotes[].bundleType` must be a string'); + } + + if (typeof bundleId !== 'string') { + throw new Error('`bundleRemotes[].bundleId` must be a string'); + } + + if (typeof pkgId !== 'string') { + throw new Error('`bundleRemotes[].pkgId` must be a string'); + } + + if (!Array.isArray(targets) || targets.some((t) => typeof t !== 'string')) { + throw new Error('`bundleRemotes[].targets` must be an array of strings'); + } + + return { + bundleType, + bundleId, + pkgId, + targets, + }; + }) + ); + } + + private byPkgId: Map; + constructor(private readonly remotes: BundleRemote[]) { + this.byPkgId = new Map(remotes.map((r) => [r.pkgId, r])); + + if (this.byPkgId.size !== remotes.length) { + const dups = remotes.filter((r) => { + if (this.byPkgId.has(r.pkgId)) { + this.byPkgId.delete(r.pkgId); + return false; + } + + return true; + }); + + throw new Error( + `invalid remotes, the following package ids belong to more than one remote: ${dups.join( + ', ' + )}` + ); + } + } + + public getForPkgId(pkgId: string) { + return this.byPkgId.get(pkgId); + } + + /** + * get the import requests were are passed in, and are also valid based on our config + */ + public unionImportReqs(importReqs: string[]) { + return importReqs.filter((r) => { + const parsed = parseKbnImportReq(r); + if (!parsed) { + return false; + } + + const own = this.byPkgId.get(parsed.pkgId); + if (!own) { + return false; + } + + return own.targets.includes(parsed.target); + }); + } + + public getValidImportReqs(bundleIds: string[]) { + const filter = new Set(bundleIds); + const remotes = this.remotes.filter((r) => filter.has(r.bundleId)); + return remotes.flatMap((r) => r.targets.map((t) => (t === '' ? r.pkgId : `${r.pkgId}/${t}`))); + } + + public toSpecJson() { + return JSON.stringify(this.remotes); + } +} diff --git a/packages/kbn-optimizer/src/common/index.ts b/packages/kbn-optimizer/src/common/index.ts index f516e5f84198f3..324be7dc76a553 100644 --- a/packages/kbn-optimizer/src/common/index.ts +++ b/packages/kbn-optimizer/src/common/index.ts @@ -8,7 +8,7 @@ export * from './bundle'; export * from './bundle_cache'; -export * from './bundle_refs'; +export * from './bundle_remotes'; export * from './worker_config'; export * from './worker_messages'; export * from './compiler_messages'; diff --git a/packages/kbn-optimizer/src/common/ts_helpers.ts b/packages/kbn-optimizer/src/common/ts_helpers.ts index bd10b97d55f027..7883687819f35e 100644 --- a/packages/kbn-optimizer/src/common/ts_helpers.ts +++ b/packages/kbn-optimizer/src/common/ts_helpers.ts @@ -13,3 +13,7 @@ export type UnknownVals = { [k in keyof T]: unknown; }; + +export function isObj(val: unknown): val is Record { + return typeof val === 'object' && val !== null; +} diff --git a/packages/kbn-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap b/packages/kbn-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap deleted file mode 100644 index f93a80f82d06e7..00000000000000 --- a/packages/kbn-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap +++ /dev/null @@ -1,793 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`builds expected bundles, saves bundle counts to metadata: OptimizerConfig 1`] = ` -OptimizerConfig { - "bundles": Array [ - Bundle { - "banner": undefined, - "cache": BundleCache { - "path": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/target/public/.kbn-optimizer-cache, - "state": undefined, - }, - "contextDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar, - "id": "bar", - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/kibana.json, - "outputDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/target/public, - "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], - "sourceRoot": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo, - "type": "plugin", - }, - Bundle { - "banner": undefined, - "cache": BundleCache { - "path": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/target/public/.kbn-optimizer-cache, - "state": undefined, - }, - "contextDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo, - "id": "foo", - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/kibana.json, - "outputDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/target/public, - "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], - "sourceRoot": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo, - "type": "plugin", - }, - Bundle { - "banner": "/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. - * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ -", - "cache": BundleCache { - "path": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/target/public/.kbn-optimizer-cache, - "state": undefined, - }, - "contextDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz, - "id": "baz", - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/kibana.json, - "outputDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/target/public, - "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], - "sourceRoot": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo, - "type": "plugin", - }, - ], - "cache": true, - "dist": false, - "filteredBundles": Array [ - Bundle { - "banner": undefined, - "cache": BundleCache { - "path": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/target/public/.kbn-optimizer-cache, - "state": undefined, - }, - "contextDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar, - "id": "bar", - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/kibana.json, - "outputDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/target/public, - "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], - "sourceRoot": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo, - "type": "plugin", - }, - Bundle { - "banner": undefined, - "cache": BundleCache { - "path": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/target/public/.kbn-optimizer-cache, - "state": undefined, - }, - "contextDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo, - "id": "foo", - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/kibana.json, - "outputDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/target/public, - "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], - "sourceRoot": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo, - "type": "plugin", - }, - Bundle { - "banner": "/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. - * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ -", - "cache": BundleCache { - "path": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/target/public/.kbn-optimizer-cache, - "state": undefined, - }, - "contextDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz, - "id": "baz", - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/kibana.json, - "outputDir": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/target/public, - "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], - "sourceRoot": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo, - "type": "plugin", - }, - ], - "inspectWorkers": false, - "maxWorkerCount": 1, - "plugins": Array [ - Object { - "directory": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar, - "extraPublicDirs": Array [], - "id": "bar", - "isUiPlugin": true, - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/kibana.json, - }, - Object { - "directory": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo, - "extraPublicDirs": Array [], - "id": "foo", - "isUiPlugin": true, - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/kibana.json, - }, - Object { - "directory": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/nested/baz, - "extraPublicDirs": Array [], - "id": "baz", - "isUiPlugin": false, - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/nested/baz/kibana.json, - }, - Object { - "directory": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz, - "extraPublicDirs": Array [], - "id": "baz", - "isUiPlugin": true, - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/kibana.json, - }, - ], - "profileWebpack": false, - "repoRoot": /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo, - "themeTags": Array [ - "v8dark", - "v8light", - ], - "watch": false, -} -`; - -exports[`prepares assets for distribution: bar bundle 1`] = ` -"!(function (e) { - var n = {}; - function t(r) { - if (n[r]) return n[r].exports; - var o = (n[r] = { i: r, l: !1, exports: {} }); - return e[r].call(o.exports, o, o.exports, t), (o.l = !0), o.exports; - } - (t.m = e), - (t.c = n), - (t.d = function (e, n, r) { - t.o(e, n) || Object.defineProperty(e, n, { enumerable: !0, get: r }); - }), - (t.r = function (e) { - \\"undefined\\" != typeof Symbol && - Symbol.toStringTag && - Object.defineProperty(e, Symbol.toStringTag, { value: \\"Module\\" }), - Object.defineProperty(e, \\"__esModule\\", { value: !0 }); - }), - (t.t = function (e, n) { - if ((1 & n && (e = t(e)), 8 & n)) return e; - if (4 & n && \\"object\\" == typeof e && e && e.__esModule) return e; - var r = Object.create(null); - if ( - (t.r(r), - Object.defineProperty(r, \\"default\\", { enumerable: !0, value: e }), - 2 & n && \\"string\\" != typeof e) - ) - for (var o in e) - t.d( - r, - o, - function (n) { - return e[n]; - }.bind(null, o) - ); - return r; - }), - (t.n = function (e) { - var n = - e && e.__esModule - ? function () { - return e.default; - } - : function () { - return e; - }; - return t.d(n, \\"a\\", n), n; - }), - (t.o = function (e, n) { - return Object.prototype.hasOwnProperty.call(e, n); - }), - (t.p = \\"\\"), - t((t.s = 3)); -})([ - function (e, n, t) { - \\"use strict\\"; - var r, - o = (function () { - var e = {}; - return function (n) { - if (void 0 === e[n]) { - var t = document.querySelector(n); - if ( - window.HTMLIFrameElement && - t instanceof window.HTMLIFrameElement - ) - try { - t = t.contentDocument.head; - } catch (e) { - t = null; - } - e[n] = t; - } - return e[n]; - }; - })(), - i = []; - function a(e) { - for (var n = -1, t = 0; t < i.length; t++) - if (i[t].identifier === e) { - n = t; - break; - } - return n; - } - function c(e, n) { - for (var t = {}, r = [], o = 0; o < e.length; o++) { - var c = e[o], - u = n.base ? c[0] + n.base : c[0], - s = t[u] || 0, - f = \\"\\".concat(u, \\" \\").concat(s); - t[u] = s + 1; - var l = a(f), - d = { css: c[1], media: c[2], sourceMap: c[3] }; - -1 !== l - ? (i[l].references++, i[l].updater(d)) - : i.push({ identifier: f, updater: v(d, n), references: 1 }), - r.push(f); - } - return r; - } - function u(e) { - var n = document.createElement(\\"style\\"), - r = e.attributes || {}; - if (void 0 === r.nonce) { - var i = t.nc; - i && (r.nonce = i); - } - if ( - (Object.keys(r).forEach(function (e) { - n.setAttribute(e, r[e]); - }), - \\"function\\" == typeof e.insert) - ) - e.insert(n); - else { - var a = o(e.insert || \\"head\\"); - if (!a) - throw new Error( - \\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\\" - ); - a.appendChild(n); - } - return n; - } - var s, - f = - ((s = []), - function (e, n) { - return (s[e] = n), s.filter(Boolean).join(\\"\\\\n\\"); - }); - function l(e, n, t, r) { - var o = t - ? \\"\\" - : r.media - ? \\"@media \\".concat(r.media, \\" {\\").concat(r.css, \\"}\\") - : r.css; - if (e.styleSheet) e.styleSheet.cssText = f(n, o); - else { - var i = document.createTextNode(o), - a = e.childNodes; - a[n] && e.removeChild(a[n]), - a.length ? e.insertBefore(i, a[n]) : e.appendChild(i); - } - } - function d(e, n, t) { - var r = t.css, - o = t.media, - i = t.sourceMap; - if ( - (o ? e.setAttribute(\\"media\\", o) : e.removeAttribute(\\"media\\"), - i && - \\"undefined\\" != typeof btoa && - (r += \\"\\\\n/*# sourceMappingURL=data:application/json;base64,\\".concat( - btoa(unescape(encodeURIComponent(JSON.stringify(i)))), - \\" */\\" - )), - e.styleSheet) - ) - e.styleSheet.cssText = r; - else { - for (; e.firstChild; ) e.removeChild(e.firstChild); - e.appendChild(document.createTextNode(r)); - } - } - var p = null, - b = 0; - function v(e, n) { - var t, r, o; - if (n.singleton) { - var i = b++; - (t = p || (p = u(n))), - (r = l.bind(null, t, i, !1)), - (o = l.bind(null, t, i, !0)); - } else - (t = u(n)), - (r = d.bind(null, t, n)), - (o = function () { - !(function (e) { - if (null === e.parentNode) return !1; - e.parentNode.removeChild(e); - })(t); - }); - return ( - r(e), - function (n) { - if (n) { - if ( - n.css === e.css && - n.media === e.media && - n.sourceMap === e.sourceMap - ) - return; - r((e = n)); - } else o(); - } - ); - } - e.exports = function (e, n) { - (n = n || {}).singleton || - \\"boolean\\" == typeof n.singleton || - (n.singleton = - (void 0 === r && - (r = Boolean(window && document && document.all && !window.atob)), - r)); - var t = c((e = e || []), n); - return function (e) { - if ( - ((e = e || []), - \\"[object Array]\\" === Object.prototype.toString.call(e)) - ) { - for (var r = 0; r < t.length; r++) { - var o = a(t[r]); - i[o].references--; - } - for (var u = c(e, n), s = 0; s < t.length; s++) { - var f = a(t[s]); - 0 === i[f].references && (i[f].updater(), i.splice(f, 1)); - } - t = u; - } - }; - }; - }, - function (e, n, t) { - \\"use strict\\"; - e.exports = function (e) { - var n = []; - return ( - (n.toString = function () { - return this.map(function (n) { - var t = (function (e, n) { - var t, - r, - o, - i = e[1] || \\"\\", - a = e[3]; - if (!a) return i; - if (n && \\"function\\" == typeof btoa) { - var c = - ((t = a), - (r = btoa(unescape(encodeURIComponent(JSON.stringify(t))))), - (o = - \\"sourceMappingURL=data:application/json;charset=utf-8;base64,\\".concat( - r - )), - \\"/*# \\".concat(o, \\" */\\")), - u = a.sources.map(function (e) { - return \\"/*# sourceURL=\\" - .concat(a.sourceRoot || \\"\\") - .concat(e, \\" */\\"); - }); - return [i].concat(u).concat([c]).join(\\"\\\\n\\"); - } - return [i].join(\\"\\\\n\\"); - })(n, e); - return n[2] ? \\"@media \\".concat(n[2], \\" {\\").concat(t, \\"}\\") : t; - }).join(\\"\\"); - }), - (n.i = function (e, t, r) { - \\"string\\" == typeof e && (e = [[null, e, \\"\\"]]); - var o = {}; - if (r) - for (var i = 0; i < this.length; i++) { - var a = this[i][0]; - null != a && (o[a] = !0); - } - for (var c = 0; c < e.length; c++) { - var u = [].concat(e[c]); - (r && o[u[0]]) || - (t && - (u[2] - ? (u[2] = \\"\\".concat(t, \\" and \\").concat(u[2])) - : (u[2] = t)), - n.push(u)); - } - }), - n - ); - }; - }, - function (e, n, t) { - t.r(n); - var r = __kbnBundles__.get(\\"plugin/foo/public\\"); - Object.defineProperties(n, Object.getOwnPropertyDescriptors(r)); - }, - function (e, n, t) { - t(4), __kbnBundles__.define(\\"plugin/bar/public\\", t, 15); - }, - function (e, n, t) { - t.p = window.__kbnPublicPath__.bar; - }, - function (e, n, t) { - switch (window.__kbnThemeTag__) { - case \\"v8dark\\": - return t(6); - case \\"v8light\\": - return t(8); - } - }, - function (e, n, t) { - var r = t(0), - o = t(7); - \\"string\\" == typeof (o = o.__esModule ? o.default : o) && - (o = [[e.i, o, \\"\\"]]); - r(o, { insert: \\"head\\", singleton: !1 }), (e.exports = o.locals || {}); - }, - function (e, n, t) { - (n = t(1)(!1)).push([e.i, \\"p{background-color:#639}body{width:12}\\", \\"\\"]), - (e.exports = n); - }, - function (e, n, t) { - var r = t(0), - o = t(9); - \\"string\\" == typeof (o = o.__esModule ? o.default : o) && - (o = [[e.i, o, \\"\\"]]); - r(o, { insert: \\"head\\", singleton: !1 }), (e.exports = o.locals || {}); - }, - function (e, n, t) { - (n = t(1)(!1)).push([e.i, \\"p{background-color:#639}body{width:13}\\", \\"\\"]), - (e.exports = n); - }, - function (e, n, t) { - switch (window.__kbnThemeTag__) { - case \\"v8dark\\": - return t(11); - case \\"v8light\\": - return t(13); - } - }, - function (e, n, t) { - var r = t(0), - o = t(12); - \\"string\\" == typeof (o = o.__esModule ? o.default : o) && - (o = [[e.i, o, \\"\\"]]); - r(o, { insert: \\"head\\", singleton: !1 }), (e.exports = o.locals || {}); - }, - function (e, n, t) { - (n = t(1)(!1)).push([e.i, \\"body{color:green}\\", \\"\\"]), (e.exports = n); - }, - function (e, n, t) { - var r = t(0), - o = t(14); - \\"string\\" == typeof (o = o.__esModule ? o.default : o) && - (o = [[e.i, o, \\"\\"]]); - r(o, { insert: \\"head\\", singleton: !1 }), (e.exports = o.locals || {}); - }, - function (e, n, t) { - (n = t(1)(!1)).push([e.i, \\"body{color:green}\\", \\"\\"]), (e.exports = n); - }, - function (e, n, t) { - \\"use strict\\"; - t.r(n), - t.d(n, \\"barLibFn\\", function () { - return o; - }), - t.d(n, \\"fooLibFn\\", function () { - return r.fooLibFn; - }), - t(5), - t(10); - var r = t(2); - function o() { - return \\"bar\\"; - } - }, -]); -" -`; - -exports[`prepares assets for distribution: baz bundle 1`] = ` -"/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. - * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ !(function ( - e -) { - var n = {}; - function t(r) { - if (n[r]) return n[r].exports; - var o = (n[r] = { i: r, l: !1, exports: {} }); - return e[r].call(o.exports, o, o.exports, t), (o.l = !0), o.exports; - } - (t.m = e), - (t.c = n), - (t.d = function (e, n, r) { - t.o(e, n) || Object.defineProperty(e, n, { enumerable: !0, get: r }); - }), - (t.r = function (e) { - \\"undefined\\" != typeof Symbol && - Symbol.toStringTag && - Object.defineProperty(e, Symbol.toStringTag, { value: \\"Module\\" }), - Object.defineProperty(e, \\"__esModule\\", { value: !0 }); - }), - (t.t = function (e, n) { - if ((1 & n && (e = t(e)), 8 & n)) return e; - if (4 & n && \\"object\\" == typeof e && e && e.__esModule) return e; - var r = Object.create(null); - if ( - (t.r(r), - Object.defineProperty(r, \\"default\\", { enumerable: !0, value: e }), - 2 & n && \\"string\\" != typeof e) - ) - for (var o in e) - t.d( - r, - o, - function (n) { - return e[n]; - }.bind(null, o) - ); - return r; - }), - (t.n = function (e) { - var n = - e && e.__esModule - ? function () { - return e.default; - } - : function () { - return e; - }; - return t.d(n, \\"a\\", n), n; - }), - (t.o = function (e, n) { - return Object.prototype.hasOwnProperty.call(e, n); - }), - (t.p = \\"\\"), - t((t.s = 0)); -})([ - function (e, n, t) { - t(1), __kbnBundles__.define(\\"plugin/baz/public\\", t, 2); - }, - function (e, n, t) { - t.p = window.__kbnPublicPath__.baz; - }, - function (e, n) { - console.log(\\"plugin in an x-pack dir\\"); - }, -]); -" -`; - -exports[`prepares assets for distribution: foo async bundle 1`] = ` -"(window.foo_bundle_jsonpfunction = window.foo_bundle_jsonpfunction || []).push([ - [1], - { - 3: function (n, o, u) { - \\"use strict\\"; - function f() {} - u.r(o), - u.d(o, \\"foo\\", function () { - return f; - }); - }, - }, -]); -" -`; - -exports[`prepares assets for distribution: foo bundle 1`] = ` -"!(function (n) { - function e(e) { - for (var t, o, u = e[0], i = e[1], c = 0, a = []; c < u.length; c++) - (o = u[c]), - Object.prototype.hasOwnProperty.call(r, o) && r[o] && a.push(r[o][0]), - (r[o] = 0); - for (t in i) Object.prototype.hasOwnProperty.call(i, t) && (n[t] = i[t]); - for (f && f(e); a.length; ) a.shift()(); - } - var t = {}, - r = { 0: 0 }; - function o(e) { - if (t[e]) return t[e].exports; - var r = (t[e] = { i: e, l: !1, exports: {} }); - return n[e].call(r.exports, r, r.exports, o), (r.l = !0), r.exports; - } - (o.e = function (n) { - var e = [], - t = r[n]; - if (0 !== t) - if (t) e.push(t[2]); - else { - var u = new Promise(function (e, o) { - t = r[n] = [e, o]; - }); - e.push((t[2] = u)); - var i, - c = document.createElement(\\"script\\"); - (c.charset = \\"utf-8\\"), - (c.timeout = 120), - o.nc && c.setAttribute(\\"nonce\\", o.nc), - (c.src = (function (n) { - return o.p + \\"foo.chunk.\\" + n + \\".js\\"; - })(n)); - var f = new Error(); - i = function (e) { - (c.onerror = c.onload = null), clearTimeout(a); - var t = r[n]; - if (0 !== t) { - if (t) { - var o = e && (\\"load\\" === e.type ? \\"missing\\" : e.type), - u = e && e.target && e.target.src; - (f.message = - \\"Loading chunk \\" + n + \\" failed.\\\\n(\\" + o + \\": \\" + u + \\")\\"), - (f.name = \\"ChunkLoadError\\"), - (f.type = o), - (f.request = u), - t[1](f); - } - r[n] = void 0; - } - }; - var a = setTimeout(function () { - i({ type: \\"timeout\\", target: c }); - }, 12e4); - (c.onerror = c.onload = i), document.head.appendChild(c); - } - return Promise.all(e); - }), - (o.m = n), - (o.c = t), - (o.d = function (n, e, t) { - o.o(n, e) || Object.defineProperty(n, e, { enumerable: !0, get: t }); - }), - (o.r = function (n) { - \\"undefined\\" != typeof Symbol && - Symbol.toStringTag && - Object.defineProperty(n, Symbol.toStringTag, { value: \\"Module\\" }), - Object.defineProperty(n, \\"__esModule\\", { value: !0 }); - }), - (o.t = function (n, e) { - if ((1 & e && (n = o(n)), 8 & e)) return n; - if (4 & e && \\"object\\" == typeof n && n && n.__esModule) return n; - var t = Object.create(null); - if ( - (o.r(t), - Object.defineProperty(t, \\"default\\", { enumerable: !0, value: n }), - 2 & e && \\"string\\" != typeof n) - ) - for (var r in n) - o.d( - t, - r, - function (e) { - return n[e]; - }.bind(null, r) - ); - return t; - }), - (o.n = function (n) { - var e = - n && n.__esModule - ? function () { - return n.default; - } - : function () { - return n; - }; - return o.d(e, \\"a\\", e), e; - }), - (o.o = function (n, e) { - return Object.prototype.hasOwnProperty.call(n, e); - }), - (o.p = \\"\\"), - (o.oe = function (n) { - throw (console.error(n), n); - }); - var u = (window.foo_bundle_jsonpfunction = - window.foo_bundle_jsonpfunction || []), - i = u.push.bind(u); - (u.push = e), (u = u.slice()); - for (var c = 0; c < u.length; c++) e(u[c]); - var f = i; - o((o.s = 0)); -})([ - function (n, e, t) { - t(1), __kbnBundles__.define(\\"plugin/foo/public\\", t, 2); - }, - function (n, e, t) { - t.p = window.__kbnPublicPath__.foo; - }, - function (n, e, t) { - \\"use strict\\"; - function r() { - return \\"foo\\"; - } - t.r(e), - t.d(e, \\"fooLibFn\\", function () { - return r; - }), - t.d(e, \\"ext\\", function () { - return o; - }), - t.d(e, \\"getFoo\\", function () { - return u; - }); - const o = \\"TRUE\\"; - async function u() { - return await t.e(1).then(t.bind(null, 3)); - } - }, -]); -" -`; - -exports[`prepares assets for distribution: metrics.json 1`] = ` -"[ - { - \\"group\\": \\"@kbn/optimizer bundle module count\\", - \\"id\\": \\"foo\\", - \\"value\\": 6 - }, - { - \\"group\\": \\"page load bundle size\\", - \\"id\\": \\"foo\\", - \\"value\\": 2457, - \\"limitConfigPath\\": \\"packages/kbn-optimizer/limits.yml\\" - }, - { - \\"group\\": \\"async chunks size\\", - \\"id\\": \\"foo\\", - \\"value\\": 173 - }, - { - \\"group\\": \\"async chunk count\\", - \\"id\\": \\"foo\\", - \\"value\\": 1 - }, - { - \\"group\\": \\"miscellaneous assets size\\", - \\"id\\": \\"foo\\", - \\"value\\": 0 - } -]" -`; diff --git a/packages/kbn-optimizer/src/integration_tests/basic_optimization.test.ts b/packages/kbn-optimizer/src/integration_tests/basic_optimization.test.ts deleted file mode 100644 index 1e84f4443b3754..00000000000000 --- a/packages/kbn-optimizer/src/integration_tests/basic_optimization.test.ts +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; -import Fs from 'fs'; -import Zlib from 'zlib'; -import { inspect } from 'util'; -import prettier from 'prettier'; - -import cpy from 'cpy'; -import del from 'del'; -import { tap, filter } from 'rxjs/operators'; -import { REPO_ROOT } from '@kbn/repo-info'; -import { ToolingLog } from '@kbn/tooling-log'; -import { createReplaceSerializer } from '@kbn/jest-serializers'; -import { runOptimizer, OptimizerConfig, OptimizerUpdate, logOptimizerState } from '../..'; - -import { allValuesFrom } from '../common'; - -const TMP_DIR = Path.resolve(__dirname, '../__fixtures__/__tmp__'); -const MOCK_REPO_SRC = Path.resolve(__dirname, '../__fixtures__/mock_repo'); -const MOCK_REPO_DIR = Path.resolve(TMP_DIR, 'mock_repo'); - -expect.addSnapshotSerializer({ - serialize: (value: string) => value.split(REPO_ROOT).join('').replace(/\\/g, '/'), - test: (value: any) => typeof value === 'string' && value.includes(REPO_ROOT), -}); - -expect.addSnapshotSerializer(createReplaceSerializer(/\w+-fastbuild/, '-fastbuild')); - -const log = new ToolingLog({ - level: 'error', - writeTo: { - write(chunk) { - if (chunk.endsWith('\n')) { - chunk = chunk.slice(0, -1); - } - // eslint-disable-next-line no-console - console.error(chunk); - }, - }, -}); - -beforeAll(async () => { - await del(TMP_DIR); - await cpy('**/*', MOCK_REPO_DIR, { - cwd: MOCK_REPO_SRC, - parents: true, - deep: true, - }); -}); - -afterAll(async () => { - await del(TMP_DIR); -}); - -it('builds expected bundles, saves bundle counts to metadata', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [Path.resolve(MOCK_REPO_DIR, 'plugins'), Path.resolve(MOCK_REPO_DIR, 'x-pack')], - maxWorkerCount: 1, - dist: false, - }); - - expect(config).toMatchSnapshot('OptimizerConfig'); - - const msgs = await allValuesFrom( - runOptimizer(config).pipe( - logOptimizerState(log, config), - filter((x) => x.event?.type !== 'worker stdio') - ) - ); - - const assert = (statement: string, truth: boolean, altStates?: OptimizerUpdate[]) => { - if (!truth) { - throw new Error( - `expected optimizer to ${statement}, states: ${inspect(altStates || msgs, { - colors: true, - depth: Infinity, - })}` - ); - } - }; - - const initializingStates = msgs.filter((msg) => msg.state.phase === 'initializing'); - assert('produce at least one initializing event', initializingStates.length >= 1); - - const bundleCacheStates = msgs.filter( - (msg) => - (msg.event?.type === 'bundle cached' || msg.event?.type === 'bundle not cached') && - msg.state.phase === 'initializing' - ); - assert('produce three bundle cache events while initializing', bundleCacheStates.length === 3); - - const initializedStates = msgs.filter((msg) => msg.state.phase === 'initialized'); - assert('produce at least one initialized event', initializedStates.length >= 1); - - const workerStarted = msgs.filter((msg) => msg.event?.type === 'worker started'); - assert('produce one worker started event', workerStarted.length === 1); - - const runningStates = msgs.filter((msg) => msg.state.phase === 'running'); - assert( - 'produce three to five "running" states', - runningStates.length >= 3 && runningStates.length <= 5 - ); - - const bundleNotCachedEvents = msgs.filter((msg) => msg.event?.type === 'bundle not cached'); - assert('produce three "bundle not cached" events', bundleNotCachedEvents.length === 3); - - const successStates = msgs.filter((msg) => msg.state.phase === 'success'); - assert( - 'produce one to three "compiler success" states', - successStates.length >= 1 && successStates.length <= 3 - ); - - const otherStates = msgs.filter( - (msg) => - msg.state.phase !== 'initializing' && - msg.state.phase !== 'success' && - msg.state.phase !== 'running' && - msg.state.phase !== 'initialized' && - msg.event?.type !== 'bundle not cached' - ); - assert('produce zero unexpected states', otherStates.length === 0, otherStates); - - const foo = config.bundles.find((b) => b.id === 'foo')!; - expect(foo).toBeTruthy(); - foo.cache.refresh(); - expect(foo.cache.getModuleCount()).toBe(6); - expect(foo.cache.getReferencedPaths()).toMatchInlineSnapshot(` - Array [ - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/kibana.json, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/public/async_import.ts, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/public/ext.ts, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/public/index.ts, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/foo/public/lib.ts, - /packages/kbn-optimizer/src/worker/entry_point_creator.ts, - /packages/kbn-ui-shared-deps-npm/src/public_path_module_creator.js, - ] - `); - - const bar = config.bundles.find((b) => b.id === 'bar')!; - expect(bar).toBeTruthy(); - bar.cache.refresh(); - expect(bar.cache.getModuleCount()).toBe( - // code + styles + style/css-loader runtimes + public path updater - 16 - ); - - expect(bar.cache.getReferencedPaths()).toMatchInlineSnapshot(` - Array [ - /node_modules/css-loader/package.json, - /node_modules/style-loader/package.json, - /packages/kbn-optimizer/postcss.config.js, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/kibana.json, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/index.scss, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/index.ts, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/legacy/_other_styles.scss, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/legacy/styles.scss, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/lib.ts, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/styles/core_app/_globals_v8dark.scss, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/styles/core_app/_globals_v8light.scss, - /packages/kbn-optimizer/src/worker/entry_point_creator.ts, - /packages/kbn-ui-shared-deps-npm/src/public_path_module_creator.js, - ] - `); - - const baz = config.bundles.find((b) => b.id === 'baz')!; - expect(baz).toBeTruthy(); - baz.cache.refresh(); - expect(baz.cache.getModuleCount()).toBe(3); - - expect(baz.cache.getReferencedPaths()).toMatchInlineSnapshot(` - Array [ - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/kibana.json, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/x-pack/baz/public/index.ts, - /packages/kbn-optimizer/src/worker/entry_point_creator.ts, - /packages/kbn-ui-shared-deps-npm/src/public_path_module_creator.js, - ] - `); -}); - -it('uses cache on second run and exist cleanly', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [Path.resolve(MOCK_REPO_DIR, 'plugins'), Path.resolve(MOCK_REPO_DIR, 'x-pack')], - maxWorkerCount: 1, - dist: false, - }); - - const msgs = await allValuesFrom( - runOptimizer(config).pipe( - tap((state) => { - if (state.event?.type === 'worker stdio') { - // eslint-disable-next-line no-console - console.log('worker', state.event.stream, state.event.line); - } - }) - ) - ); - - expect(msgs.map((m) => m.state.phase)).toMatchInlineSnapshot(` - Array [ - "initializing", - "initializing", - "initializing", - "initializing", - "initialized", - "success", - ] - `); -}); - -it('prepares assets for distribution', async () => { - if (process.env.CODE_COVERAGE) { - // test fails when testing coverage because source includes instrumentation, so skip it - return; - } - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [Path.resolve(MOCK_REPO_DIR, 'plugins'), Path.resolve(MOCK_REPO_DIR, 'x-pack')], - maxWorkerCount: 1, - dist: true, - }); - - await allValuesFrom(runOptimizer(config).pipe(logOptimizerState(log, config))); - - expect( - Fs.readFileSync(Path.resolve(MOCK_REPO_DIR, 'plugins/foo/target/public/metrics.json'), 'utf8') - ).toMatchSnapshot('metrics.json'); - - expectFileMatchesSnapshotWithCompression('plugins/foo/target/public/foo.plugin.js', 'foo bundle'); - expectFileMatchesSnapshotWithCompression( - 'plugins/foo/target/public/foo.chunk.1.js', - 'foo async bundle' - ); - expectFileMatchesSnapshotWithCompression('plugins/bar/target/public/bar.plugin.js', 'bar bundle'); - expectFileMatchesSnapshotWithCompression('x-pack/baz/target/public/baz.plugin.js', 'baz bundle'); -}); - -/** - * Verifies that the file matches the expected output and has matching compressed variants. - */ -const expectFileMatchesSnapshotWithCompression = (filePath: string, snapshotLabel: string) => { - const path = Path.resolve(MOCK_REPO_DIR, filePath); - const raw = Fs.readFileSync(path, 'utf8'); - const pretty = prettier.format(raw, { - filepath: path, - }); - - expect(pretty).toMatchSnapshot(snapshotLabel); - - // Verify the brotli variant matches - expect( - Zlib.brotliDecompressSync( - Fs.readFileSync(Path.resolve(MOCK_REPO_DIR, `${filePath}.br`)) - ).toString() - ).toEqual(raw); -}; diff --git a/packages/kbn-optimizer/src/integration_tests/bundle_cache.test.ts b/packages/kbn-optimizer/src/integration_tests/bundle_cache.test.ts deleted file mode 100644 index bfec5800abebef..00000000000000 --- a/packages/kbn-optimizer/src/integration_tests/bundle_cache.test.ts +++ /dev/null @@ -1,384 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; - -import cpy from 'cpy'; -import del from 'del'; -import { createAbsolutePathSerializer, createStripAnsiSerializer } from '@kbn/jest-serializers'; - -import { OptimizerConfig } from '../optimizer/optimizer_config'; -import { allValuesFrom, Bundle, Hashes, ParsedDllManifest } from '../common'; -import { getBundleCacheEvent$ } from '../optimizer/bundle_cache'; - -const TMP_DIR = Path.resolve(__dirname, '../__fixtures__/__tmp__'); -const MOCK_REPO_SRC = Path.resolve(__dirname, '../__fixtures__/mock_repo'); -const MOCK_REPO_DIR = Path.resolve(TMP_DIR, 'mock_repo'); - -jest.mock('../common/dll_manifest', () => ({ - parseDllManifest: jest.fn(), -})); - -const EMPTY_DLL_MANIFEST: ParsedDllManifest = { - name: 'foo', - content: {}, -}; -jest.requireMock('../common/dll_manifest').parseDllManifest.mockReturnValue(EMPTY_DLL_MANIFEST); - -expect.addSnapshotSerializer({ - print: () => '', - test: (v) => v instanceof Bundle, -}); -expect.addSnapshotSerializer(createStripAnsiSerializer()); -expect.addSnapshotSerializer(createAbsolutePathSerializer(MOCK_REPO_DIR)); - -beforeEach(async () => { - await del(TMP_DIR); - await cpy('**/*', MOCK_REPO_DIR, { - cwd: MOCK_REPO_SRC, - parents: true, - deep: true, - }); -}); - -afterEach(async () => { - await del(TMP_DIR); -}); - -it('emits "bundle cached" event when everything is updated', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [], - pluginPaths: [Path.resolve(MOCK_REPO_DIR, 'plugins/foo')], - maxWorkerCount: 1, - }); - const [bundle] = config.bundles; - - const optimizerCacheKey = 'optimizerCacheKey'; - const referencedPaths = [ - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/ext.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/index.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/lib.ts'), - ]; - const hashes = await Hashes.ofFiles(referencedPaths); - const cacheKey = bundle.createCacheKey(referencedPaths, hashes, EMPTY_DLL_MANIFEST, []); - - bundle.cache.set({ - cacheKey, - optimizerCacheKey, - referencedPaths, - moduleCount: referencedPaths.length, - bundleRefExportIds: [], - dllRefKeys: [], - }); - - const cacheEvents = await allValuesFrom(getBundleCacheEvent$(config, optimizerCacheKey)); - - expect(cacheEvents).toMatchInlineSnapshot(` - Array [ - Object { - "bundle": , - "type": "bundle cached", - }, - ] - `); -}); - -it('emits "bundle not cached" event when cacheKey is up to date but caching is disabled in config', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [], - pluginPaths: [Path.resolve(MOCK_REPO_DIR, 'plugins/foo')], - maxWorkerCount: 1, - cache: false, - }); - const [bundle] = config.bundles; - - const optimizerCacheKey = 'optimizerCacheKey'; - const referencedPaths = [ - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/ext.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/index.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/lib.ts'), - ]; - const hashes = await Hashes.ofFiles(referencedPaths); - const cacheKey = bundle.createCacheKey(referencedPaths, hashes, EMPTY_DLL_MANIFEST, []); - - bundle.cache.set({ - cacheKey, - optimizerCacheKey, - referencedPaths, - moduleCount: referencedPaths.length, - bundleRefExportIds: [], - dllRefKeys: [], - }); - - const cacheEvents = await allValuesFrom(getBundleCacheEvent$(config, optimizerCacheKey)); - - expect(cacheEvents).toMatchInlineSnapshot(` - Array [ - Object { - "bundle": , - "reason": "cache disabled", - "type": "bundle not cached", - }, - ] - `); -}); - -it('emits "bundle not cached" event when optimizerCacheKey is missing', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [], - pluginPaths: [Path.resolve(MOCK_REPO_DIR, 'plugins/foo')], - maxWorkerCount: 1, - }); - const [bundle] = config.bundles; - - const optimizerCacheKey = 'optimizerCacheKey'; - const referencedPaths = [ - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/ext.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/index.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/lib.ts'), - ]; - const hashes = await Hashes.ofFiles(referencedPaths); - const cacheKey = bundle.createCacheKey(referencedPaths, hashes, EMPTY_DLL_MANIFEST, []); - - bundle.cache.set({ - cacheKey, - optimizerCacheKey: undefined, - referencedPaths, - moduleCount: referencedPaths.length, - bundleRefExportIds: [], - dllRefKeys: [], - }); - - const cacheEvents = await allValuesFrom(getBundleCacheEvent$(config, optimizerCacheKey)); - - expect(cacheEvents).toMatchInlineSnapshot(` - Array [ - Object { - "bundle": , - "reason": "missing optimizer cache key", - "type": "bundle not cached", - }, - ] - `); -}); - -it('emits "bundle not cached" event when optimizerCacheKey is outdated, includes diff', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [], - pluginPaths: [Path.resolve(MOCK_REPO_DIR, 'plugins/foo')], - maxWorkerCount: 1, - }); - const [bundle] = config.bundles; - - const optimizerCacheKey = 'optimizerCacheKey'; - const referencedPaths = [ - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/ext.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/index.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/lib.ts'), - ]; - const hashes = await Hashes.ofFiles(referencedPaths); - const cacheKey = bundle.createCacheKey(referencedPaths, hashes, EMPTY_DLL_MANIFEST, []); - - bundle.cache.set({ - cacheKey, - optimizerCacheKey: 'old', - referencedPaths, - moduleCount: referencedPaths.length, - bundleRefExportIds: [], - dllRefKeys: [], - }); - - const cacheEvents = await allValuesFrom(getBundleCacheEvent$(config, optimizerCacheKey)); - - expect(cacheEvents).toMatchInlineSnapshot(` - Array [ - Object { - "bundle": , - "diff": "- Expected - + Received - - - \\"old\\" - + \\"optimizerCacheKey\\"", - "reason": "optimizer cache key mismatch", - "type": "bundle not cached", - }, - ] - `); -}); - -it('emits "bundle not cached" event when bundleRefExportIds is outdated, includes diff', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [], - pluginPaths: [Path.resolve(MOCK_REPO_DIR, 'plugins/foo')], - maxWorkerCount: 1, - }); - const [bundle] = config.bundles; - - const optimizerCacheKey = 'optimizerCacheKey'; - const referencedPaths = [ - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/ext.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/index.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/lib.ts'), - ]; - const hashes = await Hashes.ofFiles(referencedPaths); - const cacheKey = bundle.createCacheKey(referencedPaths, hashes, EMPTY_DLL_MANIFEST, []); - - bundle.cache.set({ - cacheKey, - optimizerCacheKey, - referencedPaths, - moduleCount: referencedPaths.length, - bundleRefExportIds: ['plugin/bar/public'], - dllRefKeys: [], - }); - - const cacheEvents = await allValuesFrom(getBundleCacheEvent$(config, optimizerCacheKey)); - - expect(cacheEvents).toMatchInlineSnapshot(` - Array [ - Object { - "bundle": , - "diff": "- Expected - + Received - - [ - + \\"plugin/bar/public\\" - ]", - "reason": "bundle references outdated", - "type": "bundle not cached", - }, - ] - `); -}); - -it('emits "bundle not cached" event when cacheKey is missing', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [], - pluginPaths: [Path.resolve(MOCK_REPO_DIR, 'plugins/foo')], - maxWorkerCount: 1, - }); - const [bundle] = config.bundles; - - const optimizerCacheKey = 'optimizerCacheKey'; - const referencedPaths = [ - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/ext.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/index.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/lib.ts'), - ]; - - bundle.cache.set({ - cacheKey: undefined, - optimizerCacheKey, - referencedPaths, - moduleCount: referencedPaths.length, - bundleRefExportIds: [], - dllRefKeys: [], - }); - - const cacheEvents = await allValuesFrom(getBundleCacheEvent$(config, optimizerCacheKey)); - - expect(cacheEvents).toMatchInlineSnapshot(` - Array [ - Object { - "bundle": , - "reason": "missing cache key", - "type": "bundle not cached", - }, - ] - `); -}); - -it('emits "bundle not cached" event when cacheKey is outdated', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [], - pluginPaths: [Path.resolve(MOCK_REPO_DIR, 'plugins/foo')], - maxWorkerCount: 1, - }); - const [bundle] = config.bundles; - - const optimizerCacheKey = 'optimizerCacheKey'; - const referencedPaths = [ - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/ext.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/index.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/lib.ts'), - ]; - - bundle.cache.set({ - cacheKey: 'old', - optimizerCacheKey, - referencedPaths, - moduleCount: referencedPaths.length, - bundleRefExportIds: [], - dllRefKeys: [], - }); - - jest.spyOn(bundle, 'createCacheKey').mockImplementation(() => 'new'); - - const cacheEvents = await allValuesFrom(getBundleCacheEvent$(config, optimizerCacheKey)); - - expect(cacheEvents).toMatchInlineSnapshot(` - Array [ - Object { - "bundle": , - "diff": "- Expected - + Received - - - \\"old\\" - + \\"new\\"", - "reason": "cache key mismatch", - "type": "bundle not cached", - }, - ] - `); -}); - -it('emits "dll references missing" when cacheKey has no dllRefs', async () => { - const config = OptimizerConfig.create({ - repoRoot: MOCK_REPO_DIR, - pluginScanDirs: [], - pluginPaths: [Path.resolve(MOCK_REPO_DIR, 'plugins/foo')], - maxWorkerCount: 1, - }); - const [bundle] = config.bundles; - - const optimizerCacheKey = 'optimizerCacheKey'; - const referencedPaths = [ - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/ext.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/index.ts'), - Path.resolve(MOCK_REPO_DIR, 'plugins/foo/public/lib.ts'), - ]; - - bundle.cache.set({ - cacheKey: 'correct', - optimizerCacheKey, - referencedPaths, - moduleCount: referencedPaths.length, - bundleRefExportIds: [], - }); - - jest.spyOn(bundle, 'createCacheKey').mockImplementation(() => 'correct'); - - const cacheEvents = await allValuesFrom(getBundleCacheEvent$(config, optimizerCacheKey)); - - expect(cacheEvents).toMatchInlineSnapshot(` - Array [ - Object { - "bundle": , - "reason": "dll references missing", - "type": "bundle not cached", - }, - ] - `); -}); diff --git a/packages/kbn-optimizer/src/integration_tests/optimizer_built_paths.test.ts b/packages/kbn-optimizer/src/integration_tests/optimizer_built_paths.test.ts deleted file mode 100644 index 2c4f130ce9490c..00000000000000 --- a/packages/kbn-optimizer/src/integration_tests/optimizer_built_paths.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { getOptimizerBuiltPaths } from '../optimizer/optimizer_built_paths'; -import { createAbsolutePathSerializer } from '@kbn/jest-serializers'; - -expect.addSnapshotSerializer(createAbsolutePathSerializer()); - -it(`finds all the optimizer files relative to it's path`, async () => { - const paths = await getOptimizerBuiltPaths(); - expect(paths).toMatchInlineSnapshot(` - Array [ - /packages/kbn-optimizer/src/cli.ts, - /packages/kbn-optimizer/src/common/array_helpers.ts, - /packages/kbn-optimizer/src/common/bundle_cache.ts, - /packages/kbn-optimizer/src/common/bundle_refs.ts, - /packages/kbn-optimizer/src/common/bundle.ts, - /packages/kbn-optimizer/src/common/compiler_messages.ts, - /packages/kbn-optimizer/src/common/dll_manifest.ts, - /packages/kbn-optimizer/src/common/event_stream_helpers.ts, - /packages/kbn-optimizer/src/common/hashes.ts, - /packages/kbn-optimizer/src/common/index.ts, - /packages/kbn-optimizer/src/common/obj_helpers.ts, - /packages/kbn-optimizer/src/common/parse_path.ts, - /packages/kbn-optimizer/src/common/rxjs_helpers.ts, - /packages/kbn-optimizer/src/common/theme_tags.ts, - /packages/kbn-optimizer/src/common/ts_helpers.ts, - /packages/kbn-optimizer/src/common/worker_config.ts, - /packages/kbn-optimizer/src/common/worker_messages.ts, - /packages/kbn-optimizer/src/limits.ts, - /packages/kbn-optimizer/src/log_optimizer_progress.ts, - /packages/kbn-optimizer/src/log_optimizer_state.ts, - /packages/kbn-optimizer/src/optimizer/assign_bundles_to_workers.ts, - /packages/kbn-optimizer/src/optimizer/bundle_cache.ts, - /packages/kbn-optimizer/src/optimizer/diff_cache_key.ts, - /packages/kbn-optimizer/src/optimizer/filter_by_id.ts, - /packages/kbn-optimizer/src/optimizer/focus_bundles.ts, - /packages/kbn-optimizer/src/optimizer/get_plugin_bundles.ts, - /packages/kbn-optimizer/src/optimizer/handle_optimizer_completion.ts, - /packages/kbn-optimizer/src/optimizer/index.ts, - /packages/kbn-optimizer/src/optimizer/kibana_platform_plugins.ts, - /packages/kbn-optimizer/src/optimizer/observe_stdio.ts, - /packages/kbn-optimizer/src/optimizer/observe_worker.ts, - /packages/kbn-optimizer/src/optimizer/optimizer_built_paths.ts, - /packages/kbn-optimizer/src/optimizer/optimizer_cache_key.ts, - /packages/kbn-optimizer/src/optimizer/optimizer_config.ts, - /packages/kbn-optimizer/src/optimizer/optimizer_state.ts, - /packages/kbn-optimizer/src/optimizer/run_workers.ts, - /packages/kbn-optimizer/src/optimizer/watch_bundles_for_changes.ts, - /packages/kbn-optimizer/src/optimizer/watcher.ts, - /packages/kbn-optimizer/src/report_optimizer_timings.ts, - /packages/kbn-optimizer/src/run_optimizer.ts, - /packages/kbn-optimizer/src/worker/bundle_metrics_plugin.ts, - /packages/kbn-optimizer/src/worker/bundle_ref_module.ts, - /packages/kbn-optimizer/src/worker/bundle_refs_plugin.ts, - /packages/kbn-optimizer/src/worker/emit_stats_plugin.ts, - /packages/kbn-optimizer/src/worker/entry_point_creator.ts, - /packages/kbn-optimizer/src/worker/populate_bundle_cache_plugin.ts, - /packages/kbn-optimizer/src/worker/run_compilers.ts, - /packages/kbn-optimizer/src/worker/run_worker.ts, - /packages/kbn-optimizer/src/worker/theme_loader.ts, - /packages/kbn-optimizer/src/worker/webpack.config.ts, - ] - `); -}); diff --git a/packages/kbn-optimizer/src/integration_tests/watch_bundles_for_changes.test.ts b/packages/kbn-optimizer/src/integration_tests/watch_bundles_for_changes.test.ts deleted file mode 100644 index edd2b2543031c1..00000000000000 --- a/packages/kbn-optimizer/src/integration_tests/watch_bundles_for_changes.test.ts +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import * as Rx from 'rxjs'; -import { map } from 'rxjs/operators'; -import { fakeSchedulers } from 'rxjs-marbles/jest'; -import ActualWatchpack from 'watchpack'; - -import { Bundle, ascending } from '../common'; -import { watchBundlesForChanges$ } from '../optimizer/watch_bundles_for_changes'; -import { BundleCacheEvent } from '../optimizer'; - -jest.mock('fs'); -jest.mock('watchpack'); - -const MockWatchPack: jest.MockedClass = jest.requireMock('watchpack'); -const bundleEntryPath = (bundle: Bundle) => `${bundle.contextDir}/public/index.ts`; - -const makeTestBundle = (id: string) => { - const bundle = new Bundle({ - type: 'plugin', - id, - contextDir: `/repo/plugins/${id}/public`, - publicDirNames: ['public'], - outputDir: `/repo/plugins/${id}/target/public`, - sourceRoot: `/repo`, - }); - - bundle.cache.set({ - cacheKey: 'abc', - moduleCount: 1, - optimizerCacheKey: 'abc', - referencedPaths: [bundleEntryPath(bundle)], - }); - - return bundle; -}; - -const FOO_BUNDLE = makeTestBundle('foo'); -const BAR_BUNDLE = makeTestBundle('bar'); -const BAZ_BUNDLE = makeTestBundle('baz'); -const BOX_BUNDLE = makeTestBundle('box'); -const CAR_BUNDLE = makeTestBundle('car'); -const BUNDLES = [FOO_BUNDLE, BAR_BUNDLE, BAZ_BUNDLE, BOX_BUNDLE, CAR_BUNDLE]; - -const bundleCacheEvent$ = Rx.from(BUNDLES).pipe( - map( - (bundle): BundleCacheEvent => ({ - type: 'bundle cached', - bundle, - }) - ) -); - -beforeEach(async () => { - jest.useFakeTimers({ legacyFakeTimers: true }); -}); - -afterEach(async () => { - jest.useRealTimers(); -}); - -it( - 'notifies of changes and completes once all bundles have changed', - fakeSchedulers(async (advance) => { - expect.assertions(18); - - const promise = Rx.lastValueFrom( - watchBundlesForChanges$(bundleCacheEvent$, Date.now()).pipe( - map((event, i) => { - // each time we trigger a change event we get a 'changed detected' event - if (i === 0 || i === 2 || i === 4 || i === 6) { - expect(event).toHaveProperty('type', 'changes detected'); - return; - } - - expect(event).toHaveProperty('type', 'changes'); - // to teach TS what we're doing - if (event.type !== 'changes') { - return; - } - - // first we change foo and bar, after 1 second that change comes though - if (i === 1) { - expect(event.bundles).toHaveLength(2); - const [bar, foo] = event.bundles.sort(ascending((b) => b.id)); - expect(bar).toHaveProperty('id', 'bar'); - expect(foo).toHaveProperty('id', 'foo'); - } - - // next we change just the baz package and it's represented on its own - if (i === 3) { - expect(event.bundles).toHaveLength(1); - expect(event.bundles[0]).toHaveProperty('id', 'baz'); - } - - // finally we change box and car together - if (i === 5) { - expect(event.bundles).toHaveLength(2); - const [bar, foo] = event.bundles.sort(ascending((b) => b.id)); - expect(bar).toHaveProperty('id', 'box'); - expect(foo).toHaveProperty('id', 'car'); - } - }) - ) - ); - - expect(MockWatchPack.mock.instances).toHaveLength(1); - const [watcher] = MockWatchPack.mock.instances as any as Array>; - expect(watcher.on).toHaveBeenCalledTimes(1); - expect(watcher.on).toHaveBeenCalledWith('change', expect.any(Function)); - const [, changeListener] = watcher.on.mock.calls[0]; - - // foo and bar are changes without 1sec so they are batched - changeListener(bundleEntryPath(FOO_BUNDLE), 'modified'); - advance(900); - changeListener(bundleEntryPath(BAR_BUNDLE), 'modified'); - advance(1000); - - // baz is the only change in 1sec so it is on its own - changeListener(bundleEntryPath(BAZ_BUNDLE), 'modified'); - advance(1000); - - // finish by changing box and car - changeListener(bundleEntryPath(BOX_BUNDLE), 'deleted'); - changeListener(bundleEntryPath(CAR_BUNDLE), 'deleted'); - advance(1000); - - await expect(promise).resolves.toEqual(undefined); - }) -); diff --git a/packages/kbn-optimizer/src/log_optimizer_state.ts b/packages/kbn-optimizer/src/log_optimizer_state.ts index 6271ab17e1e2d8..67a35d740ebe75 100644 --- a/packages/kbn-optimizer/src/log_optimizer_state.ts +++ b/packages/kbn-optimizer/src/log_optimizer_state.ts @@ -29,7 +29,7 @@ export function logOptimizerState(log: ToolingLog, config: OptimizerConfig) { log.warning(`worker`, event.stream, event.line); } - if (event?.type === 'bundle not cached') { + if (event?.type === 'bundle not cached' && event.reason !== 'cache disabled') { log.debug( `[${event.bundle.id}] bundle not cached because [${event.reason}]${ event.diff ? `, diff:\n${event.diff}` : '' @@ -42,19 +42,24 @@ export function logOptimizerState(log: ToolingLog, config: OptimizerConfig) { } if (event?.type === 'worker started') { - let moduleCount = 0; - let workUnits = 0; - for (const bundle of event.bundles) { - moduleCount += bundle.cache.getModuleCount() ?? NaN; - workUnits += bundle.cache.getWorkUnits() ?? NaN; - } + const moduleCount = event.bundles.reduce( + (acc, b) => acc + (b.cache.getModuleCount() ?? NaN), + 0 + ); + const workUnits = event.bundles.reduce( + (acc, b) => acc + (b.cache.getWorkUnits() ?? NaN), + 0 + ); log.info( `starting worker [${event.bundles.length} ${ event.bundles.length === 1 ? 'bundle' : 'bundles' }]` ); - log.debug(`modules [${moduleCount}] work units [${workUnits}]`); + + if (moduleCount || workUnits) { + log.debug(`modules [${moduleCount || '?'}] work units [${workUnits || '?'}]`); + } } if (state.phase === 'reallocating') { @@ -65,7 +70,15 @@ export function logOptimizerState(log: ToolingLog, config: OptimizerConfig) { if (state.phase === 'initialized') { if (!loggedInit) { loggedInit = true; - log.info(`initialized, ${state.offlineBundles.length} bundles cached`); + if (config.cache) { + log.info(`initialized, ${state.offlineBundles.length} bundles cached`); + } else { + log.info('initialized'); + log.warning( + 'cache disabled, new caches will still be written but existing caches are ignored' + ); + } + if (config.themeTags.length !== ALL_THEMES.length) { log.warning( `only building [${config.themeTags}] themes, customize with the KBN_OPTIMIZER_THEMES environment variable` diff --git a/packages/kbn-optimizer/src/optimizer/assign_bundles_to_workers.test.ts b/packages/kbn-optimizer/src/optimizer/assign_bundles_to_workers.test.ts index ccf90b9e777989..d72566265a002a 100644 --- a/packages/kbn-optimizer/src/optimizer/assign_bundles_to_workers.test.ts +++ b/packages/kbn-optimizer/src/optimizer/assign_bundles_to_workers.test.ts @@ -46,11 +46,15 @@ const assertReturnVal = (workers: Assignments[]) => { const testBundle = (id: string) => new Bundle({ contextDir: `/repo/plugin/${id}/public`, - publicDirNames: ['public'], id, outputDir: `/repo/plugins/${id}/target/public`, sourceRoot: `/repo`, type: 'plugin', + remoteInfo: { + pkgId: `@kbn/${id}-plugin`, + targets: ['public'], + }, + ignoreMetrics: false, }); const getBundles = ({ diff --git a/packages/kbn-optimizer/src/optimizer/bundle_cache.ts b/packages/kbn-optimizer/src/optimizer/bundle_cache.ts index 68bfa9e4de7782..9b7299bbae0b15 100644 --- a/packages/kbn-optimizer/src/optimizer/bundle_cache.ts +++ b/packages/kbn-optimizer/src/optimizer/bundle_cache.ts @@ -12,7 +12,7 @@ import * as Rx from 'rxjs'; import { mergeAll } from 'rxjs/operators'; import { dllManifestPath } from '@kbn/ui-shared-deps-npm'; -import { Bundle, BundleRefs, Hashes, parseDllManifest } from '../common'; +import { Bundle, BundleRemotes, Hashes, parseDllManifest } from '../common'; import { OptimizerConfig } from './optimizer_config'; import { diffCacheKey } from './diff_cache_key'; @@ -46,7 +46,7 @@ export function getBundleCacheEvent$( return Rx.defer(async () => { const events: BundleCacheEvent[] = []; const eligibleBundles: Bundle[] = []; - const bundleRefs = BundleRefs.fromBundles(config.bundles); + const bundleRemotes = BundleRemotes.fromBundles(config.bundles); for (const bundle of config.filteredBundles) { if (!config.cache) { @@ -88,8 +88,8 @@ export function getBundleCacheEvent$( continue; } - const bundleRefExportIds = bundle.cache.getBundleRefExportIds(); - if (!bundleRefExportIds) { + const remoteBundleImportReqs = bundle.cache.getRemoteBundleImportReqs(); + if (!remoteBundleImportReqs) { events.push({ type: 'bundle not cached', reason: 'bundle references missing', @@ -98,16 +98,15 @@ export function getBundleCacheEvent$( continue; } - const refs = bundleRefs.filterByExportIds(bundleRefExportIds); - const bundleRefsDiff = diffCacheKey( - refs.map((r) => r.exportId).sort((a, b) => a.localeCompare(b)), - bundleRefExportIds - ); - if (bundleRefsDiff) { + const validRemoteBundleImportReqs = bundleRemotes + .unionImportReqs(remoteBundleImportReqs) + .sort((a, b) => a.localeCompare(b)); + const bundleRemotesDiff = diffCacheKey(validRemoteBundleImportReqs, remoteBundleImportReqs); + if (bundleRemotesDiff) { events.push({ type: 'bundle not cached', reason: 'bundle references outdated', - diff: bundleRefsDiff, + diff: bundleRemotesDiff, bundle, }); continue; diff --git a/packages/kbn-optimizer/src/optimizer/focus_bundles.test.ts b/packages/kbn-optimizer/src/optimizer/focus_bundles.test.ts index ba8d10f414cd80..c1c22fcf6c35cd 100644 --- a/packages/kbn-optimizer/src/optimizer/focus_bundles.test.ts +++ b/packages/kbn-optimizer/src/optimizer/focus_bundles.test.ts @@ -17,8 +17,12 @@ function createBundle(id: string, deps: ReturnType) { id, contextDir: Path.resolve('/kibana/plugins', id), outputDir: Path.resolve('/kibana/plugins', id, 'target/public'), - publicDirNames: ['public'], sourceRoot: Path.resolve('/kibana'), + remoteInfo: { + pkgId: id === 'core' ? `@kbn/core` : `@kbn/${id}-plugin`, + targets: ['public'], + }, + ignoreMetrics: false, }); jest.spyOn(bundle, 'readBundleDeps').mockReturnValue(deps); diff --git a/packages/kbn-optimizer/src/optimizer/get_plugin_bundles.test.ts b/packages/kbn-optimizer/src/optimizer/get_plugin_bundles.test.ts index fd8c6b9c37f279..9a87a9563262fd 100644 --- a/packages/kbn-optimizer/src/optimizer/get_plugin_bundles.test.ts +++ b/packages/kbn-optimizer/src/optimizer/get_plugin_bundles.test.ts @@ -24,6 +24,8 @@ it('returns a bundle for core and each plugin', () => { isUiPlugin: true, extraPublicDirs: [], manifestPath: '/repo/plugins/foo/kibana.json', + pkgId: '@kbn/foo-plugin', + ignoreMetrics: false, }, { directory: '/repo/plugins/bar', @@ -31,6 +33,8 @@ it('returns a bundle for core and each plugin', () => { isUiPlugin: false, extraPublicDirs: [], manifestPath: '/repo/plugins/bar/kibana.json', + pkgId: '@kbn/bar-plugin', + ignoreMetrics: false, }, { directory: '/outside/of/repo/plugins/baz', @@ -38,6 +42,8 @@ it('returns a bundle for core and each plugin', () => { isUiPlugin: true, extraPublicDirs: [], manifestPath: '/outside/of/repo/plugins/baz/kibana.json', + pkgId: '@kbn/external-baz-plugin', + ignoreMetrics: false, }, { directory: '/repo/x-pack/plugins/box', @@ -45,8 +51,11 @@ it('returns a bundle for core and each plugin', () => { isUiPlugin: true, extraPublicDirs: [], manifestPath: '/repo/x-pack/plugins/box/kibana.json', + pkgId: '@kbn/box-plugin', + ignoreMetrics: false, }, ], + '/repo', '/output', { @@ -61,12 +70,16 @@ it('returns a bundle for core and each plugin', () => { "banner": undefined, "contextDir": /plugins/foo, "id": "foo", + "ignoreMetrics": false, "manifestPath": /plugins/foo/kibana.json, "outputDir": /plugins/foo/target/public, "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], + "remoteInfo": Object { + "pkgId": "@kbn/foo-plugin", + "targets": Array [ + "public", + ], + }, "sourceRoot": , "type": "plugin", }, @@ -74,27 +87,35 @@ it('returns a bundle for core and each plugin', () => { "banner": undefined, "contextDir": /plugins/baz, "id": "baz", + "ignoreMetrics": false, "manifestPath": /plugins/baz/kibana.json, "outputDir": /plugins/baz/target/public, "pageLoadAssetSizeLimit": undefined, - "publicDirNames": Array [ - "public", - ], + "remoteInfo": Object { + "pkgId": "@kbn/external-baz-plugin", + "targets": Array [ + "public", + ], + }, "sourceRoot": , "type": "plugin", }, Object { - "banner": "/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. + "banner": "/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ ", "contextDir": /x-pack/plugins/box, "id": "box", + "ignoreMetrics": false, "manifestPath": /x-pack/plugins/box/kibana.json, "outputDir": /x-pack/plugins/box/target/public, "pageLoadAssetSizeLimit": 123, - "publicDirNames": Array [ - "public", - ], + "remoteInfo": Object { + "pkgId": "@kbn/box-plugin", + "targets": Array [ + "public", + ], + }, "sourceRoot": , "type": "plugin", }, diff --git a/packages/kbn-optimizer/src/optimizer/get_plugin_bundles.ts b/packages/kbn-optimizer/src/optimizer/get_plugin_bundles.ts index 8134707561bc0e..d557c8bb6987f0 100644 --- a/packages/kbn-optimizer/src/optimizer/get_plugin_bundles.ts +++ b/packages/kbn-optimizer/src/optimizer/get_plugin_bundles.ts @@ -28,7 +28,6 @@ export function getPluginBundles( new Bundle({ type: 'plugin', id: p.id, - publicDirNames: ['public', ...p.extraPublicDirs], sourceRoot: repoRoot, contextDir: p.directory, outputDir: Path.resolve( @@ -38,10 +37,15 @@ export function getPluginBundles( ), manifestPath: p.manifestPath, banner: p.directory.startsWith(xpackDirSlash) - ? `/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. \n` + + ? `/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements.\n` + ` * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */\n` : undefined, pageLoadAssetSizeLimit: limits.pageLoadAssetSize?.[p.id], + remoteInfo: { + pkgId: p.pkgId, + targets: ['public', ...p.extraPublicDirs], + }, + ignoreMetrics: p.ignoreMetrics, }) ); } diff --git a/packages/kbn-optimizer/src/optimizer/kibana_platform_plugins.test.ts b/packages/kbn-optimizer/src/optimizer/kibana_platform_plugins.test.ts deleted file mode 100644 index 2b95b5ccc5c04c..00000000000000 --- a/packages/kbn-optimizer/src/optimizer/kibana_platform_plugins.test.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; - -import { createAbsolutePathSerializer } from '@kbn/jest-serializers'; - -import { findKibanaPlatformPlugins } from './kibana_platform_plugins'; - -expect.addSnapshotSerializer(createAbsolutePathSerializer()); - -const FIXTURES_PATH = Path.resolve(__dirname, '../__fixtures__'); - -it('parses kibana.json files of plugins found in pluginDirs', () => { - expect( - findKibanaPlatformPlugins( - [Path.resolve(FIXTURES_PATH, 'mock_repo/plugins')], - [Path.resolve(FIXTURES_PATH, 'mock_repo/test_plugins/test_baz')] - ) - ).toMatchInlineSnapshot(` - Array [ - Object { - "directory": /packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar, - "extraPublicDirs": Array [], - "id": "bar", - "isUiPlugin": true, - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/bar/kibana.json, - }, - Object { - "directory": /packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo, - "extraPublicDirs": Array [], - "id": "foo", - "isUiPlugin": true, - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/foo/kibana.json, - }, - Object { - "directory": /packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz, - "extraPublicDirs": Array [], - "id": "baz", - "isUiPlugin": false, - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/mock_repo/plugins/nested/baz/kibana.json, - }, - Object { - "directory": /packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz, - "extraPublicDirs": Array [], - "id": "test_baz", - "isUiPlugin": false, - "manifestPath": /packages/kbn-optimizer/src/__fixtures__/mock_repo/test_plugins/test_baz/kibana.json, - }, - ] - `); -}); diff --git a/packages/kbn-optimizer/src/optimizer/kibana_platform_plugins.ts b/packages/kbn-optimizer/src/optimizer/kibana_platform_plugins.ts index 833d4cd8b81106..c11ed26b556f06 100644 --- a/packages/kbn-optimizer/src/optimizer/kibana_platform_plugins.ts +++ b/packages/kbn-optimizer/src/optimizer/kibana_platform_plugins.ts @@ -6,42 +6,33 @@ * Side Public License, v 1. */ -import { simpleKibanaPlatformPluginDiscovery } from '@kbn/plugin-discovery'; +import Path from 'path'; +import { type PluginPackage, getPluginPackagesFilter } from '@kbn/repo-packages'; + +const isDefaultPlugin = getPluginPackagesFilter(); export interface KibanaPlatformPlugin { readonly directory: string; readonly manifestPath: string; readonly id: string; + readonly pkgId: string; readonly isUiPlugin: boolean; readonly extraPublicDirs: string[]; + readonly ignoreMetrics: boolean; } -const isArrayOfStrings = (input: any): input is string[] => - Array.isArray(input) && input.every((p) => typeof p === 'string'); - /** * Helper to find the new platform plugins. */ -export function findKibanaPlatformPlugins(scanDirs: string[], paths: string[]) { - return simpleKibanaPlatformPluginDiscovery(scanDirs, paths).map( - ({ directory, manifestPath, manifest }): KibanaPlatformPlugin => { - let extraPublicDirs: string[] | undefined; - if (manifest.extraPublicDirs) { - if (!isArrayOfStrings(manifest.extraPublicDirs)) { - throw new TypeError( - 'expected new platform plugin manifest to have an array of strings `extraPublicDirs` property' - ); - } - extraPublicDirs = manifest.extraPublicDirs; - } - - return { - directory, - manifestPath, - id: manifest.id, - isUiPlugin: manifest.ui, - extraPublicDirs: extraPublicDirs || [], - }; - } - ); +export function toKibanaPlatformPlugin(repoRoot: string, pkg: PluginPackage): KibanaPlatformPlugin { + const directory = Path.resolve(repoRoot, pkg.normalizedRepoRelativeDir); + return { + directory, + manifestPath: Path.resolve(directory, 'kibana.jsonc'), + id: pkg.manifest.plugin.id, + pkgId: pkg.manifest.id, + isUiPlugin: pkg.isPlugin() && pkg.manifest.plugin.browser, + extraPublicDirs: (pkg.isPlugin() && pkg.manifest.plugin.extraPublicDirs) || [], + ignoreMetrics: !isDefaultPlugin(pkg), + }; } diff --git a/packages/kbn-optimizer/src/optimizer/observe_worker.ts b/packages/kbn-optimizer/src/optimizer/observe_worker.ts index cf250a7deef6e0..22674f7ca86994 100644 --- a/packages/kbn-optimizer/src/optimizer/observe_worker.ts +++ b/packages/kbn-optimizer/src/optimizer/observe_worker.ts @@ -12,7 +12,7 @@ import { fork, type ChildProcess } from 'child_process'; import * as Rx from 'rxjs'; import { map, takeUntil, first, ignoreElements } from 'rxjs/operators'; -import { isWorkerMsg, WorkerConfig, WorkerMsg, Bundle, BundleRefs } from '../common'; +import { isWorkerMsg, WorkerConfig, WorkerMsg, Bundle, BundleRemotes } from '../common'; import { observeStdio$ } from './observe_stdio'; import { OptimizerConfig } from './optimizer_config'; @@ -112,6 +112,8 @@ function initWorker( }) ); + const remotes = BundleRemotes.fromBundles(config.bundles).toSpecJson(); + return Rx.concat( msg$.pipe(first((msg) => msg === 'init')), Rx.defer(() => { @@ -119,7 +121,7 @@ function initWorker( args: [ JSON.stringify(workerConfig), JSON.stringify(bundles.map((b) => b.toSpec())), - BundleRefs.fromBundles(config.bundles).toSpecJson(), + remotes, ], }); return []; diff --git a/packages/kbn-optimizer/src/optimizer/optimizer_cache_key.test.ts b/packages/kbn-optimizer/src/optimizer/optimizer_cache_key.test.ts index 8dcaf57b23e989..f49bce8525903d 100644 --- a/packages/kbn-optimizer/src/optimizer/optimizer_cache_key.test.ts +++ b/packages/kbn-optimizer/src/optimizer/optimizer_cache_key.test.ts @@ -17,6 +17,12 @@ jest.mock('@kbn/repo-packages', () => { readHashOfPackageMap() { return ''; }, + getPackages() { + return []; + }, + getPluginPackagesFilter() { + return () => true; + }, }; }); diff --git a/packages/kbn-optimizer/src/optimizer/optimizer_config.test.ts b/packages/kbn-optimizer/src/optimizer/optimizer_config.test.ts index d6b0a2c860bc30..a29391e0acd6c3 100644 --- a/packages/kbn-optimizer/src/optimizer/optimizer_config.test.ts +++ b/packages/kbn-optimizer/src/optimizer/optimizer_config.test.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +jest.mock('@kbn/repo-packages'); jest.mock('./assign_bundles_to_workers'); jest.mock('./kibana_platform_plugins'); jest.mock('./get_plugin_bundles'); @@ -23,7 +24,6 @@ jest.mock('os', () => { }; }); -import Path from 'path'; import { REPO_ROOT } from '@kbn/repo-info'; import { createAbsolutePathSerializer } from '@kbn/jest-serializers'; @@ -46,33 +46,6 @@ describe('OptimizerConfig::parseOptions()', () => { ).toThrowErrorMatchingInlineSnapshot(`"repoRoot must be an absolute path"`); }); - it('validates that pluginScanDirs are absolute', () => { - expect(() => - OptimizerConfig.parseOptions({ - repoRoot: REPO_ROOT, - pluginScanDirs: ['foo/bar'], - }) - ).toThrowErrorMatchingInlineSnapshot(`"pluginScanDirs must all be absolute paths"`); - }); - - it('validates that pluginPaths are absolute', () => { - expect(() => - OptimizerConfig.parseOptions({ - repoRoot: REPO_ROOT, - pluginPaths: ['foo/bar'], - }) - ).toThrowErrorMatchingInlineSnapshot(`"pluginPaths must all be absolute paths"`); - }); - - it('validates that extraPluginScanDirs are absolute', () => { - expect(() => - OptimizerConfig.parseOptions({ - repoRoot: REPO_ROOT, - extraPluginScanDirs: ['foo/bar'], - }) - ).toThrowErrorMatchingInlineSnapshot(`"extraPluginScanDirs must all be absolute paths"`); - }); - it('validates that maxWorkerCount is a number', () => { expect(() => { OptimizerConfig.parseOptions({ @@ -117,13 +90,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 2, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [ - /src/plugins, - /x-pack/plugins, - /plugins, - -extra, - ], + "pluginSelector": Object { + "examples": false, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -146,13 +118,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 2, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [ - /src/plugins, - /x-pack/plugins, - /plugins, - -extra, - ], + "pluginSelector": Object { + "examples": false, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -175,15 +146,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 2, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [ - /src/plugins, - /x-pack/plugins, - /plugins, - /examples, - /x-pack/examples, - -extra, - ], + "pluginSelector": Object { + "examples": true, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -194,7 +162,6 @@ describe('OptimizerConfig::parseOptions()', () => { expect( OptimizerConfig.parseOptions({ repoRoot: REPO_ROOT, - oss: true, }) ).toMatchInlineSnapshot(` Object { @@ -206,39 +173,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 2, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [ - /src/plugins, - /plugins, - -extra, - ], - "profileWebpack": false, - "repoRoot": , - "themeTags": undefined, - "watch": false, - } - `); - - expect( - OptimizerConfig.parseOptions({ - repoRoot: REPO_ROOT, - pluginScanDirs: [Path.resolve(REPO_ROOT, 'x/y/z'), '/outside/of/repo'], - }) - ).toMatchInlineSnapshot(` - Object { - "cache": true, - "dist": false, - "filters": Array [], - "focus": Array [], - "includeCoreBundle": false, - "inspectWorkers": false, - "maxWorkerCount": 2, - "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [ - /x/y/z, - "/outside/of/repo", - ], + "pluginSelector": Object { + "examples": false, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -250,7 +190,6 @@ describe('OptimizerConfig::parseOptions()', () => { expect( OptimizerConfig.parseOptions({ repoRoot: REPO_ROOT, - pluginScanDirs: [], }) ).toMatchInlineSnapshot(` Object { @@ -262,8 +201,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 100, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [], + "pluginSelector": Object { + "examples": false, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -275,7 +218,6 @@ describe('OptimizerConfig::parseOptions()', () => { expect( OptimizerConfig.parseOptions({ repoRoot: REPO_ROOT, - pluginScanDirs: [], }) ).toMatchInlineSnapshot(` Object { @@ -287,8 +229,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 100, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [], + "pluginSelector": Object { + "examples": false, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -300,7 +246,6 @@ describe('OptimizerConfig::parseOptions()', () => { expect( OptimizerConfig.parseOptions({ repoRoot: REPO_ROOT, - pluginScanDirs: [], }) ).toMatchInlineSnapshot(` Object { @@ -312,8 +257,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 100, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [], + "pluginSelector": Object { + "examples": false, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -325,7 +274,6 @@ describe('OptimizerConfig::parseOptions()', () => { expect( OptimizerConfig.parseOptions({ repoRoot: REPO_ROOT, - pluginScanDirs: [], cache: true, }) ).toMatchInlineSnapshot(` @@ -338,8 +286,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 100, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [], + "pluginSelector": Object { + "examples": false, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -351,7 +303,6 @@ describe('OptimizerConfig::parseOptions()', () => { expect( OptimizerConfig.parseOptions({ repoRoot: REPO_ROOT, - pluginScanDirs: [], cache: true, }) ).toMatchInlineSnapshot(` @@ -364,8 +315,12 @@ describe('OptimizerConfig::parseOptions()', () => { "inspectWorkers": false, "maxWorkerCount": 100, "outputRoot": , - "pluginPaths": Array [], - "pluginScanDirs": Array [], + "pluginSelector": Object { + "examples": false, + "parentDirs": undefined, + "paths": undefined, + "testPlugins": false, + }, "profileWebpack": false, "repoRoot": , "themeTags": undefined, @@ -384,9 +339,12 @@ describe('OptimizerConfig::create()', () => { const assignBundlesToWorkers: jest.Mock = jest.requireMock( './assign_bundles_to_workers' ).assignBundlesToWorkers; - const findKibanaPlatformPlugins: jest.Mock = jest.requireMock( + const getPackages: jest.Mock = jest.requireMock('@kbn/repo-packages').getPackages; + const getPluginPackagesFilter: jest.Mock = + jest.requireMock('@kbn/repo-packages').getPluginPackagesFilter; + const toKibanaPlatformPlugin: jest.Mock = jest.requireMock( './kibana_platform_plugins' - ).findKibanaPlatformPlugins; + ).toKibanaPlatformPlugin; const getPluginBundles: jest.Mock = jest.requireMock('./get_plugin_bundles').getPluginBundles; const filterById: jest.Mock = jest.requireMock('./filter_by_id').filterById; const focusBundles: jest.Mock = jest.requireMock('./focus_bundles').focusBundles; @@ -401,7 +359,9 @@ describe('OptimizerConfig::create()', () => { { config: Symbol('worker config 1') }, { config: Symbol('worker config 2') }, ]); - findKibanaPlatformPlugins.mockReturnValue(Symbol('new platform plugins')); + getPackages.mockReturnValue([Symbol('plugin1'), Symbol('plugin2')]); + getPluginPackagesFilter.mockReturnValue(() => true); + toKibanaPlatformPlugin.mockImplementation((_, pkg) => pkg); getPluginBundles.mockReturnValue([Symbol('bundle1'), Symbol('bundle2')]); filterById.mockReturnValue(Symbol('filtered bundles')); focusBundles.mockReturnValue(Symbol('focused bundles')); @@ -414,8 +374,6 @@ describe('OptimizerConfig::create()', () => { cache: Symbol('parsed cache'), dist: Symbol('parsed dist'), maxWorkerCount: Symbol('parsed max worker count'), - pluginPaths: Symbol('parsed plugin paths'), - pluginScanDirs: Symbol('parsed plugin scan dirs'), repoRoot: Symbol('parsed repo root'), outputRoot: Symbol('parsed output root'), watch: Symbol('parsed watch'), @@ -425,6 +383,7 @@ describe('OptimizerConfig::create()', () => { filters: [], focus: [], includeCoreBundle: false, + pluginSelector: Symbol('plugin selector'), }) ); }); @@ -443,7 +402,10 @@ describe('OptimizerConfig::create()', () => { "filteredBundles": Symbol(filtered bundles), "inspectWorkers": Symbol(parsed inspect workers), "maxWorkerCount": Symbol(parsed max worker count), - "plugins": Symbol(new platform plugins), + "plugins": Array [ + Symbol(plugin1), + Symbol(plugin2), + ], "profileWebpack": Symbol(parsed profile webpack), "repoRoot": Symbol(parsed repo root), "themeTags": Symbol(theme tags), @@ -451,15 +413,6 @@ describe('OptimizerConfig::create()', () => { } `); - expect(findKibanaPlatformPlugins.mock.calls).toMatchInlineSnapshot(` - Array [ - Array [ - Symbol(parsed plugin scan dirs), - Symbol(parsed plugin paths), - ], - ] - `); - expect(filterById.mock.calls).toMatchInlineSnapshot(` Array [ Array [ @@ -472,7 +425,10 @@ describe('OptimizerConfig::create()', () => { expect(getPluginBundles.mock.calls).toMatchInlineSnapshot(` Array [ Array [ - Symbol(new platform plugins), + Array [ + Symbol(plugin1), + Symbol(plugin2), + ], Symbol(parsed repo root), Symbol(parsed output root), Symbol(limits), diff --git a/packages/kbn-optimizer/src/optimizer/optimizer_config.ts b/packages/kbn-optimizer/src/optimizer/optimizer_config.ts index 89409b2d37680c..2af1642f3f82cf 100644 --- a/packages/kbn-optimizer/src/optimizer/optimizer_config.ts +++ b/packages/kbn-optimizer/src/optimizer/optimizer_config.ts @@ -8,7 +8,7 @@ import Path from 'path'; import Os from 'os'; -import { getPluginSearchPaths } from '@kbn/plugin-discovery'; +import { getPackages, getPluginPackagesFilter, type PluginSelector } from '@kbn/repo-packages'; import { Bundle, @@ -20,7 +20,7 @@ import { omit, } from '../common'; -import { findKibanaPlatformPlugins, KibanaPlatformPlugin } from './kibana_platform_plugins'; +import { toKibanaPlatformPlugin, KibanaPlatformPlugin } from './kibana_platform_plugins'; import { getPluginBundles } from './get_plugin_bundles'; import { filterById } from './filter_by_id'; import { focusBundles } from './focus_bundles'; @@ -64,16 +64,15 @@ interface Options { /** set to true to inspecting workers when the parent process is being inspected */ inspectWorkers?: boolean; - /** include only oss plugins in default scan dirs */ - oss?: boolean; /** include examples in default scan dirs */ examples?: boolean; - /** absolute paths to specific plugins that should be built */ + /** discover and build test plugins along with the standard plugins */ + testPlugins?: boolean; + /** absolute paths to specific plugins which should be built */ pluginPaths?: string[]; - /** absolute paths to directories that should be built, overrides the default scan dirs */ + /** absolute paths to directories, any plugins in these directories will be built */ pluginScanDirs?: string[]; - /** absolute paths that should be added to the default scan dirs */ - extraPluginScanDirs?: string[]; + /** * array of comma separated patterns that will be matched against bundle ids. * bundles will only be built if they match one of the specified patterns. @@ -86,6 +85,7 @@ interface Options { * --filter f*r # [foobar], excludes [foo, bar] */ filter?: string[]; + /** * behaves just like filter, but includes required bundles and plugins of the * listed bundle ids. Filters only apply to bundles selected by focus @@ -109,9 +109,6 @@ interface Options { /** path to a limits.yml file that should be used to inform ci-stats of metric limits */ limitsPath?: string; - - /** discover and build test plugins along with the standard plugins */ - testPlugins?: boolean; } export interface ParsedOptions { @@ -122,19 +119,17 @@ export interface ParsedOptions { profileWebpack: boolean; cache: boolean; dist: boolean; - pluginPaths: string[]; - pluginScanDirs: string[]; filters: string[]; focus: string[]; inspectWorkers: boolean; includeCoreBundle: boolean; themeTags: ThemeTags; + pluginSelector: PluginSelector; } export class OptimizerConfig { static parseOptions(options: Options): ParsedOptions { const watch = !!options.watch; - const oss = !!options.oss; const dist = !!options.dist; const examples = !!options.examples; const profileWebpack = !!options.profileWebpack; @@ -155,31 +150,6 @@ export class OptimizerConfig { throw new TypeError('outputRoot must be an absolute path'); } - const pluginScanDirs = - options.pluginScanDirs || - getPluginSearchPaths({ - rootDir: repoRoot, - oss, - examples, - testPlugins, - }); - - if (!pluginScanDirs.every((p) => Path.isAbsolute(p))) { - throw new TypeError('pluginScanDirs must all be absolute paths'); - } - - for (const extraPluginScanDir of options.extraPluginScanDirs || []) { - if (!Path.isAbsolute(extraPluginScanDir)) { - throw new TypeError('extraPluginScanDirs must all be absolute paths'); - } - pluginScanDirs.push(extraPluginScanDir); - } - - const pluginPaths = options.pluginPaths || []; - if (!pluginPaths.every((s) => Path.isAbsolute(s))) { - throw new TypeError('pluginPaths must all be absolute paths'); - } - const maxWorkerCount = process.env.KBN_OPTIMIZER_MAX_WORKERS ? parseInt(process.env.KBN_OPTIMIZER_MAX_WORKERS, 10) : options.maxWorkerCount ?? pickMaxWorkerCount(dist); @@ -191,6 +161,21 @@ export class OptimizerConfig { options.themes || (dist ? '*' : process.env.KBN_OPTIMIZER_THEMES) ); + const pluginPaths = options.pluginPaths; + if ( + pluginPaths !== undefined && + !(Array.isArray(pluginPaths) && pluginPaths.every((p) => typeof p === 'string')) + ) { + throw new TypeError('pluginPaths must be an array of strings or undefined'); + } + const pluginScanDirs = options.pluginScanDirs; + if ( + pluginScanDirs !== undefined && + !(Array.isArray(pluginScanDirs) && pluginScanDirs.every((p) => typeof p === 'string')) + ) { + throw new TypeError('pluginScanDirs must be an array of strings or undefined'); + } + return { watch, dist, @@ -199,31 +184,42 @@ export class OptimizerConfig { maxWorkerCount, profileWebpack, cache, - pluginScanDirs, - pluginPaths, filters, focus, inspectWorkers, includeCoreBundle, themeTags, + pluginSelector: { + examples, + testPlugins, + paths: pluginPaths, + parentDirs: pluginScanDirs, + }, }; } static create(inputOptions: Options) { const limits = inputOptions.limitsPath ? readLimits(inputOptions.limitsPath) : {}; const options = OptimizerConfig.parseOptions(inputOptions); - const plugins = findKibanaPlatformPlugins(options.pluginScanDirs, options.pluginPaths); + const plugins = getPackages(options.repoRoot) + .filter(getPluginPackagesFilter(options.pluginSelector)) + .map((pkg) => toKibanaPlatformPlugin(options.repoRoot, pkg)); + const bundles = [ ...(options.includeCoreBundle ? [ new Bundle({ type: 'entry', id: 'core', - publicDirNames: ['public'], sourceRoot: options.repoRoot, contextDir: Path.resolve(options.repoRoot, 'src/core'), outputDir: Path.resolve(options.outputRoot, 'src/core/target/public'), pageLoadAssetSizeLimit: limits.pageLoadAssetSize?.core, + remoteInfo: { + pkgId: '@kbn/core', + targets: ['public'], + }, + ignoreMetrics: false, }), ] : []), diff --git a/packages/kbn-optimizer/src/worker/bundle_metrics_plugin.ts b/packages/kbn-optimizer/src/worker/bundle_metrics_plugin.ts index 3e9e25e790b47a..b7a1532b271cfe 100644 --- a/packages/kbn-optimizer/src/worker/bundle_metrics_plugin.ts +++ b/packages/kbn-optimizer/src/worker/bundle_metrics_plugin.ts @@ -25,6 +25,10 @@ export class BundleMetricsPlugin { constructor(private readonly bundle: Bundle) {} public apply(compiler: webpack.Compiler) { + if (this.bundle.ignoreMetrics) { + return; + } + const { bundle } = this; compiler.hooks.emit.tap('BundleMetricsPlugin', (compilation) => { diff --git a/packages/kbn-optimizer/src/worker/bundle_ref_module.ts b/packages/kbn-optimizer/src/worker/bundle_ref_module.ts deleted file mode 100644 index f7604f0f78f719..00000000000000 --- a/packages/kbn-optimizer/src/worker/bundle_ref_module.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* eslint-disable @kbn/eslint/require-license-header */ - -/** - * @notice - * - * This module was heavily inspired by the externals plugin that ships with webpack@97d58d31 - * MIT License http://www.opensource.org/licenses/mit-license.php - * Author Tobias Koppers @sokra - */ - -// @ts-ignore not typed by @types/webpack -import Module from 'webpack/lib/Module'; -import { BundleRef } from '../common'; - -export class BundleRefModule extends Module { - public built = false; - public buildMeta?: any; - public buildInfo?: any; - - constructor(public readonly ref: BundleRef) { - super('kbn/bundleRef', null); - } - - libIdent() { - return this.ref.exportId; - } - - chunkCondition(chunk: any) { - return chunk.hasEntryModule(); - } - - identifier() { - return '@kbn/bundleRef ' + JSON.stringify(this.ref.exportId); - } - - readableIdentifier() { - return this.identifier(); - } - - needRebuild() { - return false; - } - - build(_: any, __: any, ___: any, ____: any, callback: () => void) { - this.built = true; - this.buildMeta = {}; - this.buildInfo = { - exportsArgument: '__webpack_exports__', - }; - callback(); - } - - source() { - return ` - __webpack_require__.r(__webpack_exports__); - var ns = __kbnBundles__.get('${this.ref.exportId}'); - Object.defineProperties(__webpack_exports__, Object.getOwnPropertyDescriptors(ns)) - `; - } - - size() { - return 42; - } - - updateHash(hash: any) { - hash.update(this.identifier()); - super.updateHash(hash); - } -} diff --git a/packages/kbn-optimizer/src/worker/bundle_refs_plugin.ts b/packages/kbn-optimizer/src/worker/bundle_refs_plugin.ts deleted file mode 100644 index 6c768a0174b51a..00000000000000 --- a/packages/kbn-optimizer/src/worker/bundle_refs_plugin.ts +++ /dev/null @@ -1,243 +0,0 @@ -/* eslint-disable @kbn/eslint/require-license-header */ - -/** - * @notice - * - * This module was heavily inspired by the externals plugin that ships with webpack@97d58d31 - * MIT License http://www.opensource.org/licenses/mit-license.php - * Author Tobias Koppers @sokra - */ - -import Path from 'path'; -import Fs from 'fs'; - -import webpack from 'webpack'; - -import { Bundle, BundleRefs, BundleRef } from '../common'; -import { BundleRefModule } from './bundle_ref_module'; - -const RESOLVE_EXTENSIONS = ['.js', '.ts', '.tsx']; - -function safeStat(path: string): Promise { - return new Promise((resolve, reject) => { - Fs.stat(path, (error, stat) => { - if (error?.code === 'ENOENT') { - resolve(undefined); - } else if (error) { - reject(error); - } else { - resolve(stat); - } - }); - }); -} - -interface RequestData { - context: string; - dependencies: Array<{ request: string }>; -} - -type Callback = (error?: any, result?: T) => void; -type ModuleFactory = (data: RequestData, callback: Callback) => void; - -export class BundleRefsPlugin { - private readonly resolvedRefEntryCache = new Map>(); - private readonly resolvedRequestCache = new Map>(); - private readonly ignorePrefix: string; - private allowedBundleIds = new Set(); - - constructor(private readonly bundle: Bundle, private readonly bundleRefs: BundleRefs) { - this.ignorePrefix = Path.resolve(this.bundle.contextDir) + Path.sep; - } - - /** - * Called by webpack when the plugin is passed in the webpack config - */ - public apply(compiler: webpack.Compiler) { - // called whenever the compiler starts to compile, passed the params - // that will be used to create the compilation - compiler.hooks.compile.tap('BundleRefsPlugin', (compilationParams: any) => { - // clear caches because a new compilation is starting, meaning that files have - // changed and we should re-run resolutions - this.resolvedRefEntryCache.clear(); - this.resolvedRequestCache.clear(); - - // hook into the creation of NormalModule instances in webpack, if the import - // statement leading to the creation of the module is pointing to a bundleRef - // entry then create a BundleRefModule instead of a NormalModule. - compilationParams.normalModuleFactory.hooks.factory.tap( - 'BundleRefsPlugin/normalModuleFactory/factory', - (wrappedFactory: ModuleFactory): ModuleFactory => - (data, callback) => { - const context = data.context; - const dep = data.dependencies[0]; - - this.maybeReplaceImport(context, dep.request).then( - (module) => { - if (!module) { - wrappedFactory(data, callback); - } else { - callback(undefined, module); - } - }, - (error) => callback(error) - ); - } - ); - }); - - compiler.hooks.compilation.tap('BundleRefsPlugin/getRequiredBundles', (compilation) => { - this.allowedBundleIds.clear(); - - const manifestPath = this.bundle.manifestPath; - if (!manifestPath) { - return; - } - - const deps = this.bundle.readBundleDeps(); - for (const ref of this.bundleRefs.forBundleIds([...deps.explicit, ...deps.implicit])) { - this.allowedBundleIds.add(ref.bundleId); - } - - compilation.hooks.additionalAssets.tap('BundleRefsPlugin/watchManifest', () => { - compilation.fileDependencies.add(manifestPath); - }); - - compilation.hooks.finishModules.tapPromise( - 'BundleRefsPlugin/finishModules', - async (modules) => { - const usedBundleIds = (modules as any[]) - .filter((m: any): m is BundleRefModule => m instanceof BundleRefModule) - .map((m) => m.ref.bundleId); - - const unusedBundleIds = deps.explicit - .filter((id) => !usedBundleIds.includes(id)) - .join(', '); - - if (unusedBundleIds) { - const error = new Error( - `Bundle for [${this.bundle.id}] lists [${unusedBundleIds}] as a required bundle, but does not use it. Please remove it.` - ); - (error as any).file = manifestPath; - compilation.errors.push(error); - } - } - ); - }); - } - - private cachedResolveRefEntry(ref: BundleRef) { - const cached = this.resolvedRefEntryCache.get(ref); - - if (cached) { - return cached; - } - - const absoluteRequest = Path.resolve(ref.contextDir, ref.entry); - const promise = this.cachedResolveRequest(absoluteRequest).then((resolved) => { - if (!resolved) { - throw new Error(`Unable to resolve request [${ref.entry}] relative to [${ref.contextDir}]`); - } - - return resolved; - }); - this.resolvedRefEntryCache.set(ref, promise); - return promise; - } - - private cachedResolveRequest(absoluteRequest: string) { - const cached = this.resolvedRequestCache.get(absoluteRequest); - - if (cached) { - return cached; - } - - const promise = this.resolveRequest(absoluteRequest); - this.resolvedRequestCache.set(absoluteRequest, promise); - return promise; - } - - private async resolveRequest(absoluteRequest: string) { - const stats = await safeStat(absoluteRequest); - if (stats && stats.isFile()) { - return absoluteRequest; - } - - // look for an index file in directories - if (stats?.isDirectory()) { - for (const ext of RESOLVE_EXTENSIONS) { - const indexPath = Path.resolve(absoluteRequest, `index${ext}`); - const indexStats = await safeStat(indexPath); - if (indexStats?.isFile()) { - return indexPath; - } - } - } - - // look for a file with one of the supported extensions - for (const ext of RESOLVE_EXTENSIONS) { - const filePath = `${absoluteRequest}${ext}`; - const fileStats = await safeStat(filePath); - if (fileStats?.isFile()) { - return filePath; - } - } - - return; - } - - /** - * Determine if an import request resolves to a bundleRef export id. If the - * request resolves to a bundle ref context but none of the exported directories - * then an error is thrown. If the request does not resolve to a bundleRef then - * undefined is returned. Otherwise it returns the referenced bundleRef. - */ - private async maybeReplaceImport(context: string, request: string) { - // ignore imports that have loaders defined or are not relative seeming - if (request.includes('!') || !request.startsWith('.')) { - return; - } - - const requestExt = Path.extname(request); - if (requestExt && !RESOLVE_EXTENSIONS.includes(requestExt)) { - return; - } - - const absoluteRequest = Path.resolve(context, request); - if (absoluteRequest.startsWith(this.ignorePrefix)) { - return; - } - - const resolved = await this.cachedResolveRequest(absoluteRequest); - if (!resolved) { - return; - } - - const possibleRefs = this.bundleRefs.filterByContextPrefix(this.bundle, resolved); - if (!possibleRefs.length) { - // import doesn't match a bundle context - return; - } - - for (const ref of possibleRefs) { - const resolvedEntry = await this.cachedResolveRefEntry(ref); - if (resolved !== resolvedEntry) { - continue; - } - - if (!this.allowedBundleIds.has(ref.bundleId)) { - throw new Error( - `import [${request}] references a public export of the [${ref.bundleId}] bundle, but that bundle is not in the "requiredPlugins" or "requiredBundles" list in the plugin manifest [${this.bundle.manifestPath}]` - ); - } - - return new BundleRefModule(ref); - } - - const bundleId = Array.from(new Set(possibleRefs.map((r) => r.bundleId))).join(', '); - const publicDir = possibleRefs.map((r) => r.entry).join(', '); - throw new Error( - `import [${request}] references a non-public export of the [${bundleId}] bundle and must point to one of the public directories: [${publicDir}]` - ); - } -} diff --git a/packages/kbn-optimizer/src/worker/bundle_remote_module.ts b/packages/kbn-optimizer/src/worker/bundle_remote_module.ts new file mode 100644 index 00000000000000..7c379b7b0d8971 --- /dev/null +++ b/packages/kbn-optimizer/src/worker/bundle_remote_module.ts @@ -0,0 +1,71 @@ +/* eslint-disable @kbn/eslint/require-license-header */ + +/** + * @notice + * + * This module was heavily inspired by the externals plugin that ships with webpack@97d58d31 + * MIT License http://www.opensource.org/licenses/mit-license.php + * Author Tobias Koppers @sokra + */ + +import { KbnImportReq } from '@kbn/repo-packages'; + +// @ts-ignore not typed by @types/webpack +import Module from 'webpack/lib/Module'; +import { BundleRemote } from '../common'; + +export class BundleRemoteModule extends Module { + public built = false; + public buildMeta?: any; + public buildInfo?: any; + + constructor(public readonly remote: BundleRemote, public readonly req: KbnImportReq) { + super('kbn/bundleRemote', null); + } + + libIdent() { + return this.req.full; + } + + chunkCondition(chunk: any) { + return chunk.hasEntryModule(); + } + + identifier() { + return `@kbn/bundleRemote ${this.req.full}`; + } + + readableIdentifier() { + return this.identifier(); + } + + needRebuild() { + return false; + } + + build(_: any, __: any, ___: any, ____: any, callback: () => void) { + this.built = true; + this.buildMeta = {}; + this.buildInfo = { + exportsArgument: '__webpack_exports__', + }; + callback(); + } + + source() { + return ` + __webpack_require__.r(__webpack_exports__); + var ns = __kbnBundles__.get('${this.remote.bundleType}/${this.remote.bundleId}/${this.req.target}'); + Object.defineProperties(__webpack_exports__, Object.getOwnPropertyDescriptors(ns)) + `; + } + + size() { + return 42; + } + + updateHash(hash: any) { + hash.update(this.identifier()); + super.updateHash(hash); + } +} diff --git a/packages/kbn-optimizer/src/worker/bundle_remotes_plugin.ts b/packages/kbn-optimizer/src/worker/bundle_remotes_plugin.ts new file mode 100644 index 00000000000000..1a5eb8b50710dd --- /dev/null +++ b/packages/kbn-optimizer/src/worker/bundle_remotes_plugin.ts @@ -0,0 +1,143 @@ +/* eslint-disable @kbn/eslint/require-license-header */ + +/** + * @notice + * + * This module was heavily inspired by the externals plugin that ships with webpack@97d58d31 + * MIT License http://www.opensource.org/licenses/mit-license.php + * Author Tobias Koppers @sokra + */ + +import webpack from 'webpack'; + +import { parseKbnImportReq } from '@kbn/repo-packages'; + +import { Bundle, BundleRemotes } from '../common'; +import { BundleRemoteModule } from './bundle_remote_module'; + +interface RequestData { + context: string; + dependencies: Array<{ request: string }>; +} + +type Callback = (error?: any, result?: T) => void; +type ModuleFactory = (data: RequestData, callback: Callback) => void; + +export class BundleRemotesPlugin { + private allowedBundleIds = new Set(); + + constructor(private readonly bundle: Bundle, private readonly remotes: BundleRemotes) {} + + /** + * Called by webpack when the plugin is passed in the webpack config + */ + public apply(compiler: webpack.Compiler) { + // called whenever the compiler starts to compile, passed the params + // that will be used to create the compilation + compiler.hooks.compile.tap('BundleRemotesPlugin', (compilationParams: any) => { + const moduleCache = new Map(); + + // hook into the creation of NormalModule instances in webpack, if the import + // statement leading to the creation of the module is pointing to a bundleRef + // entry then create a BundleRefModule instead of a NormalModule. + compilationParams.normalModuleFactory.hooks.factory.tap( + 'BundleRefsPlugin/normalModuleFactory/factory', + (wrappedFactory: ModuleFactory): ModuleFactory => + (data, callback) => { + const { request } = data.dependencies[0]; + + const cached = moduleCache.get(request); + if (cached === null) { + return wrappedFactory(data, callback); + } + if (cached !== undefined) { + return callback(null, cached); + } + + this.resolve(request, (error, result) => { + if (error || result === undefined) { + return callback(error); + } + + moduleCache.set(request, result); + + if (result === null) { + return wrappedFactory(data, callback); + } + + callback(null, result); + }); + } + ); + }); + + compiler.hooks.compilation.tap('BundleRefsPlugin/populateAllowedBundleIds', (compilation) => { + const manifestPath = this.bundle.manifestPath; + if (!manifestPath) { + return; + } + + const deps = this.bundle.readBundleDeps(); + this.allowedBundleIds = new Set([...deps.explicit, ...deps.implicit]); + + compilation.hooks.additionalAssets.tap('BundleRefsPlugin/watchManifest', () => { + compilation.fileDependencies.add(manifestPath); + }); + + compilation.hooks.finishModules.tapPromise( + 'BundleRefsPlugin/finishModules', + async (modules) => { + const usedBundleIds = (modules as any[]) + .filter((m: any): m is BundleRemoteModule => m instanceof BundleRemoteModule) + .map((m) => m.remote.bundleId); + + const unusedBundleIds = deps.explicit + .filter((id) => !usedBundleIds.includes(id)) + .join(', '); + + if (unusedBundleIds) { + const error = new Error( + `Bundle for [${this.bundle.id}] lists [${unusedBundleIds}] as a required bundle, but does not use it. Please remove it.` + ); + (error as any).file = manifestPath; + compilation.errors.push(error); + } + } + ); + }); + } + + public resolve(request: string, cb: (error?: Error, bundle?: null | BundleRemoteModule) => void) { + if (request.endsWith('.json')) { + return cb(undefined, null); + } + + const parsed = parseKbnImportReq(request); + if (!parsed) { + return cb(undefined, null); + } + + const remote = this.remotes.getForPkgId(parsed.pkgId); + if (!remote) { + return cb(undefined, null); + } + + if (!remote.targets.includes(parsed.target)) { + return cb( + new Error( + `import [${request}] references a non-public export of the [${remote.bundleId}] bundle and must point to one of the public directories: [${remote.targets}]` + ) + ); + } + + if (!this.allowedBundleIds.has(remote.bundleId)) { + return cb( + new Error( + `import [${request}] references a public export of the [${remote.bundleId}] bundle, but that bundle is not in the "requiredPlugins" or "requiredBundles" list in the plugin manifest [${this.bundle.manifestPath}]` + ) + ); + } + + return cb(undefined, new BundleRemoteModule(remote, parsed)); + } +} diff --git a/packages/kbn-optimizer/src/worker/populate_bundle_cache_plugin.ts b/packages/kbn-optimizer/src/worker/populate_bundle_cache_plugin.ts index b2e036cb7e00a0..e431e0d698d0ac 100644 --- a/packages/kbn-optimizer/src/worker/populate_bundle_cache_plugin.ts +++ b/packages/kbn-optimizer/src/worker/populate_bundle_cache_plugin.ts @@ -27,7 +27,7 @@ import { Hashes, ParsedDllManifest, } from '../common'; -import { BundleRefModule } from './bundle_ref_module'; +import { BundleRemoteModule } from './bundle_remote_module'; /** * sass-loader creates about a 40% overhead on the overall optimizer runtime, and @@ -88,6 +88,7 @@ export class PopulateBundleCachePlugin { const path = getModulePath(module); const parsedPath = parseFilePath(path); + // TODO: Does this need to be updated to support @kbn/ packages? if (!parsedPath.dirs.includes('node_modules')) { addReferenced(path); @@ -113,8 +114,8 @@ export class PopulateBundleCachePlugin { continue; } - if (module instanceof BundleRefModule) { - bundleRefExportIds.push(module.ref.exportId); + if (module instanceof BundleRemoteModule) { + bundleRefExportIds.push(module.req.full); continue; } @@ -140,7 +141,7 @@ export class PopulateBundleCachePlugin { const sortedDllRefKeys = Array.from(dllRefKeys).sort(ascending((p) => p)); bundle.cache.set({ - bundleRefExportIds: bundleRefExportIds.sort(ascending((p) => p)), + remoteBundleImportReqs: bundleRefExportIds.sort(ascending((p) => p)), optimizerCacheKey: workerConfig.optimizerCacheKey, cacheKey: bundle.createCacheKey( referencedPaths, diff --git a/packages/kbn-optimizer/src/worker/run_compilers.ts b/packages/kbn-optimizer/src/worker/run_compilers.ts index ca69e195000ed1..4dd8f23bd1bdf4 100644 --- a/packages/kbn-optimizer/src/worker/run_compilers.ts +++ b/packages/kbn-optimizer/src/worker/run_compilers.ts @@ -13,7 +13,14 @@ import * as Rx from 'rxjs'; import { mergeMap, map, mapTo, takeUntil } from 'rxjs/operators'; import { isFailureStats, failedStatsToErrorMessage } from '@kbn/optimizer-webpack-helpers'; -import { CompilerMsgs, CompilerMsg, maybeMap, Bundle, WorkerConfig, BundleRefs } from '../common'; +import { + CompilerMsgs, + CompilerMsg, + maybeMap, + Bundle, + WorkerConfig, + BundleRemotes, +} from '../common'; import { getWebpackConfig } from './webpack.config'; const PLUGIN_NAME = '@kbn/optimizer'; @@ -97,10 +104,10 @@ const observeCompiler = ( export const runCompilers = ( workerConfig: WorkerConfig, bundles: Bundle[], - bundleRefs: BundleRefs + bundleRemotes: BundleRemotes ) => { const multiCompiler = webpack( - bundles.map((def) => getWebpackConfig(def, bundleRefs, workerConfig)) + bundles.map((def) => getWebpackConfig(def, bundleRemotes, workerConfig)) ); return Rx.merge( diff --git a/packages/kbn-optimizer/src/worker/run_worker.ts b/packages/kbn-optimizer/src/worker/run_worker.ts index 209997acbf3092..30f44724357319 100644 --- a/packages/kbn-optimizer/src/worker/run_worker.ts +++ b/packages/kbn-optimizer/src/worker/run_worker.ts @@ -17,7 +17,7 @@ import { WorkerMsg, isWorkerMsg, WorkerMsgs, - BundleRefs, + BundleRemotes, } from '../common'; import { runCompilers } from './run_compilers'; @@ -96,7 +96,7 @@ Rx.defer(() => { const workerConfig = parseWorkerConfig(msg.args[0]); const bundles = parseBundles(msg.args[1]); - const bundleRefs = BundleRefs.parseSpec(msg.args[2]); + const bundleRefs = BundleRemotes.parseSpec(msg.args[2]); // set BROWSERSLIST_ENV so that style/babel loaders see it before running compilers process.env.BROWSERSLIST_ENV = workerConfig.browserslistEnv; diff --git a/packages/kbn-optimizer/src/worker/webpack.config.ts b/packages/kbn-optimizer/src/worker/webpack.config.ts index 86ccf80f8bc1fa..83b9882118b1c8 100644 --- a/packages/kbn-optimizer/src/worker/webpack.config.ts +++ b/packages/kbn-optimizer/src/worker/webpack.config.ts @@ -19,29 +19,20 @@ import CompressionPlugin from 'compression-webpack-plugin'; import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm'; import * as UiSharedDepsSrc from '@kbn/ui-shared-deps-src'; -import { Bundle, BundleRefs, WorkerConfig, parseDllManifest } from '../common'; -import { BundleRefsPlugin } from './bundle_refs_plugin'; +import { Bundle, BundleRemotes, WorkerConfig, parseDllManifest } from '../common'; +import { BundleRemotesPlugin } from './bundle_remotes_plugin'; import { BundleMetricsPlugin } from './bundle_metrics_plugin'; import { EmitStatsPlugin } from './emit_stats_plugin'; import { PopulateBundleCachePlugin } from './populate_bundle_cache_plugin'; -const BABEL_PRESET = [ - require.resolve('@kbn/babel-preset/webpack_preset'), - { - 'kibana/ignoredPkgIds': Object.keys(UiSharedDepsSrc.externals), - }, -]; +const BABEL_PRESET = require.resolve('@kbn/babel-preset/webpack_preset'); const DLL_MANIFEST = JSON.parse(Fs.readFileSync(UiSharedDepsNpm.dllManifestPath, 'utf8')); -const nodeModulesButNotKbnPackages = (path: string) => { - if (!path.includes('node_modules')) { - return false; - } - - return !path.includes(`node_modules${Path.sep}@kbn${Path.sep}`); -}; - -export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: WorkerConfig) { +export function getWebpackConfig( + bundle: Bundle, + bundleRemotes: BundleRemotes, + worker: WorkerConfig +) { const ENTRY_CREATOR = require.resolve('./entry_point_creator'); const commonConfig: webpack.Configuration = { @@ -83,7 +74,7 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: plugins: [ new CleanWebpackPlugin(), - new BundleRefsPlugin(bundle, bundleRefs), + new BundleRemotesPlugin(bundle, bundleRemotes), new PopulateBundleCachePlugin(worker, bundle, parseDllManifest(DLL_MANIFEST)), new BundleMetricsPlugin(bundle), new webpack.DllReferencePlugin({ @@ -116,10 +107,10 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: { loader: require.resolve('val-loader'), options: { - entries: bundle.publicDirNames.map((name) => { - const absolute = Path.resolve(bundle.contextDir, name); + entries: bundle.remoteInfo.targets.map((target) => { + const absolute = Path.resolve(bundle.contextDir, target); const newContext = Path.dirname(ENTRY_CREATOR); - const importId = `${bundle.type}/${bundle.id}/${name}`; + const importId = `${bundle.type}/${bundle.id}/${target}`; // relative path from context of the ENTRY_CREATOR, with linux path separators let requirePath = Path.relative(newContext, absolute).split('\\').join('/'); @@ -160,7 +151,7 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: }, { test: /\.scss$/, - exclude: nodeModulesButNotKbnPackages, + exclude: /node_modules/, oneOf: [ ...worker.themeTags.map((theme) => ({ resourceQuery: `?${theme}`, @@ -257,7 +248,6 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: ), vega: Path.resolve(worker.repoRoot, 'node_modules/vega/build-es5/vega.js'), }, - symlinks: false, }, performance: { diff --git a/packages/kbn-optimizer/tsconfig.json b/packages/kbn-optimizer/tsconfig.json index e47ae96a1df583..62e191e3413d4e 100644 --- a/packages/kbn-optimizer/tsconfig.json +++ b/packages/kbn-optimizer/tsconfig.json @@ -27,7 +27,6 @@ "@kbn/repo-info", "@kbn/dev-cli-runner", "@kbn/jest-serializers", - "@kbn/plugin-discovery", "@kbn/repo-packages", ] } diff --git a/packages/kbn-plugin-discovery/README.mdx b/packages/kbn-plugin-discovery/README.mdx deleted file mode 100644 index 97689cd9458d45..00000000000000 --- a/packages/kbn-plugin-discovery/README.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: kibDevDocsOpsPluginDiscovery -slug: /kibana-dev-docs/ops/plugin-discovery -title: "@kbn/plugin-discovery" -description: A package with logic used to find plugins in the repository -date: 2022-06-06 -tags: ['kibana', 'dev', 'contributor', 'operations', 'plugin', 'discovery'] ---- - -At the moment plugins can live in a couple of different places and in the future will be able -to live anywhere in the repository. This is a package that holds custom logic useful to find and -parse those. - -## API - -### parseKibanaPlatformPlugin - -It returns a platform plugin for a given manifest path - -### getPluginSearchPaths - -It returns the paths where plugins will be searched for - -### simpleKibanaPlatformPluginDiscovery - -It finds and returns the new platform plugins - -## NOTE: - -This code is needed in order to properly bootstrap the repository. As such, it can't have any NPM dependencies or require being built. This code is loaded directly into the node.js process that boostraps the repository from source while also being built into a package and exposed to the rest of the package system. Please consider this when making any changes to the source. - -The code is still type-checked as JS with JSDoc comments, and a single .ts file which provides interfaces to the JS validation and are publically available to package consumers. \ No newline at end of file diff --git a/packages/kbn-plugin-discovery/index.js b/packages/kbn-plugin-discovery/index.js deleted file mode 100644 index a88ae4dc8d0d65..00000000000000 --- a/packages/kbn-plugin-discovery/index.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -/** @typedef {import('./src/types').KibanaPlatformPlugin} KibanaPlatformPlugin */ - -const { parseKibanaPlatformPlugin } = require('./src/parse_kibana_platform_plugin'); -const { getPluginSearchPaths } = require('./src/plugin_search_paths'); -const { - simpleKibanaPlatformPluginDiscovery, -} = require('./src/simple_kibana_platform_plugin_discovery'); - -module.exports = { - parseKibanaPlatformPlugin, - getPluginSearchPaths, - simpleKibanaPlatformPluginDiscovery, -}; diff --git a/packages/kbn-plugin-discovery/kibana.jsonc b/packages/kbn-plugin-discovery/kibana.jsonc deleted file mode 100644 index d14b8a8eadb99e..00000000000000 --- a/packages/kbn-plugin-discovery/kibana.jsonc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "shared-common", - "id": "@kbn/plugin-discovery", - "owner": "@elastic/kibana-operations" -} diff --git a/packages/kbn-plugin-discovery/package.json b/packages/kbn-plugin-discovery/package.json deleted file mode 100644 index 359dd420d87e30..00000000000000 --- a/packages/kbn-plugin-discovery/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "@kbn/plugin-discovery", - "private": true, - "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" -} \ No newline at end of file diff --git a/packages/kbn-plugin-discovery/src/find_files.js b/packages/kbn-plugin-discovery/src/find_files.js deleted file mode 100644 index 6f9e09cbfa3d1d..00000000000000 --- a/packages/kbn-plugin-discovery/src/find_files.js +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -const Path = require('path'); -const Fs = require('fs'); - -/** - * @param {string} path - */ -function safeReadDir(path) { - try { - return Fs.readdirSync(path, { - withFileTypes: true, - }); - } catch (error) { - if (error.code === 'ENOENT' || error.code === 'ENOTDIR') { - return []; - } - - throw error; - } -} - -/** - * Search for files named `name` in `dir`, up to `depth` levels deep. If a directory has a - * matching file its children are not iterated, otherwise if depth > 0 then all child - * directories are checked recursively with depth-1 - * - * @param {string} dir - * @param {number} depth - * @param {string} name - * @returns {string[]} - */ -function findFiles(dir, depth, name) { - // if depth = 0 then we just need to determine if there is a kibana.json file in this directory - // and return either that path or an empty array - if (depth === 0) { - const path = Path.resolve(dir, name); - return Fs.existsSync(path) ? [path] : []; - } - - // if depth > 0 read the files in this directory, if we find a kibana.json file then we can stop - // otherwise we will iterate through the child directories and try to find kibana.json files there. - const files = safeReadDir(dir); - - /** @type {string[]} */ - const childDirs = []; - for (const ent of files) { - if (ent.isFile()) { - if (ent.name === name) { - return [Path.resolve(dir, ent.name)]; - } - } else if (ent.isDirectory()) { - childDirs.push(Path.resolve(dir, ent.name)); - } - } - - return childDirs.flatMap((dir) => findFiles(dir, depth - 1, name)); -} - -module.exports = { findFiles }; diff --git a/packages/kbn-plugin-discovery/src/load_json_file.js b/packages/kbn-plugin-discovery/src/load_json_file.js deleted file mode 100644 index 2e35a503ccf4cc..00000000000000 --- a/packages/kbn-plugin-discovery/src/load_json_file.js +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -const Fs = require('fs'); -const Path = require('path'); - -/** - * @param {string} path - * @returns {any} - */ -function loadJsonFile(path) { - try { - return JSON.parse(Fs.readFileSync(path, 'utf8')); - } catch (error) { - if (error.code === 'ENOENT') { - throw new Error(`Missing file: ${path}`); - } - - throw new Error( - `Unable to read JSON at [${Path.relative(process.cwd(), path)}]: ${error.message}` - ); - } -} - -module.exports = { loadJsonFile }; diff --git a/packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.js b/packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.js deleted file mode 100644 index 6137d5ad401873..00000000000000 --- a/packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -const Path = require('path'); - -const { loadJsonFile } = require('./load_json_file'); - -/** - * @param {unknown} input - * @param {string} type - * @returns {string[]} - */ -function isValidDepsDeclaration(input, type) { - if (typeof input === 'undefined') return []; - if (Array.isArray(input) && input.every((i) => typeof i === 'string')) { - return input; - } - throw new TypeError(`The "${type}" in plugin manifest should be an array of strings.`); -} - -/** - * @param {string} manifestPath - * @returns {import('./types').KibanaPlatformPlugin} - */ -function parseKibanaPlatformPlugin(manifestPath) { - if (!Path.isAbsolute(manifestPath)) { - throw new TypeError('expected new platform manifest path to be absolute'); - } - - /** @type {Partial} */ - const manifest = loadJsonFile(manifestPath); - if (!manifest || typeof manifest !== 'object' || Array.isArray(manifest)) { - throw new TypeError('expected new platform plugin manifest to be a JSON encoded object'); - } - - if (typeof manifest.id !== 'string') { - throw new TypeError('expected new platform plugin manifest to have a string id'); - } - - if (typeof manifest.version !== 'string') { - throw new TypeError('expected new platform plugin manifest to have a string version'); - } - - if (!manifest.owner || typeof manifest.owner.name !== 'string') { - throw new TypeError( - `Expected plugin ${manifest.id} manifest to have an owner with name specified (${manifestPath})` - ); - } - - return { - directory: Path.dirname(manifestPath), - manifestPath, - manifest: { - ...manifest, - - ui: !!manifest.ui, - server: !!manifest.server, - id: manifest.id, - version: manifest.version, - kibanaVersion: manifest.kibanaVersion || manifest.version, - serviceFolders: manifest.serviceFolders || [], - owner: manifest.owner, - description: manifest.description, - enabledOnAnonymousPages: Boolean(manifest.enabledOnAnonymousPages), - requiredPlugins: isValidDepsDeclaration(manifest.requiredPlugins, 'requiredPlugins'), - optionalPlugins: isValidDepsDeclaration(manifest.optionalPlugins, 'optionalPlugins'), - requiredBundles: isValidDepsDeclaration(manifest.requiredBundles, 'requiredBundles'), - extraPublicDirs: isValidDepsDeclaration(manifest.extraPublicDirs, 'extraPublicDirs'), - }, - }; -} - -module.exports = { parseKibanaPlatformPlugin }; diff --git a/packages/kbn-plugin-discovery/src/plugin_search_paths.js b/packages/kbn-plugin-discovery/src/plugin_search_paths.js deleted file mode 100644 index ed702cf8e79c22..00000000000000 --- a/packages/kbn-plugin-discovery/src/plugin_search_paths.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -const { resolve } = require('path'); - -/** - * @param {{ rootDir: string; oss: boolean; examples: boolean; testPlugins?: boolean; }} options - * @returns {string[]} - */ -function getPluginSearchPaths({ rootDir, oss, examples, testPlugins }) { - return [ - resolve(rootDir, 'src', 'plugins'), - ...(oss ? [] : [resolve(rootDir, 'x-pack', 'plugins')]), - resolve(rootDir, 'plugins'), - ...(examples ? [resolve(rootDir, 'examples')] : []), - ...(examples && !oss ? [resolve(rootDir, 'x-pack', 'examples')] : []), - resolve(rootDir, '..', 'kibana-extra'), - ...(testPlugins - ? [ - resolve(rootDir, 'test/analytics/plugins'), - resolve(rootDir, 'test/health_gateway/plugins'), - resolve(rootDir, 'test/plugin_functional/plugins'), - resolve(rootDir, 'test/interpreter_functional/plugins'), - resolve(rootDir, 'test/common/plugins'), - resolve(rootDir, 'test/server_integration/plugins'), - ] - : []), - ...(testPlugins && !oss - ? [ - resolve(rootDir, 'x-pack/test/plugin_functional/plugins'), - resolve(rootDir, 'x-pack/test/functional_with_es_ssl/plugins'), - resolve(rootDir, 'x-pack/test/alerting_api_integration/plugins'), - resolve(rootDir, 'x-pack/test/plugin_api_integration/plugins'), - resolve(rootDir, 'x-pack/test/plugin_api_perf/plugins'), - resolve(rootDir, 'x-pack/test/licensing_plugin/plugins'), - resolve(rootDir, 'x-pack/test/usage_collection/plugins'), - resolve(rootDir, 'x-pack/test/security_functional/plugins'), - ] - : []), - ]; -} - -module.exports = { getPluginSearchPaths }; diff --git a/packages/kbn-plugin-discovery/src/simple_kibana_platform_plugin_discovery.js b/packages/kbn-plugin-discovery/src/simple_kibana_platform_plugin_discovery.js deleted file mode 100644 index 8d5da4e5193551..00000000000000 --- a/packages/kbn-plugin-discovery/src/simple_kibana_platform_plugin_discovery.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -const { parseKibanaPlatformPlugin } = require('./parse_kibana_platform_plugin'); -const { findFiles } = require('./find_files'); - -/** - * Helper to find the new platform plugins. - * @param {string[]} scanDirs - * @param {string[]} pluginPaths - * @returns {Array} - */ -function simpleKibanaPlatformPluginDiscovery(scanDirs, pluginPaths) { - return Array.from( - new Set([ - // find kibana.json files up to 5 levels within each scan dir - ...scanDirs.flatMap((dir) => findFiles(dir, 5, 'kibana.json')), - // find kibana.json files at the root of each plugin path - ...pluginPaths.flatMap((path) => findFiles(path, 0, 'kibana.json')), - ]) - ).map(parseKibanaPlatformPlugin); -} - -module.exports = { simpleKibanaPlatformPluginDiscovery }; diff --git a/packages/kbn-plugin-discovery/src/types.ts b/packages/kbn-plugin-discovery/src/types.ts deleted file mode 100644 index ebf3f68074c7bf..00000000000000 --- a/packages/kbn-plugin-discovery/src/types.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export type JsonValue = - | { [key: string]: JsonValue } - | JsonValue[] - | string - | number - | boolean - | null; - -export interface KibanaPlatformPlugin { - readonly directory: string; - readonly manifestPath: string; - readonly manifest: KibanaPlatformPluginManifest; -} - -export interface KibanaPlatformPluginManifest { - id: string; - ui: boolean; - server: boolean; - kibanaVersion: string; - version: string; - owner: { - // Internally, this should be a team name. - name: string; - // All internally owned plugins should have a github team specified that can be pinged in issues, or used to look up - // members who can be asked questions regarding the plugin. - githubTeam?: string; - }; - // TODO: make required. - description?: string; - enabledOnAnonymousPages?: boolean; - serviceFolders: readonly string[]; - requiredPlugins: readonly string[]; - optionalPlugins: readonly string[]; - requiredBundles: readonly string[]; - extraPublicDirs: readonly string[]; -} diff --git a/packages/kbn-plugin-generator/src/ask_questions.ts b/packages/kbn-plugin-generator/src/ask_questions.ts index 96aaec218e64f9..ea59fc2df152be 100644 --- a/packages/kbn-plugin-generator/src/ask_questions.ts +++ b/packages/kbn-plugin-generator/src/ask_questions.ts @@ -57,38 +57,12 @@ export const QUESTIONS = [ message: 'Provide a description for your plugin.', default: undefined, }, - { - name: 'internal', - type: 'confirm', - message: 'Will this plugin be part of the Kibana repository?', - default: false, - }, - { - name: 'internalLocation', - type: 'list', - message: 'What type of internal plugin would you like to create', - choices: INTERNAL_PLUGIN_LOCATIONS, - default: INTERNAL_PLUGIN_LOCATIONS[0].value, - when: ({ internal }: Answers) => internal, - }, { name: 'ownerName', message: 'Who is developing and maintaining this plugin?', default: undefined, when: ({ internal }: Answers) => !internal, }, - { - name: 'ownerName', - message: 'What team will maintain this plugin?', - default: undefined, - when: ({ internal }: Answers) => internal, - }, - { - name: 'githubTeam', - message: 'What is your gitHub team alias?', - default: undefined, - when: ({ internal }: Answers) => internal, - }, { name: 'ui', type: 'confirm', diff --git a/packages/kbn-plugin-generator/src/integration_tests/generate_plugin.test.ts b/packages/kbn-plugin-generator/src/integration_tests/generate_plugin.test.ts index ce359d1eb81043..6f48e872d74be4 100644 --- a/packages/kbn-plugin-generator/src/integration_tests/generate_plugin.test.ts +++ b/packages/kbn-plugin-generator/src/integration_tests/generate_plugin.test.ts @@ -83,7 +83,6 @@ it('generates a plugin without UI', async () => { Array [ /plugins/bar/.eslintrc.js, /plugins/bar/.gitignore, - /plugins/bar/.i18nrc.json, /plugins/bar/common/index.ts, /plugins/bar/kibana.json, /plugins/bar/package.json, diff --git a/packages/kbn-plugin-generator/src/render_template.ts b/packages/kbn-plugin-generator/src/render_template.ts index f64796ecad3ddd..f2cb8c18a88d4e 100644 --- a/packages/kbn-plugin-generator/src/render_template.ts +++ b/packages/kbn-plugin-generator/src/render_template.ts @@ -86,7 +86,7 @@ export async function renderTemplates({ excludeFiles( ([] as string[]).concat( answers.ui ? [] : 'public/**/*', - answers.ui && !answers.internal ? [] : ['translations/**/*', 'i18nrc.json'], + answers.ui && !answers.internal ? [] : ['translations/**/*', '.i18nrc.json'], answers.server ? [] : 'server/**/*', !answers.internal ? [] : ['.eslintrc.js', 'tsconfig.json', 'package.json', '.gitignore'] ) diff --git a/packages/kbn-plugin-generator/template/public/index.ts.ejs b/packages/kbn-plugin-generator/template/public/index.ts.ejs index f859f34bee2eea..55227214d05e98 100644 --- a/packages/kbn-plugin-generator/template/public/index.ts.ejs +++ b/packages/kbn-plugin-generator/template/public/index.ts.ejs @@ -7,7 +7,7 @@ import { <%= upperCamelCase(name) %>Plugin } from './plugin'; export function plugin() { return new <%= upperCamelCase(name) %>Plugin(); } -export { +export type { <%= upperCamelCase(name) %>PluginSetup, <%= upperCamelCase(name) %>PluginStart, } from './types'; diff --git a/packages/kbn-plugin-generator/template/server/index.ts.ejs b/packages/kbn-plugin-generator/template/server/index.ts.ejs index f6b40f2ee06426..5e0510b7ecb86e 100644 --- a/packages/kbn-plugin-generator/template/server/index.ts.ejs +++ b/packages/kbn-plugin-generator/template/server/index.ts.ejs @@ -9,7 +9,7 @@ import { <%= upperCamelCase(name) %>Plugin } from './plugin'; return new <%= upperCamelCase(name) %>Plugin(initializerContext); } -export { +export type { <%= upperCamelCase(name) %>PluginSetup, <%= upperCamelCase(name) %>PluginStart, } from './types'; diff --git a/packages/kbn-plugin-helpers/src/cli.ts b/packages/kbn-plugin-helpers/src/cli.ts index 7109f3aa2ebc02..3115c014438a5d 100644 --- a/packages/kbn-plugin-helpers/src/cli.ts +++ b/packages/kbn-plugin-helpers/src/cli.ts @@ -11,7 +11,7 @@ import Path from 'path'; import { RunWithCommands } from '@kbn/dev-cli-runner'; import { createFlagError, createFailError } from '@kbn/dev-cli-errors'; -import { findKibanaJson } from './find_kibana_json'; +import { findPluginDir } from './find_plugin_dir'; import { loadKibanaPlatformPlugin } from './load_kibana_platform_plugin'; import * as Tasks from './tasks'; import { BuildContext } from './build_context'; @@ -56,14 +56,18 @@ export function runCli() { throw createFlagError('expected a single --skip-archive flag'); } - const pluginDir = await findKibanaJson(process.cwd()); - if (!pluginDir) { + const found = await findPluginDir(); + if (!found) { throw createFailError( `Unable to find Kibana Platform plugin in [${process.cwd()}] or any of its parent directories. Has it been migrated properly? Does it have a kibana.json file?` ); } - const plugin = loadKibanaPlatformPlugin(pluginDir); + if (found.type === 'package') { + throw createFailError(`the plugin helpers do not currently support "package plugins"`); + } + + const plugin = loadKibanaPlatformPlugin(found.dir); const config = await loadConfig(log, plugin); const kibanaVersion = await resolveKibanaVersion(versionFlag, plugin); const sourceDir = plugin.directory; diff --git a/packages/kbn-plugin-helpers/src/find_kibana_json.ts b/packages/kbn-plugin-helpers/src/find_kibana_json.ts deleted file mode 100644 index 97fdb513421c27..00000000000000 --- a/packages/kbn-plugin-helpers/src/find_kibana_json.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; -import Fs from 'fs'; -import { promisify } from 'util'; - -const existsAsync = promisify(Fs.exists); - -export async function findKibanaJson(directory: string): Promise { - if (await existsAsync(Path.resolve(directory, 'kibana.json'))) { - return directory; - } - - const parent = Path.dirname(directory); - if (parent === directory) { - return undefined; - } - - return findKibanaJson(parent); -} diff --git a/packages/kbn-plugin-helpers/src/find_plugin_dir.ts b/packages/kbn-plugin-helpers/src/find_plugin_dir.ts new file mode 100644 index 00000000000000..8ff40c56e9614f --- /dev/null +++ b/packages/kbn-plugin-helpers/src/find_plugin_dir.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import Path from 'path'; +import Fs from 'fs'; + +export function findPluginDir( + from = process.cwd() +): { dir: string; type: 'legacy' | 'package' } | undefined { + if (Fs.existsSync(Path.resolve(from, 'kibana.json'))) { + return { + dir: from, + type: 'legacy', + }; + } + + if (Fs.existsSync(Path.resolve(from, 'kibana.jsonc'))) { + return { + dir: from, + type: 'package', + }; + } + + const parent = Path.dirname(from); + if (parent === from) { + return undefined; + } + + return findPluginDir(parent); +} diff --git a/packages/kbn-plugin-helpers/src/integration_tests/build.test.ts b/packages/kbn-plugin-helpers/src/integration_tests/build.test.ts index bae49182aab102..2a4b57e3bdfcc2 100644 --- a/packages/kbn-plugin-helpers/src/integration_tests/build.test.ts +++ b/packages/kbn-plugin-helpers/src/integration_tests/build.test.ts @@ -69,13 +69,12 @@ it('builds a generated plugin into a viable archive', async () => { expect(filterLogs(buildProc.all)).toMatchInlineSnapshot(` " info deleting the build and target directories info running @kbn/optimizer - │ info initialized, 0 bundles cached - │ info starting worker [1 bundle] - │ succ 1 bundles compiled successfully after - - - {i18n.EXCEPTION_ITEM_CARD_META_BY} - - - - + {lastUpdateValue != null && ( + <> - - {lastUpdateValue} - + + {i18n.EXCEPTION_ITEM_CARD_META_BY} + - - + + + + + {lastUpdateValue} + + + + + + )} ); } diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx index 1d7d6a35683803..2fffe08b5b0916 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx @@ -44,6 +44,12 @@ export const ExceptionItemCardMetaInfo = memo( }), [dataTestSubj, rules, securityLinkAnchorComponent] ); + + const isExpired = useMemo( + () => (item.expire_time ? new Date(item.expire_time) <= new Date() : false), + [item] + ); + return ( {FormattedDateComponent !== null && ( @@ -77,6 +83,27 @@ export const ExceptionItemCardMetaInfo = memo( dataTestSubj={`${dataTestSubj || ''}UpdatedBy`} /> + {item.expire_time != null && ( + <> + + + } + dataTestSubj={`${dataTestSubj || ''}ExpireTime`} + /> + + + )} )} diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/translations.ts b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/translations.ts index 2fa7524291025c..915311db19f4a4 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/translations.ts +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/translations.ts @@ -34,6 +34,20 @@ export const EXCEPTION_ITEM_CARD_UPDATED_LABEL = i18n.translate( } ); +export const EXCEPTION_ITEM_CARD_EXPIRES_LABEL = i18n.translate( + 'exceptionList-components.exceptions.exceptionItem.card.expiresLabel', + { + defaultMessage: 'Expires at', + } +); + +export const EXCEPTION_ITEM_CARD_EXPIRED_LABEL = i18n.translate( + 'exceptionList-components.exceptions.exceptionItem.card.expiredLabel', + { + defaultMessage: 'Expired at', + } +); + export const EXCEPTION_ITEM_CARD_META_BY = i18n.translate( 'exceptionList-components.exceptions.exceptionItem.card.metaDetailsBy', { diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/index.tsx b/packages/kbn-securitysolution-exception-list-components/src/list_header/index.tsx index 95546ee84eaf56..5bd90189c14bc4 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/index.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/index.tsx @@ -29,9 +29,9 @@ interface ExceptionListHeaderComponentProps { canUserEditList?: boolean; securityLinkAnchorComponent: React.ElementType; // This property needs to be removed to avoid the Prop Drilling, once we move all the common components from x-pack/security-solution/common onEditListDetails: (listDetails: ListDetails) => void; - onExportList: () => void; onDeleteList: () => void; onManageRules: () => void; + onExportList: () => void; } export interface BackOptions { @@ -51,9 +51,9 @@ const ExceptionListHeaderComponent: FC = ({ backOptions, canUserEditList = true, onEditListDetails, - onExportList, onDeleteList, onManageRules, + onExportList, }) => { const { isModalVisible, listDetails, onEdit, onSave, onCancel } = useExceptionListHeader({ name, @@ -97,9 +97,9 @@ const ExceptionListHeaderComponent: FC = ({ isReadonly={isReadonly} canUserEditList={canUserEditList} securityLinkAnchorComponent={securityLinkAnchorComponent} - onExportList={onExportList} onDeleteList={onDeleteList} onManageRules={onManageRules} + onExportList={onExportList} />, ]} breadcrumbs={[ diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/index.tsx b/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/index.tsx index 5897361d3df30f..14aa823046ff43 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/index.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/index.tsx @@ -18,9 +18,9 @@ interface MenuItemsProps { linkedRules: Rule[]; canUserEditList?: boolean; securityLinkAnchorComponent: React.ElementType; // This property needs to be removed to avoid the Prop Drilling, once we move all the common components from x-pack/security-solution/common - onExportList: () => void; onDeleteList: () => void; onManageRules: () => void; + onExportList: () => void; } const MenuItemsComponent: FC = ({ @@ -29,9 +29,9 @@ const MenuItemsComponent: FC = ({ securityLinkAnchorComponent, isReadonly, canUserEditList = true, - onExportList, onDeleteList, onManageRules, + onExportList, }) => { const referencedLinks = useMemo( () => @@ -78,7 +78,7 @@ const MenuItemsComponent: FC = ({ data-test-subj={`${dataTestSubj || ''}ManageRulesButton`} fill onClick={() => { - if (typeof onExportList === 'function') onManageRules(); + if (typeof onManageRules === 'function') onManageRules(); }} > {i18n.EXCEPTION_LIST_HEADER_MANAGE_RULES_BUTTON} diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/menu_items.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/menu_items.test.tsx index 9e8935ba4deea3..2efbb36998424e 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/menu_items.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/menu_items.test.tsx @@ -108,7 +108,7 @@ describe('MenuItems', () => { fireEvent.click(wrapper.getByTestId('ManageRulesButton')); expect(onManageRules).toHaveBeenCalled(); }); - it('should call onExportList', () => { + it('should call onExportModalOpen', () => { const wrapper = render( ; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/common/include_expired_exceptions/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/common/include_expired_exceptions/index.ts new file mode 100644 index 00000000000000..12b2f2be7331f3 --- /dev/null +++ b/packages/kbn-securitysolution-io-ts-list-types/src/common/include_expired_exceptions/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +/* eslint-disable @typescript-eslint/naming-convention */ + +import * as t from 'io-ts'; + +export const include_expired_exceptions = t.keyof({ true: null, false: null }); +export const includeExpiredExceptionsOrUndefined = t.union([ + include_expired_exceptions, + t.undefined, +]); +export type IncludeExpiredExceptionsOrUndefined = t.TypeOf< + typeof includeExpiredExceptionsOrUndefined +>; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/common/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/common/index.ts index 7f92649fd07d88..e50500f87f61a5 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/common/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/common/index.ts @@ -28,6 +28,7 @@ export * from './entry_nested'; export * from './exception_export_details'; export * from './exception_list'; export * from './exception_list_item_type'; +export * from './expire_time'; export * from './filter'; export * from './id'; export * from './immutable'; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/create_endpoint_list_item_schema/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/create_endpoint_list_item_schema/index.ts index 8c8e1d3e0db4be..0262e16539e9f7 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/create_endpoint_list_item_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/create_endpoint_list_item_schema/index.ts @@ -22,6 +22,7 @@ import { description } from '../../common/description'; import { name } from '../../common/name'; import { meta } from '../../common/meta'; import { tags } from '../../common/tags'; +import { ExpireTimeOrUndefined, expireTimeOrUndefined } from '../../common'; export const createEndpointListItemSchema = t.intersection([ t.exact( @@ -39,6 +40,7 @@ export const createEndpointListItemSchema = t.intersection([ meta, // defaults to undefined if not set during decode os_types: osTypeArrayOrUndefined, // defaults to empty array if not set during decode tags, // defaults to empty array if not set during decode + expire_time: expireTimeOrUndefined, // defaults to undefined if not set during decode }) ), ]); @@ -48,11 +50,12 @@ export type CreateEndpointListItemSchema = t.OutputOf>, - 'tags' | 'item_id' | 'entries' | 'comments' | 'os_types' + 'tags' | 'item_id' | 'entries' | 'comments' | 'os_types' | 'expire_time' > & { comments: CreateCommentsArray; tags: Tags; item_id: ItemId; entries: EntriesArray; os_types: OsTypeArray; + expire_time: ExpireTimeOrUndefined; }; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/create_exception_list_item_schema/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/create_exception_list_item_schema/index.ts index e4f92c2819664d..a97280056da731 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/create_exception_list_item_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/create_exception_list_item_schema/index.ts @@ -25,6 +25,7 @@ import { meta } from '../../common/meta'; import { namespace_type } from '../../common/namespace_type'; import { tags } from '../../common/tags'; import { nonEmptyEntriesArray } from '../../common/non_empty_entries_array'; +import { ExpireTimeOrUndefined, expireTimeOrUndefined } from '../../common'; export const createExceptionListItemSchema = t.intersection([ t.exact( @@ -39,6 +40,7 @@ export const createExceptionListItemSchema = t.intersection([ t.exact( t.partial({ comments: DefaultCreateCommentsArray, // defaults to empty array if not set during decode + expire_time: expireTimeOrUndefined, item_id: DefaultUuid, // defaults to GUID (uuid v4) if not set during decode meta, // defaults to undefined if not set during decode namespace_type, // defaults to 'single' if not set during decode @@ -53,9 +55,10 @@ export type CreateExceptionListItemSchema = t.OutputOf>, - 'tags' | 'item_id' | 'entries' | 'namespace_type' | 'comments' + 'tags' | 'item_id' | 'entries' | 'namespace_type' | 'comments' | 'expire_time' > & { comments: CreateCommentsArray; + expire_time: ExpireTimeOrUndefined; tags: Tags; item_id: ItemId; entries: EntriesArray; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/create_rule_exception_item_schema/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/create_rule_exception_item_schema/index.ts index b710ffde0a6d83..e231d3978cde36 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/create_rule_exception_item_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/create_rule_exception_item_schema/index.ts @@ -25,6 +25,8 @@ import { Tags, tags, name, + ExpireTimeOrUndefined, + expireTimeOrUndefined, } from '../../common'; import { RequiredKeepUndefined } from '../../common/required_keep_undefined'; @@ -46,6 +48,7 @@ export const createRuleExceptionListItemSchema = t.intersection([ namespace_type: namespaceType, // defaults to 'single' if not set during decode os_types: osTypeArrayOrUndefined, // defaults to empty array if not set during decode tags, // defaults to empty array if not set during decode + expire_time: expireTimeOrUndefined, }) ), ]); @@ -57,7 +60,7 @@ export type CreateRuleExceptionListItemSchema = t.OutputOf< // This type is used after a decode since some things are defaults after a decode. export type CreateRuleExceptionListItemSchemaDecoded = Omit< RequiredKeepUndefined>, - 'tags' | 'item_id' | 'entries' | 'namespace_type' | 'comments' + 'tags' | 'item_id' | 'entries' | 'namespace_type' | 'comments' | 'expire_time' > & { comments: CreateCommentsArray; tags: Tags; @@ -65,4 +68,5 @@ export type CreateRuleExceptionListItemSchemaDecoded = Omit< entries: EntriesArray; namespace_type: NamespaceType; os_types: OsTypeArray; + expire_time: ExpireTimeOrUndefined; }; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.mock.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.mock.ts index a5542d99b007ca..863429b5b53407 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.mock.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.mock.ts @@ -14,4 +14,5 @@ export const getExportExceptionListQuerySchemaMock = (): ExportExceptionListQuer id: ID, list_id: LIST_ID, namespace_type: NAMESPACE_TYPE, + include_expired_exceptions: 'true', }); diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.test.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.test.ts index 3d1fcba3f7dbf2..382fab3f7b6044 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.test.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.test.ts @@ -45,6 +45,7 @@ describe('export_exception_list_schema', () => { expect(message.schema).toEqual({ id: 'uuid_here', + include_expired_exceptions: 'true', list_id: 'some-list-id', namespace_type: 'single', }); diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.ts index ce6dc9a561293d..bcdcc46dadb397 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/export_exception_list_query_schema/index.ts @@ -9,6 +9,7 @@ import * as t from 'io-ts'; import { id } from '../../common/id'; +import { includeExpiredExceptionsOrUndefined } from '../../common/include_expired_exceptions'; import { list_id } from '../../common/list_id'; import { namespace_type } from '../../common/namespace_type'; @@ -17,6 +18,7 @@ export const exportExceptionListQuerySchema = t.exact( id, list_id, namespace_type, + include_expired_exceptions: includeExpiredExceptionsOrUndefined, // TODO: Add file_name here with a default value }) ); diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.mock.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.mock.ts index 03ec225351e6dc..2ed82b20efd7ca 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.mock.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.mock.ts @@ -31,4 +31,5 @@ export const getImportExceptionsListItemSchemaDecodedMock = ( namespace_type: 'single', os_types: [], tags: [], + expire_time: undefined, }); diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.ts index dc5a48597211e7..6b1590397b5852 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/import_exception_item_schema/index.ts @@ -30,7 +30,7 @@ import { exceptionListItemType } from '../../common/exception_list_item_type'; import { ItemId } from '../../common/item_id'; import { EntriesArray } from '../../common/entries'; import { DefaultImportCommentsArray } from '../../common/default_import_comments_array'; -import { ImportCommentsArray } from '../../common'; +import { ExpireTimeOrUndefined, expireTimeOrUndefined, ImportCommentsArray } from '../../common'; /** * Differences from this and the createExceptionsListItemSchema are @@ -67,6 +67,7 @@ export const importExceptionListItemSchema = t.intersection([ namespace_type, // defaults to 'single' if not set during decode os_types: osTypeArrayOrUndefined, // defaults to empty array if not set during decode tags, // defaults to empty array if not set during decode + expire_time: expireTimeOrUndefined, }) ), ]); @@ -76,7 +77,7 @@ export type ImportExceptionListItemSchema = t.OutputOf & { comments: ImportCommentsArray; tags: Tags; @@ -84,4 +85,5 @@ export type ImportExceptionListItemSchemaDecoded = Omit< entries: EntriesArray; namespace_type: NamespaceType; os_types: OsTypeArray; + expire_time: ExpireTimeOrUndefined; }; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/update_endpoint_list_item_schema/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/update_endpoint_list_item_schema/index.ts index 8e5aa41e1fad29..b0669b05463cf8 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/update_endpoint_list_item_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/update_endpoint_list_item_schema/index.ts @@ -21,6 +21,7 @@ import { Tags, tags } from '../../common/tags'; import { RequiredKeepUndefined } from '../../common/required_keep_undefined'; import { UpdateCommentsArray } from '../../common/update_comment'; import { EntriesArray } from '../../common/entries'; +import { ExpireTimeOrUndefined, expireTimeOrUndefined } from '../../common'; export const updateEndpointListItemSchema = t.intersection([ t.exact( @@ -40,6 +41,7 @@ export const updateEndpointListItemSchema = t.intersection([ meta, // defaults to undefined if not set during decode os_types: osTypeArrayOrUndefined, // defaults to empty array if not set during decode tags, // defaults to empty array if not set during decode + expire_time: expireTimeOrUndefined, }) ), ]); @@ -49,10 +51,11 @@ export type UpdateEndpointListItemSchema = t.OutputOf>, - 'tags' | 'entries' | 'comments' + 'tags' | 'entries' | 'comments' | 'expire_time' > & { comments: UpdateCommentsArray; tags: Tags; entries: EntriesArray; os_types: OsTypeArray; + expire_time: ExpireTimeOrUndefined; }; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_schema/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_schema/index.ts index 2624f363295624..bb6ae55c0f037e 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/request/update_exception_list_item_schema/index.ts @@ -22,6 +22,7 @@ import { _version } from '../../common/underscore_version'; import { id } from '../../common/id'; import { meta } from '../../common/meta'; import { namespace_type } from '../../common/namespace_type'; +import { ExpireTimeOrUndefined, expireTimeOrUndefined } from '../../common'; export const updateExceptionListItemSchema = t.intersection([ t.exact( @@ -36,6 +37,7 @@ export const updateExceptionListItemSchema = t.intersection([ t.partial({ _version, // defaults to undefined if not set during decode comments: DefaultUpdateCommentsArray, // defaults to empty array if not set during decode + expire_time: expireTimeOrUndefined, id, // defaults to undefined if not set during decode item_id: t.union([t.string, t.undefined]), meta, // defaults to undefined if not set during decode @@ -51,11 +53,12 @@ export type UpdateExceptionListItemSchema = t.OutputOf>, - 'tags' | 'entries' | 'namespace_type' | 'comments' | 'os_types' + 'tags' | 'entries' | 'namespace_type' | 'comments' | 'os_types' | 'expire_time' > & { comments: UpdateCommentsArray; tags: Tags; entries: EntriesArray; namespace_type: NamespaceType; os_types: OsTypeArray; + expire_time: ExpireTimeOrUndefined; }; diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.mock.ts b/packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.mock.ts index c06a5439d11d87..b57d00eed29eea 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.mock.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.mock.ts @@ -34,6 +34,7 @@ export const getExceptionListItemSchemaMock = ( created_by: USER, description: DESCRIPTION, entries: ENTRIES, + expire_time: undefined, id: '1', item_id: 'endpoint_list_item', list_id: 'endpoint_list_id', diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.ts index d2fc52b38f95b1..d4b5478551901c 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/response/exception_list_item_schema/index.ts @@ -26,6 +26,7 @@ import { commentsArray } from '../../common/comment'; import { entriesArray } from '../../common/entries'; import { item_id } from '../../common/item_id'; import { exceptionListItemType } from '../../common/exception_list_item_type'; +import { expireTimeOrUndefined } from '../../common/expire_time'; export const exceptionListItemSchema = t.exact( t.type({ @@ -35,6 +36,7 @@ export const exceptionListItemSchema = t.exact( created_by, description, entries: entriesArray, + expire_time: expireTimeOrUndefined, id, item_id, list_id, diff --git a/packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts b/packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts index 63711c8a036bd1..d3e10619b15cbc 100644 --- a/packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts +++ b/packages/kbn-securitysolution-io-ts-list-types/src/typescript_types/index.ts @@ -77,6 +77,7 @@ export interface ApiCallMemoProps { // remove unnecessary validation checks export interface ApiListExportProps { id: string; + includeExpiredExceptions: boolean; listId: string; namespaceType: NamespaceType; onError: (err: Error) => void; @@ -133,6 +134,7 @@ export interface ExportExceptionListProps { id: string; listId: string; namespaceType: NamespaceType; + includeExpiredExceptions: boolean; signal: AbortSignal; } diff --git a/packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.test.ts b/packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.test.ts index d2f84b4ee3708e..ab1f35c54b5db0 100644 --- a/packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.test.ts +++ b/packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.test.ts @@ -16,6 +16,7 @@ describe('importQuerySchema', () => { as_new_list: false, overwrite: true, overwrite_exceptions: true, + overwrite_action_connectors: true, }; const decoded = importQuerySchema.decode(payload); const checked = exactCheck(payload, decoded); @@ -30,6 +31,7 @@ describe('importQuerySchema', () => { as_new_list: false, overwrite: 'wrong', overwrite_exceptions: true, + overwrite_action_connectors: true, }; const decoded = importQuerySchema.decode(payload); const checked = exactCheck(payload, decoded); @@ -48,6 +50,7 @@ describe('importQuerySchema', () => { as_new_list: false, overwrite: true, overwrite_exceptions: 'wrong', + overwrite_action_connectors: true, }; const decoded = importQuerySchema.decode(payload); const checked = exactCheck(payload, decoded); @@ -58,6 +61,24 @@ describe('importQuerySchema', () => { ]); expect(message.schema).toEqual({}); }); + test('it should NOT validate a non boolean value for "overwrite_action_connectors"', () => { + const payload: Omit & { + overwrite_action_connectors: string; + } = { + as_new_list: false, + overwrite: true, + overwrite_exceptions: true, + overwrite_action_connectors: 'wrong', + }; + const decoded = importQuerySchema.decode(payload); + const checked = exactCheck(payload, decoded); + const message = foldLeftRight(checked); + + expect(getPaths(left(message.errors))).toEqual([ + 'Invalid value "wrong" supplied to "overwrite_action_connectors"', + ]); + expect(message.schema).toEqual({}); + }); test('it should NOT allow an extra key to be sent in', () => { const payload: ImportQuerySchema & { diff --git a/packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.ts b/packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.ts index ca0e35c4aa176f..5b1ee38bb0855e 100644 --- a/packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.ts +++ b/packages/kbn-securitysolution-io-ts-types/src/import_query_schema/index.ts @@ -14,6 +14,7 @@ export const importQuerySchema = t.exact( t.partial({ overwrite: DefaultStringBooleanFalse, overwrite_exceptions: DefaultStringBooleanFalse, + overwrite_action_connectors: DefaultStringBooleanFalse, as_new_list: DefaultStringBooleanFalse, }) ); @@ -21,9 +22,10 @@ export const importQuerySchema = t.exact( export type ImportQuerySchema = t.TypeOf; export type ImportQuerySchemaDecoded = Omit< ImportQuerySchema, - 'overwrite' | 'overwrite_exceptions' | 'as_new_list' + 'overwrite' | 'overwrite_exceptions' | 'as_new_list' | 'overwrite_action_connectors' > & { overwrite: boolean; overwrite_exceptions: boolean; + overwrite_action_connectors: boolean; as_new_list: boolean; }; diff --git a/packages/kbn-securitysolution-list-api/src/api/index.ts b/packages/kbn-securitysolution-list-api/src/api/index.ts index 440217ff65167e..ea324f0dd033b6 100644 --- a/packages/kbn-securitysolution-list-api/src/api/index.ts +++ b/packages/kbn-securitysolution-list-api/src/api/index.ts @@ -532,10 +532,11 @@ const addEndpointExceptionListWithValidation = async ({ export { addEndpointExceptionListWithValidation as addEndpointExceptionList }; /** - * Fetch an ExceptionList by providing a ExceptionList ID + * Export an ExceptionList by providing a ExceptionList ID * * @param http Kibana http service * @param id ExceptionList ID (not list_id) + * @param includeExpiredExceptions boolean for including expired exceptions * @param listId ExceptionList LIST_ID (not id) * @param namespaceType ExceptionList namespace_type * @param signal to cancel request @@ -545,13 +546,19 @@ export { addEndpointExceptionListWithValidation as addEndpointExceptionList }; export const exportExceptionList = async ({ http, id, + includeExpiredExceptions, listId, namespaceType, signal, }: ExportExceptionListProps): Promise => http.fetch(`${EXCEPTION_LIST_URL}/_export`, { method: 'POST', - query: { id, list_id: listId, namespace_type: namespaceType }, + query: { + id, + list_id: listId, + namespace_type: namespaceType, + include_expired_exceptions: includeExpiredExceptions, + }, signal, }); diff --git a/packages/kbn-securitysolution-list-hooks/src/mocks/response/exception_list_item_schema.mock.ts b/packages/kbn-securitysolution-list-hooks/src/mocks/response/exception_list_item_schema.mock.ts index 4ba6066564d0d0..dab3b67ee31ee5 100644 --- a/packages/kbn-securitysolution-list-hooks/src/mocks/response/exception_list_item_schema.mock.ts +++ b/packages/kbn-securitysolution-list-hooks/src/mocks/response/exception_list_item_schema.mock.ts @@ -34,6 +34,7 @@ export const getExceptionListItemSchemaMock = ( created_by: USER, description: DESCRIPTION, entries: ENTRIES, + expire_time: undefined, id: '1', item_id: 'endpoint_list_item', list_id: 'endpoint_list_id', diff --git a/packages/kbn-securitysolution-list-hooks/src/use_api/index.ts b/packages/kbn-securitysolution-list-hooks/src/use_api/index.ts index 30664df1472524..2d3321bfa72f94 100644 --- a/packages/kbn-securitysolution-list-hooks/src/use_api/index.ts +++ b/packages/kbn-securitysolution-list-hooks/src/use_api/index.ts @@ -112,6 +112,7 @@ export const useApi = (http: HttpStart): ExceptionsApi => { }, async exportExceptionList({ id, + includeExpiredExceptions, listId, namespaceType, onError, @@ -123,6 +124,7 @@ export const useApi = (http: HttpStart): ExceptionsApi => { const blob = await Api.exportExceptionList({ http, id, + includeExpiredExceptions, listId, namespaceType, signal: abortCtrl.signal, diff --git a/packages/kbn-securitysolution-list-utils/src/helpers/index.ts b/packages/kbn-securitysolution-list-utils/src/helpers/index.ts index 38a41393b867c3..403b07c0ba058d 100644 --- a/packages/kbn-securitysolution-list-utils/src/helpers/index.ts +++ b/packages/kbn-securitysolution-list-utils/src/helpers/index.ts @@ -60,6 +60,7 @@ import { ExceptionsBuilderReturnExceptionItem, FormattedBuilderEntry, OperatorOption, + SavedObjectType, } from '../types'; export const isEntryNested = (item: BuilderEntry): item is EntryNested => { @@ -914,6 +915,21 @@ export const getDefaultNestedEmptyEntry = (): EmptyNestedEntry => ({ export const containsValueListEntry = (items: ExceptionsBuilderExceptionItem[]): boolean => items.some((item) => item.entries.some(({ type }) => type === OperatorTypeEnum.LIST)); +export const buildShowActiveExceptionsFilter = (savedObjectPrefix: SavedObjectType[]): string => { + const now = new Date().toISOString(); + const filters = savedObjectPrefix.map( + (prefix) => + `${prefix}.attributes.expire_time > "${now}" OR NOT ${prefix}.attributes.expire_time: *` + ); + return filters.join(','); +}; + +export const buildShowExpiredExceptionsFilter = (savedObjectPrefix: SavedObjectType[]): string => { + const now = new Date().toISOString(); + const filters = savedObjectPrefix.map((prefix) => `${prefix}.attributes.expire_time <= "${now}"`); + return filters.join(','); +}; + const getIndexGroupName = (indexName: string): string => { // Check whether it is a Data Stream index const dataStreamExp = /.ds-(.*?)-[0-9]{4}\.[0-9]{2}\.[0-9]{2}-[0-9]{6}/; diff --git a/packages/kbn-set-map/README.md b/packages/kbn-set-map/README.md index 1306f1f99ffd0a..2c3b0598e3e1a7 100644 --- a/packages/kbn-set-map/README.md +++ b/packages/kbn-set-map/README.md @@ -1,3 +1,3 @@ # @kbn/set-map -Empty package generated by @kbn/generate +A map of sets, without needing to rewrite the code over and over which determined if the set is already in the map, and then extending the set or creating it from scratch. diff --git a/packages/kbn-storybook/src/webpack.config.ts b/packages/kbn-storybook/src/webpack.config.ts index 93c746e66af34d..a10de36a213482 100644 --- a/packages/kbn-storybook/src/webpack.config.ts +++ b/packages/kbn-storybook/src/webpack.config.ts @@ -129,7 +129,6 @@ export default ({ config: storybookConfig }: { config: Configuration }) => { core_app_image_assets: resolve(REPO_ROOT, 'src/core/public/styles/core_app/images'), core_styles: resolve(REPO_ROOT, 'src/core/public/index.scss'), }, - symlinks: false, }, stats, }; @@ -152,9 +151,7 @@ export default ({ config: storybookConfig }: { config: Configuration }) => { // move the plugins to the top of the preset array so they will run after the typescript preset options.presets = [ require.resolve('@kbn/babel-preset/common_preset'), - { - plugins: [...plugins, require.resolve('@kbn/babel-plugin-package-imports')], - }, + { plugins }, ...(options.presets as Preset[]).filter(isDesiredPreset).map((preset) => { const tsPreset = getTsPreset(preset); if (!tsPreset) { diff --git a/packages/kbn-test/index.ts b/packages/kbn-test/index.ts index 8d1b3cefde4635..8e0cb4cfc703fd 100644 --- a/packages/kbn-test/index.ts +++ b/packages/kbn-test/index.ts @@ -30,8 +30,9 @@ export { createRemoteEsClientForFtrConfig, } from './src/es'; +export { kbnTestConfig } from './kbn_test_config'; + export { - kbnTestConfig, kibanaServerTestUser, kibanaTestUser, adminTestUser, @@ -54,3 +55,5 @@ export { runJest } from './src/jest/run'; export * from './src/kbn_archiver_cli'; export * from './src/kbn_client'; + +export * from './src/find_test_plugin_paths'; diff --git a/packages/kbn-test/src/kbn/kbn_test_config.ts b/packages/kbn-test/kbn_test_config.ts similarity index 97% rename from packages/kbn-test/src/kbn/kbn_test_config.ts rename to packages/kbn-test/kbn_test_config.ts index 01a7edbc861dfd..1e656f3347909e 100644 --- a/packages/kbn-test/src/kbn/kbn_test_config.ts +++ b/packages/kbn-test/kbn_test_config.ts @@ -7,7 +7,7 @@ */ import url from 'url'; -import { kibanaTestUser } from './users'; +import { kibanaTestUser } from './src/kbn/users'; export interface UrlParts { protocol?: string; diff --git a/packages/kbn-test/src/find_test_plugin_paths.ts b/packages/kbn-test/src/find_test_plugin_paths.ts new file mode 100644 index 00000000000000..24c8a773e31acb --- /dev/null +++ b/packages/kbn-test/src/find_test_plugin_paths.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import Path from 'path'; +import globby from 'globby'; + +export function findTestPluginPaths(dirs: string | string[]) { + return (Array.isArray(dirs) ? dirs : [dirs]) + .flatMap((dir) => + globby.sync('*/kibana.jsonc', { + cwd: dir, + absolute: true, + onlyFiles: true, + }) + ) + .map((p) => `--plugin-path=${Path.dirname(p)}`); +} diff --git a/packages/kbn-test/src/functional_tests/lib/kibana_cli_args.ts b/packages/kbn-test/src/functional_tests/lib/kibana_cli_args.ts index 6a4e9384dc4898..f4e9e394951c64 100644 --- a/packages/kbn-test/src/functional_tests/lib/kibana_cli_args.ts +++ b/packages/kbn-test/src/functional_tests/lib/kibana_cli_args.ts @@ -6,6 +6,11 @@ * Side Public License, v 1. */ +import Path from 'path'; +import { REPO_ROOT } from '@kbn/repo-info'; +import { Package } from '@kbn/repo-packages'; +import { createFailError } from '@kbn/dev-cli-errors'; + /** * These aliases are used to ensure the values for different flags are collected in a single set. */ @@ -28,7 +33,7 @@ export type KibanaCliArg = string & { * Ensure that cli args are always specified as ["--flag=value", "--other-flag"] and not ["--flag", "value"] */ function assertCliArg(arg: string): asserts arg is KibanaCliArg { - if (!arg.startsWith('--')) { + if (typeof arg !== 'string' || !arg.startsWith('--')) { throw new Error( `invalid CLI arg [${arg}], all args must start with "--" and values must be specified after an "=" in a single string per arg` ); @@ -149,3 +154,33 @@ export function getKibanaCliLoggers(rawFlags: string[]) { return []; } + +/** + * Parse the list of Kibana CLI Arg flags and extract the loggers config so that they can be extended + * in a subsequent FTR config + */ +export function remapPluginPaths(args: KibanaCliArg[], kibanaInstallDir: string) { + return args.map((arg) => { + if (argName(arg) !== 'plugin-path') { + return arg; + } + + const value = argToValue(arg); + if (typeof value !== 'string') { + return arg; + } + + let pkg; + try { + pkg = Package.fromManifest(REPO_ROOT, Path.resolve(value, 'kibana.jsonc')); + } catch (error) { + throw createFailError(`Unable to load plugin at ${arg}: ${error.message}`); + } + + const newPath = Path.resolve(kibanaInstallDir, 'node_modules', pkg.manifest.id); + const newArg = `--plugin-path=${newPath}`; + + assertCliArg(newArg); + return newArg; + }); +} diff --git a/packages/kbn-test/src/functional_tests/lib/run_kibana_server.ts b/packages/kbn-test/src/functional_tests/lib/run_kibana_server.ts index 745f8d015ec477..bc0d60d4ef5ca1 100644 --- a/packages/kbn-test/src/functional_tests/lib/run_kibana_server.ts +++ b/packages/kbn-test/src/functional_tests/lib/run_kibana_server.ts @@ -15,24 +15,7 @@ import { REPO_ROOT } from '@kbn/repo-info'; import type { Config } from '../../functional_test_runner'; import { DedicatedTaskRunner } from '../../functional_test_runner/lib'; -import { parseRawFlags, getArgValue } from './kibana_cli_args'; - -function extendNodeOptions(installDir?: string) { - if (!installDir) { - return {}; - } - - const testOnlyRegisterPath = Path.relative( - installDir, - require.resolve('./babel_register_for_test_plugins') - ); - - return { - NODE_OPTIONS: `--require=${testOnlyRegisterPath}${ - process.env.NODE_OPTIONS ? ` ${process.env.NODE_OPTIONS}` : '' - }`, - }; -} +import { parseRawFlags, getArgValue, remapPluginPaths } from './kibana_cli_args'; export async function runKibanaServer(options: { procs: ProcRunner; @@ -59,7 +42,6 @@ export async function runKibanaServer(options: { FORCE_COLOR: 1, ...process.env, ...options.config.get('kbnTestServer.env'), - ...extendNodeOptions(installDir), }, wait: runOptions.wait, onEarlyExit: options.onEarlyExit, @@ -73,7 +55,7 @@ export async function runKibanaServer(options: { const sourceArgs: string[] = config.get('kbnTestServer.sourceArgs') || []; const serverArgs: string[] = config.get('kbnTestServer.serverArgs') || []; - const kbnFlags = parseRawFlags([ + let kbnFlags = parseRawFlags([ // When installDir is passed, we run from a built version of Kibana which uses different command line // arguments. If installDir is not passed, we run from source code. ...(installDir ? [...buildArgs, ...serverArgs] : [...sourceArgs, ...serverArgs]), @@ -82,6 +64,10 @@ export async function runKibanaServer(options: { ...(options.extraKbnOpts ?? []), ]); + if (installDir) { + kbnFlags = remapPluginPaths(kbnFlags, installDir); + } + const mainName = useTaskRunner ? 'kbn-ui' : 'kibana'; const promises = [ // main process diff --git a/packages/kbn-test/src/jest/configs/get_tests_for_config_paths.ts b/packages/kbn-test/src/jest/configs/get_tests_for_config_paths.ts index 10474413ba2970..8f6bf43f6a3dbb 100644 --- a/packages/kbn-test/src/jest/configs/get_tests_for_config_paths.ts +++ b/packages/kbn-test/src/jest/configs/get_tests_for_config_paths.ts @@ -32,21 +32,26 @@ export async function getTestsForConfigPaths( configPaths: Iterable ): Promise { return await asyncMapWithLimit(configPaths, 60, async (path) => { - const config = await readConfig(EMPTY_ARGV, path); - const searchSource = new SearchSource( - await Runtime.createContext(config.projectConfig, { - maxWorkers: 1, - watchman: false, - watch: false, - console: NO_WARNINGS_CONSOLE, - }) - ); + try { + const config = await readConfig(EMPTY_ARGV, path); + const searchSource = new SearchSource( + await Runtime.createContext(config.projectConfig, { + maxWorkers: 1, + watchman: false, + watch: false, + console: NO_WARNINGS_CONSOLE, + }) + ); - const results = await searchSource.getTestPaths(config.globalConfig, undefined, undefined); + const results = await searchSource.getTestPaths(config.globalConfig, undefined, undefined); - return { - path, - testPaths: new Set(results.tests.map((t) => t.path)), - }; + return { + path, + testPaths: new Set(results.tests.map((t) => t.path)), + }; + } catch (error) { + error.message = `Failed to get test for config ${path}: ${error.message}`; + throw error; + } }); } diff --git a/packages/kbn-test/src/jest/transforms/babel.js b/packages/kbn-test/src/jest/transforms/babel.js index 907a9a66297c63..f2fbbfe00b6035 100644 --- a/packages/kbn-test/src/jest/transforms/babel.js +++ b/packages/kbn-test/src/jest/transforms/babel.js @@ -18,7 +18,6 @@ module.exports = babelJest.default.createTransformer({ useBuiltIns: false, corejs: false, }, - 'kibana/ignoreAllPkgImports': true, }, ], ], diff --git a/packages/kbn-test/src/kbn/index.ts b/packages/kbn-test/src/kbn/index.ts index c8db8b9473d165..cf0cac046a8fa4 100644 --- a/packages/kbn-test/src/kbn/index.ts +++ b/packages/kbn-test/src/kbn/index.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -export { kbnTestConfig } from './kbn_test_config'; export { kibanaTestUser, kibanaServerTestUser, diff --git a/packages/kbn-tinymath/package.json b/packages/kbn-tinymath/package.json index 915afda7ba2d2b..fd20b4362f0237 100644 --- a/packages/kbn-tinymath/package.json +++ b/packages/kbn-tinymath/package.json @@ -1,6 +1,6 @@ { "name": "@kbn/tinymath", - "version": "2.0.0", + "version": "1.0.0", "license": "SSPL-1.0 OR Elastic License 2.0", "private": true, "main": "src/index.js", diff --git a/packages/kbn-ts-projects/ts_project.ts b/packages/kbn-ts-projects/ts_project.ts index 305354314c3c75..21d0054cc54816 100644 --- a/packages/kbn-ts-projects/ts_project.ts +++ b/packages/kbn-ts-projects/ts_project.ts @@ -11,13 +11,12 @@ import Fs from 'fs'; import { REPO_ROOT } from '@kbn/repo-info'; import { makeMatcher } from '@kbn/picomatcher'; -import { findPackageInfoForPath } from '@kbn/repo-packages'; +import { type Package, findPackageForPath, getRepoRelsSync } from '@kbn/repo-packages'; import { createFailError } from '@kbn/dev-cli-errors'; -import { getRepoFilesSync } from '@kbn/get-repo-files'; import { readTsConfig, parseTsConfig, TsConfig } from './ts_configfile'; -export type RefableTsProject = TsProject & { rootImportReq: string }; +export type RefableTsProject = TsProject & { rootImportReq: string; pkg: Package }; export interface TsProjectOptions { disableTypeCheck?: boolean; @@ -96,9 +95,7 @@ export class TsProject { } // rebuild the tsconfig.json path cache - const tsConfigPaths = Array.from(getRepoFilesSync()).flatMap((r) => - r.basename === 'tsconfig.json' ? r.repoRel : [] - ); + const tsConfigPaths = getRepoRelsSync(REPO_ROOT, ['tsconfig.json', '**/tsconfig.json']); Fs.writeFileSync(mapPath, JSON.stringify(tsConfigPaths, null, 2)); return TsProject.loadAll({ ...options, @@ -152,7 +149,7 @@ export class TsProject { /** The directory containing this ts project */ public readonly directory: string; /** the package this tsconfig file is within, if any */ - public readonly pkgInfo?: { id: string; repoRel: string }; + public readonly pkg?: Package; /** * if this project is within a package then this will * be set to the import request that maps to the root of this project @@ -183,20 +180,35 @@ export class TsProject { Path.basename(this.repoRel, '.json') + '.type_check.json' ); - this.pkgInfo = findPackageInfoForPath(REPO_ROOT, this.path); - this.rootImportReq = this.pkgInfo - ? Path.join( - this.pkgInfo.id, - Path.relative(Path.resolve(REPO_ROOT, this.pkgInfo.repoRel), this.dir) - ) + this.pkg = findPackageForPath(REPO_ROOT, this.path); + this.rootImportReq = this.pkg + ? Path.join(this.pkg.id, Path.relative(this.pkg.directory, this.dir)) : undefined; this._disableTypeCheck = !!opts?.disableTypeCheck; } + private _name: string | undefined; + /** name of this project */ public get name() { - /** we will be revamping this soon to inteligently pick a good name for the project, but we need to migrate all plugins to packages first */ - return this.repoRel; + if (this._name !== undefined) { + return this._name; + } + + const basename = Path.basename(this.repoRel); + if (!this.pkg) { + return (this._name = + basename === 'tsconfig.json' ? Path.dirname(this.repoRel) : this.repoRel); + } + + const id = 'plugin' in this.pkg.manifest ? this.pkg.manifest.plugin.id : this.pkg.manifest.id; + return (this._name = Path.join( + id, + Path.relative( + this.pkg.directory, + basename === 'tsconfig.json' ? Path.dirname(this.path) : this.path + ) + )); } public isTypeCheckDisabled() { diff --git a/packages/kbn-ts-projects/ts_projects.ts b/packages/kbn-ts-projects/ts_projects.ts index 56976b6b369daf..9a218fbabe8163 100644 --- a/packages/kbn-ts-projects/ts_projects.ts +++ b/packages/kbn-ts-projects/ts_projects.ts @@ -10,10 +10,7 @@ import { TsProject } from './ts_project'; export const TS_PROJECTS = TsProject.loadAll({ /** Array of repo-relative paths to projects which should be ignored and not treated as a TS project in the repo */ - ignore: [ - 'x-pack/plugins/apm/scripts/optimize_tsconfig/tsconfig.json', - 'packages/kbn-docs-utils/src/integration_tests/__fixtures__/src/**/*', - ], + ignore: ['x-pack/plugins/apm/scripts/optimize_tsconfig/tsconfig.json', '**/__fixtures__/**/*'], /** Array of repo-relative paths to projects which should have their type-check disabled */ disableTypeCheck: [ diff --git a/packages/kbn-ts-projects/tsconfig.json b/packages/kbn-ts-projects/tsconfig.json index 0b8b0d367bf1d1..80f5c0179541c4 100644 --- a/packages/kbn-ts-projects/tsconfig.json +++ b/packages/kbn-ts-projects/tsconfig.json @@ -18,6 +18,5 @@ "@kbn/repo-packages", "@kbn/picomatcher", "@kbn/dev-cli-errors", - "@kbn/get-repo-files", ] } diff --git a/packages/kbn-ts-type-check-cli/run_type_check_cli.ts b/packages/kbn-ts-type-check-cli/run_type_check_cli.ts index c1991fcf3b94f1..0295525578952b 100644 --- a/packages/kbn-ts-type-check-cli/run_type_check_cli.ts +++ b/packages/kbn-ts-type-check-cli/run_type_check_cli.ts @@ -14,7 +14,7 @@ import { createFailError } from '@kbn/dev-cli-errors'; import { REPO_ROOT } from '@kbn/repo-info'; import { asyncForEachWithLimit, asyncMapWithLimit } from '@kbn/std'; import { SomeDevLog } from '@kbn/some-dev-log'; -import { TsProject, TS_PROJECTS } from '@kbn/ts-projects'; +import { type TsProject, TS_PROJECTS } from '@kbn/ts-projects'; import { updateRootRefsConfig, diff --git a/packages/kbn-ui-shared-deps-npm/webpack.config.js b/packages/kbn-ui-shared-deps-npm/webpack.config.js index 70186333b3857b..13198b4c636835 100644 --- a/packages/kbn-ui-shared-deps-npm/webpack.config.js +++ b/packages/kbn-ui-shared-deps-npm/webpack.config.js @@ -153,7 +153,6 @@ module.exports = (_, argv) => { 'scheduler/tracing': 'scheduler/tracing-profiling', }, extensions: ['.js', '.ts'], - symlinks: false, }, optimization: { diff --git a/packages/kbn-ui-shared-deps-src/webpack.config.js b/packages/kbn-ui-shared-deps-src/webpack.config.js index e88d10872156fa..ce6d6be6fa4480 100644 --- a/packages/kbn-ui-shared-deps-src/webpack.config.js +++ b/packages/kbn-ui-shared-deps-src/webpack.config.js @@ -89,7 +89,6 @@ module.exports = { resolve: { extensions: ['.js', '.ts', '.tsx'], - symlinks: false, alias: { '@elastic/eui$': '@elastic/eui/optimize/es', moment: MOMENT_SRC, diff --git a/packages/kbn-utility-types-jest/index.ts b/packages/kbn-utility-types-jest/index.ts index e146e19d10f171..7c2cf90001fbd8 100644 --- a/packages/kbn-utility-types-jest/index.ts +++ b/packages/kbn-utility-types-jest/index.ts @@ -7,9 +7,13 @@ */ export type DeeplyMockedKeys = { - [P in keyof T]: T[P] extends (...args: any[]) => any + [P in keyof T]: T[P] extends readonly any[] + ? ReadonlyArray> + : T[P] extends (...args: any[]) => any ? jest.MockInstance, Parameters> - : DeeplyMockedKeys; + : T[P] extends object + ? DeeplyMockedKeys + : T[P]; } & T; export type MockedKeys = { [P in keyof T]: jest.Mocked }; diff --git a/packages/kbn-whereis-pkg-cli/run_whereis_pkg_cli.ts b/packages/kbn-whereis-pkg-cli/run_whereis_pkg_cli.ts index 766f1c59cf372c..765b1b013905c1 100644 --- a/packages/kbn-whereis-pkg-cli/run_whereis_pkg_cli.ts +++ b/packages/kbn-whereis-pkg-cli/run_whereis_pkg_cli.ts @@ -8,19 +8,20 @@ import { run } from '@kbn/dev-cli-runner'; import { createFailError } from '@kbn/dev-cli-errors'; -import { getPkgMap } from '@kbn/repo-packages'; +import { getPkgsById } from '@kbn/repo-packages'; +import { REPO_ROOT } from '@kbn/repo-info'; import type { ToolingLog } from '@kbn/tooling-log'; const locatePkgsByID = function (inputFilters: string[], log: ToolingLog) { - const packagesMap = getPkgMap(); + const packagesMap = getPkgsById(REPO_ROOT); let missingPkgsCount = 0; inputFilters.forEach((filterInput) => { const pkgId = filterInput.toLowerCase(); + const pkg = packagesMap.get(pkgId); - if (packagesMap.has(pkgId)) { - const pkgLocation = packagesMap.get(pkgId); - log.success(`pkg ${pkgId} location => ${pkgLocation}`); + if (pkg) { + log.success(`pkg ${pkgId} location => ${pkg.normalizedRepoRelativeDir}`); } else { missingPkgsCount++; // fail diff --git a/packages/kbn-whereis-pkg-cli/tsconfig.json b/packages/kbn-whereis-pkg-cli/tsconfig.json index b22ae27fe0b4b2..1a80bc86826d2a 100644 --- a/packages/kbn-whereis-pkg-cli/tsconfig.json +++ b/packages/kbn-whereis-pkg-cli/tsconfig.json @@ -17,6 +17,7 @@ "@kbn/dev-cli-runner", "@kbn/dev-cli-errors", "@kbn/repo-packages", - "@kbn/tooling-log" + "@kbn/tooling-log", + "@kbn/repo-info" ] } diff --git a/packages/kbn-yarn-lock-validator/src/validate_yarn_lock.ts b/packages/kbn-yarn-lock-validator/src/validate_yarn_lock.ts index 28d4895efd72f5..573726a9615689 100644 --- a/packages/kbn-yarn-lock-validator/src/validate_yarn_lock.ts +++ b/packages/kbn-yarn-lock-validator/src/validate_yarn_lock.ts @@ -92,9 +92,11 @@ export async function validateDependencies(log: SomeDevLog, yarnLock: YarnLock) // look for packages that have the the `kibana.devOnly` flag in their package.json // and make sure they aren't included in the production dependencies of Kibana - const bazelPackages = getPackages(REPO_ROOT); - const devOnlyPackagesInProduction = bazelPackages.flatMap((p) => - p.isDevOnly && Object.hasOwn(kibanaPackageJson.dependencies, p.manifest.id) ? p.manifest.id : [] + const pkgs = getPackages(REPO_ROOT); + const devOnlyPackagesInProduction = pkgs.flatMap((p) => + p.isDevOnly() && Object.hasOwn(kibanaPackageJson.dependencies, p.manifest.id) + ? p.manifest.id + : [] ); if (devOnlyPackagesInProduction.length) { log.error(dedent` diff --git a/packages/shared-ux/prompt/not_found/README.mdx b/packages/shared-ux/prompt/not_found/README.mdx index dc784f86b38549..3db21640d5760d 100644 --- a/packages/shared-ux/prompt/not_found/README.mdx +++ b/packages/shared-ux/prompt/not_found/README.mdx @@ -10,3 +10,27 @@ date: 2022-02-09 Sometimes the user tries to go to a page that doesn't exist, because the URL is broken or because they try to load a resource that does not exist. For those cases we want to show a standard 404 error. The default call to action is a "Go back" button that simulates the browser's "Back" behaviour. Consumers can specify their own CTA's with the `actions` prop. + +The NotFoundPrompt component also has the prop `actions` that takes in an array of components. +For example: + +```jsx + + + + Go home + , + + Go to discover + + ] + } + title="Customizable Title" + body="Customizable Body" + /> + + +``` \ No newline at end of file diff --git a/packages/shared-ux/prompt/not_found/src/not_found_prompt.stories.tsx b/packages/shared-ux/prompt/not_found/src/not_found_prompt.stories.tsx index 4cc103140929eb..f5dccc68d9c970 100644 --- a/packages/shared-ux/prompt/not_found/src/not_found_prompt.stories.tsx +++ b/packages/shared-ux/prompt/not_found/src/not_found_prompt.stories.tsx @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { EuiButton, EuiButtonEmpty, EuiPageTemplate } from '@elastic/eui'; +import { EuiButton, EuiPageTemplate } from '@elastic/eui'; import React from 'react'; import { Meta, Story } from '@storybook/react'; import mdx from '../README.mdx'; @@ -51,14 +51,18 @@ export const CustomActions: Story = (args) => { - Go home - , - - Go to discover - , - ]} + actions={ + <> + + Go home + + + Go to discover + + + } + title="Customizable Title" + body="Customizable Body" /> diff --git a/packages/shared-ux/prompt/not_found/src/not_found_prompt.test.tsx b/packages/shared-ux/prompt/not_found/src/not_found_prompt.test.tsx index 48f0d82520f30d..da836d48f92661 100644 --- a/packages/shared-ux/prompt/not_found/src/not_found_prompt.test.tsx +++ b/packages/shared-ux/prompt/not_found/src/not_found_prompt.test.tsx @@ -36,4 +36,11 @@ describe('', () => { const component = render(); expect(component.text()).toContain('I am a button'); }); + + it('Renders custom actions with an array with multiple buttons', () => { + const actions = [, ]; + const component = render(); + expect(component.text()).toContain('I am a button'); + expect(component.text()).toContain('I am a second button'); + }); }); diff --git a/renovate.json b/renovate.json index 932f0a6558864c..ce12b9dd5a248f 100644 --- a/renovate.json +++ b/renovate.json @@ -153,6 +153,17 @@ "labels": ["Team:Operations", "release_note:skip", "backport:all-open"], "enabled": true }, + { + "groupName": "minify", + "packageNames": [ + "gulp-terser", + "terser" + ], + "reviewers": ["team:kibana-operations"], + "matchBaseBranches": ["main"], + "labels": ["Team:Operations", "release_note:skip"], + "enabled": true + }, { "groupName": "@testing-library", "packageNames": [ diff --git a/scripts/find_plugins_ready_to_migrate_to_ts_refs.js b/scripts/find_plugins_ready_to_migrate_to_ts_refs.js deleted file mode 100644 index 68517cee1f3f56..00000000000000 --- a/scripts/find_plugins_ready_to_migrate_to_ts_refs.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -require('../src/setup_node_env'); -require('../src/dev/run_find_plugins_ready_migrate_to_ts_refs'); diff --git a/scripts/find_plugins_with_circular_deps.js b/scripts/find_plugins_with_circular_deps.js deleted file mode 100644 index 402429f02bf1e3..00000000000000 --- a/scripts/find_plugins_with_circular_deps.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -require('../src/setup_node_env'); -require('../src/dev/run_find_plugins_with_circular_deps'); diff --git a/scripts/find_plugins_without_ts_refs.js b/scripts/find_plugins_without_ts_refs.js deleted file mode 100644 index c8d1329a5965e7..00000000000000 --- a/scripts/find_plugins_without_ts_refs.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -require('../src/setup_node_env'); -require('../src/dev/run_find_plugins_without_ts_refs'); diff --git a/scripts/synthtrace.js b/scripts/synthtrace.js index da09e190f7a03f..2b0aaf5f15fa35 100644 --- a/scripts/synthtrace.js +++ b/scripts/synthtrace.js @@ -15,5 +15,4 @@ require('@babel/register')({ // If we import the package (require('@kbn/apm-synthtrace')) the program will be executed on the compiled files, and thus we need to // compile scenarios with `yarn kbn bootstrap` every time scenario changes. -// eslint-disable-next-line @kbn/imports/uniform_imports -require('../packages/kbn-apm-synthtrace/src/cli').runSynthtrace(); +require('@kbn/apm-synthtrace/src/cli').runSynthtrace(); diff --git a/src/cli/serve/serve.js b/src/cli/serve/serve.js index dcb44a3fddb676..4a875d69554284 100644 --- a/src/cli/serve/serve.js +++ b/src/cli/serve/serve.js @@ -16,6 +16,28 @@ import { getConfigPath, getConfigDirectory } from '@kbn/utils'; import { isKibanaDistributable } from '@kbn/repo-info'; import { readKeystore } from '../keystore/read_keystore'; +/** @typedef {'es' | 'oblt' | 'security'} ServerlessProjectMode */ +/** @type {ServerlessProjectMode[]} */ +const VALID_SERVERLESS_PROJECT_MODE = ['es', 'oblt', 'security']; + +/** + * @param {Record} opts + * @returns {ServerlessProjectMode | null} + */ +function getServerlessProjectMode(opts) { + if (!opts.serverless) { + return null; + } + + if (VALID_SERVERLESS_PROJECT_MODE.includes(opts.serverless)) { + return opts.serverless; + } + + throw new Error( + `invalid --serverless value, must be one of ${VALID_SERVERLESS_PROJECT_MODE.join(', ')}` + ); +} + function canRequire(path) { try { require.resolve(path); @@ -212,7 +234,7 @@ export default function (program) { '--run-examples', 'Adds plugin paths for all the Kibana example plugins and runs with no base path' ) - .option('--serverless', 'Start Kibana with serverless configuration overrides'); + .option('--serverless ', 'Start Kibana in a serverless project mode'); } if (DEV_MODE_SUPPORTED) { @@ -237,17 +259,20 @@ export default function (program) { command.action(async function (opts) { const unknownOptions = this.getUnknownOptions(); const configs = [getConfigPath(), ...getEnvConfigs(), ...(opts.config || [])]; + const serverlessMode = getServerlessProjectMode(opts); // we "unshift" .serverless. config so that it only overrides defaults - if (opts.serverless) { - maybeAddConfig('kibana.serverless.yml', configs, 'unshift'); + if (serverlessMode) { + maybeAddConfig(`serverless.yml`, configs, 'push'); + maybeAddConfig(`serverless.${serverlessMode}.yml`, configs, 'unshift'); } // .dev. configs are "pushed" so that they override all other config files if (opts.dev && opts.devConfig !== false) { maybeAddConfig('kibana.dev.yml', configs, 'push'); - if (opts.serverless) { - maybeAddConfig('kibana.serverless.dev.yml', configs, 'push'); + if (serverlessMode) { + maybeAddConfig(`serverless.dev.yml`, configs, 'push'); + maybeAddConfig(`serverless.${serverlessMode}.dev.yml`, configs, 'push'); } } diff --git a/src/cli_plugin/install/download.js b/src/cli_plugin/install/download.js index ab2ed9f86357b4..8dc039cd6305de 100644 --- a/src/cli_plugin/install/download.js +++ b/src/cli_plugin/install/download.js @@ -41,7 +41,7 @@ export function _downloadSingle(settings, logger, sourceUrl) { _checkFilePathDeprecation(sourceUrl, logger); downloadPromise = downloadLocalFile( logger, - _getFilePath(urlInfo.path, sourceUrl), + _getFilePath(urlInfo.path), settings.tempArchiveFile ); } else if (/^https?/.test(urlInfo.protocol)) { diff --git a/src/core/kibana.json b/src/core/kibana.json deleted file mode 100644 index c312b05be1d2f6..00000000000000 --- a/src/core/kibana.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "core", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "summary": "The core plugin has core functionality", - "version": "kibana", - "serviceFolders": ["http", "saved_objects", "chrome", "application"] -} diff --git a/src/core/kibana.jsonc b/src/core/kibana.jsonc new file mode 100644 index 00000000000000..fc757811b882d0 --- /dev/null +++ b/src/core/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core", + "owner": "@elastic/kibana-core", + "description": "The core plugin has core functionality", + "serviceFolders": ["http", "saved_objects", "chrome", "application"] +} diff --git a/src/core/server/integration_tests/http/lifecycle_handlers.test.ts b/src/core/server/integration_tests/http/lifecycle_handlers.test.ts index 4b1462cd2f106a..7033abc4174fa2 100644 --- a/src/core/server/integration_tests/http/lifecycle_handlers.test.ts +++ b/src/core/server/integration_tests/http/lifecycle_handlers.test.ts @@ -8,6 +8,7 @@ import supertest from 'supertest'; import moment from 'moment'; +import { kibanaPackageJson } from '@kbn/repo-info'; import { BehaviorSubject } from 'rxjs'; import { ByteSizeValue } from '@kbn/config-schema'; import { configServiceMock } from '@kbn/config-mocks'; @@ -17,10 +18,7 @@ import { createHttpServer } from '@kbn/core-http-server-mocks'; import { HttpService, HttpServerSetup } from '@kbn/core-http-server-internal'; import { executionContextServiceMock } from '@kbn/core-execution-context-server-mocks'; -// eslint-disable-next-line @typescript-eslint/no-var-requires -const pkg = require('../../../../../package.json'); - -const actualVersion = pkg.version; +const actualVersion = kibanaPackageJson.version; const versionHeader = 'kbn-version'; const xsrfHeader = 'kbn-xsrf'; const nameHeader = 'kbn-name'; diff --git a/src/core/server/integration_tests/saved_objects/migrations/7.7.2_xpack_100k.test.ts b/src/core/server/integration_tests/saved_objects/migrations/7.7.2_xpack_100k.test.ts index a90291d1614a49..49222230159049 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/7.7.2_xpack_100k.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/7.7.2_xpack_100k.test.ts @@ -29,7 +29,7 @@ async function removeLogFile() { } /** Number of SO documents dropped during the migration because they belong to an unused type */ -const UNUSED_SO_COUNT = 4; +const UNUSED_SO_COUNT = 5; describe('migration from 7.7.2-xpack with 100k objects', () => { let esServer: TestElasticsearchUtils; diff --git a/src/core/server/integration_tests/saved_objects/migrations/actions/actions.test.ts b/src/core/server/integration_tests/saved_objects/migrations/actions/actions.test.ts index 2314e654607bc1..1b06c05cca7273 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/actions/actions.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/actions/actions.test.ts @@ -1093,7 +1093,7 @@ describe('migration actions', () => { left: { error: expect.any(errors.ResponseError), message: expect.stringContaining( - '[timeout_exception] Timed out waiting for completion of [Task' + '[timeout_exception] Timed out waiting for completion of task' ), type: 'wait_for_task_completion_timeout', }, @@ -1394,7 +1394,7 @@ describe('migration actions', () => { left: { error: expect.any(errors.ResponseError), message: expect.stringContaining( - '[timeout_exception] Timed out waiting for completion of [Task' + '[timeout_exception] Timed out waiting for completion of task' ), type: 'wait_for_task_completion_timeout', }, diff --git a/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts index 5ae02ab1009264..5558e5156324dc 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts @@ -55,103 +55,102 @@ describe('checking migration metadata changes on all registered SO types', () => expect(hashMap).toMatchInlineSnapshot(` Object { - "action": "7858e6d5a9f231bf23f6f2e57328eb0095b26735", - "action_task_params": "bbd38cbfd74bf6713586fe078e3fa92db2234299", - "alert": "f2e81863be0b50966b876b88b906c962e30b8c9c", - "api_key_pending_invalidation": "9b4bc1235337da9a87ef05a1d1f4858b2a3b77c6", - "apm-indices": "ceb0870f3a74e2ffc3a1cd3a3c73af76baca0999", - "apm-server-schema": "2bfd2998d3873872e1366458ce553def85418f91", - "apm-service-group": "07ecbf25ee4828d2b686abc98656b6665831d1a0", - "apm-telemetry": "abaa1e9469e6e0bad76938309f0ac4c66b528d58", - "app_search_telemetry": "7fc4fc08852bf0924ee29942bb394fda9aa8954d", - "application_usage_daily": "6e645e0b60ef3af2e8fde80963c2a4f09a190d61", - "application_usage_totals": "b2af3577dcd50bfae492b166a7804f69e2cc41dc", - "canvas-element": "e2e312fc499c1a81e628b88baba492fb24f4e82d", - "canvas-workpad": "4b05f7829bc805bbaa07eb9fc0d2a2bbbd6bbf39", - "canvas-workpad-template": "d4bb65aa9c4a2b25029d3272fd9c715d8e4247d7", - "cases": "a27d57e75e358349a6ba835152fd4de0033a7bff", - "cases-comments": "d7c4c1d24e97620cd415e27e5eb7d5b5f2c5b461", - "cases-configure": "1afc414f5563a36e4612fa269193d3ed7277c7bd", - "cases-connector-mappings": "4b16d440af966e5d6e0fa33368bfa15d987a4b69", - "cases-telemetry": "16e261e7378a72acd0806f18df92525dd1da4f37", - "cases-user-actions": "f1b0dcfeb58a65e68b35c5e99ddee70e746a06c7", - "config": "95d8ecc452186201a691e72ec154ba65dfc5cb98", - "config-global": "b8f559884931609a349e129c717af73d23e7bc76", - "connector_token": "fa5301aa5a2914795d3b1b82d0a49939444009da", - "core-usage-stats": "f40a213da2c597b0de94e364a4326a5a1baa4ca9", - "csp-rule-template": "d6104585d0b032355c64a7dbf2a834163351cb1c", - "dashboard": "7e37790f802b39c852f905c010e13674e893105a", - "endpoint:user-artifact": "f94c250a52b30d0a2d32635f8b4c5bdabd1e25c0", - "endpoint:user-artifact-manifest": "8c14d49a385d5d1307d956aa743ec78de0b2be88", - "enterprise_search_telemetry": "fafcc8318528d34f721c42d1270787c52565bad5", - "epm-packages": "21e096cf4554abe1652953a6cd2119d68ddc9403", - "epm-packages-assets": "9fd3d6726ac77369249e9a973902c2cd615fc771", - "event_loop_delays_daily": "d2ed39cf669577d90921c176499908b4943fb7bd", - "exception-list": "fe8cc004fd2742177cdb9300f4a67689463faf9c", - "exception-list-agnostic": "49fae8fcd1967cc4be45ba2a2c66c4afbc1e341b", - "file": "f5d393602a4c103eb0ace983e6810f7f3666544b", - "file-upload-usage-collection-telemetry": "8478924cf0057bd90df737155b364f98d05420a5", - "fileShare": "3f88784b041bb8728a7f40763a08981828799a75", - "fleet-fleet-server-host": "643d15dbf56edb96f7ca65f98409d83ac5792fb6", - "fleet-preconfiguration-deletion-record": "7b28f200513c28ae774f1b7d7d7906954e3c6e16", - "fleet-proxy": "2bbcd9e6d5e30ac07b275c8d489af07a0d550df5", - "graph-workspace": "3342f2cd561afdde8f42f5fb284bf550dee8ebb5", - "guided-onboarding-guide-state": "561db8d481b131a2bbf46b1e534d6ce960255135", - "guided-onboarding-plugin-state": "a802ed58e9d0076b9632c59d7943861ba476f99c", - "index-pattern": "48e77ca393c254e93256f11a7cdc0232dd754c08", - "infrastructure-monitoring-log-view": "e2c78c1076bd35e57d7c5fa1b410e5c126d12327", - "infrastructure-ui-source": "7c8dbbc0a608911f1b683a944f4a65383f6153ed", - "ingest-agent-policies": "54d586fdafae83ba326e47d1a3727b0d9c910a12", - "ingest-download-sources": "1e69dabd6db5e320fe08c5bda8f35f29bafc6b54", - "ingest-outputs": "29181ecfdc7723f544325ecef7266bccbc691a54", - "ingest-package-policies": "0335a28af793ce25b4969d2156cfaf1dae2ef812", - "ingest_manager_settings": "6f36714825cc15ea8d7cda06fde7851611a532b4", - "inventory-view": "bc2bd1e7ec7c186159447ab228d269f22bd39056", - "kql-telemetry": "29544cd7d3b767c5399878efae6bd724d24c03fd", - "legacy-url-alias": "7172dfd54f2e0c89fe263fd7095519b2d826a930", - "lens": "236ecd358ed3a4ecfc03ed676d958b64acf0b697", - "lens-ui-telemetry": "df2844565c9e18fed2bdb1f6cc3aadd58cf1e45b", - "map": "00ca6c4cf46ae59f70f1436262eb9f457b45eb14", - "maps-telemetry": "5adbde35bd50ec2b8e9ea5b96d4d9f886e31ecfb", - "metrics-explorer-view": "09e56993352b8ee678e88f71e4410d9aeee72f3a", - "ml-job": "2836da98a81bd220db61c0549e8e28da7a876cb2", - "ml-module": "95055522c8406afa67a554690a43506f6c040744", - "ml-trained-model": "e39dd10b2da827e194ddcaaf3db141ad1daf0201", - "monitoring-telemetry": "af508cea8e22edaa909e462069390650fbbf01b7", - "osquery-manager-usage-metric": "fbe3cbea25a96e2ca522ca436878e0162c94dcc2", - "osquery-pack": "a2d675c7af4208e54a5b28d23d324d7c599a5491", - "osquery-pack-asset": "de8783298eb33a577bf1fa0caacd42121dcfae91", - "osquery-saved-query": "7b213b4b7a3e59350e99c50e8df9948662ed493a", - "query": "4640ef356321500a678869f24117b7091a911cb6", - "rules-settings": "1af4c9abd4b40a154e233c2af4867df7aab7ac24", - "sample-data-telemetry": "8b10336d9efae6f3d5593c4cc89fb4abcdf84e04", - "search": "c48f5ab5d94545780ea98de1bff9e39f17f3606b", - "search-session": "ba383309da68a15be3765977f7a44c84f0ec7964", - "search-telemetry": "beb3fc25488c753f2a6dcff1845d667558712b66", - "security-rule": "e0dfdba5d66139d0300723b2e6672993cd4a11f3", - "security-solution-signals-migration": "e65933e32926e0ca385415bd44fc6da0b6d3d419", - "siem-detection-engine-rule-actions": "d4b5934c0c0e4ccdf509a41000eb0bee07be0c28", - "siem-ui-timeline": "95474f10662802e2f9ea068b45bf69212a2f5842", - "siem-ui-timeline-note": "08c71dc0b8b8018a67e80beb4659a078404c223d", - "siem-ui-timeline-pinned-event": "e2697b38751506c7fce6e8b7207a830483dc4283", - "space": "c4a0acce1bd4b9cce85154f2a350624a53111c59", - "spaces-usage-stats": "922d3235bbf519e3fb3b260e27248b1df8249b79", - "synthetics-monitor": "7c1e5a78fb3b88cc03b441d3bf3714d9967ab214", - "synthetics-param": "53dee203042c238888247084336f2dba777f4a65", - "synthetics-privates-locations": "dd00385f4a27ef062c3e57312eeb3799872fa4af", - "tag": "39413f4578cc2128c9a0fda97d0acd1c8862c47a", - "task": "ef53d0f070bd54957b8fe22fae3b1ff208913f76", - "telemetry": "9142dc5f18123fb6e6a9083db04e5becbfde94fd", - "ui-metric": "2fb66ccdee2d1fad52547964421629c5a485c38f", - "upgrade-assistant-ml-upgrade-operation": "408120d386c04ab25fe64a03937597aa0438c10d", - "upgrade-assistant-reindex-operation": "d9e18b3d9578ecabf09a297296dcf7e36b2481fd", - "upgrade-assistant-telemetry": "a0c80933a9f8b50a2590d19e1d1e5f97d28f7104", - "uptime-dynamic-settings": "9de35c5aeaef915c5bc3c5b1632c33fb0f6f1c55", - "uptime-synthetics-api-key": "df9d8418ddc210d832a069a0fb796f73e63d1082", - "url": "d66c1f26ed23a392be3617a8444d713571f58380", - "usage-counters": "33e2081a52215293041da1100e6602fb553ff446", - "visualization": "f45d06858a5634c9ed0367e11eb44f7f7dde0be2", - "workplace_search_telemetry": "45bd03e12b060c08381b0fd325d939f80d08c914", + "action": "6cfc277ed3211639e37546ac625f4a68f2494215", + "action_task_params": "db2afea7d78e00e725486b791554d0d4e81956ef", + "alert": "f81ad957a7936522482e4539c7a96a963ebdbc3e", + "api_key_pending_invalidation": "16e7bcf8e78764102d7f525542d5b616809a21ee", + "apm-indices": "d19dd7fb51f2d2cbc1f8769481721e0953f9a6d2", + "apm-server-schema": "1d42f17eff9ec6c16d3a9324d9539e2d123d0a9a", + "apm-service-group": "2801c50332e3bf5726c923966c1f19f886e7d389", + "apm-telemetry": "712138c3d5e36d865e67c7fc0171c8a779446e58", + "app_search_telemetry": "9269643c9a5894998b44883f7f7d07a453fd6a95", + "application_usage_daily": "9867f6e1355124f822beab051e0fbac4cc117eac", + "application_usage_totals": "9469a48ab887761a73ee3719b8d401ac627f1eb1", + "canvas-element": "ec334dd45d14291db4d74197e0e42dfe06526868", + "canvas-workpad": "ab0525bd5aa4dbad2d6fdb30e6a51bb475254751", + "canvas-workpad-template": "c54f2a188a1d0bf18a6cebd9d6f28a7337d41bbf", + "cases": "74c00dfb25f4b109894971bd1090fce4a7c99490", + "cases-comments": "371662a8464e623f1f4f55a981cec78bec4a12f5", + "cases-configure": "25099c9e4bbb91e01e334848c605b4a5de5c9fce", + "cases-connector-mappings": "8de3b77dc6ae8ee62cce2b58a222471dfc3dbdad", + "cases-telemetry": "fdeddcef28c75d8c66422475a829e75d37f0b668", + "cases-user-actions": "cfd388d2ca27b3abfd3955dc41428fb229989921", + "config": "97e16b8f5dc10c404fd3b201ef36bc6c3c63dc80", + "config-global": "d9791e8f73edee884630e1cb6e4954ae513ce75e", + "connector_token": "fb05ff5afdcb6e2f20c9c6513ff7a1ab12b66f36", + "core-usage-stats": "b3c04da317c957741ebcdedfea4524049fdc79ff", + "csp-rule-template": "099c229bf97578d9ca72b3a672d397559b84ee0b", + "dashboard": "71e3f8dfcffeb5fbd410dec81ce46f5691763c43", + "endpoint:user-artifact": "a5b154962fb6cdf5d9e7452e58690054c95cc72a", + "endpoint:user-artifact-manifest": "5989989c0f84dd2d02da1eb46b6254e334bd2ccd", + "enterprise_search_telemetry": "4b41830e3b28a16eb92dee0736b44ae6276ced9b", + "epm-packages": "83235af7c95fd9bfb1d70996a5511e05b3fcc9ef", + "epm-packages-assets": "00c8b5e5bf059627ffc9fbde920e1ac75926c5f6", + "event_loop_delays_daily": "ef49e7f15649b551b458c7ea170f3ed17f89abd0", + "exception-list": "38181294f64fc406c15f20d85ca306c8a4feb3c0", + "exception-list-agnostic": "d527ce9d12b134cb163150057b87529043a8ec77", + "file": "d12998f49bc82da596a9e6c8397999930187ec6a", + "file-upload-usage-collection-telemetry": "c6fcb9a7efcf19b2bb66ca6e005bfee8961f6073", + "fileShare": "f07d346acbb724eacf139a0fb781c38dc5280115", + "fleet-fleet-server-host": "67180a54a689111fb46403c3603c9b3a329c698d", + "fleet-preconfiguration-deletion-record": "3afad160748b430427086985a3445fd8697566d5", + "fleet-proxy": "94d0a902a0fd22578d7d3a20873b95d902e25245", + "graph-workspace": "565642a208fe7413b487aea979b5b153e4e74abe", + "guided-onboarding-guide-state": "3257825ae840309cb676d64b347107db7b76f30a", + "guided-onboarding-plugin-state": "2d3ef3069ca8e981cafe8647c0c4a4c20739db10", + "index-pattern": "cd51191712081278c2af83d16552c3438ef83353", + "infrastructure-monitoring-log-view": "8040108f02ef27419cff79077384379709d44bbc", + "infrastructure-ui-source": "2311f7d0abe2a713aa71e30ee24f78828d4acfc1", + "ingest-agent-policies": "e5bb18f8c1d1106139e82fccb93fce01b21fde9b", + "ingest-download-sources": "95a15b6589ef46e75aca8f7e534c493f99cc3ccd", + "ingest-outputs": "f5adeb3f6abc732a6067137e170578dbf1f58c62", + "ingest-package-policies": "98a5f5defe00d606bfaa64f80bd745ff1465df18", + "ingest_manager_settings": "fb75bff08a8de3435b23664b1191f9244a255701", + "inventory-view": "6d47ef0b38166ecbd1c2fc7394599a4500db1ae4", + "kql-telemetry": "23ed96ff02cd69cbfaa22f313cae3a54c434db51", + "legacy-url-alias": "9b8cca3fbb2da46fd12823d3cd38fdf1c9f24bc8", + "lens": "42793535312de4e3e3df16a69cb85f5df3b14f72", + "lens-ui-telemetry": "d6c4e330d170eefc6214dbf77a53de913fa3eebc", + "map": "7902b2e2a550e0b73fd5aa6c4e2ba3a4e6558877", + "metrics-explorer-view": "713dbf1ab5e067791d19170f715eb82cf07ebbcc", + "ml-job": "12e21f1b1adfcc1052dc0b10c7459de875653b94", + "ml-module": "c88b6a012cfb7b7adb7629b1edeab6b83f1fd048", + "ml-trained-model": "49a1685d79990ad05ea1d1d30e28456fe002f3b9", + "monitoring-telemetry": "24f7393dfacb6c7b0f7ad7d242171a1c29feaa48", + "osquery-manager-usage-metric": "23a8f08a98dd0f58ab4e559daa35b06edc40ed4f", + "osquery-pack": "edd84b2c59ef36214ece0676706da8f22175c660", + "osquery-pack-asset": "18e08979d46ee7e5538f54c080aec4d8c58516ca", + "osquery-saved-query": "f5e4e303f65c7607248ea8b2672f1ee30e4fb15e", + "query": "f94de164936da788e9215c0e9b824f8b948ea859", + "rules-settings": "9854495c3b54b16a6625fb250c35e5504da72266", + "sample-data-telemetry": "c38daf1a49ed24f2a4fb091e6e1e833fccf19935", + "search": "01bc42d635e9ea0588741c4c7a2bbd3feb3ac5dc", + "search-session": "5f40f6101fc2ec8ce5210d735ea2e00a87c02886", + "search-telemetry": "ab67ef721f294f28d5e10febbd20653347720188", + "security-rule": "1ff82dfb2298c3caf6888fc3ef15c6bf7a628877", + "security-solution-signals-migration": "c2db409c1857d330beb3d6fd188fa186f920302c", + "siem-detection-engine-rule-actions": "123c130dc38120a470d8db9fed9a4cebd2046445", + "siem-ui-timeline": "e9d6b3a9fd7af6dc502293c21cbdb309409f3996", + "siem-ui-timeline-note": "13c9d4c142f96624a93a623c6d7cba7e1ae9b5a6", + "siem-ui-timeline-pinned-event": "96a43d59b9e2fc11f12255a0cb47ef0a3d83af4c", + "space": "9542afcd6fd71558623c09151e453c5e84b4e5e1", + "spaces-usage-stats": "084bd0f080f94fb5735d7f3cf12f13ec92f36bad", + "synthetics-monitor": "5d0a69fac9d6cfdacfa1962274344aecb596167a", + "synthetics-param": "9776c9b571d35f0d0397e8915e035ea1dc026db7", + "synthetics-privates-locations": "7d032fc788905e32152029ae7ab3d6038c48ae44", + "tag": "87f21f07df9cc37001b15a26e413c18f50d1fbfe", + "task": "ebcc113df12f14bf627dbd335ba78507187b48a3", + "telemetry": "561b329aaed3c15b91aaf2075645be3097247612", + "ui-metric": "410a8ad28e0f44b161c960ff0ce950c712b17c52", + "upgrade-assistant-ml-upgrade-operation": "e20ff1efa3c4757f5e7ff5fb897c557b08524c3a", + "upgrade-assistant-reindex-operation": "c7442ffe34954c117a74bf138e48e4c25095a6cf", + "upgrade-assistant-telemetry": "12bcbfc4e4ce64d2ca7c24f9acccd331a2bd2ab6", + "uptime-dynamic-settings": "9a63ce80904a04be114749e426882dc3ff011137", + "uptime-synthetics-api-key": "599319bedbfa287e8761e1ba49d536417a33fa13", + "url": "2422b3cbe0af71f7a9c2e228e19a972e759c56d4", + "usage-counters": "f478b2668be350f5bdc08d9e1cf6fbce0e079f61", + "visualization": "3aff13fbc2223de74167be6a78537812c8b9d236", + "workplace_search_telemetry": "10e278fe9ae1396bfc36ae574bc387d7e696d43f", } `); }); diff --git a/src/dev/build/args.test.ts b/src/dev/build/args.test.ts index 535a836b0b8000..d2b8652375998f 100644 --- a/src/dev/build/args.test.ts +++ b/src/dev/build/args.test.ts @@ -28,7 +28,6 @@ it('build default and oss dist for current platform, without packages, by defaul Object { "buildOptions": Object { "buildCanvasShareableRuntime": true, - "buildExamplePlugins": false, "createArchives": true, "createDebPackage": false, "createDockerCloud": false, @@ -51,6 +50,8 @@ it('build default and oss dist for current platform, without packages, by defaul "isRelease": false, "targetAllPlatforms": false, "versionQualifier": "", + "withExamplePlugins": false, + "withTestPlugins": false, }, "log": , "showHelp": false, @@ -64,7 +65,6 @@ it('builds packages if --all-platforms is passed', () => { Object { "buildOptions": Object { "buildCanvasShareableRuntime": true, - "buildExamplePlugins": false, "createArchives": true, "createDebPackage": true, "createDockerCloud": true, @@ -87,6 +87,8 @@ it('builds packages if --all-platforms is passed', () => { "isRelease": false, "targetAllPlatforms": true, "versionQualifier": "", + "withExamplePlugins": false, + "withTestPlugins": false, }, "log": , "showHelp": false, @@ -100,7 +102,6 @@ it('limits packages if --rpm passed with --all-platforms', () => { Object { "buildOptions": Object { "buildCanvasShareableRuntime": true, - "buildExamplePlugins": false, "createArchives": true, "createDebPackage": false, "createDockerCloud": false, @@ -123,6 +124,8 @@ it('limits packages if --rpm passed with --all-platforms', () => { "isRelease": false, "targetAllPlatforms": true, "versionQualifier": "", + "withExamplePlugins": false, + "withTestPlugins": false, }, "log": , "showHelp": false, @@ -136,7 +139,6 @@ it('limits packages if --deb passed with --all-platforms', () => { Object { "buildOptions": Object { "buildCanvasShareableRuntime": true, - "buildExamplePlugins": false, "createArchives": true, "createDebPackage": true, "createDockerCloud": false, @@ -159,6 +161,8 @@ it('limits packages if --deb passed with --all-platforms', () => { "isRelease": false, "targetAllPlatforms": true, "versionQualifier": "", + "withExamplePlugins": false, + "withTestPlugins": false, }, "log": , "showHelp": false, @@ -173,7 +177,6 @@ it('limits packages if --docker passed with --all-platforms', () => { Object { "buildOptions": Object { "buildCanvasShareableRuntime": true, - "buildExamplePlugins": false, "createArchives": true, "createDebPackage": false, "createDockerCloud": true, @@ -196,6 +199,8 @@ it('limits packages if --docker passed with --all-platforms', () => { "isRelease": false, "targetAllPlatforms": true, "versionQualifier": "", + "withExamplePlugins": false, + "withTestPlugins": false, }, "log": , "showHelp": false, @@ -217,7 +222,6 @@ it('limits packages if --docker passed with --skip-docker-ubi and --all-platform Object { "buildOptions": Object { "buildCanvasShareableRuntime": true, - "buildExamplePlugins": false, "createArchives": true, "createDebPackage": false, "createDockerCloud": true, @@ -240,6 +244,8 @@ it('limits packages if --docker passed with --skip-docker-ubi and --all-platform "isRelease": false, "targetAllPlatforms": true, "versionQualifier": "", + "withExamplePlugins": false, + "withTestPlugins": false, }, "log": , "showHelp": false, @@ -254,7 +260,6 @@ it('limits packages if --all-platforms passed with --skip-docker-ubuntu', () => Object { "buildOptions": Object { "buildCanvasShareableRuntime": true, - "buildExamplePlugins": false, "createArchives": true, "createDebPackage": true, "createDockerCloud": true, @@ -277,6 +282,8 @@ it('limits packages if --all-platforms passed with --skip-docker-ubuntu', () => "isRelease": false, "targetAllPlatforms": true, "versionQualifier": "", + "withExamplePlugins": false, + "withTestPlugins": false, }, "log": , "showHelp": false, diff --git a/src/dev/build/args.ts b/src/dev/build/args.ts index 0adf9c11609cec..edc4db2ca49c70 100644 --- a/src/dev/build/args.ts +++ b/src/dev/build/args.ts @@ -37,12 +37,13 @@ export function readCliArgs(argv: string[]) { 'verbose', 'debug', 'all-platforms', - 'example-plugins', 'verbose', 'quiet', 'silent', 'debug', 'help', + 'with-test-plugins', + 'with-example-plugins', ], string: ['docker-namespace', 'epr-registry'], alias: { @@ -51,7 +52,6 @@ export function readCliArgs(argv: string[]) { }, default: { debug: true, - 'example-plugins': false, rpm: null, deb: null, 'docker-images': null, @@ -131,7 +131,6 @@ export function readCliArgs(argv: string[]) { createGenericFolders: !Boolean(flags['skip-generic-folders']), createPlatformFolders: !Boolean(flags['skip-platform-folders']), createArchives: !Boolean(flags['skip-archives']), - buildExamplePlugins: Boolean(flags['example-plugins']), createRpmPackage: isOsPackageDesired('rpm'), createDebPackage: isOsPackageDesired('deb'), createDockerUbuntu: @@ -142,6 +141,8 @@ export function readCliArgs(argv: string[]) { targetAllPlatforms: Boolean(flags['all-platforms']), eprRegistry: flags['epr-registry'], buildCanvasShareableRuntime: !Boolean(flags['skip-canvas-shareable-runtime']), + withExamplePlugins: Boolean(flags['with-example-plugins']), + withTestPlugins: Boolean(flags['with-test-plugins']), }; return { diff --git a/src/dev/build/build_distributables.ts b/src/dev/build/build_distributables.ts index 62578a639b7bff..f101f05dcd7c6d 100644 --- a/src/dev/build/build_distributables.ts +++ b/src/dev/build/build_distributables.ts @@ -34,14 +34,15 @@ export interface BuildOptions { createDockerContexts: boolean; versionQualifier: string | undefined; targetAllPlatforms: boolean; - buildExamplePlugins: boolean; + withExamplePlugins: boolean; + withTestPlugins: boolean; eprRegistry: 'production' | 'snapshot'; } export async function buildDistributables(log: ToolingLog, options: BuildOptions): Promise { log.verbose('building distributables with options:', options); - const config: Config = await Config.create(options); + const config = await Config.create(options); const run: (task: Task | GlobalTask) => Promise = createRunner({ config, @@ -69,35 +70,30 @@ export async function buildDistributables(log: ToolingLog, options: BuildOptions await run(Tasks.BuildCanvasShareableRuntime); } - await run(Tasks.CopySource); + await run(Tasks.CopyLegacySource); await run(Tasks.CopyBinScripts); await run(Tasks.CreateEmptyDirsAndFiles); await run(Tasks.CreateReadme); - await run(Tasks.BuildBazelPackages); + await run(Tasks.BuildPackages); await run(Tasks.ReplaceFavicon); await run(Tasks.BuildKibanaPlatformPlugins); - if (options.buildExamplePlugins) { - await run(Tasks.BuildKibanaExamplePlugins); - } await run(Tasks.CreatePackageJson); await run(Tasks.InstallDependencies); await run(Tasks.GeneratePackagesOptimizedAssets); // Run on all source files // **/packages need to be read - // before DeleteBazelPackagesFromBuildRoot + // before DeletePackagesFromBuildRoot await run(Tasks.CreateNoticeFile); await run(Tasks.CreateXPackNoticeFile); - await run(Tasks.DeleteBazelPackagesFromBuildRoot); + await run(Tasks.DeletePackagesFromBuildRoot); await run(Tasks.UpdateLicenseFile); await run(Tasks.RemovePackageJsonDeps); await run(Tasks.CleanPackageManagerRelatedFiles); await run(Tasks.CleanExtraFilesFromModules); await run(Tasks.CleanEmptyFolders); - await run(Tasks.FleetDownloadElasticGpgKey); - await run(Tasks.BundleFleetPackages); await run(Tasks.FetchAgentVersionsList); } diff --git a/src/dev/build/cli.ts b/src/dev/build/cli.ts index b7c3c32d496fbd..09fd0811367860 100644 --- a/src/dev/build/cli.ts +++ b/src/dev/build/cli.ts @@ -22,7 +22,7 @@ const { showHelp, unknownFlags, log, buildOptions } = readCliArgs(process.argv); if (unknownFlags.length) { const pluralized = unknownFlags.length > 1 ? 'flags' : 'flag'; - log.error(`Unknown ${pluralized}: ${unknownFlags.join(', ')}}`); + log.error(`Unknown ${pluralized}: ${unknownFlags.join(', ')}`); } if (showHelp) { @@ -51,6 +51,8 @@ if (showHelp) { --verbose,-v {dim Turn on verbose logging} --no-debug {dim Turn off debug logging} --epr-registry {dim Specify the EPR registry to use for Fleet packages, 'production' or 'snapshot'} + --with-test-plugins {dim Pass to include test plugins in the build output} + --with-example-plugins {dim Pass to include example plugins in the build output} `) + '\n' ); process.exit(1); diff --git a/src/dev/build/lib/build.test.ts b/src/dev/build/lib/build.test.ts index 25248a721bd11c..268e32b2c477f8 100644 --- a/src/dev/build/lib/build.test.ts +++ b/src/dev/build/lib/build.test.ts @@ -38,7 +38,9 @@ const config = new Config( '', '', false, - true + true, + true, + {} ); const linuxPlatform = config.getPlatform('linux', 'x64'); diff --git a/src/dev/build/lib/config.test.ts b/src/dev/build/lib/config.test.ts index 7c966b7c3b751a..e46a1984ceac02 100644 --- a/src/dev/build/lib/config.test.ts +++ b/src/dev/build/lib/config.test.ts @@ -35,6 +35,9 @@ const setup = async ({ targetAllPlatforms = true }: { targetAllPlatforms?: boole dockerPush: false, dockerTag: '', dockerTagQualifier: '', + downloadFreshNode: true, + withExamplePlugins: false, + withTestPlugins: true, }); }; diff --git a/src/dev/build/lib/config.ts b/src/dev/build/lib/config.ts index 2a28b71914e437..42e772646fb363 100644 --- a/src/dev/build/lib/config.ts +++ b/src/dev/build/lib/config.ts @@ -6,11 +6,17 @@ * Side Public License, v 1. */ -import { resolve, relative } from 'path'; +import Path from 'path'; import os from 'os'; -import { getPackages, type Package } from '@kbn/repo-packages'; import { REPO_ROOT, kibanaPackageJson, KibanaPackageJson } from '@kbn/repo-info'; +import { + Package, + getPackages, + PluginSelector, + PluginPackage, + getPluginPackagesFilter, +} from '@kbn/repo-packages'; import { getVersionInfo, VersionInfo } from './version_info'; import { PlatformName, PlatformArchitecture, ALL_PLATFORMS } from './platform'; @@ -25,45 +31,45 @@ interface Options { dockerTag: string | null; dockerTagQualifier: string | null; dockerPush: boolean; + withExamplePlugins: boolean; + withTestPlugins: boolean; + downloadFreshNode: boolean; } export class Config { - static async create({ - isRelease, - targetAllPlatforms, - versionQualifier, - dockerContextUseLocalArtifact, - dockerCrossCompile, - dockerTag, - dockerTagQualifier, - dockerPush, - dockerNamespace, - }: Options) { + static async create(opts: Options) { const nodeVersion = kibanaPackageJson.engines?.node; if (!nodeVersion) { throw new Error('missing node version in package.json'); } return new Config( - targetAllPlatforms, + opts.targetAllPlatforms, kibanaPackageJson, nodeVersion, REPO_ROOT, await getVersionInfo({ - isRelease, - versionQualifier, + isRelease: opts.isRelease, + versionQualifier: opts.versionQualifier, pkg: kibanaPackageJson, }), - dockerContextUseLocalArtifact, - dockerCrossCompile, - dockerNamespace, - dockerTag, - dockerTagQualifier, - dockerPush, - isRelease + opts.dockerContextUseLocalArtifact, + opts.dockerCrossCompile, + opts.dockerNamespace, + opts.dockerTag, + opts.dockerTagQualifier, + opts.dockerPush, + opts.isRelease, + opts.downloadFreshNode, + { + examples: opts.withExamplePlugins, + testPlugins: opts.withTestPlugins, + } ); } + private readonly pluginFilter: (pkg: Package) => pkg is PluginPackage; + constructor( private readonly targetAllPlatforms: boolean, private readonly pkg: KibanaPackageJson, @@ -76,8 +82,12 @@ export class Config { private readonly dockerTag: string | null, private readonly dockerTagQualifier: string | null, private readonly dockerPush: boolean, - public readonly isRelease: boolean - ) {} + public readonly downloadFreshNode: boolean, + public readonly isRelease: boolean, + public readonly pluginSelector: PluginSelector + ) { + this.pluginFilter = getPluginPackagesFilter(this.pluginSelector); + } /** * Get Kibana's parsed package.json file @@ -139,14 +149,14 @@ export class Config { * Convert an absolute path to a relative path, based from the repo */ getRepoRelativePath(absolutePath: string) { - return relative(this.repoRoot, absolutePath); + return Path.relative(this.repoRoot, absolutePath); } /** * Resolve a set of relative paths based from the directory of the Kibana repo */ resolveFromRepo(...subPaths: string[]) { - return resolve(this.repoRoot, ...subPaths); + return Path.resolve(this.repoRoot, ...subPaths); } /** @@ -222,19 +232,18 @@ export class Config { * Resolve a set of paths based from the target directory for this build. */ resolveFromTarget(...subPaths: string[]) { - return resolve(this.repoRoot, 'target', ...subPaths); + return Path.resolve(this.repoRoot, 'target', ...subPaths); } - private _prodPackages: Package[] | undefined; - async getProductionPackages() { - if (!this._prodPackages) { - this._prodPackages = getPackages(REPO_ROOT).filter((pkg) => !pkg.isDevOnly); - } - - return this._prodPackages; + getDistPackagesFromRepo() { + return getPackages(this.repoRoot).filter( + (p) => + (this.pluginSelector.testPlugins || !p.isDevOnly()) && + (!p.isPlugin() || this.pluginFilter(p)) + ); } - async getPkgIdsInNodeModules() { - return (await this.getProductionPackages()).map((p) => p.manifest.id); + getDistPluginsFromRepo() { + return getPackages(this.repoRoot).filter(this.pluginFilter); } } diff --git a/src/dev/build/lib/fs.ts b/src/dev/build/lib/fs.ts index 3bf035e0fc04a3..f3c183e389970f 100644 --- a/src/dev/build/lib/fs.ts +++ b/src/dev/build/lib/fs.ts @@ -8,6 +8,7 @@ import fs from 'fs'; import Fsp from 'fs/promises'; +import * as Rx from 'rxjs'; import { createHash } from 'crypto'; import { pipeline } from 'stream/promises'; import { resolve, dirname, isAbsolute, sep } from 'path'; @@ -18,7 +19,6 @@ import archiver from 'archiver'; import globby from 'globby'; import cpy from 'cpy'; import del from 'del'; -import deleteEmpty from 'delete-empty'; import tar, { ExtractOptions } from 'tar'; import { ToolingLog } from '@kbn/tooling-log'; @@ -30,6 +30,13 @@ export function assertAbsolute(path: string) { } } +export const rmdir$ = Rx.bindNodeCallback(fs.rmdir); +export const fsReadDir$ = Rx.bindNodeCallback( + (path: string, cb: (err: Error | null, ents: fs.Dirent[]) => void) => { + fs.readdir(path, { withFileTypes: true }, cb); + } +); + export function isFileAccessible(path: string) { assertAbsolute(path); @@ -101,28 +108,34 @@ export async function deleteEmptyFolders( throw new TypeError('Expected root folder to be a string path'); } + assertAbsolute(rootFolderPath); log.debug( 'Deleting all empty folders and their children recursively starting on ', rootFolderPath ); - assertAbsolute(rootFolderPath.startsWith('!') ? rootFolderPath.slice(1) : rootFolderPath); - // Delete empty is used to gather all the empty folders and - // then we use del to actually delete them - const emptyFoldersList = (await deleteEmpty(rootFolderPath, { - // @ts-expect-error DT package has incorrect types https://github.com/jonschlinkert/delete-empty/blob/6ae34547663e6845c3c98b184c606fa90ef79c0a/index.js#L160 - dryRun: true, - })) as unknown as string[]; // DT package has incorrect types + const handleDir$ = (path: string): Rx.Observable => { + if (foldersToKeep.includes(path)) { + return Rx.EMPTY; + } - const foldersToDelete = emptyFoldersList.filter((folderToDelete) => { - return !foldersToKeep.some((folderToKeep) => folderToDelete.includes(folderToKeep)); - }); - const deletedEmptyFolders = await del(foldersToDelete, { - concurrency: 4, - }); + return fsReadDir$(path).pipe( + Rx.mergeMap((stats) => { + if (stats.length === 0) { + return rmdir$(path, { maxRetries: 1 }).pipe(Rx.map(() => path)); + } - log.debug('Deleted %d empty folders', deletedEmptyFolders.length); - log.verbose('Deleted:', longInspect(deletedEmptyFolders)); + return Rx.from(stats).pipe( + Rx.mergeMap((s) => (s.isDirectory() ? handleDir$(resolve(path, s.name)) : [])) + ); + }) + ); + }; + + const deleted = await Rx.lastValueFrom(handleDir$(rootFolderPath).pipe(Rx.toArray())); + + log.debug('Deleted %d empty folders', deleted.length); + log.verbose('Deleted:', longInspect(deleted)); } interface CopyOptions { @@ -178,16 +191,8 @@ export async function copyAll( export async function getFileHash(path: string, algo: string) { assertAbsolute(path); - const hash = createHash(algo); - const readStream = fs.createReadStream(path); - await new Promise((res, rej) => { - readStream - .on('data', (chunk) => hash.update(chunk)) - .on('error', rej) - .on('end', res); - }); - + await pipeline(fs.createReadStream(path), hash); return hash.digest('hex'); } diff --git a/src/dev/build/lib/fs_records.ts b/src/dev/build/lib/fs_records.ts index f2e2ff9c7929ec..f6fbcbc3bda04f 100644 --- a/src/dev/build/lib/fs_records.ts +++ b/src/dev/build/lib/fs_records.ts @@ -10,16 +10,26 @@ import Path from 'path'; export class SomePath { static fromAbs(path: string) { - return new SomePath(Path.dirname(path), Path.basename(path)); + return new SomePath(Path.dirname(path), Path.basename(path), path); } - constructor( + private constructor( /** The directory of the item at this path */ public readonly dir: string, /** The name of the item at this path */ - public readonly name: string + public readonly name: string, + /** The filesystem path that contains this path, "rel" will be relative to this path */ + public readonly cwd: string = '/' ) {} + private _rel: string | null = null; + public get rel() { + if (this._rel === null) { + this._rel = Path.relative(this.cwd, this.abs); + } + return this._rel; + } + private _abs: string | null = null; /** The absolute path of the file */ public get abs() { @@ -40,18 +50,28 @@ export class SomePath { return this._ext; } + private _tags: readonly string[] | null = null; + /** The extension of the filename, starts with a . like the Path.extname API */ + public get tags() { + if (this._tags === null) { + this._tags = this.name.split('.').slice(0, -1); + } + + return this._tags; + } + /** return a file path with the file name changed to `name` */ withName(name: string) { - return new SomePath(this.dir, name); + return new SomePath(this.dir, name, this.cwd); } /** return a file path with the file extension changed to `extension` */ withExt(extension: string) { - return new SomePath(this.dir, Path.basename(this.name, this.ext) + extension); + return new SomePath(this.dir, Path.basename(this.name, this.ext) + extension, this.cwd); } child(childName: string) { - return new SomePath(this.abs, childName); + return new SomePath(this.abs, childName, this.cwd); } } diff --git a/src/dev/build/lib/runner.test.ts b/src/dev/build/lib/runner.test.ts index fc29e3ca33bdd0..a8e62219bd414f 100644 --- a/src/dev/build/lib/runner.test.ts +++ b/src/dev/build/lib/runner.test.ts @@ -52,6 +52,9 @@ const setup = async () => { dockerPush: false, dockerTag: '', dockerTagQualifier: '', + downloadFreshNode: true, + withExamplePlugins: false, + withTestPlugins: true, }); const run = createRunner({ diff --git a/src/dev/build/lib/runner.ts b/src/dev/build/lib/runner.ts index 416f6ae584b3f1..30d3e68c165266 100644 --- a/src/dev/build/lib/runner.ts +++ b/src/dev/build/lib/runner.ts @@ -37,10 +37,10 @@ export function createRunner({ config, log }: Options) { await log.indent(4, async () => { const start = Date.now(); const time = () => { - const sec = (Date.now() - start) / 1000; - const minStr = sec > 60 ? `${Math.floor(sec / 60)} min ` : ''; - const secStr = `${Math.round(sec % 60)} sec`; - return chalk.dim(`${minStr}${secStr}`); + const secs = Math.round((Date.now() - start) / 1000); + const m = Math.floor(secs / 60); + const s = secs - m * 60; + return chalk.dim(`${m ? `${m} min ` : ''}${s} sec`); }; try { diff --git a/src/dev/build/lib/scan_copy.ts b/src/dev/build/lib/scan_copy.ts index 28ab1649ad2f2e..836e9118b4eb86 100644 --- a/src/dev/build/lib/scan_copy.ts +++ b/src/dev/build/lib/scan_copy.ts @@ -10,15 +10,9 @@ import Fs from 'fs'; import Fsp from 'fs/promises'; import * as Rx from 'rxjs'; -import { assertAbsolute, mkdirp } from './fs'; +import { assertAbsolute, mkdirp, fsReadDir$ } from './fs'; import { type DirRecord, type FileRecord, type Record, SomePath } from './fs_records'; -const fsReadDir$ = Rx.bindNodeCallback( - (path: string, cb: (err: Error | null, ents: Fs.Dirent[]) => void) => { - Fs.readdir(path, { withFileTypes: true }, cb); - } -); - interface Options { /** * directory to copy from @@ -29,7 +23,9 @@ interface Options { */ destination: string; /** - * function that is called with each Record + * function that is called with each Record. If a falsy value is returned the + * record will be dropped. If it is a directory none of its children will be + * considered. */ filter?: (record: Readonly) => boolean; /** @@ -41,7 +37,7 @@ interface Options { */ time?: Date; /** - * + * function which can replace the records of files as they are copied */ map?: (record: Readonly) => Promise; } @@ -121,6 +117,6 @@ export async function scanCopy(options: Options) { type: 'dir', source: SomePath.fromAbs(source), dest: SomePath.fromAbs(destination), - }) + }).pipe(Rx.defaultIfEmpty(undefined)) ); } diff --git a/src/dev/build/lib/scan_delete.test.ts b/src/dev/build/lib/scan_delete.test.ts index 6baebcafc39967..d3f471ec86052d 100644 --- a/src/dev/build/lib/scan_delete.test.ts +++ b/src/dev/build/lib/scan_delete.test.ts @@ -33,52 +33,28 @@ afterAll(async () => { it('requires absolute paths', async () => { await expect( - scanDelete({ - directory: relative(process.cwd(), TMP), - regularExpressions: [], - }) - ).rejects.toMatchInlineSnapshot( - `[TypeError: Please use absolute paths to keep things explicit. You probably want to use \`build.resolvePath()\` or \`config.resolveFromRepo()\`.]` - ); - - await expect( - scanDelete({ - directory: TMP, - regularExpressions: [], - excludePaths: ['foo'], + scanDelete(relative(process.cwd(), TMP), { + match: [], }) ).rejects.toMatchInlineSnapshot( `[TypeError: Please use absolute paths to keep things explicit. You probably want to use \`build.resolvePath()\` or \`config.resolveFromRepo()\`.]` ); }); -it('deletes files/folders matching regular expression', async () => { - await scanDelete({ - directory: TMP, - regularExpressions: [/^.*[\/\\](bar|c)([\/\\]|$)/], +it('only deletes files/folders matching patterns', async () => { + await scanDelete(TMP, { + match: ['**/{bar,c}/**'], }); expect(readdirSync(resolve(TMP, 'foo'))).toEqual([]); expect(readdirSync(resolve(TMP, 'a'))).toEqual(['b']); expect(readdirSync(resolve(TMP, 'a/b'))).toEqual([]); }); -it('exludes directories mentioned in excludePaths', async () => { - await scanDelete({ - directory: TMP, - regularExpressions: [/^.*[\/\\](bar|c)([\/\\]|$)/], - excludePaths: [resolve(TMP, 'foo')], +it('exludes items matched by negative patterns', async () => { + await scanDelete(TMP, { + match: ['**/{bar,c}/**', '!foo/**'], }); expect(readdirSync(resolve(TMP, 'foo'))).toEqual(['bar']); expect(readdirSync(resolve(TMP, 'a'))).toEqual(['b']); expect(readdirSync(resolve(TMP, 'a/b'))).toEqual([]); }); - -it('exludes files mentioned in excludePaths', async () => { - await scanDelete({ - directory: TMP, - regularExpressions: [/box/], - excludePaths: [resolve(TMP, 'foo/bar/box')], - }); - - expect(readdirSync(resolve(TMP, 'foo/bar'))).toEqual(['baz', 'box']); -}); diff --git a/src/dev/build/lib/scan_delete.ts b/src/dev/build/lib/scan_delete.ts index cc193f2cffd00a..24f37ffc61dcb8 100644 --- a/src/dev/build/lib/scan_delete.ts +++ b/src/dev/build/lib/scan_delete.ts @@ -6,70 +6,69 @@ * Side Public License, v 1. */ -import Fs from 'fs'; +import Path from 'path'; +import Fsp from 'fs/promises'; -import del from 'del'; -import { join } from 'path'; import * as Rx from 'rxjs'; -import { count, map, mergeAll, mergeMap } from 'rxjs/operators'; -// @ts-ignore -import { assertAbsolute } from './fs'; - -const getStat$ = Rx.bindNodeCallback<[Fs.PathLike], [Fs.Stats]>(Fs.stat); -const getReadDir$ = Rx.bindNodeCallback<[string], [string[]]>(Fs.readdir); +import { makeMatcher, MatchOptions } from '@kbn/picomatcher'; +import { assertAbsolute, fsReadDir$ } from './fs'; interface Options { - directory: string; - regularExpressions: RegExp[]; - concurrency?: 20; - excludePaths?: string[]; + /** + * array of micromatch patterns, all relative paths within `directory` + * will be checked against these patterns. If any matches (and none of + * the negative patterns match) then that directory/file will be deleted + * recursively. + */ + match: string[]; + + /** + * Options for customizing how match patterns are applied (see micromatch docs) + */ + matchOptions?: MatchOptions; + + /** + * optional concurrency to run deletes, defaults to 20 + */ + concurrency?: number; } /** * Scan the files in a directory and delete the directories/files that * are matched by an array of regular expressions. * - * @param options.directory the directory to scan, all files including dot files will be checked - * @param options.regularExpressions an array of regular expressions, if any matches the file/directory will be deleted - * @param options.concurrency optional concurrency to run deletes, defaults to 20 + * @param directory the directory to scan and find files/folders that should be deleted */ -export async function scanDelete(options: Options) { - const { directory, regularExpressions, concurrency = 20, excludePaths } = options; - +export async function scanDelete(directory: string, options: Options) { assertAbsolute(directory); - (excludePaths || []).forEach((excluded) => assertAbsolute(excluded)); - - // get an observable of absolute paths within a directory - const getChildPath$ = (path: string) => - getReadDir$(path).pipe( - mergeAll(), - map((name: string) => join(path, name)) - ); + const matcher = makeMatcher(options.match, options.matchOptions); // get an observable of all paths to be deleted, by starting with the arg - // and recursively iterating through all children, unless a child matches - // one of the supplied regular expressions - const getPathsToDelete$ = (path: string): Rx.Observable => { - if (excludePaths && excludePaths.includes(path)) { - return Rx.EMPTY; - } - - if (regularExpressions.some((re) => re.test(path))) { - return Rx.of(path); - } + // and recursively iterating through all children, once a child matches + // is will be recursively deleted and we will no longer iterate from down + // that path + const getPathsToDelete$ = (path: string): Rx.Observable => + fsReadDir$(path).pipe( + Rx.mergeAll(), + Rx.mergeMap((ent) => { + const abs = Path.resolve(path, ent.name); + const rel = Path.relative(directory, abs); + if (matcher(rel)) { + return Rx.of(abs); + } - return getStat$(path).pipe( - mergeMap((stat) => (stat.isDirectory() ? getChildPath$(path) : Rx.EMPTY)), - mergeMap(getPathsToDelete$) + return ent.isDirectory() ? getPathsToDelete$(abs) : Rx.EMPTY; + }) ); - }; - return await Rx.of(directory) - .pipe( - mergeMap(getPathsToDelete$), - mergeMap(async (path) => await del(path), concurrency), - count() + return await Rx.lastValueFrom( + getPathsToDelete$(directory).pipe( + Rx.mergeMap( + async (path) => await Fsp.rm(path, { recursive: true, maxRetries: 1 }), + options.concurrency + ), + Rx.count() ) - .toPromise(); + ); } diff --git a/src/dev/build/tasks/assert_path_length.ts b/src/dev/build/tasks/assert_path_length.ts index 10be4503bf7951..78d846985eee8e 100644 --- a/src/dev/build/tasks/assert_path_length.ts +++ b/src/dev/build/tasks/assert_path_length.ts @@ -8,7 +8,7 @@ import { relative } from 'path'; -import { tap, filter, map, toArray } from 'rxjs/operators'; +import * as Rx from 'rxjs'; import { scan$, Task } from '../lib'; @@ -28,24 +28,21 @@ export const AssertPathLength: Task = { return; } - await scan$(buildRoot) - .pipe( - map((path) => relative(buildRoot, path)), - filter((relativePath) => relativePath.length > 200), - toArray(), - tap((tooLongPaths) => { - if (!tooLongPaths.length) { - return; - } - - throw new Error( - 'Windows has a path limit of 260 characters so we limit the length of paths in Kibana to 200 characters ' + - ' and the following files exceed this limit:' + - '\n - ' + - tooLongPaths.join('\n - ') - ); - }) + const tooLong = await Rx.lastValueFrom( + scan$(buildRoot).pipe( + Rx.map((path) => relative(buildRoot, path)), + Rx.filter((relativePath) => relativePath.length > 200), + Rx.toArray() ) - .toPromise(); + ); + + if (tooLong.length) { + throw new Error( + 'Windows has a path limit of 260 characters so we limit the length of paths in Kibana to 200 characters ' + + ' and the following files exceed this limit:' + + '\n - ' + + tooLong.join('\n - ') + ); + } }, }; diff --git a/src/dev/build/tasks/build_kibana_example_plugins.ts b/src/dev/build/tasks/build_kibana_example_plugins.ts deleted file mode 100644 index 0f00acbb58bae2..00000000000000 --- a/src/dev/build/tasks/build_kibana_example_plugins.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; -import Fs from 'fs'; -import { REPO_ROOT } from '@kbn/repo-info'; -import { exec, Task } from '../lib'; - -export const BuildKibanaExamplePlugins: Task = { - description: 'Building distributable versions of Kibana example plugins', - async run(config, log, build) { - const pluginsDir = build.resolvePath('plugins'); - const args = [ - Path.resolve(REPO_ROOT, 'scripts/plugin_helpers'), - 'build', - '--skip-archive', - `--kibana-version=${config.getBuildVersion()}`, - ]; - - const getExampleFolders = (dir: string) => { - return Fs.readdirSync(dir, { withFileTypes: true }) - .filter((f) => f.isDirectory()) - .map((f) => Path.resolve(dir, f.name)); - }; - - // https://github.com/elastic/kibana/issues/127338 - const skipExamples = ['alerting_example']; - - const folders = [ - ...getExampleFolders(Path.resolve(REPO_ROOT, 'examples')), - ...getExampleFolders(Path.resolve(REPO_ROOT, 'x-pack/examples')), - ].filter((p) => !skipExamples.includes(Path.basename(p))); - - for (const examplePlugin of folders) { - try { - Fs.accessSync(Path.join(examplePlugin, 'kibana.json'), Fs.constants.R_OK); - log.info(`Building ${examplePlugin}`); - await exec(log, 'node', args, { - cwd: examplePlugin, - level: 'info', - }); - log.info('Copying build to distribution'); - const pluginBuild = Path.resolve(examplePlugin, 'build', 'kibana'); - Fs.cpSync(pluginBuild, pluginsDir, { recursive: true }); - } catch (e) { - log.info(`Skipping ${examplePlugin}, no kibana.json`); - } - } - }, -}; diff --git a/src/dev/build/tasks/build_kibana_platform_plugins.ts b/src/dev/build/tasks/build_kibana_platform_plugins.ts index 44fb14800a058b..0177c59334969d 100644 --- a/src/dev/build/tasks/build_kibana_platform_plugins.ts +++ b/src/dev/build/tasks/build_kibana_platform_plugins.ts @@ -27,12 +27,13 @@ export const BuildKibanaPlatformPlugins: Task = { repoRoot: REPO_ROOT, outputRoot: build.resolvePath(), cache: false, - examples: false, watch: false, dist: true, includeCoreBundle: true, inspectWorkers: false, limitsPath: Path.resolve(REPO_ROOT, 'packages/kbn-optimizer/limits.yml'), + examples: buildConfig.pluginSelector.examples, + testPlugins: buildConfig.pluginSelector.testPlugins, }); await lastValueFrom( @@ -42,6 +43,10 @@ export const BuildKibanaPlatformPlugins: Task = { const combinedMetrics: CiStatsMetric[] = []; const metricFilePaths: string[] = []; for (const bundle of config.bundles) { + if (bundle.ignoreMetrics) { + continue; + } + const path = Path.resolve(bundle.outputDir, 'metrics.json'); const metrics: CiStatsMetric[] = JSON.parse(await read(path)); combinedMetrics.push(...metrics); diff --git a/src/dev/build/tasks/build_packages_task.ts b/src/dev/build/tasks/build_packages_task.ts index ba1965cf36c368..5db703481b7df0 100644 --- a/src/dev/build/tasks/build_packages_task.ts +++ b/src/dev/build/tasks/build_packages_task.ts @@ -13,141 +13,301 @@ import { runBazel } from '@kbn/bazel-runner'; import * as Peggy from '@kbn/peggy'; import { asyncForEach } from '@kbn/std'; import { withFastAsyncTransform, TransformConfig } from '@kbn/babel-transform'; +import { makeMatcher } from '@kbn/picomatcher'; +import { PackageFileMap } from '@kbn/repo-file-maps'; +import { getRepoFiles } from '@kbn/get-repo-files'; import { Task, scanCopy, write, deleteAll } from '../lib'; import type { Record } from '../lib/fs_records'; +import { fleetBuildTasks } from './fleet'; const distPerms = (rec: Record) => (rec.type === 'file' ? 0o644 : 0o755); -export const BuildBazelPackages: Task = { +/** + * exclude files from packages by their whole name + */ +function excludeFileByName(name: string) { + return ( + name === 'package.json' || + name === 'tsconfig.json' || + name === '.gitignore' || + name === 'webpack.config.js' || + name.endsWith('.d.ts') + ); +} + +/** + * exclude files from packages by their "tags" or basename without the extension + * (We split the filename on "." and check every segment except for the last one + */ +function excludeFileByTags(tags: readonly string[]) { + return tags.some( + (t) => + t === 'mock' || + t === 'mocks' || + t === 'test' || + t === 'tests' || + t === 'story' || + t === 'stories' || + t === 'jest' || + t === 'README' || + t === 'readme' || + t === 'test_setup' || + t === 'jest_setup' + ); +} + +/** + * exclude directories from packages by their relative path (relative to the package root) + */ +function excludeDirsByRel(rel: string) { + return rel === 'scripts'; +} + +/** + * exclude directories from packages by their names, any directory in the package with + * these names will be excluded + */ +function excludeDirsByName(name: string) { + return ( + name === '__fixtures__' || + name === '__jest__' || + name === '__mocks__' || + name === '__snapshots__' || + name === '__tests__' || + name === 'cypress' || + name === 'dev_docs' || + name === 'docs' || + name === 'e2e' || + name === 'fixtures' || + name === 'ftr_e2e' || + name === 'integration_tests' || + name === 'manual_tests' || + name === 'mock_responses' || + name === 'mocks' || + name === 'mocks' || + name === '.storybook' || + name === 'storybook' || + name === 'target' || + name === 'test_data' || + name === 'test_fixtures' || + name === 'test_helpers' || + name === 'test_resources' || + name === 'test' || + name === 'tests' + ); +} + +export const BuildPackages: Task = { description: 'Building distributable versions of Bazel packages', async run(config, log, build) { - const packages = await config.getProductionPackages(); - const pkgIdsInNodeModules = await config.getPkgIdsInNodeModules(); + const packages = config.getDistPackagesFromRepo(); + const pkgFileMap = new PackageFileMap(packages, await getRepoFiles()); log.info(`Building Bazel artifacts which are necessary for the build`); - await runBazel([ - 'build', - '//packages/kbn-ui-shared-deps-npm:shared_built_assets', - '//packages/kbn-ui-shared-deps-src:shared_built_assets', - '//packages/kbn-monaco:target_workers', - '--show_result=1', - '--define=dist=true', - ]); + await runBazel( + [ + 'build', + '//packages/kbn-ui-shared-deps-npm:shared_built_assets', + '//packages/kbn-ui-shared-deps-src:shared_built_assets', + '//packages/kbn-monaco:target_workers', + '--show_result=1', + '--define=dist=true', + ], + { + logPrefix: ' │ ', + } + ); const transformConfig: TransformConfig = { disableSourceMaps: true, - ignoredPkgIds: pkgIdsInNodeModules, }; await withFastAsyncTransform(transformConfig, async (transform) => { await asyncForEach(packages, async (pkg) => { + const allPaths = new Set(Array.from(pkgFileMap.getFiles(pkg), (p) => p.abs)); const pkgDistPath = build.resolvePath(pkg.normalizedRepoRelativeDir); const peggyConfigOutputPaths = new Set(); const pkgSrcPath = config.resolveFromRepo(pkg.normalizedRepoRelativeDir); - // copy the built npm_module target dir into the build, package.json is updated to copy - // the sources we actually end up using into the node_modules directory when we run - // yarn install - await scanCopy({ - source: pkgSrcPath, - destination: pkgDistPath, - permissions: distPerms, - filter: (rec) => !rec.source.name.endsWith('.d.ts'), - async map(rec) { - switch (Path.extname(rec.source.name)) { - case '.peggy': { - const result = await Peggy.getJsSource({ - path: rec.source.abs, - format: 'commonjs', - optimize: 'speed', - }); - - if (result.config) { - // if there was a config file for this peggy grammar, capture its output path and - // delete it after the copy is complete - peggyConfigOutputPaths.add( - Path.resolve(pkgDistPath, Path.relative(pkgSrcPath, result.config.path)) - ); + const matchExtraExcludes = pkg.manifest.build?.extraExcludes + ? makeMatcher(pkg.manifest.build.extraExcludes) + : false; + const matchNoParse = pkg.manifest.build?.noParse + ? makeMatcher(pkg.manifest.build.noParse) + : false; + + log.verbose(`starting copy of ${pkg.manifest.id}`); + + try { + // copy the built npm_module target dir into the build, package.json is updated to copy + // the sources we actually end up using into the node_modules directory when we run + // yarn install + await scanCopy({ + source: pkgSrcPath, + destination: pkgDistPath, + permissions: distPerms, + filter: (rec) => { + // exclude any file which isn't checked into the repo + if (rec.type === 'file' && !allPaths.has(rec.source.abs)) { + return false; + } + + if (rec.type === 'dir') { + if (excludeDirsByName(rec.source.name) || excludeDirsByRel(rec.source.rel)) { + return false; + } + } else { + if (!pkg.isPlugin && rec.source.name === 'kibana.jsonc') { + return false; } - return { - ...rec, - dest: rec.dest.withName(rec.dest.name + '.js'), - content: result.source, - }; + if (excludeFileByName(rec.source.name) || excludeFileByTags(rec.source.tags)) { + return false; + } } - case '.ts': - case '.tsx': - case '.js': - case '.mjs': - case '.jsx': { - const source = await Fsp.readFile(rec.source.abs, 'utf8'); - const result = await transform(rec.source.abs, source); - return { - ...rec, - dest: rec.dest.withExt('.js'), - content: result.code, - }; + // ignore files selected by the package's "build.extraExcludes" config + if (matchExtraExcludes && matchExtraExcludes(rec.source.rel)) { + return false; } - } - }, - }); - - if ( - pkg.manifest.id === '@kbn/ui-shared-deps-src' || - pkg.manifest.id === '@kbn/ui-shared-deps-npm' - ) { - await scanCopy({ - source: config.resolveFromRepo( - 'bazel-bin', - pkg.normalizedRepoRelativeDir, - 'shared_built_assets' - ), - destination: build.resolvePath(pkg.normalizedRepoRelativeDir, 'shared_built_assets'), - permissions: distPerms, - filter: (rec) => rec.source.ext !== '.map', - }); - } - if (pkg.manifest.id === '@kbn/monaco') { - await scanCopy({ - source: config.resolveFromRepo( - 'bazel-bin', - pkg.normalizedRepoRelativeDir, - 'target_workers' - ), - destination: build.resolvePath(pkg.normalizedRepoRelativeDir, 'target_workers'), - permissions: distPerms, - filter: (rec) => rec.source.ext !== '.map', - }); - } + return true; + }, + async map(rec) { + // never transpile files which are selected by the package's "build.noParse" config + if (matchNoParse && matchNoParse(rec.source.rel)) { + return; + } - // cleanup any peggy config files - if (peggyConfigOutputPaths.size) { - await deleteAll(Array.from(peggyConfigOutputPaths), log); - } + switch (Path.extname(rec.source.name)) { + case '.peggy': { + const result = await Peggy.getJsSource({ + path: rec.source.abs, + format: 'commonjs', + optimize: 'speed', + }); + + if (result.config) { + // if there was a config file for this peggy grammar, capture its output path and + // delete it after the copy is complete + peggyConfigOutputPaths.add( + Path.resolve(pkgDistPath, Path.relative(pkgSrcPath, result.config.path)) + ); + } - await write( - Path.resolve(pkgDistPath, 'kibana.jsonc'), - JSON.stringify(pkg.manifest, null, 2) - ); - await write( - Path.resolve(pkgDistPath, 'package.json'), - JSON.stringify( - { - ...pkg.pkg, - name: pkg.manifest.id, - version: config.getBuildVersion(), - private: undefined, + return { + ...rec, + dest: rec.dest.withName(rec.dest.name + '.js'), + content: result.source, + }; + } + + case '.ts': + case '.tsx': + case '.js': + case '.mjs': + case '.jsx': { + const source = await Fsp.readFile(rec.source.abs, 'utf8'); + const result = await transform(rec.source.abs, source); + return { + ...rec, + dest: rec.dest.withExt('.js'), + content: result.code, + }; + } + } }, - null, - 2 - ) - ); + }); + + if ( + pkg.manifest.id === '@kbn/ui-shared-deps-src' || + pkg.manifest.id === '@kbn/ui-shared-deps-npm' + ) { + await scanCopy({ + source: config.resolveFromRepo( + 'bazel-bin', + pkg.normalizedRepoRelativeDir, + 'shared_built_assets' + ), + destination: build.resolvePath(pkg.normalizedRepoRelativeDir, 'shared_built_assets'), + permissions: distPerms, + filter: (rec) => rec.source.ext !== '.map', + }); + } + + if (pkg.manifest.id === '@kbn/monaco') { + await scanCopy({ + source: config.resolveFromRepo( + 'bazel-bin', + pkg.normalizedRepoRelativeDir, + 'target_workers' + ), + destination: build.resolvePath(pkg.normalizedRepoRelativeDir, 'target_workers'), + permissions: distPerms, + filter: (rec) => rec.source.ext !== '.map', + }); + } + + if (pkg.manifest.id === '@kbn/repo-packages') { + // rewrite package map to point into node_modules + await write( + Path.resolve(pkgDistPath, 'package-map.json'), + JSON.stringify( + packages + .filter((p) => p.isPlugin()) + .map((p) => [p.manifest.id, `node_modules/${p.manifest.id}`]) + ) + ); + } - log.info(`Copied`, pkg.manifest.id, 'into build'); + // cleanup any peggy config files + if (peggyConfigOutputPaths.size) { + await deleteAll(Array.from(peggyConfigOutputPaths), log); + } + + if (pkg.isPlugin()) { + await write( + Path.resolve(pkgDistPath, 'kibana.jsonc'), + JSON.stringify( + { + ...pkg.manifest, + build: undefined, + plugin: { + ...pkg.manifest.plugin, + __category__: pkg.getPluginCategories(), + }, + }, + null, + 2 + ) + ); + } + + await write( + Path.resolve(pkgDistPath, 'package.json'), + JSON.stringify( + { + ...pkg.pkg, + name: pkg.manifest.id, + version: config.getBuildVersion(), + private: undefined, + }, + null, + 2 + ) + ); + + if (pkg.manifest.id === '@kbn/fleet-plugin') { + // run fleet-specific build tasks + await fleetBuildTasks(pkgDistPath, log, config); + } + + log.info(`Copied`, pkg.manifest.id, 'into build'); + } catch (error) { + error.message = `Failed to copy ${pkg.manifest.id} into the build: ${error.message}`; + throw error; + } }); }); }, diff --git a/src/dev/build/tasks/bundle_fleet_packages.ts b/src/dev/build/tasks/bundle_fleet_packages.ts deleted file mode 100644 index 3bbef9acfc39dd..00000000000000 --- a/src/dev/build/tasks/bundle_fleet_packages.ts +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import JSON5 from 'json5'; -import fs from 'fs/promises'; -import { safeLoad, safeDump } from 'js-yaml'; - -import { Task, read, downloadToDisk, unzipBuffer, createZipFile } from '../lib'; - -const BUNDLED_PACKAGES_DIR = 'x-pack/plugins/fleet/target/bundled_packages'; - -// Package storage v2 url -export const PACKAGE_STORAGE_REGISTRY_URL = 'https://epr.elastic.co'; - -interface FleetPackage { - name: string; - version: string; - forceAlignStackVersion?: boolean; -} - -export const BundleFleetPackages: Task = { - description: 'Bundling fleet packages', - - async run(config, log, build) { - log.info('Fetching fleet packages from package registry'); - log.indent(4); - - const configFilePath = config.resolveFromRepo('fleet_packages.json'); - const fleetPackages = (await read(configFilePath)) || '[]'; - - const parsedFleetPackages: FleetPackage[] = JSON5.parse(fleetPackages); - - log.debug( - `Found configured bundled packages: ${parsedFleetPackages - .map((fleetPackage) => `${fleetPackage.name}-${fleetPackage.version || 'latest'}`) - .join(', ')}` - ); - - await Promise.all( - parsedFleetPackages.map(async (fleetPackage) => { - const stackVersion = config.getBuildVersion(); - - let versionToWrite = fleetPackage.version; - - // If `forceAlignStackVersion` is set, we will rewrite the version specified in the config - // to the version of the stack when writing the bundled package to disk. This allows us - // to support some unique package development workflows, e.g. APM. - if (fleetPackage.forceAlignStackVersion) { - versionToWrite = stackVersion; - - log.debug( - `Bundling ${fleetPackage.name}-${fleetPackage.version} as ${fleetPackage.name}-${stackVersion} to align with stack version` - ); - } - - const archivePath = `${fleetPackage.name}-${versionToWrite}.zip`; - const archiveUrl = `${PACKAGE_STORAGE_REGISTRY_URL}/epr/${fleetPackage.name}/${fleetPackage.name}-${fleetPackage.version}.zip`; - - const destination = build.resolvePath(BUNDLED_PACKAGES_DIR, archivePath); - - try { - await downloadToDisk({ - log, - url: archiveUrl, - destination, - shaChecksum: '', - shaAlgorithm: 'sha512', - skipChecksumCheck: true, - maxAttempts: 3, - }); - - // If we're force aligning the version, we need to - // 1. Unzip the downloaded archive - // 2. Edit the `manifest.yml` file to include the updated `version` value - // 3. Re-zip the archive and replace it on disk - if (fleetPackage.forceAlignStackVersion) { - const buffer = await fs.readFile(destination); - const zipEntries = await unzipBuffer(buffer); - - const manifestPath = `${fleetPackage.name}-${fleetPackage.version}/manifest.yml`; - const manifestEntry = zipEntries.find((entry) => entry.path === manifestPath); - - if (!manifestEntry || !manifestEntry.buffer) { - log.debug( - `Unable to find manifest.yml for stack aligned package ${fleetPackage.name}` - ); - - return; - } - - const manifestYml = await safeLoad(manifestEntry.buffer.toString('utf8')); - manifestYml.version = stackVersion; - - const newManifestYml = safeDump(manifestYml); - manifestEntry.buffer = Buffer.from(newManifestYml, 'utf8'); - - // Update all paths to use the new version - zipEntries.forEach( - (entry) => (entry.path = entry.path.replace(fleetPackage.version, versionToWrite!)) - ); - - await createZipFile(zipEntries, destination); - } - } catch (error) { - log.error(`Failed to download bundled package archive ${archivePath}`); - throw error; - } - }) - ); - }, -}; diff --git a/src/dev/build/tasks/clean_tasks.ts b/src/dev/build/tasks/clean_tasks.ts index babfb9f6a695e9..a9d10dfc0d3c32 100644 --- a/src/dev/build/tasks/clean_tasks.ts +++ b/src/dev/build/tasks/clean_tasks.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import minimatch from 'minimatch'; import { getPackages } from '@kbn/repo-packages'; import { REPO_ROOT } from '@kbn/repo-info'; import { deleteAll, deleteEmptyFolders, scanDelete, Task, GlobalTask } from '../lib'; @@ -20,8 +19,8 @@ export const Clean: GlobalTask = { [ config.resolveFromRepo('build'), config.resolveFromRepo('target'), - config.resolveFromRepo('.node_binaries'), - ], + config.downloadFreshNode ? config.resolveFromRepo('.node_binaries') : [], + ].flat(), log ); }, @@ -39,182 +38,155 @@ export const CleanExtraFilesFromModules: Task = { description: 'Cleaning tests, examples, docs, etc. from node_modules', async run(config, log, build) { - const makeRegexps = (patterns: string[]) => - patterns.map((pattern) => minimatch.makeRe(pattern, { nocase: true })); - - const regularExpressions = makeRegexps([ - // tests - '**/test', - '**/tests', - '**/jest.config.js', - '**/__tests__', - '**/*.test.js', - '**/*.snap', - '**/coverage', - - // docs - '**/doc', - '**/docs', - '**/CONTRIBUTING.md', - '**/Contributing.md', - '**/contributing.md', - '**/README.md', - '**/readme.md', - '**/README.markdown', - '**/readme.markdown', - '**/README', - - '**/History.md', - '**/HISTORY.md', - '**/history.md', - '**/CHANGELOG.md', - '**/Changelog.md', - '**/changelog.md', - - '**/CODE_OF_CONDUCT.md', - - // examples - '**/example', - '**/examples', - '**/demo', - '**/samples', - - // bins - '**/.bin', - '**/bin', - - // linters - '**/.eslintrc', - '**/.eslintrc.js', - '**/.eslintrc.yml', - '**/.eslintrc.json', - '**/.eslintignore', - '**/.jshintignore', - '**/.prettierrc', - '**/.prettierrc.js', - '**/.prettierrc.yaml', - '**/.prettierrc.yml', - '**/.jshintrc', - '**/.babelrc', - '**/.babelrc.js', - '**/.jscs.json', - '**/.lint', - '**/.jscsrc', - '**/.nycrc', - '**/.taprc', - - // hints - '**/*.flow', - '**/*.webidl', - '**/*.map', - '**/@types', - - // scripts - '**/*.sh', - '**/*.bat', - '**/*.exe', - '**/Gruntfile.js', - '**/gulpfile.js', - '**/Makefile', - - // untranspiled sources - '**/*.coffee', - '**/*.scss', - '**/*.sass', - '**/.ts', - '**/.tsx', - '**/.tsbuildinfo', - - // editors - '**/.editorconfig', - '**/.vscode', - '**/.idea', - - // git - '**/.git', - '**/.github', - '**/.gitattributes', - '**/.gitkeep', - '**/.gitempty', - '**/.gitmodules', - '**/.keep', - '**/.empty', - '**/.patch', - - // ci - '**/.travis.yml', - '**/.gitlab-ci.yml', - '**/circle.yml', - '**/.coveralls.yml', - '**/.istanbul.yml', - '**/.appveyor.yml', - '**/.zuul.yml', - '**/.codeclimate.yml', - '**/.codecov.yml', - '**/.airtap.yml', - '**/.gitpod.yml', - '**/karma.conf.ci.js', - '**/karma.conf.js', - '**/karma-ci.conf.js', - - // metadata - '**/package-lock.json', - '**/component.json', - '**/bower.json', - '**/yarn.lock', - - // misc - '**/.*ignore', - '**/*.log', - '**/.nvmrc', - '**/.DS_Store', - '**/Dockerfile', - '**/docker-compose.yml', - - '**/*.png', - '**/*.jpg', - '**/*.jpeg', - '**/*.gif', - '**/*.webp', - - '**/*.zip', - '**/*.7z', - '**/*.rar', - '**/*.tar', - '**/*.tgz', - '**/*.gz', - - '**/*.cc', - '**/*.pl', - '**/*.py', - '**/*.gz', - '**/*.h', - '**/*.xml', - '**/*.html', - - '**/*.development.js', - '**/*.dev.js', - '**/benchmark', - '**/benchmarks', - '**/benchmark.js', - '**/benchmarks.js', - - '**/rollup.config.js', - '**/webpack.config.js', - '**/commitlint.config.js', - '**/styleguide.config.js', - - '**/@elastic/eui/es', - '**/@elastic/eui/test-env', - '**/@elastic/eui/optimize', - '**/@elastic/eui/i18ntokens.json', - ]).concat([/\.(ts|tsx|d\.ts)$/, /tsconfig.*\.(json|tsbuildinfo)$/]); - log.info( 'Deleted %d files', - await scanDelete({ - directory: build.resolvePath('node_modules'), - regularExpressions, + await scanDelete(build.resolvePath('node_modules'), { + match: [ + '!@kbn/**', + + // tests + '**/test', + '**/tests', + '**/jest.config.js', + '**/__tests__', + '**/*.test.js', + '**/*.snap', + '**/coverage', + + // docs + '**/doc', + '**/docs', + '**/README', + '**/CONTRIBUTING.md', + '**/README.*', + + '**/History.md', + '**/HISTORY.md', + '**/history.md', + '**/CHANGELOG.md', + '**/Changelog.md', + '**/changelog.md', + + '**/CODE_OF_CONDUCT.md', + + // examples + '**/example', + '**/examples', + '**/demo', + '**/samples', + + // bins + '**/.bin', + '**/bin', + + // linters + '**/.eslintrc', + '**/.eslintrc.js', + '**/.eslintrc.yml', + '**/.eslintrc.json', + '**/.eslintignore', + '**/.jshintignore', + '**/.prettierrc', + '**/.prettierrc.js', + '**/.prettierrc.yaml', + '**/.prettierrc.yml', + '**/.jshintrc', + '**/.babelrc', + '**/.babelrc.js', + '**/.jscs.json', + '**/.lint', + '**/.jscsrc', + '**/.nycrc', + '**/.taprc', + + // hints + '**/*.flow', + '**/*.webidl', + '**/*.map', + '**/@types', + + // scripts + '**/*.sh', + '**/*.bat', + '**/*.exe', + '**/Gruntfile.js', + '**/gulpfile.js', + '**/Makefile', + + // untranspiled sources, tranpiler configs + '**/*.coffee', + '**/*.scss', + '**/*.sass', + '**/*.ts', + '**/*.tsx', + '**/tsconfig.json', + '**/.tsbuildinfo', + '**/babel.config.*', + + // editors + '**/.editorconfig', + '**/.vscode', + '**/.idea', + + // git + '**/.git', + '**/.github', + '**/.gitattributes', + '**/.gitkeep', + '**/.gitempty', + '**/.gitmodules', + '**/.keep', + '**/.empty', + '**/.patch', + + // ci + '**/.travis.yml', + '**/.gitlab-ci.yml', + '**/circle.yml', + '**/.coveralls.yml', + '**/.istanbul.yml', + '**/.appveyor.yml', + '**/.zuul.yml', + '**/.codeclimate.yml', + '**/.codecov.yml', + '**/.airtap.yml', + '**/.gitpod.yml', + '**/karma.conf.ci.js', + '**/karma.conf.js', + '**/karma-ci.conf.js', + + // metadata + '**/package-lock.json', + '**/component.json', + '**/bower.json', + '**/yarn.lock', + + // misc + '**/.*ignore', + '**/*.log', + '**/.nvmrc', + '**/.DS_Store', + '**/Dockerfile', + '**/docker-compose.yml', + + // images, archives, random files for other languages + '**/*.{png,jpg,jpeg,gif,webp,zip,7z,rar,tar,tgz,gz,cc,pl,py,gz,h,xml,html}', + + '**/*.development.js', + '**/*.dev.js', + '**/benchmark', + '**/benchmarks', + '**/benchmark.js', + '**/benchmarks.js', + + '**/@elastic/eui/es', + '**/@elastic/eui/test-env', + '**/@elastic/eui/optimize', + '**/@elastic/eui/i18ntokens.json', + ], + matchOptions: { + caseInsensitive: true, + }, }) ); }, @@ -255,21 +227,12 @@ export const CleanEmptyFolders: Task = { }, }; -export const DeleteBazelPackagesFromBuildRoot: Task = { - description: - 'Deleting bazel packages outputs from build folder root as they are now installed as node_modules', - +export const DeletePackagesFromBuildRoot: Task = { + description: 'Deleting package source directories as they are now installed as node_modules', async run(config, log, build) { - const bazelPackagesOnBuildRoot = getPackages(REPO_ROOT).flatMap((pkg) => { - const bldSrc = build.resolvePath(pkg.normalizedRepoRelativeDir); - - if (pkg.manifest.type.startsWith('plugin-')) { - return bldSrc; - } - - return [bldSrc, build.resolvePath('node_modules', pkg.manifest.id, 'kibana.jsonc')]; - }); - - await deleteAll(bazelPackagesOnBuildRoot, log); + await deleteAll( + getPackages(REPO_ROOT).map((pkg) => build.resolvePath(pkg.normalizedRepoRelativeDir)), + log + ); }, }; diff --git a/src/dev/build/tasks/copy_legacy_source_task.ts b/src/dev/build/tasks/copy_legacy_source_task.ts new file mode 100644 index 00000000000000..d92f2ae6f5d191 --- /dev/null +++ b/src/dev/build/tasks/copy_legacy_source_task.ts @@ -0,0 +1,65 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { resolve } from 'path'; + +import { getPackages } from '@kbn/repo-packages'; +import globby from 'globby'; +import Piscina from 'piscina'; + +import { Task } from '../lib'; + +export const CopyLegacySource: Task = { + description: 'Copying legacy/non-package source into platform-generic build directory', + + async run(config, log) { + const select = [ + 'yarn.lock', + '.npmrc', + 'config/kibana.yml', + 'config/node.options', + '.i18nrc.json', + 'src/cli/**', + 'src/cli_*/**', + 'src/setup_node_env/**', + '!src/cli*/dev.js', + '!src/setup_node_env/index.js', + + 'x-pack/.i18nrc.json', + 'x-pack/package.json', + + '!**/jest*', + '!**/*.{story,stories}.{js,ts}', + '!**/{test_mocks,stubs}.ts', + '!**/*.{scss,console,d.ts,sh,md,mdx,asciidoc,docnav.json}', + '!**/*.{test,test.mocks,mock,mocks,spec}.*', + '!**/{packages,dev_docs,docs,public,__stories__,storybook,.storybook,ftr_e2e,e2e,scripts,test,tests,test_resources,test_data,__tests__,manual_tests,__jest__,__snapshots__,__mocks__,mock_responses,mocks,fixtures,__fixtures__,cypress,integration_tests}/**', + + // explicitly exclude every package directory outside of the root packages dir + ...getPackages(config.resolveFromRepo('.')).flatMap((p) => + p.normalizedRepoRelativeDir.startsWith('packages/') + ? [] + : `!${p.normalizedRepoRelativeDir}/**` + ), + ]; + + const piscina = new Piscina({ + filename: resolve(__dirname, 'copy_source_worker.js'), + }); + + const globbyOptions = { cwd: config.resolveFromRepo('.') }; + const promises = []; + for await (const source of globby.stream(select, globbyOptions)) { + promises.push(piscina.run({ source })); + } + await Promise.all(promises); + await piscina.destroy(); + + log.success('copied and transpiled', promises.length, 'files'); + }, +}; diff --git a/src/dev/build/tasks/copy_source_task.ts b/src/dev/build/tasks/copy_source_task.ts deleted file mode 100644 index fdab1b515f6d70..00000000000000 --- a/src/dev/build/tasks/copy_source_task.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { resolve } from 'path'; - -import { getPackages } from '@kbn/repo-packages'; -import globby from 'globby'; -import Piscina from 'piscina'; - -import { Task } from '../lib'; - -export const CopySource: Task = { - description: 'Copying source into platform-generic build directory', - - async run(config, log, build) { - const select = [ - 'yarn.lock', - '.npmrc', - 'config/kibana.yml', - 'config/node.options', - '.i18nrc.json', - 'src/**', - - 'x-pack/plugins/**', - 'x-pack/.i18nrc.json', - 'x-pack/package.json', - - '!src/dev/**', - '!src/**/mocks.{js,ts}', - '!src/cli*/dev.js', - '!src/plugins/telemetry/schema/**', - '!src/setup_node_env/index.js', - - '!x-pack/plugins/telemetry_collection_xpack/schema/**', - - '!**/jest*', - '!**/*.{story,stories}.{js,ts}', - '!**/{test_mocks,stubs}.ts', - '!**/*.{scss,console,d.ts,sh,md,mdx,asciidoc,docnav.json}', - '!**/*.{test,test.mocks,mock,mocks,spec}.*', - '!**/{packages,dev_docs,docs,public,__stories__,storybook,.storybook,ftr_e2e,e2e,scripts,test,tests,test_resources,test_data,__tests__,manual_tests,__jest__,__snapshots__,__mocks__,mock_responses,mocks,fixtures,__fixtures__,cypress,integration_tests}/**', - - '!x-pack/plugins/lens/to_playground.gif', // README.md - '!x-pack/plugins/lens/layout.png', // README.md - '!x-pack/plugins/cases/images', // README.md - '!x-pack/plugins/canvas/images', // unused - - // explicitly exclude every package directory outside of the root packages dir - `!{${getPackages(config.resolveFromRepo('.')) - .flatMap((p) => - p.normalizedRepoRelativeDir.startsWith('packages/') ? [] : p.normalizedRepoRelativeDir - ) - .join(',')}}/**`, - ]; - - const piscina = new Piscina({ - filename: resolve(__dirname, 'copy_source_worker.js'), - workerData: { - ignoredPkgIds: await config.getPkgIdsInNodeModules(), - }, - }); - - const globbyOptions = { cwd: config.resolveFromRepo('.') }; - const tasks = ( - await Promise.all([ - globby(select, globbyOptions), - globby( - [ - '{x-pack,src}/plugins/*/public/assets/**', - 'src/plugins/data/server/scripts/**', - 'x-pack/plugins/fleet/server/services/epm/packages/**', - '!x-pack/plugins/fleet/server/services/epm/packages/*.test.ts', - ], - globbyOptions - ), - ]) - ) - .flat() - .map((source) => piscina.run({ source })); - - await Promise.all(tasks); - await piscina.destroy(); - - log.success('copied and transpiled', tasks.length, 'files'); - }, -}; diff --git a/src/dev/build/tasks/copy_source_worker.js b/src/dev/build/tasks/copy_source_worker.js index a272a15b653ecd..da55f11dded44d 100644 --- a/src/dev/build/tasks/copy_source_worker.js +++ b/src/dev/build/tasks/copy_source_worker.js @@ -12,8 +12,6 @@ const { resolve, extname, dirname } = require('path'); const { optimize } = require('svgo'); const { transformCode } = require('@kbn/babel-transform'); -const { ignoredPkgIds } = require('piscina').workerData; - const { REPO_ROOT } = require('@kbn/repo-info'); const BUILD_ROOT = resolve(REPO_ROOT, 'build', 'kibana'); @@ -34,7 +32,6 @@ module.exports = async ({ source }) => { case '.tsx': const output = transformCode(absoluteSource, undefined, { disableSourceMaps: true, - ignoredPkgIds, }); if (output.code) { diff --git a/src/dev/build/tasks/fleet/bundle_packages.ts b/src/dev/build/tasks/fleet/bundle_packages.ts new file mode 100644 index 00000000000000..93b73fa528dcc1 --- /dev/null +++ b/src/dev/build/tasks/fleet/bundle_packages.ts @@ -0,0 +1,108 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import Fsp from 'fs/promises'; +import Path from 'path'; + +import JSON5 from 'json5'; +import { safeLoad, safeDump } from 'js-yaml'; +import { asyncForEach } from '@kbn/std'; +import { ToolingLog } from '@kbn/tooling-log'; + +import { read, downloadToDisk, unzipBuffer, createZipFile, Config } from '../../lib'; + +// Package storage v2 url +export const PACKAGE_STORAGE_REGISTRY_URL = 'https://epr.elastic.co'; + +interface FleetPackage { + name: string; + version: string; + forceAlignStackVersion?: boolean; +} + +export async function bundleFleetPackages(pkgDir: string, log: ToolingLog, config: Config) { + log.info('Fetching fleet packages from package registry'); + + const configFilePath = config.resolveFromRepo('fleet_packages.json'); + const fleetPackages = (await read(configFilePath)) || '[]'; + + const parsedFleetPackages: FleetPackage[] = JSON5.parse(fleetPackages); + + log.debug( + `Found configured bundled packages: ${parsedFleetPackages + .map((fleetPackage) => `${fleetPackage.name}-${fleetPackage.version || 'latest'}`) + .join(', ')}` + ); + + await asyncForEach(parsedFleetPackages, async (fleetPackage) => { + const stackVersion = config.getBuildVersion(); + + let versionToWrite = fleetPackage.version; + + // If `forceAlignStackVersion` is set, we will rewrite the version specified in the config + // to the version of the stack when writing the bundled package to disk. This allows us + // to support some unique package development workflows, e.g. APM. + if (fleetPackage.forceAlignStackVersion) { + versionToWrite = stackVersion; + + log.debug( + `Bundling ${fleetPackage.name}-${fleetPackage.version} as ${fleetPackage.name}-${stackVersion} to align with stack version` + ); + } + + const archivePath = `${fleetPackage.name}-${versionToWrite}.zip`; + const archiveUrl = `${PACKAGE_STORAGE_REGISTRY_URL}/epr/${fleetPackage.name}/${fleetPackage.name}-${fleetPackage.version}.zip`; + + const destination = Path.resolve(pkgDir, 'target/bundled_packages', archivePath); + try { + await downloadToDisk({ + log, + url: archiveUrl, + destination, + shaChecksum: '', + shaAlgorithm: 'sha512', + skipChecksumCheck: true, + maxAttempts: 3, + }); + + // If we're force aligning the version, we need to + // 1. Unzip the downloaded archive + // 2. Edit the `manifest.yml` file to include the updated `version` value + // 3. Re-zip the archive and replace it on disk + if (fleetPackage.forceAlignStackVersion) { + const buffer = await Fsp.readFile(destination); + const zipEntries = await unzipBuffer(buffer); + + const manifestPath = `${fleetPackage.name}-${fleetPackage.version}/manifest.yml`; + const manifestEntry = zipEntries.find((entry) => entry.path === manifestPath); + + if (!manifestEntry || !manifestEntry.buffer) { + log.debug(`Unable to find manifest.yml for stack aligned package ${fleetPackage.name}`); + return; + } + + const manifestYml = await safeLoad(manifestEntry.buffer.toString('utf8')); + manifestYml.version = stackVersion; + + const newManifestYml = safeDump(manifestYml); + manifestEntry.buffer = Buffer.from(newManifestYml, 'utf8'); + + // Update all paths to use the new version + zipEntries.forEach( + (entry) => (entry.path = entry.path.replace(fleetPackage.version, versionToWrite!)) + ); + + await createZipFile(zipEntries, destination); + } + } catch (error) { + throw new Error( + `Failed to download bundled package archive ${archivePath}: ${error.message}` + ); + } + }); +} diff --git a/src/dev/build/tasks/fleet/download_elastic_gpg_key.ts b/src/dev/build/tasks/fleet/download_elastic_gpg_key.ts new file mode 100644 index 00000000000000..85e927001bd419 --- /dev/null +++ b/src/dev/build/tasks/fleet/download_elastic_gpg_key.ts @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import Path from 'path'; + +import { ToolingLog } from '@kbn/tooling-log'; + +import { downloadToDisk } from '../../lib'; + +const ARTIFACTS_URL = 'https://artifacts.elastic.co/'; +const GPG_KEY_NAME = 'GPG-KEY-elasticsearch'; +const GPG_KEY_SHA512 = + '84ee193cc337344d9a7da9021daf3f5ede83f5f1ab049d169f3634921529dcd096abf7a91eec7f26f3a6913e5e38f88f69a5e2ce79ad155d46edc75705a648c6'; + +export async function downloadElasticGpgKey(pkgDir: string, log: ToolingLog) { + const gpgKeyUrl = ARTIFACTS_URL + GPG_KEY_NAME; + const destination = Path.resolve(pkgDir, 'target/keys', GPG_KEY_NAME); + log.info(`Downloading Elastic GPG key from ${gpgKeyUrl} to ${destination}`); + + try { + await downloadToDisk({ + log, + url: gpgKeyUrl, + destination, + shaChecksum: GPG_KEY_SHA512, + shaAlgorithm: 'sha512', + skipChecksumCheck: false, + maxAttempts: 3, + }); + } catch (error) { + throw new Error( + `Error downloading Elastic GPG key from ${gpgKeyUrl} to ${destination}: ${error.message}` + ); + } +} diff --git a/src/dev/build/tasks/fleet/index.ts b/src/dev/build/tasks/fleet/index.ts new file mode 100644 index 00000000000000..60dd78011c4689 --- /dev/null +++ b/src/dev/build/tasks/fleet/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { ToolingLog } from '@kbn/tooling-log'; +import { Config } from '../../lib'; + +import { bundleFleetPackages } from './bundle_packages'; +import { downloadElasticGpgKey } from './download_elastic_gpg_key'; + +export async function fleetBuildTasks(pkgDir: string, log: ToolingLog, config: Config) { + await Promise.all([bundleFleetPackages(pkgDir, log, config), downloadElasticGpgKey(pkgDir, log)]); +} diff --git a/src/dev/build/tasks/fleet_download_elastic_gpg_key.ts b/src/dev/build/tasks/fleet_download_elastic_gpg_key.ts deleted file mode 100644 index 8d52c9166d25c4..00000000000000 --- a/src/dev/build/tasks/fleet_download_elastic_gpg_key.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { Task, downloadToDisk } from '../lib'; - -const BUNDLED_KEYS_DIR = 'x-pack/plugins/fleet/target/keys'; -const ARTIFACTS_URL = 'https://artifacts.elastic.co/'; -const GPG_KEY_NAME = 'GPG-KEY-elasticsearch'; -const GPG_KEY_SHA512 = - '84ee193cc337344d9a7da9021daf3f5ede83f5f1ab049d169f3634921529dcd096abf7a91eec7f26f3a6913e5e38f88f69a5e2ce79ad155d46edc75705a648c6'; - -export const FleetDownloadElasticGpgKey: Task = { - description: 'Downloading Elastic GPG key for Fleet', - - async run(config, log, build) { - const gpgKeyUrl = ARTIFACTS_URL + GPG_KEY_NAME; - const destination = build.resolvePath(BUNDLED_KEYS_DIR, GPG_KEY_NAME); - log.info(`Downloading Elastic GPG key from ${gpgKeyUrl} to ${destination}`); - - try { - await downloadToDisk({ - log, - url: gpgKeyUrl, - destination, - shaChecksum: GPG_KEY_SHA512, - shaAlgorithm: 'sha512', - skipChecksumCheck: false, - maxAttempts: 3, - }); - } catch (error) { - log.error(`Error downloading Elastic GPG key from ${gpgKeyUrl} to ${destination}`); - throw error; - } - }, -}; diff --git a/src/dev/build/tasks/index.ts b/src/dev/build/tasks/index.ts index 3fb7002061fb42..9abd34a2d9f511 100644 --- a/src/dev/build/tasks/index.ts +++ b/src/dev/build/tasks/index.ts @@ -8,18 +8,15 @@ export * from './bin'; export * from './build_canvas_shareable_runtime'; -export * from './build_kibana_example_plugins'; export * from './build_kibana_platform_plugins'; export * from './build_packages_task'; -export * from './bundle_fleet_packages'; export * from './clean_tasks'; -export * from './copy_source_task'; +export * from './copy_legacy_source_task'; export * from './create_archives_sources_task'; export * from './create_archives_task'; export * from './create_empty_dirs_and_files_task'; export * from './create_readme_task'; export * from './download_cloud_dependencies'; -export * from './fleet_download_elastic_gpg_key'; export * from './generate_packages_optimized_assets'; export * from './install_dependencies_task'; export * from './license_file_task'; diff --git a/src/dev/build/tasks/nodejs/clean_node_builds_task.ts b/src/dev/build/tasks/nodejs/clean_node_builds_task.ts index bfa34d68f2a06f..487cf99cf162cc 100644 --- a/src/dev/build/tasks/nodejs/clean_node_builds_task.ts +++ b/src/dev/build/tasks/nodejs/clean_node_builds_task.ts @@ -12,7 +12,7 @@ export const CleanNodeBuilds: Task = { description: 'Cleaning npm from node', async run(config, log, build) { - for (const platform of config.getNodePlatforms()) { + for (const platform of config.getTargetPlatforms()) { await deleteAll( [ build.resolvePathForPlatform(platform, 'node/lib/node_modules'), diff --git a/src/dev/build/tasks/nodejs/download_node_builds_task.test.ts b/src/dev/build/tasks/nodejs/download_node_builds_task.test.ts index 5219499d853523..a67ccb254cb8b9 100644 --- a/src/dev/build/tasks/nodejs/download_node_builds_task.test.ts +++ b/src/dev/build/tasks/nodejs/download_node_builds_task.test.ts @@ -42,6 +42,9 @@ async function setup({ failOnUrl }: { failOnUrl?: string } = {}) { dockerPush: false, dockerTag: '', dockerTagQualifier: '', + downloadFreshNode: true, + withExamplePlugins: false, + withTestPlugins: true, }); getNodeDownloadInfo.mockImplementation((_: Config, platform: Platform) => { diff --git a/src/dev/build/tasks/nodejs/extract_node_builds_task.test.ts b/src/dev/build/tasks/nodejs/extract_node_builds_task.test.ts index ab98ff87b66500..5ca9fcbe10718a 100644 --- a/src/dev/build/tasks/nodejs/extract_node_builds_task.test.ts +++ b/src/dev/build/tasks/nodejs/extract_node_builds_task.test.ts @@ -45,6 +45,9 @@ async function setup() { dockerPush: false, dockerTag: '', dockerTagQualifier: '', + downloadFreshNode: true, + withExamplePlugins: false, + withTestPlugins: true, }); return { config }; diff --git a/src/dev/build/tasks/nodejs/verify_existing_node_builds_task.test.ts b/src/dev/build/tasks/nodejs/verify_existing_node_builds_task.test.ts index 7663137f398a68..966012a194ab09 100644 --- a/src/dev/build/tasks/nodejs/verify_existing_node_builds_task.test.ts +++ b/src/dev/build/tasks/nodejs/verify_existing_node_builds_task.test.ts @@ -50,6 +50,9 @@ async function setup(actualShaSums?: Record) { dockerPush: false, dockerTag: '', dockerTagQualifier: '', + downloadFreshNode: true, + withExamplePlugins: false, + withTestPlugins: true, }); getNodeShasums.mockReturnValue( diff --git a/src/dev/build/tasks/package_json/create_package_json_tasks.ts b/src/dev/build/tasks/package_json/create_package_json_tasks.ts index a22f44424367fb..15c9a7f6fb0dec 100644 --- a/src/dev/build/tasks/package_json/create_package_json_tasks.ts +++ b/src/dev/build/tasks/package_json/create_package_json_tasks.ts @@ -9,42 +9,32 @@ import { findUsedDependencies } from './find_used_dependencies'; import { read, write, Task } from '../../lib'; -/** - * Replaces `link:` dependencies with `file:` dependencies. When installing - * dependencies, these `file:` dependencies will be copied into `node_modules` - * instead of being symlinked. - * - * This will allow us to copy packages into the build and run `yarn`, which - * will then _copy_ the `file:` dependencies into `node_modules` instead of - * symlinking like we do in development. - * - * Additionally it also taken care of replacing `link:bazel-bin/` with - * `file:` so we can also support the copy of the Bazel packages dist already into - * build/packages to be copied into the node_modules - */ -export function transformDependencies(dependencies: Record) { - return Object.fromEntries( - Object.entries(dependencies).map(([name, version]) => { - if (!version.startsWith('link:')) { - return [name, version]; - } - - if (version.startsWith('link:bazel-bin/')) { - return [name, version.replace('link:bazel-bin/', 'file:')]; - } - - return [name, version.replace('link:', 'file:')]; - }) - ); -} - export const CreatePackageJson: Task = { description: 'Creating build-ready version of package.json', async run(config, log, build) { + const plugins = config.getDistPluginsFromRepo(); + const distPkgIds = new Set(config.getDistPackagesFromRepo().map((p) => p.id)); const pkg = config.getKibanaPkg(); - const transformedDeps = transformDependencies(pkg.dependencies as { [key: string]: string }); - const foundPkgDeps = await findUsedDependencies(transformedDeps, build.resolvePath('.')); + + /** + * Replaces `link:` dependencies with `file:` dependencies. When installing + * dependencies, these `file:` dependencies will be copied into `node_modules` + * instead of being symlinked. + * + * This will allow us to copy packages into the build and run `yarn`, which + * will then _copy_ the `file:` dependencies into `node_modules` instead of + * symlinking like we do in development. + * + * Additionally it also taken care of replacing `link:bazel-bin/` with + * `file:` so we can also support the copy of the Bazel packages dist already into + * build/packages to be copied into the node_modules + */ + const transformedDeps = Object.fromEntries( + Object.entries({ ...pkg.dependencies, ...pkg.devDependencies }) + .filter(([id]) => !id.startsWith('@kbn/') || distPkgIds.has(id)) + .map(([name, version]) => [name, version.replace(/^link:/, 'file:')]) + ); const newPkg = { name: pkg.name, @@ -64,7 +54,14 @@ export const CreatePackageJson: Task = { node: pkg.engines?.node, }, resolutions: pkg.resolutions, - dependencies: foundPkgDeps, + dependencies: { + // include dependencies which are explicitly used + ...(await findUsedDependencies(transformedDeps, build.resolvePath('.'), plugins)), + // also include all plugin packages + ...Object.fromEntries( + plugins.map((p) => [p.manifest.id, `file:${p.normalizedRepoRelativeDir}`]) + ), + }, }; await write(build.resolvePath('package.json'), JSON.stringify(newPkg, null, ' ')); diff --git a/src/dev/build/tasks/package_json/find_used_dependencies.ts b/src/dev/build/tasks/package_json/find_used_dependencies.ts index 4250b0a6b79903..28a23fbd85041c 100644 --- a/src/dev/build/tasks/package_json/find_used_dependencies.ts +++ b/src/dev/build/tasks/package_json/find_used_dependencies.ts @@ -6,33 +6,33 @@ * Side Public License, v 1. */ +import Path from 'path'; import globby from 'globby'; import { ImportResolver } from '@kbn/import-resolver'; +import { ImportLocator } from '@kbn/import-locator'; +import { readPackageMap, Package, PluginPackage } from '@kbn/repo-packages'; import { findUsedNodeModules } from '@kbn/find-used-node-modules'; -export async function findUsedDependencies(listedPkgDependencies: any, baseDir: any) { - // Define the entry points for the server code in order to - // look for the server side dependencies - const serverEntries = await globby( - [ - // main code entries - 'src/cli*/dist.js', - // core entry - 'src/core/server/index.js', - // plugin entries - 'src/plugins/**/server/index.js', - 'x-pack/plugins/**/server/index.js', - // entries that are loaded into the server with dynamic require() calls - 'src/plugins/vis_types/timelion/server/**/*.js', - ], - { - cwd: baseDir, - ignore: ['**/public/**'], - absolute: true, - } - ); +export async function findUsedDependencies( + listedPkgDependencies: any, + repoRoot: any, + plugins: PluginPackage[] +) { + const resolver = ImportResolver.create( + repoRoot, + Array.from(readPackageMap().values()).flatMap((repoRel) => { + try { + return Package.fromManifest(repoRoot, Path.resolve(repoRoot, repoRel, 'kibana.jsonc')); + } catch (error) { + if (error.code === 'ENOENT') { + // ignore paths which weren't copied into the build + return []; + } - const resolver = ImportResolver.create(baseDir); + throw error; + } + }) + ); // Get the dependencies found searching through the server // side code entries that were provided @@ -42,8 +42,30 @@ export async function findUsedDependencies(listedPkgDependencies: any, baseDir: // find all the node modules we actually use on the server, including the peerDependencies of our used node_modules which are used within those deps ...(await findUsedNodeModules({ resolver, - entryPaths: serverEntries, + locator: new ImportLocator(), findUsedPeers: true, + entryPaths: [ + ...plugins.flatMap((p) => + p.manifest.plugin.server + ? Path.resolve(repoRoot, p.normalizedRepoRelativeDir, 'server/index.js') + : [] + ), + ...(await globby( + [ + // main code entries + 'src/cli*/dist.js', + // core entry + 'src/core/server/index.js', + // entries that are loaded into the server with dynamic require() calls + 'src/plugins/vis_types/timelion/server/**/*.js', + ], + { + cwd: repoRoot, + ignore: ['**/public/**'], + absolute: true, + } + )), + ], })), ]; diff --git a/src/dev/eslint/run_eslint_with_types.ts b/src/dev/eslint/run_eslint_with_types.ts index a9e954ea680161..75f49ba351579b 100644 --- a/src/dev/eslint/run_eslint_with_types.ts +++ b/src/dev/eslint/run_eslint_with_types.ts @@ -18,7 +18,7 @@ import { run } from '@kbn/dev-cli-runner'; import { createFailError } from '@kbn/dev-cli-errors'; import { REPO_ROOT } from '@kbn/repo-info'; -import { TS_PROJECTS, TsProject } from '@kbn/ts-projects'; +import { TS_PROJECTS, type TsProject } from '@kbn/ts-projects'; export function runEslintWithTypes() { run( diff --git a/src/dev/file.ts b/src/dev/file.ts index f1560956aef5e0..352f888e1fa2a7 100644 --- a/src/dev/file.ts +++ b/src/dev/file.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { dirname, extname, join, relative, resolve, sep, basename } from 'path'; +import { dirname, extname, join, relative, resolve, basename } from 'path'; export class File { public readonly path: string; @@ -49,20 +49,6 @@ export class File { return this.ext === '.sass' || this.ext === '.scss'; } - public isFixture() { - const parts = this.relativePath.split(sep); - if (parts.includes('__fixtures__') || this.path.endsWith('.test-d.ts')) { - return true; - } - - const i = parts.indexOf('kbn-generate'); - if (i >= 0 && parts[i + 1] === 'templates') { - return true; - } - - return false; - } - public getRelativeParentDirs() { const parents: string[] = []; diff --git a/src/dev/i18n/config.ts b/src/dev/i18n/config.ts index f03db42ce916e1..4d26789481d826 100644 --- a/src/dev/i18n/config.ts +++ b/src/dev/i18n/config.ts @@ -48,7 +48,13 @@ export async function assignConfigFromPath( } for (const translations of additionalConfig.translations) { - config.translations.push(normalizePath(resolve(configPath, '..', translations))); + config.translations.push( + normalizePath( + translations.startsWith('@kbn/') + ? require.resolve(translations) + : resolve(configPath, '..', translations) + ) + ); } return config; diff --git a/src/dev/npm/installed_packages.ts b/src/dev/npm/installed_packages.ts index ff6d47047d3b59..29f79381125c18 100644 --- a/src/dev/npm/installed_packages.ts +++ b/src/dev/npm/installed_packages.ts @@ -92,6 +92,10 @@ async function _getInstalledPackages(dev: boolean, options: Options) { const result = []; for (const [pkgAndVersion, moduleInfo] of Object.entries(lcResult)) { + if (pkgAndVersion.startsWith('@kbn/')) { + continue; + } + const installedPackage = readModuleInfo(pkgAndVersion, moduleInfo, dev, options); if (installedPackage) { result.push(installedPackage); diff --git a/src/dev/plugin_discovery/find_plugins.ts b/src/dev/plugin_discovery/find_plugins.ts deleted file mode 100644 index 93cddbb165c98f..00000000000000 --- a/src/dev/plugin_discovery/find_plugins.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; -import { getPluginSearchPaths } from '@kbn/plugin-discovery'; -import { KibanaPlatformPlugin, simpleKibanaPlatformPluginDiscovery } from '@kbn/plugin-discovery'; - -import { REPO_ROOT } from '@kbn/repo-info'; - -export interface SearchOptions { - oss: boolean; - examples: boolean; - extraPluginScanDirs: string[]; -} - -export function findPlugins({ - oss, - examples, - extraPluginScanDirs, -}: SearchOptions): Map { - const pluginSearchPaths = getPluginSearchPaths({ - rootDir: REPO_ROOT, - oss, - examples, - }); - - for (const extraScanDir of extraPluginScanDirs) { - if (!Path.isAbsolute(extraScanDir)) { - throw new TypeError('extraPluginScanDirs must all be absolute paths'); - } - pluginSearchPaths.push(extraScanDir); - } - - const plugins = simpleKibanaPlatformPluginDiscovery(pluginSearchPaths, []); - return new Map(plugins.map((p) => [p.manifest.id, p])); -} diff --git a/src/dev/plugin_discovery/get_plugin_deps.ts b/src/dev/plugin_discovery/get_plugin_deps.ts deleted file mode 100644 index 291c9de71b4805..00000000000000 --- a/src/dev/plugin_discovery/get_plugin_deps.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { KibanaPlatformPlugin } from '@kbn/plugin-discovery'; - -interface AllOptions { - id: string; - pluginMap: Map; -} - -interface CircularRefsError { - from: string; - to: string; - stack: string[]; -} - -export type SearchErrors = CircularRefsError; - -interface State { - deps: Set; - stack: string[]; - errors: Map; -} - -function traverse(pluginMap: Map, state: State, id: string) { - const plugin = pluginMap.get(id); - if (plugin === undefined) { - throw new Error(`Unknown plugin id: ${id}`); - } - - const prevIndex = state.stack.indexOf(id); - const isVisited = prevIndex > -1; - if (isVisited) { - const from = state.stack[state.stack.length - 1]; - const to = id; - const key = `circular-${[from, to].sort().join('-')}`; - - if (!state.errors.has(key)) { - const error: CircularRefsError = { - from, - to, - // provide sub-stack with circular refs only - stack: state.stack.slice(prevIndex), - }; - state.errors.set(key, error); - } - - return; - } - - state.stack.push(id); - new Set([ - ...plugin.manifest.requiredPlugins, - ...plugin.manifest.optionalPlugins, - ...plugin.manifest.requiredBundles, - ]).forEach((depId) => { - state.deps.add(pluginMap.get(depId)!); - traverse(pluginMap, state, depId); - }); - - state.stack.pop(); -} - -export function getPluginDeps({ pluginMap, id }: AllOptions): State { - const state: State = { - deps: new Set(), - errors: new Map(), - stack: [], - }; - - traverse(pluginMap, state, id); - - return state; -} diff --git a/src/dev/plugin_discovery/index.ts b/src/dev/plugin_discovery/index.ts deleted file mode 100644 index 0d586e1c0fccad..00000000000000 --- a/src/dev/plugin_discovery/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export * from './find_plugins'; -export * from './get_plugin_deps'; diff --git a/src/dev/precommit_hook/casing_check_config.js b/src/dev/precommit_hook/casing_check_config.js index 8b8f49e59d5d70..8adbd0a3d672e2 100644 --- a/src/dev/precommit_hook/casing_check_config.js +++ b/src/dev/precommit_hook/casing_check_config.js @@ -82,7 +82,7 @@ export const IGNORE_FILE_GLOBS = [ * * @type {Array} */ -export const KEBAB_CASE_DIRECTORY_GLOBS = ['packages/*', 'x-pack']; +export const KEBAB_CASE_DIRECTORY_GLOBS = ['packages/*', 'x-pack', 'x-pack/packages/*']; /** * These patterns are matched against directories and indicate diff --git a/src/dev/run_find_plugins_ready_migrate_to_ts_refs.ts b/src/dev/run_find_plugins_ready_migrate_to_ts_refs.ts deleted file mode 100644 index bb94c7d375ba99..00000000000000 --- a/src/dev/run_find_plugins_ready_migrate_to_ts_refs.ts +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; -import Fs from 'fs'; -import JSON5 from 'json5'; -import { get } from 'lodash'; -import { run } from '@kbn/dev-cli-runner'; -import { KibanaPlatformPlugin } from '@kbn/plugin-discovery'; -import { getPluginDeps, findPlugins } from './plugin_discovery'; - -interface AllOptions { - id?: string; - examples?: boolean; - extraPluginScanDirs?: string[]; -} - -run( - async ({ flags, log }) => { - const { examples = false, extraPluginScanDirs = [] } = flags as AllOptions; - - const pluginMap = findPlugins({ - oss: false, - examples, - extraPluginScanDirs, - }); - - const readyToMigrate = new Set(); - for (const pluginId of pluginMap.keys()) { - const { deps, errors } = getPluginDeps({ - pluginMap, - id: pluginId, - }); - - const allDepsMigrated = [...deps].every((p) => isMigratedToTsProjectRefs(p.directory)); - if (allDepsMigrated && errors.size === 0) { - readyToMigrate.add(pluginMap.get(pluginId)!); - } - } - - const notMigratedPlugins = [...readyToMigrate].filter( - (plugin) => !isMigratedToTsProjectRefs(plugin.directory) - ); - if (notMigratedPlugins.length > 0) { - log.info( - `Dependencies ready to migrate to TS project refs:\n${notMigratedPlugins - .map((p) => p.manifest.id) - .join('\n')}` - ); - } - }, - { - flags: { - boolean: ['examples'], - string: ['id'], - default: { - examples: false, - }, - allowUnexpected: false, - help: ` - --examples Include examples folder - --extraPluginScanDirs Include extra scan folder - `, - }, - } -); - -function isMigratedToTsProjectRefs(dir: string): boolean { - try { - const path = Path.join(dir, 'tsconfig.json'); - const content = Fs.readFileSync(path, { encoding: 'utf8' }); - return get(JSON5.parse(content), 'compilerOptions.composite', false); - } catch (e) { - return false; - } -} diff --git a/src/dev/run_find_plugins_with_circular_deps.ts b/src/dev/run_find_plugins_with_circular_deps.ts deleted file mode 100644 index 27968d15c68de9..00000000000000 --- a/src/dev/run_find_plugins_with_circular_deps.ts +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import dedent from 'dedent'; -import { parseDependencyTree, parseCircular, prettyCircular } from 'dpdm'; -import { relative } from 'path'; -import { getPluginSearchPaths } from '@kbn/plugin-discovery'; -import { run } from '@kbn/dev-cli-runner'; -import { REPO_ROOT } from '@kbn/repo-info'; - -interface Options { - debug?: boolean; - filter?: string; -} - -type CircularDepList = Set; - -const allowedList: CircularDepList = new Set([]); - -run( - async ({ flags, log }) => { - const { debug, filter } = flags as Options; - const foundList: CircularDepList = new Set(); - - const pluginSearchPathGlobs = getPluginSearchPaths({ - rootDir: REPO_ROOT, - oss: false, - examples: true, - }).map((pluginFolderPath) => `${relative(REPO_ROOT, pluginFolderPath)}/**/*`); - - const depTree = await parseDependencyTree(pluginSearchPathGlobs, { - context: REPO_ROOT, - }); - - // Build list of circular dependencies as well as the circular dependencies full paths - const circularDependenciesFullPaths = parseCircular(depTree).filter((circularDeps) => { - const first = circularDeps[0]; - const last = circularDeps[circularDeps.length - 1]; - const matchRegex = - /(?(src|x-pack)\/plugins|examples|x-pack\/examples)\/(?[^\/]*)\/.*/; - const firstMatch = first.match(matchRegex); - const lastMatch = last.match(matchRegex); - - if ( - firstMatch?.groups?.pluginFolder && - firstMatch?.groups?.pluginName && - lastMatch?.groups?.pluginFolder && - lastMatch?.groups?.pluginName - ) { - const firstPlugin = `${firstMatch.groups.pluginFolder}/${firstMatch.groups.pluginName}`; - const lastPlugin = `${lastMatch.groups.pluginFolder}/${lastMatch.groups.pluginName}`; - const sortedPlugins = [firstPlugin, lastPlugin].sort(); - - // Exclude if both plugin paths involved in the circular dependency - // doesn't includes the provided filter - if (filter && !firstPlugin.includes(filter) && !lastPlugin.includes(filter)) { - return false; - } - - if (firstPlugin !== lastPlugin) { - foundList.add(`${sortedPlugins[0]} -> ${sortedPlugins[1]}`); - return true; - } - } - - return false; - }); - - if (!debug && filter) { - log.warning( - dedent(` - !!!!!!!!!!!!!! WARNING: FILTER WITHOUT DEBUG !!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! Using the --filter flag without using --debug flag ! - ! will not allow you to see the filtered list of ! - ! the correct results. ! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - `) - ); - } - - if (debug && filter) { - log.warning( - dedent(` - !!!!!!!!!!!!!!! WARNING: FILTER FLAG IS ON !!!!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! Be aware the following results are not complete as ! - ! --filter flag has been passed. Ignore suggestions ! - ! to update the allowedList or any reports of failures ! - ! or successes. ! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - The following filter has peen passed: ${filter} - `) - ); - } - - // Log the full circular dependencies path if we are under debug flag - if (debug && circularDependenciesFullPaths.length > 0) { - log.debug( - dedent(` - !!!!!!!!!!!!!! CIRCULAR DEPENDENCIES FOUND !!!!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! Circular dependencies were found, you can find below ! - ! all the paths involved. ! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - `) - ); - log.debug(`${prettyCircular(circularDependenciesFullPaths)}\n`); - } - - // Always log the result of comparing the found list with the allowed list - const diffSet = (first: CircularDepList, second: CircularDepList) => - new Set([...first].filter((circularDep) => !second.has(circularDep))); - - const printList = (list: CircularDepList) => { - return Array.from(list) - .sort() - .reduce((listStr, entry) => { - return listStr ? `${listStr}\n'${entry}',` : `'${entry}',`; - }, ''); - }; - - const foundDifferences = diffSet(foundList, allowedList); - - if (debug && !foundDifferences.size) { - log.debug( - dedent(` - !!!!!!!!!!!!!!!!! UP TO DATE ALLOWED LIST !!!!!!!!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! The declared circular dependencies allowed list is up ! - ! to date and includes every plugin listed in above paths. ! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - The allowed circular dependencies list is (#${allowedList.size}): - ${printList(allowedList)} - `) - ); - } - - if (foundDifferences.size > 0) { - log.error( - dedent(` - !!!!!!!!!!!!!!!!! OUT OF DATE ALLOWED LIST !!!!!!!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! The declared circular dependencies allowed list is out ! - ! of date. Please run the following locally to know more: ! - ! ! - ! 'node scripts/find_plugins_with_circular_deps --debug' ! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - The allowed circular dependencies list is (#${allowedList.size}): - ${printList(allowedList)} - - The found circular dependencies list is (#${foundList.size}): - ${printList(foundList)} - - The differences between both are (#${foundDifferences.size}): - ${printList(foundDifferences)} - - FAILED: circular dependencies in the allowed list declared on the file '${__filename}' did not match the found ones. - `) - ); - - process.exit(1); - } - - log.success('None non allowed circular dependencies were found'); - }, - { - description: - 'Searches circular dependencies between plugins located under src/plugins, x-pack/plugins, examples and x-pack/examples', - flags: { - boolean: ['debug'], - string: ['filter'], - default: { - debug: false, - }, - help: ` - --debug Run the script in debug mode which enables detailed path logs for circular dependencies - --filter It will only include in the results circular deps where the plugin paths contains parts of the passed string in the filter - `, - }, - } -); diff --git a/src/dev/run_find_plugins_without_ts_refs.ts b/src/dev/run_find_plugins_without_ts_refs.ts deleted file mode 100644 index 6f444aa51b2120..00000000000000 --- a/src/dev/run_find_plugins_without_ts_refs.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import Path from 'path'; -import Fs from 'fs'; -import JSON5 from 'json5'; -import { get } from 'lodash'; -import { run } from '@kbn/dev-cli-runner'; -import { getPluginDeps, findPlugins } from './plugin_discovery'; - -interface AllOptions { - id?: string; - examples?: boolean; - extraPluginScanDirs?: string[]; -} - -run( - async ({ flags, log }) => { - const { examples = false, extraPluginScanDirs = [], id } = flags as AllOptions; - - if (!id) { - throw new Error('Plugin id required'); - } - - const pluginMap = findPlugins({ - oss: false, - examples, - extraPluginScanDirs, - }); - - const result = getPluginDeps({ - pluginMap, - id, - }); - - if (result.errors.size > 0) { - result.errors.forEach((error) => { - log.warning( - `Circular refs detected: ${[...error.stack, error.to].map((p) => `[${p}]`).join(' --> ')}` - ); - }); - } - - const notMigratedPlugins = [...result.deps].filter( - (plugin) => !isMigratedToTsProjectRefs(plugin.directory) - ); - if (notMigratedPlugins.length > 0) { - log.info( - `Dependencies haven't been migrated to TS project refs yet:\n${notMigratedPlugins - .map((p) => p.manifest.id) - .join('\n')}` - ); - } - }, - { - flags: { - boolean: ['examples'], - string: ['id'], - default: { - examples: false, - }, - allowUnexpected: false, - help: ` - --id Plugin id to perform deps search for - --examples Include examples folder - --extraPluginScanDirs Include extra scan folder - `, - }, - } -); - -function isMigratedToTsProjectRefs(dir: string): boolean { - try { - const path = Path.join(dir, 'tsconfig.json'); - const content = Fs.readFileSync(path, { encoding: 'utf8' }); - return get(JSON5.parse(content), 'compilerOptions.composite', false); - } catch (e) { - return false; - } -} diff --git a/src/dev/tsconfig.json b/src/dev/tsconfig.json index 58890fa9c38274..7ceac215ee3f22 100644 --- a/src/dev/tsconfig.json +++ b/src/dev/tsconfig.json @@ -19,7 +19,6 @@ "@kbn/dev-cli-errors", "@kbn/repo-info", "@kbn/tooling-log", - "@kbn/plugin-discovery", "@kbn/ci-stats-reporter", "@kbn/jest-serializers", "@kbn/i18n", @@ -35,5 +34,9 @@ "@kbn/find-used-node-modules", "@kbn/ts-projects", "@kbn/repo-packages", + "@kbn/picomatcher", + "@kbn/repo-file-maps", + "@kbn/get-repo-files", + "@kbn/import-locator", ] } diff --git a/src/plugins/advanced_settings/kibana.json b/src/plugins/advanced_settings/kibana.json deleted file mode 100644 index b7227b48a215b4..00000000000000 --- a/src/plugins/advanced_settings/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "advancedSettings", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["management"], - "optionalPlugins": ["home", "usageCollection"], - "requiredBundles": ["kibanaReact", "kibanaUtils"], - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - } -} diff --git a/src/plugins/advanced_settings/kibana.jsonc b/src/plugins/advanced_settings/kibana.jsonc new file mode 100644 index 00000000000000..66444263b31a8a --- /dev/null +++ b/src/plugins/advanced_settings/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/advanced-settings-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "advancedSettings", + "server": true, + "browser": true, + "requiredPlugins": [ + "management" + ], + "optionalPlugins": [ + "home", + "usageCollection" + ], + "requiredBundles": [ + "kibanaReact", + "kibanaUtils" + ] + } +} diff --git a/src/plugins/advanced_settings/public/management_app/advanced_settings.test.tsx b/src/plugins/advanced_settings/public/management_app/advanced_settings.test.tsx deleted file mode 100644 index 0bb3b011c05d84..00000000000000 --- a/src/plugins/advanced_settings/public/management_app/advanced_settings.test.tsx +++ /dev/null @@ -1,342 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React from 'react'; -import { Observable } from 'rxjs'; -import { ReactWrapper } from 'enzyme'; -import { mountWithI18nProvider, shallowWithI18nProvider } from '@kbn/test-jest-helpers'; -import dedent from 'dedent'; -import { PublicUiSettingsParams, UserProvidedValues, UiSettingsType } from '@kbn/core/public'; -import { FieldSetting } from './types'; -import { AdvancedSettings } from './advanced_settings'; -import { - notificationServiceMock, - docLinksServiceMock, - themeServiceMock, -} from '@kbn/core/public/mocks'; -import { ComponentRegistry } from '../component_registry'; -import { Search } from './components/search'; - -jest.mock('./components/field', () => ({ - Field: () => { - return 'field'; - }, -})); - -jest.mock('./components/call_outs', () => ({ - CallOuts: () => { - return 'callOuts'; - }, -})); - -jest.mock('./components/search', () => ({ - Search: () => { - return 'search'; - }, -})); - -function mockConfig() { - const defaultConfig: Partial = { - displayName: 'defaultName', - requiresPageReload: false, - isOverridden: false, - ariaName: 'ariaName', - readOnly: false, - isCustom: false, - defVal: 'defVal', - type: 'string' as UiSettingsType, - category: ['category'], - }; - - const config = { - set: (key: string, value: any) => Promise.resolve(true), - remove: (key: string) => Promise.resolve(true), - isCustom: (key: string) => false, - isOverridden: (key: string) => Boolean(config.getAll()[key].isOverridden), - getRegistered: () => ({} as Readonly>), - getUpdate$: () => - new Observable<{ - key: string; - newValue: any; - oldValue: any; - }>(), - isDeclared: (key: string) => true, - isDefault: (key: string) => true, - - getSaved$: () => - new Observable<{ - key: string; - newValue: any; - oldValue: any; - }>(), - - getUpdateErrors$: () => new Observable(), - get: (key: string, defaultOverride?: any): any => config.getAll()[key] || defaultOverride, - get$: (key: string) => new Observable(config.get(key)), - getAll: (): Readonly> => { - return { - 'test:array:setting': { - ...defaultConfig, - value: ['default_value'], - name: 'Test array setting', - description: 'Description for Test array setting', - category: ['elasticsearch'], - }, - 'test:boolean:setting': { - ...defaultConfig, - value: true, - name: 'Test boolean setting', - description: 'Description for Test boolean setting', - category: ['elasticsearch'], - }, - 'test:image:setting': { - ...defaultConfig, - value: null, - name: 'Test image setting', - description: 'Description for Test image setting', - type: 'image', - }, - 'test:json:setting': { - ...defaultConfig, - value: '{"foo": "bar"}', - name: 'Test json setting', - description: 'Description for Test json setting', - type: 'json', - }, - 'test:markdown:setting': { - ...defaultConfig, - value: '', - name: 'Test markdown setting', - description: 'Description for Test markdown setting', - type: 'markdown', - }, - 'test:number:setting': { - ...defaultConfig, - value: 5, - name: 'Test number setting', - description: 'Description for Test number setting', - }, - 'test:select:setting': { - ...defaultConfig, - value: 'orange', - name: 'Test select setting', - description: 'Description for Test select setting', - type: 'select', - options: ['apple', 'orange', 'banana'], - }, - 'test:string:setting': { - ...defaultConfig, - ...{ - value: null, - name: 'Test string setting', - description: 'Description for Test string setting', - type: 'string', - isCustom: true, - }, - }, - 'test:readonlystring:setting': { - ...defaultConfig, - ...{ - value: null, - name: 'Test readonly string setting', - description: 'Description for Test readonly string setting', - type: 'string', - readOnly: true, - }, - }, - 'test:customstring:setting': { - ...defaultConfig, - ...{ - value: null, - name: 'Test custom string setting', - description: 'Description for Test custom string setting', - type: 'string', - isCustom: true, - }, - }, - 'test:isOverridden:string': { - ...defaultConfig, - isOverridden: true, - value: 'foo', - name: 'An overridden string', - description: 'Description for overridden string', - type: 'string', - }, - 'test:isOverridden:number': { - ...defaultConfig, - isOverridden: true, - value: 1234, - name: 'An overridden number', - description: 'Description for overridden number', - type: 'number', - }, - 'test:isOverridden:json': { - ...defaultConfig, - isOverridden: true, - value: dedent` - { - "foo": "bar" - } - `, - name: 'An overridden json', - description: 'Description for overridden json', - type: 'json', - }, - 'test:isOverridden:select': { - ...defaultConfig, - isOverridden: true, - value: 'orange', - name: 'Test overridden select setting', - description: 'Description for overridden select setting', - type: 'select', - options: ['apple', 'orange', 'banana'], - }, - }; - }, - }; - return { - core: { - uiSettings: config, - }, - plugins: { - advancedSettings: { - componentRegistry: { - get: () => { - const foo: React.ComponentType = () =>
    Hello
    ; - foo.displayName = 'foo_component'; - return foo; - }, - componentType: { - PAGE_TITLE_COMPONENT: 'page_title_component', - PAGE_SUBTITLE_COMPONENT: 'page_subtitle_component', - }, - }, - }, - }, - }; -} - -describe('AdvancedSettings', () => { - const defaultQuery = 'test:string:setting'; - const mockHistory = { - listen: jest.fn(), - } as any; - const locationSpy = jest.spyOn(window, 'location', 'get'); - - afterAll(() => { - locationSpy.mockRestore(); - }); - - const mockQuery = (query = defaultQuery) => { - locationSpy.mockImplementation( - () => - ({ - search: `?query=${query}`, - } as any) - ); - }; - - it('should render specific setting if given setting key', async () => { - mockQuery(); - const component = mountWithI18nProvider( - - ); - - expect( - component - .find('Field') - .filterWhere( - (n: ReactWrapper) => (n.prop('setting') as Record).name === defaultQuery - ) - ).toHaveLength(1); - }); - - it('should should not render a custom setting', async () => { - // The manual mock for the uiSettings client returns false for isConfig, override that - const uiSettings = mockConfig().core.uiSettings; - uiSettings.isCustom = (key) => true; - - const customSettingQuery = 'test:customstring:setting'; - mockQuery(customSettingQuery); - const component = mountWithI18nProvider( - - ); - - expect( - component - .find('Field') - .filterWhere( - (n: ReactWrapper) => - (n.prop('setting') as Record).name === customSettingQuery - ) - ).toEqual({}); - }); - - it('should render read-only when saving is disabled', async () => { - mockQuery(); - const component = mountWithI18nProvider( - - ); - - expect( - component - .find('Field') - .filterWhere( - (n: ReactWrapper) => (n.prop('setting') as Record).name === defaultQuery - ) - .prop('enableSaving') - ).toBe(false); - }); - - it('should render unfiltered with query parsing error', async () => { - const badQuery = 'category:(accessibility))'; - mockQuery(badQuery); - const { toasts } = notificationServiceMock.createStartContract(); - const getComponent = () => - shallowWithI18nProvider( - - ); - - expect(getComponent).not.toThrow(); - expect(toasts.addWarning).toHaveBeenCalledTimes(1); - const component = getComponent(); - expect(component.find(Search).prop('query').text).toEqual(''); - }); -}); diff --git a/src/plugins/advanced_settings/public/management_app/advanced_settings.tsx b/src/plugins/advanced_settings/public/management_app/advanced_settings.tsx index 9aeb0d10093ba0..99f5f031ad4b19 100644 --- a/src/plugins/advanced_settings/public/management_app/advanced_settings.tsx +++ b/src/plugins/advanced_settings/public/management_app/advanced_settings.tsx @@ -7,283 +7,91 @@ */ import React, { Component } from 'react'; -import { Subscription } from 'rxjs'; -import { UnregisterCallback } from 'history'; -import { parse } from 'query-string'; import { UiCounterMetricType } from '@kbn/analytics'; -import { EuiFlexGroup, EuiFlexItem, EuiSpacer, Query } from '@elastic/eui'; -import { - IUiSettingsClient, - DocLinksStart, - ToastsStart, - ScopedHistory, - ThemeServiceStart, -} from '@kbn/core/public'; -import { url } from '@kbn/kibana-utils-plugin/public'; +import { DocLinksStart, ToastsStart, ThemeServiceStart } from '@kbn/core/public'; import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; -import { CallOuts } from './components/call_outs'; -import { Search } from './components/search'; -import { Form } from './components/form'; +import { EuiCallOut, EuiSpacer } from '@elastic/eui'; +import { IUiSettingsClient, SettingsStart } from '@kbn/core-ui-settings-browser'; import { AdvancedSettingsVoiceAnnouncement } from './components/advanced_settings_voice_announcement'; -import { ComponentRegistry } from '..'; - -import { getAriaName, toEditableConfig, fieldSorter, DEFAULT_CATEGORY } from './lib'; +import { Form } from './components/form'; import { FieldSetting, SettingsChanges } from './types'; -import { parseErrorMsg } from './components/search/search'; export const QUERY = 'query'; interface AdvancedSettingsProps { - history: ScopedHistory; enableSaving: boolean; - uiSettings: IUiSettingsClient; + settingsService: SettingsStart; + /** TODO: remove once use_ui_setting is changed to use the settings service + * https://github.com/elastic/kibana/issues/149347 */ + uiSettingsClient: IUiSettingsClient; docLinks: DocLinksStart['links']; toasts: ToastsStart; theme: ThemeServiceStart['theme$']; - componentRegistry: ComponentRegistry['start']; trackUiMetric?: (metricType: UiCounterMetricType, eventName: string | string[]) => void; -} - -interface AdvancedSettingsState { - footerQueryMatched: boolean; - query: Query; - filteredSettings: Record; + groupedSettings: GroupedSettings; + categoryCounts: Record; + categories: string[]; + visibleSettings: Record; + noResults: boolean; + clearQuery: () => void; + queryText: string; + callOutTitle: string; + callOutSubtitle: string; } type GroupedSettings = Record; -export class AdvancedSettings extends Component { - private settings: FieldSetting[]; - private groupedSettings: GroupedSettings; - private categoryCounts: Record; - private categories: string[] = []; - private uiSettingsSubscription?: Subscription; - private unregister: UnregisterCallback; - +export class AdvancedSettings extends Component { constructor(props: AdvancedSettingsProps) { super(props); - - this.settings = this.initSettings(this.props.uiSettings); - this.groupedSettings = this.initGroupedSettings(this.settings); - this.categories = this.initCategories(this.groupedSettings); - this.categoryCounts = this.initCategoryCounts(this.groupedSettings); - this.state = this.getQueryState(undefined, true); - this.unregister = this.props.history.listen(({ search }) => { - this.setState(this.getQueryState(search)); - }); - } - - init(config: IUiSettingsClient) { - this.settings = this.initSettings(config); - this.groupedSettings = this.initGroupedSettings(this.settings); - this.categories = this.initCategories(this.groupedSettings); - this.categoryCounts = this.initCategoryCounts(this.groupedSettings); - } - - initSettings = this.mapConfig; - initGroupedSettings = this.mapSettings; - initCategories(groupedSettings: GroupedSettings) { - return Object.keys(groupedSettings).sort((a, b) => { - if (a === DEFAULT_CATEGORY) return -1; - if (b === DEFAULT_CATEGORY) return 1; - if (a > b) return 1; - return a === b ? 0 : -1; - }); - } - initCategoryCounts(groupedSettings: GroupedSettings) { - return Object.keys(groupedSettings).reduce( - (counts: Record, category: string) => { - counts[category] = groupedSettings[category].length; - return counts; - }, - {} - ); } - componentDidMount() { - this.uiSettingsSubscription = this.props.uiSettings.getUpdate$().subscribe(() => { - const { query } = this.state; - this.init(this.props.uiSettings); - this.setState({ - filteredSettings: this.mapSettings(Query.execute(query, this.settings)), - }); - }); - - // scrolls to setting provided in the URL hash - const { hash } = window.location; - if (hash !== '') { - setTimeout(() => { - const id = hash.replace('#', ''); - const element = document.getElementById(id); - - let globalNavOffset = 0; - - const globalNavBars = document - .getElementById('globalHeaderBars') - ?.getElementsByClassName('euiHeader'); - - if (globalNavBars) { - Array.from(globalNavBars).forEach((navBar) => { - globalNavOffset += (navBar as HTMLDivElement).offsetHeight; - }); - } - - if (element) { - element.scrollIntoView(); - window.scrollBy(0, -globalNavOffset); // offsets scroll by height of the global nav - } - }, 0); - } - } - - componentWillUnmount() { - this.uiSettingsSubscription?.unsubscribe?.(); - this.unregister?.(); - } - - private getQuery(queryString: string, intialQuery = false): Query { - try { - const query = intialQuery ? getAriaName(queryString) : queryString ?? ''; - return Query.parse(query); - } catch ({ message }) { - this.props.toasts.addWarning({ - title: parseErrorMsg, - text: message, - }); - return Query.parse(''); - } - } - - private getQueryText(search?: string): string { - const queryParams = parse(search ?? window.location.search) ?? {}; - return (queryParams[QUERY] as string) ?? ''; - } - - private getQueryState(search?: string, intialQuery = false): AdvancedSettingsState { - const queryString = this.getQueryText(search); - const query = this.getQuery(queryString, intialQuery); - const filteredSettings = this.mapSettings(Query.execute(query, this.settings)); - const footerQueryMatched = Object.keys(filteredSettings).length > 0; - - return { - query, - filteredSettings, - footerQueryMatched, - }; - } - - setUrlQuery(q: string = '') { - const search = url.addQueryParam(window.location.search, QUERY, q); - - this.props.history.push({ - pathname: '', // remove any route query param - search, - }); - } - - mapConfig(config: IUiSettingsClient) { - const all = config.getAll(); - return Object.entries(all) - .map(([settingId, settingDef]) => { - return toEditableConfig({ - def: settingDef, - name: settingId, - value: settingDef.userValue, - isCustom: config.isCustom(settingId), - isOverridden: config.isOverridden(settingId), - }); - }) - .filter((c) => !c.readOnly) - .filter((c) => !c.isCustom) // hide any settings that aren't explicitly registered by enabled plugins. - .sort(fieldSorter); - } - - mapSettings(settings: FieldSetting[]) { - // Group settings by category - return settings.reduce((groupedSettings: GroupedSettings, setting) => { - // We will want to change this logic when we put each category on its - // own page aka allowing a setting to be included in multiple categories. - const category = setting.category[0]; - (groupedSettings[category] = groupedSettings[category] || []).push(setting); - return groupedSettings; - }, {}); - } - - onQueryChange = ({ query }: { query: Query }) => { - this.setUrlQuery(query.text); - }; - - clearQuery = () => { - this.setUrlQuery(''); - }; - - onFooterQueryMatchChange = (matched: boolean) => { - this.setState({ - footerQueryMatched: matched, - }); - }; - saveConfig = async (changes: SettingsChanges) => { const arr = Object.entries(changes).map(([key, value]) => - this.props.uiSettings.set(key, value) + this.props.uiSettingsClient.set(key, value) ); return Promise.all(arr); }; render() { - const { filteredSettings, query, footerQueryMatched } = this.state; - const componentRegistry = this.props.componentRegistry; - - const PageTitle = componentRegistry.get(componentRegistry.componentType.PAGE_TITLE_COMPONENT); - const PageSubtitle = componentRegistry.get( - componentRegistry.componentType.PAGE_SUBTITLE_COMPONENT - ); - const PageFooter = componentRegistry.get(componentRegistry.componentType.PAGE_FOOTER_COMPONENT); - return (
    - - - - - - - - - - - - - - - - + + +

    {this.props.callOutSubtitle}

    +
    + + + +
    -
    ); } diff --git a/src/plugins/advanced_settings/public/management_app/i18n_texts.ts b/src/plugins/advanced_settings/public/management_app/i18n_texts.ts new file mode 100644 index 00000000000000..d1edd5eed09e0b --- /dev/null +++ b/src/plugins/advanced_settings/public/management_app/i18n_texts.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { i18n } from '@kbn/i18n'; + +export const i18nTexts = { + defaultSpaceTabTitle: i18n.translate('advancedSettings.spaceSettingsTabTitle', { + defaultMessage: 'Space Settings', + }), + defaultSpaceCalloutTitle: i18n.translate('advancedSettings.defaultSpaceCalloutTitle', { + defaultMessage: 'Changes will affect the `default` space', + }), + defaultSpaceCalloutSubtitle: i18n.translate('advancedSettings.defaultSpaceCalloutSubtitle', { + defaultMessage: + 'Changes will only be applied to the current space. These settings are intended for advanced users, as improper configurations may adversely affect aspects of Kibana.', + }), + globalTabTitle: i18n.translate('advancedSettings.globalSettingsTabTitle', { + defaultMessage: 'Global Settings', + }), + globalCalloutTitle: i18n.translate('advancedSettings.globalCalloutTitle', { + defaultMessage: 'Changes will affect all user settings across all spaces', + }), + globalCalloutSubtitle: i18n.translate('advancedSettings.globalCalloutSubtitle', { + defaultMessage: + 'Changes will be applied to all users across all spaces. This includes both native Kibana users and single-sign on users.', + }), + advancedSettingsTitle: i18n.translate('advancedSettings.advancedSettingsLabel', { + defaultMessage: 'Advanced Settings', + }), +}; diff --git a/src/plugins/advanced_settings/public/management_app/mount_management_section.tsx b/src/plugins/advanced_settings/public/management_app/mount_management_section.tsx index e208ed80a3fdcc..bbe7c36ee8206c 100644 --- a/src/plugins/advanced_settings/public/management_app/mount_management_section.tsx +++ b/src/plugins/advanced_settings/public/management_app/mount_management_section.tsx @@ -20,7 +20,8 @@ import { ManagementAppMountParams } from '@kbn/management-plugin/public'; import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public'; import { StartServicesAccessor } from '@kbn/core/public'; -import { AdvancedSettings, QUERY } from './advanced_settings'; +import { QUERY } from './advanced_settings'; +import { Settings } from './settings'; import { ComponentRegistry } from '../types'; import './index.scss'; @@ -59,7 +60,7 @@ export async function mountManagementSection( usageCollection?: UsageCollectionSetup ) { params.setBreadcrumbs(crumb); - const [{ uiSettings, notifications, docLinks, application, chrome }] = await getStartServices(); + const [{ settings, notifications, docLinks, application, chrome }] = await getStartServices(); const canSave = application.capabilities.advancedSettings.save as boolean; const trackUiMetric = usageCollection?.reportUiCounter.bind(usageCollection, 'advanced_settings'); @@ -78,12 +79,12 @@ export async function mountManagementSection( {/* TODO: remove route param (`query`) in 7.13 */} {(props) => } - ({ + Field: () => { + return 'field'; + }, +})); + +jest.mock('./components/call_outs', () => ({ + CallOuts: () => { + return 'callOuts'; + }, +})); + +jest.mock('./components/search', () => ({ + Search: () => { + return 'search'; + }, +})); + +function mockConfig() { + const defaultConfig: Partial = { + displayName: 'defaultName', + requiresPageReload: false, + isOverridden: false, + ariaName: 'ariaName', + readOnly: false, + isCustom: false, + defVal: 'defVal', + type: 'string' as UiSettingsType, + category: ['category'], + }; + + const config = { + set: (key: string, value: any) => Promise.resolve(true), + remove: (key: string) => Promise.resolve(true), + isCustom: (key: string) => false, + isOverridden: (key: string) => Boolean(config.getAll()[key].isOverridden), + getRegistered: () => ({} as Readonly>), + getUpdate$: () => + new Observable<{ + key: string; + newValue: any; + oldValue: any; + }>(), + isDeclared: (key: string) => true, + isDefault: (key: string) => true, + + getSaved$: () => + new Observable<{ + key: string; + newValue: any; + oldValue: any; + }>(), + + getUpdateErrors$: () => new Observable(), + get: (key: string, defaultOverride?: any): any => config.getAll()[key] || defaultOverride, + get$: (key: string) => new Observable(config.get(key)), + getAll: (): Readonly> => { + return { + 'test:array:setting': { + ...defaultConfig, + value: ['default_value'], + name: 'Test array setting', + description: 'Description for Test array setting', + category: ['elasticsearch'], + }, + 'test:boolean:setting': { + ...defaultConfig, + value: true, + name: 'Test boolean setting', + description: 'Description for Test boolean setting', + category: ['elasticsearch'], + }, + 'test:image:setting': { + ...defaultConfig, + value: null, + name: 'Test image setting', + description: 'Description for Test image setting', + type: 'image', + }, + 'test:json:setting': { + ...defaultConfig, + value: '{"foo": "bar"}', + name: 'Test json setting', + description: 'Description for Test json setting', + type: 'json', + }, + 'test:markdown:setting': { + ...defaultConfig, + value: '', + name: 'Test markdown setting', + description: 'Description for Test markdown setting', + type: 'markdown', + }, + 'test:number:setting': { + ...defaultConfig, + value: 5, + name: 'Test number setting', + description: 'Description for Test number setting', + }, + 'test:select:setting': { + ...defaultConfig, + value: 'orange', + name: 'Test select setting', + description: 'Description for Test select setting', + type: 'select', + options: ['apple', 'orange', 'banana'], + }, + 'test:string:setting': { + ...defaultConfig, + ...{ + value: null, + name: 'Test string setting', + description: 'Description for Test string setting', + type: 'string', + isCustom: true, + }, + }, + 'test:readonlystring:setting': { + ...defaultConfig, + ...{ + value: null, + name: 'Test readonly string setting', + description: 'Description for Test readonly string setting', + type: 'string', + readOnly: true, + }, + }, + 'test:customstring:setting': { + ...defaultConfig, + ...{ + value: null, + name: 'Test custom string setting', + description: 'Description for Test custom string setting', + type: 'string', + isCustom: true, + }, + }, + 'test:isOverridden:string': { + ...defaultConfig, + isOverridden: true, + value: 'foo', + name: 'An overridden string', + description: 'Description for overridden string', + type: 'string', + }, + 'test:isOverridden:number': { + ...defaultConfig, + isOverridden: true, + value: 1234, + name: 'An overridden number', + description: 'Description for overridden number', + type: 'number', + }, + 'test:isOverridden:json': { + ...defaultConfig, + isOverridden: true, + value: dedent` + { + "foo": "bar" + } + `, + name: 'An overridden json', + description: 'Description for overridden json', + type: 'json', + }, + 'test:isOverridden:select': { + ...defaultConfig, + isOverridden: true, + value: 'orange', + name: 'Test overridden select setting', + description: 'Description for overridden select setting', + type: 'select', + options: ['apple', 'orange', 'banana'], + }, + }; + }, + }; + return { + core: { + settings: { + client: config, + globalClient: settingsServiceMock.createStartContract().globalClient, + }, + }, + plugins: { + advancedSettings: { + componentRegistry: { + get: () => { + const foo: React.ComponentType = () =>
    Hello
    ; + foo.displayName = 'foo_component'; + return foo; + }, + componentType: { + PAGE_TITLE_COMPONENT: 'page_title_component', + PAGE_SUBTITLE_COMPONENT: 'page_subtitle_component', + }, + }, + }, + }, + }; +} + +describe('Settings', () => { + const defaultQuery = 'test:string:setting'; + const mockHistory = { + listen: jest.fn(), + } as any; + const locationSpy = jest.spyOn(window, 'location', 'get'); + + afterAll(() => { + locationSpy.mockRestore(); + }); + + const mockQuery = (query = defaultQuery) => { + locationSpy.mockImplementation( + () => + ({ + search: `?query=${query}`, + } as any) + ); + }; + + it('should render specific setting if given setting key', async () => { + mockQuery(); + const component = mountWithI18nProvider( + + ); + + expect( + component + .find('Field') + .filterWhere( + (n: ReactWrapper) => (n.prop('setting') as Record).name === defaultQuery + ) + ).toHaveLength(1); + }); + + it('should should not render a custom setting', async () => { + // The manual mock for the uiSettings client returns false for isConfig, override that + const uiSettings = mockConfig().core.settings.client; + uiSettings.isCustom = (key) => true; + + const customSettingQuery = 'test:customstring:setting'; + mockQuery(customSettingQuery); + const component = mountWithI18nProvider( + + ); + + expect(component.find('Field')).not.toBeNull(); + expect( + component + .find('Field') + .filterWhere( + (n: ReactWrapper) => + (n.prop('setting') as Record).name === customSettingQuery + ) + ).toEqual({}); + }); + + it('should render read-only when saving is disabled', async () => { + mockQuery(); + const component = mountWithI18nProvider( + + ); + + expect(component.find('Field')).not.toBeNull(); + expect( + component + .find('Field') + .filterWhere( + (n: ReactWrapper) => (n.prop('setting') as Record).name === defaultQuery + ) + .prop('enableSaving') + ).toBe(false); + }); + + it('should render unfiltered with query parsing error', async () => { + const badQuery = 'category:(accessibility))'; + mockQuery(badQuery); + const { toasts } = notificationServiceMock.createStartContract(); + + const component = mountWithI18nProvider( + + ); + + expect(toasts.addWarning).toHaveBeenCalledTimes(1); + expect(component.find(Search).prop('query').text).toEqual(''); + }); +}); diff --git a/src/plugins/advanced_settings/public/management_app/settings.tsx b/src/plugins/advanced_settings/public/management_app/settings.tsx new file mode 100644 index 00000000000000..e3f9ad5991ed93 --- /dev/null +++ b/src/plugins/advanced_settings/public/management_app/settings.tsx @@ -0,0 +1,346 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import React, { useState, useCallback, useMemo } from 'react'; +import useEffectOnce from 'react-use/lib/useEffectOnce'; +import { + EuiSpacer, + Query, + EuiNotificationBadge, + EuiTab, + EuiTabs, + EuiFlexGroup, + EuiFlexItem, + EuiText, +} from '@elastic/eui'; +import { ScopedHistory } from '@kbn/core-application-browser'; +import { SettingsStart } from '@kbn/core-ui-settings-browser'; +import { DocLinksStart } from '@kbn/core-doc-links-browser'; +import { ToastsStart } from '@kbn/core-notifications-browser'; +import { ThemeServiceStart } from '@kbn/core-theme-browser'; +import { UiCounterMetricType } from '@kbn/analytics'; +import { url } from '@kbn/kibana-utils-plugin/common'; +import { parse } from 'query-string'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; +import { mapConfig, mapSettings, initCategoryCounts, initCategories } from './settings_helper'; +import { parseErrorMsg } from './components/search/search'; +import { AdvancedSettings, QUERY } from './advanced_settings'; +import { ComponentRegistry } from '..'; +import { Search } from './components/search'; +import { FieldSetting } from './types'; +import { i18nTexts } from './i18n_texts'; +import { getAriaName } from './lib'; + +interface AdvancedSettingsState { + footerQueryMatched: boolean; + query: Query; + filteredSettings: Record>; +} + +export type GroupedSettings = Record; + +interface Props { + history: ScopedHistory; + enableSaving: boolean; + settingsService: SettingsStart; + docLinks: DocLinksStart['links']; + toasts: ToastsStart; + theme: ThemeServiceStart['theme$']; + componentRegistry: ComponentRegistry['start']; + trackUiMetric?: (metricType: UiCounterMetricType, eventName: string | string[]) => void; +} + +const SPACE_SETTINGS_ID = 'space-settings'; +const GLOBAL_SETTINGS_ID = 'global-settings'; + +export const Settings = (props: Props) => { + const { componentRegistry, history, settingsService, ...rest } = props; + const uiSettings = settingsService.client; + const globalUiSettings = settingsService.globalClient; + + const [settings, setSettings] = useState(mapConfig(uiSettings)); + const [globalSettings, setGlobalSettings] = useState(mapConfig(globalUiSettings)); + + const [groupedSettings, setGroupedSettings] = useState>({ + namespace: mapSettings(settings), + global: mapSettings(globalSettings), + }); + + const [categoryCounts, setCategoryCounts] = useState< + Record> + >({ + namespace: initCategoryCounts(groupedSettings.namespace), + global: initCategoryCounts(groupedSettings.global), + }); + + const [categories, setCategories] = useState>({ + namespace: initCategories(groupedSettings.namespace), + global: initCategories(groupedSettings.global), + }); + + const [queryState, setQueryState] = useState({ + filteredSettings: { + global: {}, + namespace: {}, + }, + footerQueryMatched: false, + query: Query.parse(''), + }); + + const setTimeoutCallback = () => { + const { hash } = window.location; + const id = hash.replace('#', ''); + const element = document.getElementById(id); + + let globalNavOffset = 0; + + const globalNavBars = document + .getElementById('globalHeaderBars') + ?.getElementsByClassName('euiHeader'); + + if (globalNavBars) { + Array.from(globalNavBars).forEach((navBar) => { + globalNavOffset += (navBar as HTMLDivElement).offsetHeight; + }); + } + + if (element) { + element.scrollIntoView(); + window.scrollBy(0, -globalNavOffset); // offsets scroll by height of the global nav + } + }; + + useEffectOnce(() => { + setQueryState(getQueryState(undefined, true)); + + const subscription = (mappedSettings: FieldSetting[], scope: UiSettingsScope) => { + const grouped = { ...groupedSettings }; + grouped[scope] = mapSettings(mappedSettings); + setGroupedSettings(grouped); + + const updatedCategories = { ...categories }; + updatedCategories[scope] = initCategories(groupedSettings[scope]); + setCategories(updatedCategories); + + const updatedCategoryCounts = { ...categoryCounts }; + updatedCategoryCounts[scope] = initCategoryCounts(groupedSettings[scope]); + setCategoryCounts(updatedCategoryCounts); + const updatedQueryState = { ...getQueryState(undefined, true) }; + updatedQueryState.filteredSettings[scope] = mapSettings( + Query.execute(updatedQueryState.query, mappedSettings) + ); + setQueryState(updatedQueryState); + }; + + const uiSettingsSubscription = uiSettings.getUpdate$().subscribe(() => { + const updatedSettings = mapConfig(uiSettings); + setSettings(updatedSettings); + subscription(updatedSettings, 'namespace'); + }); + const globalUiSettingsSubscription = globalUiSettings.getUpdate$().subscribe(() => { + const mappedSettings = mapConfig(globalUiSettings); + setGlobalSettings(mappedSettings); + subscription(mappedSettings, 'global'); + }); + if (window.location.hash !== '') { + setTimeout(() => setTimeoutCallback(), 0); + } + const unregister = history.listen(({ search }) => { + setQueryState(getQueryState(search)); + }); + return () => { + unregister(); + uiSettingsSubscription.unsubscribe(); + globalUiSettingsSubscription.unsubscribe(); + }; + }); + + const setUrlQuery = useCallback( + (query: string = '') => { + const search = url.addQueryParam(window.location.search, QUERY, query); + + history.push({ + pathname: '', // remove any route query param + search, + }); + }, + [history] + ); + + const searchCategories = useMemo(() => { + return categories.global.concat(categories.namespace); + }, [categories.global, categories.namespace]); + + const callOutTitle = (scope: UiSettingsScope) => { + if (scope === 'namespace') { + return i18nTexts.defaultSpaceCalloutTitle; + } + return i18nTexts.globalCalloutTitle; + }; + + const callOutSubtitle = (scope: UiSettingsScope) => { + if (scope === 'namespace') { + return i18nTexts.defaultSpaceCalloutSubtitle; + } + return i18nTexts.globalCalloutSubtitle; + }; + + const getClientForScope = (scope: UiSettingsScope) => { + if (scope === 'namespace') { + return uiSettings; + } + return globalUiSettings; + }; + + const renderAdvancedSettings = (scope: UiSettingsScope) => { + return ( + setUrlQuery('')} + noResults={!queryState.footerQueryMatched} + queryText={queryState.query.text} + callOutTitle={callOutTitle(scope)} + callOutSubtitle={callOutSubtitle(scope)} + settingsService={settingsService} + uiSettingsClient={getClientForScope(scope)} + {...rest} + /> + ); + }; + + const tabs = [ + { + id: SPACE_SETTINGS_ID, + name: i18nTexts.defaultSpaceTabTitle, + append: + queryState.query.text !== '' ? ( + + {Object.keys(queryState.filteredSettings.namespace).length} + + ) : null, + content: renderAdvancedSettings('namespace'), + }, + { + id: GLOBAL_SETTINGS_ID, + name: i18nTexts.globalTabTitle, + append: + queryState.query.text !== '' ? ( + + {Object.keys(queryState.filteredSettings.global).length + + Number(queryState.footerQueryMatched)} + + ) : null, + content: renderAdvancedSettings('global'), + }, + ]; + + const [selectedTabId, setSelectedTabId] = useState(SPACE_SETTINGS_ID); + + const selectedTabContent = tabs.find((obj) => obj.id === selectedTabId)?.content; + + const onSelectedTabChanged = (id: string) => { + setSelectedTabId(id); + }; + + const renderTabs = () => { + return tabs.map((tab, index) => ( + onSelectedTabChanged(tab.id)} + isSelected={tab.id === selectedTabId} + append={tab.append} + > + {tab.name} + + )); + }; + + const getQuery = (queryString: string, initialQuery = false): Query => { + try { + const query = initialQuery ? getAriaName(queryString) : queryString ?? ''; + return Query.parse(query); + } catch ({ message }) { + props.toasts.addWarning({ + title: parseErrorMsg, + text: message, + }); + return Query.parse(''); + } + }; + + const getQueryText = (search?: string): string => { + const queryParams = parse(search ?? window.location.search) ?? {}; + return (queryParams[QUERY] as string) ?? ''; + }; + + const getQueryState = (search?: string, intialQuery = false): AdvancedSettingsState => { + const queryString = getQueryText(search); + const query = getQuery(queryString, intialQuery); + const filteredSettings = { + namespace: mapSettings(Query.execute(query, settings)), + global: mapSettings(Query.execute(query, globalSettings)), + }; + const footerQueryMatched = Object.keys(filteredSettings.namespace).length > 0; + + return { + query, + filteredSettings, + footerQueryMatched, + }; + }; + + const onQueryChange = useCallback( + ({ query }: { query: Query }) => { + setUrlQuery(query.text); + }, + [setUrlQuery] + ); + + const onFooterQueryMatchChange = useCallback( + (matched: boolean) => { + setQueryState({ ...queryState, footerQueryMatched: matched }); + }, + [queryState] + ); + + const PageTitle = ( + +

    {i18nTexts.advancedSettingsTitle}

    +
    + ); + const PageFooter = componentRegistry.get(componentRegistry.componentType.PAGE_FOOTER_COMPONENT); + + return ( +
    + + {PageTitle} + + + + + + {renderTabs()} + {selectedTabContent} + {selectedTabId === GLOBAL_SETTINGS_ID ? ( + + ) : null} +
    + ); +}; diff --git a/src/plugins/advanced_settings/public/management_app/settings_helper.test.ts b/src/plugins/advanced_settings/public/management_app/settings_helper.test.ts new file mode 100644 index 00000000000000..7f745db9b786bd --- /dev/null +++ b/src/plugins/advanced_settings/public/management_app/settings_helper.test.ts @@ -0,0 +1,153 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { UiSettingsType, UserProvidedValues } from '@kbn/core-ui-settings-common'; +import { PublicUiSettingsParams } from '@kbn/core/public'; +import { Observable } from 'rxjs'; +import { FieldSetting } from './types'; +import { mapConfig, mapSettings, initCategoryCounts, initCategories } from './settings_helper'; + +describe('Settings Helper', () => { + const defaultConfig: Partial = { + displayName: 'defaultName', + requiresPageReload: false, + isOverridden: false, + ariaName: 'ariaName', + readOnly: false, + isCustom: false, + defVal: 'defVal', + type: 'string' as UiSettingsType, + category: ['category'], + }; + + const arraySetting = { + 'test:array:setting': { + ...defaultConfig, + value: ['default_value'], + name: 'Test array setting', + description: 'Description for Test array setting', + category: ['elasticsearch'], + }, + }; + + const booleanSetting = { + 'test:boolean:setting': { + ...defaultConfig, + value: true, + name: 'Test boolean setting', + description: 'Description for Test boolean setting', + category: ['elasticsearch'], + }, + }; + + const imageSetting = { + 'test:image:setting': { + ...defaultConfig, + value: null, + name: 'Test image setting', + description: 'Description for Test image setting', + type: 'image' as UiSettingsType, + }, + }; + + const arrayFieldSetting = { + ariaName: 'Test array setting', + category: ['elasticsearch'], + defVal: ['default_value'], + description: 'Description for Test array setting', + displayName: 'Test array setting', + isCustom: false, + isOverridden: false, + name: 'test:array:setting', + readOnly: false, + requiresPageReload: false, + type: 'string' as UiSettingsType, + }; + + const booleanFieldSetting = { + ariaName: 'Test boolean setting', + category: ['elasticsearch'], + defVal: true, + description: 'Description for Test boolean setting', + displayName: 'Test boolean setting', + isCustom: false, + isOverridden: false, + name: 'test:boolean:setting', + readOnly: false, + requiresPageReload: false, + type: 'string' as UiSettingsType, + }; + + const imageFieldSetting = { + ariaName: 'Test image setting', + category: ['category'], + defVal: null, + description: 'Description for Test image setting', + displayName: 'Test image setting', + isCustom: false, + isOverridden: false, + name: 'test:image:setting', + readOnly: false, + requiresPageReload: false, + type: 'image' as UiSettingsType, + }; + + const config = { + set: (key: string, value: any) => Promise.resolve(true), + remove: (key: string) => Promise.resolve(true), + isCustom: (key: string) => false, + isOverridden: (key: string) => Boolean(config.getAll()[key].isOverridden), + getRegistered: () => ({} as Readonly>), + getUpdate$: () => + new Observable<{ + key: string; + newValue: any; + oldValue: any; + }>(), + isDeclared: (key: string) => true, + isDefault: (key: string) => true, + + getSaved$: () => + new Observable<{ + key: string; + newValue: any; + oldValue: any; + }>(), + + getUpdateErrors$: () => new Observable(), + get: (key: string, defaultOverride?: any): any => config.getAll()[key] || defaultOverride, + get$: (key: string) => new Observable(config.get(key)), + getAll: (): Readonly> => { + return { + ...arraySetting, + ...booleanSetting, + ...imageSetting, + }; + }, + }; + + it('mapConfig', () => { + expect(mapConfig(config)).toEqual([arrayFieldSetting, booleanFieldSetting, imageFieldSetting]); + }); + + it('mapSettings, initCategoryCounts and initCategories', () => { + const fieldSetting1: FieldSetting = { ...arrayFieldSetting, value: ['a', 'b', 'c'] }; + const fieldSetting2: FieldSetting = { ...booleanFieldSetting, value: false }; + const fieldSetting3: FieldSetting = { ...imageFieldSetting, value: 'imageSrc' }; + const mapped = mapSettings([fieldSetting1, fieldSetting2, fieldSetting3]); + expect(Object.keys(mapped).sort()).toEqual(['category', 'elasticsearch'].sort()); + expect(mapped.category.length).toEqual(1); + expect(mapped.elasticsearch.length).toEqual(2); + + const categoryCounts = initCategoryCounts(mapped); + expect(categoryCounts).toEqual({ category: 1, elasticsearch: 2 }); + + const categories = initCategories(mapped); + expect(categories).toEqual(['category', 'elasticsearch']); + }); +}); diff --git a/src/plugins/advanced_settings/public/management_app/settings_helper.ts b/src/plugins/advanced_settings/public/management_app/settings_helper.ts new file mode 100644 index 00000000000000..15921f2dd77c4a --- /dev/null +++ b/src/plugins/advanced_settings/public/management_app/settings_helper.ts @@ -0,0 +1,56 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { IUiSettingsClient } from '@kbn/core-ui-settings-browser'; +import { DEFAULT_CATEGORY, fieldSorter, toEditableConfig } from './lib'; +import { FieldSetting } from './types'; +import { GroupedSettings } from './settings'; + +export const mapConfig = (config: IUiSettingsClient) => { + const all = config.getAll(); + return Object.entries(all) + .map(([settingId, settingDef]) => { + return toEditableConfig({ + def: settingDef, + name: settingId, + value: settingDef.userValue, + isCustom: config.isCustom(settingId), + isOverridden: config.isOverridden(settingId), + }); + }) + .filter((c) => !c.readOnly) + .filter((c) => !c.isCustom) // hide any settings that aren't explicitly registered by enabled plugins. + .sort(fieldSorter); +}; + +export const mapSettings = (fieldSettings: FieldSetting[]) => { + // Group settings by category + return fieldSettings.reduce((grouped: GroupedSettings, setting) => { + // We will want to change this logic when we put each category on its + // own page aka allowing a setting to be included in multiple categories. + const category = setting.category[0]; + (grouped[category] = grouped[category] || []).push(setting); + return grouped; + }, {}); +}; + +export const initCategoryCounts = (grouped: GroupedSettings) => { + return Object.keys(grouped).reduce((counts: Record, category: string) => { + counts[category] = grouped[category].length; + return counts; + }, {}); +}; + +export const initCategories = (grouped: GroupedSettings) => { + return Object.keys(grouped).sort((a, b) => { + if (a === DEFAULT_CATEGORY) return -1; + if (b === DEFAULT_CATEGORY) return 1; + if (a > b) return 1; + return a === b ? 0 : -1; + }); +}; diff --git a/src/plugins/advanced_settings/tsconfig.json b/src/plugins/advanced_settings/tsconfig.json index 17a6f098a61857..e5a2db29d0fdbd 100644 --- a/src/plugins/advanced_settings/tsconfig.json +++ b/src/plugins/advanced_settings/tsconfig.json @@ -20,6 +20,13 @@ "@kbn/i18n-react", "@kbn/expect", "@kbn/monaco", + "@kbn/core-ui-settings-browser-mocks", + "@kbn/core-application-browser", + "@kbn/core-ui-settings-browser", + "@kbn/core-doc-links-browser", + "@kbn/core-notifications-browser", + "@kbn/core-theme-browser", + "@kbn/core-ui-settings-common", ], "exclude": [ "target/**/*", diff --git a/src/plugins/bfetch/kibana.json b/src/plugins/bfetch/kibana.json deleted file mode 100644 index 6d37d68ffd584f..00000000000000 --- a/src/plugins/bfetch/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "bfetch", - "version": "kibana", - "server": true, - "ui": true, - "requiredBundles": ["kibanaUtils"], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back." -} diff --git a/src/plugins/bfetch/kibana.jsonc b/src/plugins/bfetch/kibana.jsonc new file mode 100644 index 00000000000000..97d9571238296e --- /dev/null +++ b/src/plugins/bfetch/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/bfetch-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back.", + "plugin": { + "id": "bfetch", + "server": true, + "browser": true, + "requiredBundles": [ + "kibanaUtils" + ] + } +} diff --git a/src/plugins/chart_expressions/expression_gauge/kibana.json b/src/plugins/chart_expressions/expression_gauge/kibana.json deleted file mode 100755 index 1de64537db116b..00000000000000 --- a/src/plugins/chart_expressions/expression_gauge/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "expressionGauge", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart.", - "server": true, - "ui": true, - "requiredPlugins": ["expressions", "fieldFormats", "charts", "visualizations", "presentationUtil", "data"], - "requiredBundles": ["kibanaUtils", "kibanaReact"], - "optionalPlugins": ["usageCollection"], - "extraPublicDirs": ["common"] -} diff --git a/src/plugins/chart_expressions/expression_gauge/kibana.jsonc b/src/plugins/chart_expressions/expression_gauge/kibana.jsonc new file mode 100644 index 00000000000000..83cff7fcbd6ec5 --- /dev/null +++ b/src/plugins/chart_expressions/expression_gauge/kibana.jsonc @@ -0,0 +1,29 @@ +{ + "type": "plugin", + "id": "@kbn/expression-gauge-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart.", + "plugin": { + "id": "expressionGauge", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "fieldFormats", + "charts", + "visualizations", + "presentationUtil", + "data" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/chart_expressions/expression_heatmap/kibana.json b/src/plugins/chart_expressions/expression_heatmap/kibana.json deleted file mode 100755 index d0c6acc2a23e51..00000000000000 --- a/src/plugins/chart_expressions/expression_heatmap/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "expressionHeatmap", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart.", - "server": true, - "ui": true, - "requiredPlugins": ["expressions", "fieldFormats", "charts", "visualizations", "presentationUtil", "data"], - "requiredBundles": ["kibanaUtils", "kibanaReact"], - "optionalPlugins": ["usageCollection"], - "extraPublicDirs": ["common"] -} diff --git a/src/plugins/chart_expressions/expression_heatmap/kibana.jsonc b/src/plugins/chart_expressions/expression_heatmap/kibana.jsonc new file mode 100644 index 00000000000000..ed382277069e3b --- /dev/null +++ b/src/plugins/chart_expressions/expression_heatmap/kibana.jsonc @@ -0,0 +1,29 @@ +{ + "type": "plugin", + "id": "@kbn/expression-heatmap-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart.", + "plugin": { + "id": "expressionHeatmap", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "fieldFormats", + "charts", + "visualizations", + "presentationUtil", + "data" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/chart_expressions/expression_legacy_metric/kibana.json b/src/plugins/chart_expressions/expression_legacy_metric/kibana.json deleted file mode 100755 index d3badb13dd0bbc..00000000000000 --- a/src/plugins/chart_expressions/expression_legacy_metric/kibana.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "expressionLegacyMetricVis", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Adds a `metric` renderer and function to the expression plugin. The renderer will display the `legacy metric` chart.", - "server": true, - "ui": true, - "requiredPlugins": [ - "expressions", - "fieldFormats", - "charts", - "visualizations", - "presentationUtil" - ], - "requiredBundles": ["kibanaUtils", "kibanaReact"], - "optionalPlugins": ["usageCollection"] -} diff --git a/src/plugins/chart_expressions/expression_legacy_metric/kibana.jsonc b/src/plugins/chart_expressions/expression_legacy_metric/kibana.jsonc new file mode 100644 index 00000000000000..41a9c965a66da8 --- /dev/null +++ b/src/plugins/chart_expressions/expression_legacy_metric/kibana.jsonc @@ -0,0 +1,25 @@ +{ + "type": "plugin", + "id": "@kbn/expression-legacy-metric-vis-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Adds a `metric` renderer and function to the expression plugin. The renderer will display the `legacy metric` chart.", + "plugin": { + "id": "expressionLegacyMetricVis", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "fieldFormats", + "charts", + "visualizations", + "presentationUtil" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/src/plugins/chart_expressions/expression_metric/kibana.json b/src/plugins/chart_expressions/expression_metric/kibana.json deleted file mode 100755 index ed3ef2173f2009..00000000000000 --- a/src/plugins/chart_expressions/expression_metric/kibana.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "expressionMetricVis", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Adds a `metric` renderer and function to the expression plugin. The renderer will display the `metric` chart.", - "server": true, - "ui": true, - "requiredPlugins": [ - "expressions", - "fieldFormats", - "charts", - "visualizations", - "presentationUtil" - ], - "requiredBundles": ["kibanaUtils", "kibanaReact"], - "optionalPlugins": ["usageCollection"] -} diff --git a/src/plugins/chart_expressions/expression_metric/kibana.jsonc b/src/plugins/chart_expressions/expression_metric/kibana.jsonc new file mode 100644 index 00000000000000..087583e6fff6fd --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/kibana.jsonc @@ -0,0 +1,25 @@ +{ + "type": "plugin", + "id": "@kbn/expression-metric-vis-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Adds a `metric` renderer and function to the expression plugin. The renderer will display the `metric` chart.", + "plugin": { + "id": "expressionMetricVis", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "fieldFormats", + "charts", + "visualizations", + "presentationUtil" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/src/plugins/chart_expressions/expression_partition_vis/kibana.json b/src/plugins/chart_expressions/expression_partition_vis/kibana.json deleted file mode 100755 index 17d6e40aaf1b07..00000000000000 --- a/src/plugins/chart_expressions/expression_partition_vis/kibana.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "expressionPartitionVis", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Expression Partition Visualization plugin adds a `partitionVis` renderer and `pieVis`, `mosaicVis`, `treemapVis`, `waffleVis` functions to the expression plugin. The renderer will display the `pie`, `waffle`, `treemap` and `mosaic` charts.", - "server": true, - "ui": true, - "extraPublicDirs": [ - "common" - ], - "requiredPlugins": ["charts", "data", "expressions", "visualizations", "fieldFormats", "presentationUtil"], - "requiredBundles": ["kibanaUtils", "kibanaReact"], - "optionalPlugins": ["usageCollection"] -} diff --git a/src/plugins/chart_expressions/expression_partition_vis/kibana.jsonc b/src/plugins/chart_expressions/expression_partition_vis/kibana.jsonc new file mode 100644 index 00000000000000..0e4c6ca43c3224 --- /dev/null +++ b/src/plugins/chart_expressions/expression_partition_vis/kibana.jsonc @@ -0,0 +1,29 @@ +{ + "type": "plugin", + "id": "@kbn/expression-partition-vis-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Expression Partition Visualization plugin adds a `partitionVis` renderer and `pieVis`, `mosaicVis`, `treemapVis`, `waffleVis` functions to the expression plugin. The renderer will display the `pie`, `waffle`, `treemap` and `mosaic` charts.", + "plugin": { + "id": "expressionPartitionVis", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "data", + "expressions", + "visualizations", + "fieldFormats", + "presentationUtil" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/chart_expressions/expression_tagcloud/kibana.json b/src/plugins/chart_expressions/expression_tagcloud/kibana.json deleted file mode 100755 index b90c1f6e71c7ad..00000000000000 --- a/src/plugins/chart_expressions/expression_tagcloud/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "expressionTagcloud", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["expressions", "visualizations", "charts", "presentationUtil", "fieldFormats"], - "requiredBundles": ["kibanaUtils", "kibanaReact"], - "optionalPlugins": ["usageCollection"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Expression Tagcloud plugin adds a `tagcloud` renderer and function to the expression plugin. The renderer will display the `Wordcloud` chart." -} diff --git a/src/plugins/chart_expressions/expression_tagcloud/kibana.jsonc b/src/plugins/chart_expressions/expression_tagcloud/kibana.jsonc new file mode 100644 index 00000000000000..e68af8e25c99f5 --- /dev/null +++ b/src/plugins/chart_expressions/expression_tagcloud/kibana.jsonc @@ -0,0 +1,25 @@ +{ + "type": "plugin", + "id": "@kbn/expression-tagcloud-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Expression Tagcloud plugin adds a `tagcloud` renderer and function to the expression plugin. The renderer will display the `Wordcloud` chart.", + "plugin": { + "id": "expressionTagcloud", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "visualizations", + "charts", + "presentationUtil", + "fieldFormats" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/src/plugins/chart_expressions/expression_xy/kibana.json b/src/plugins/chart_expressions/expression_xy/kibana.json deleted file mode 100755 index 5c37e14072ed5c..00000000000000 --- a/src/plugins/chart_expressions/expression_xy/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "expressionXY", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart.", - "server": true, - "ui": true, - "requiredPlugins": ["expressions", "charts", "data", "fieldFormats", "uiActions", "eventAnnotation", "visualizations"], - "requiredBundles": ["kibanaReact"], - "optionalPlugins": ["usageCollection"] -} diff --git a/src/plugins/chart_expressions/expression_xy/kibana.jsonc b/src/plugins/chart_expressions/expression_xy/kibana.jsonc new file mode 100644 index 00000000000000..b26aa60b30ab4b --- /dev/null +++ b/src/plugins/chart_expressions/expression_xy/kibana.jsonc @@ -0,0 +1,26 @@ +{ + "type": "plugin", + "id": "@kbn/expression-xy-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart.", + "plugin": { + "id": "expressionXY", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "charts", + "data", + "fieldFormats", + "uiActions", + "eventAnnotation", + "visualizations" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/chart_expressions/expression_xy/public/expression_renderers/xy_chart_renderer.tsx b/src/plugins/chart_expressions/expression_xy/public/expression_renderers/xy_chart_renderer.tsx index 4719ccc92cd8db..c2561191deb9af 100644 --- a/src/plugins/chart_expressions/expression_xy/public/expression_renderers/xy_chart_renderer.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/expression_renderers/xy_chart_renderer.tsx @@ -278,7 +278,7 @@ export const getXyChartRenderer = ({ uiState={handlers.uiState as PersistedState} renderComplete={renderComplete} /> -
    {' '} +
    , domNode diff --git a/src/plugins/charts/kibana.json b/src/plugins/charts/kibana.json deleted file mode 100644 index db8143b15f330e..00000000000000 --- a/src/plugins/charts/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "charts", - "version": "kibana", - "server": true, - "ui": true, - "extraPublicDirs": ["common"], - "requiredPlugins": ["expressions"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - } -} diff --git a/src/plugins/charts/kibana.jsonc b/src/plugins/charts/kibana.jsonc new file mode 100644 index 00000000000000..6b0e952969329d --- /dev/null +++ b/src/plugins/charts/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/charts-plugin", + "owner": "@elastic/kibana-visualizations", + "plugin": { + "id": "charts", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/console/kibana.json b/src/plugins/console/kibana.json deleted file mode 100644 index 0387b909704b62..00000000000000 --- a/src/plugins/console/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "console", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "configPath": ["console"], - "requiredPlugins": ["devTools", "share"], - "optionalPlugins": ["usageCollection", "home"], - "requiredBundles": ["esUiShared", "kibanaReact", "kibanaUtils"] -} diff --git a/src/plugins/console/kibana.jsonc b/src/plugins/console/kibana.jsonc new file mode 100644 index 00000000000000..3bb291ee048fb6 --- /dev/null +++ b/src/plugins/console/kibana.jsonc @@ -0,0 +1,26 @@ +{ + "type": "plugin", + "id": "@kbn/console-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "console", + "server": true, + "browser": true, + "configPath": [ + "console" + ], + "requiredPlugins": [ + "devTools", + "share" + ], + "optionalPlugins": [ + "usageCollection", + "home" + ], + "requiredBundles": [ + "esUiShared", + "kibanaReact", + "kibanaUtils" + ] + } +} diff --git a/src/plugins/console/public/application/components/welcome_panel.tsx b/src/plugins/console/public/application/components/welcome_panel.tsx index 9b2741e4c30e09..a17d17eac8930e 100644 --- a/src/plugins/console/public/application/components/welcome_panel.tsx +++ b/src/plugins/console/public/application/components/welcome_panel.tsx @@ -9,7 +9,6 @@ import React from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; -// @ts-ignore import { EuiFlyout, EuiFlyoutHeader, diff --git a/src/plugins/console/public/application/containers/console_history/history_viewer.tsx b/src/plugins/console/public/application/containers/console_history/history_viewer.tsx index 11f4b0a99a9938..f4af349744531e 100644 --- a/src/plugins/console/public/application/containers/console_history/history_viewer.tsx +++ b/src/plugins/console/public/application/containers/console_history/history_viewer.tsx @@ -12,7 +12,6 @@ import { i18n } from '@kbn/i18n'; import { DevToolsSettings } from '../../../services'; import { subscribeResizeChecker } from '../editor/legacy/subscribe_console_resize_checker'; -// @ts-ignore import * as InputMode from '../../models/legacy_core_editor/mode/input'; const inputMode = new InputMode.Mode(); import * as editor from '../../models/legacy_core_editor'; diff --git a/src/plugins/console/public/application/containers/editor/editor.tsx b/src/plugins/console/public/application/containers/editor/editor.tsx index 93c11aa53c6021..788039a2dc6066 100644 --- a/src/plugins/console/public/application/containers/editor/editor.tsx +++ b/src/plugins/console/public/application/containers/editor/editor.tsx @@ -6,14 +6,14 @@ * Side Public License, v 1. */ -import React, { useCallback, memo } from 'react'; +import React, { useCallback, memo, useEffect, useState } from 'react'; import { debounce } from 'lodash'; import { EuiProgress } from '@elastic/eui'; import { EditorContentSpinner } from '../../components'; import { Panel, PanelsContainer } from '..'; import { Editor as EditorUI, EditorOutput } from './legacy/console_editor'; -import { StorageKeys } from '../../../services'; +import { getAutocompleteInfo, StorageKeys } from '../../../services'; import { useEditorReadContext, useServicesContext, useRequestReadContext } from '../../contexts'; import type { SenseEditor } from '../../models'; @@ -33,6 +33,15 @@ export const Editor = memo(({ loading, setEditorInstance }: Props) => { const { currentTextObject } = useEditorReadContext(); const { requestInFlight } = useRequestReadContext(); + const [fetchingMappings, setFetchingMappings] = useState(false); + + useEffect(() => { + const subscription = getAutocompleteInfo().mapping.isLoading$.subscribe(setFetchingMappings); + return () => { + subscription.unsubscribe(); + }; + }, []); + const [firstPanelWidth, secondPanelWidth] = storage.get(StorageKeys.WIDTH, [ INITIAL_PANEL_WIDTH, INITIAL_PANEL_WIDTH, @@ -50,7 +59,7 @@ export const Editor = memo(({ loading, setEditorInstance }: Props) => { return ( <> - {requestInFlight ? ( + {requestInFlight || fetchingMappings ? (
    diff --git a/src/plugins/console/public/application/index.tsx b/src/plugins/console/public/application/index.tsx index 1cf9a54210973b..92d875b9db2a99 100644 --- a/src/plugins/console/public/application/index.tsx +++ b/src/plugins/console/public/application/index.tsx @@ -69,6 +69,8 @@ export function renderApp({ const api = createApi({ http }); const esHostService = createEsHostService({ api }); + autocompleteInfo.mapping.setup(http, settings); + render( diff --git a/src/plugins/console/public/application/models/legacy_core_editor/legacy_core_editor.ts b/src/plugins/console/public/application/models/legacy_core_editor/legacy_core_editor.ts index 5def8a696df2ff..f8e411fabbb550 100644 --- a/src/plugins/console/public/application/models/legacy_core_editor/legacy_core_editor.ts +++ b/src/plugins/console/public/application/models/legacy_core_editor/legacy_core_editor.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import ace from 'brace'; +import ace, { type Annotation } from 'brace'; import { Editor as IAceEditor, IEditSession as IAceEditSession } from 'brace'; import $ from 'jquery'; import { @@ -21,8 +21,6 @@ import { import { AceTokensProvider } from '../../../lib/ace_token_provider'; import * as curl from '../sense_editor/curl'; import smartResize from './smart_resize'; - -// @ts-ignore import * as InputMode from './mode/input'; const _AceRange = ace.acequire('ace/range').Range; @@ -40,6 +38,9 @@ export class LegacyCoreEditor implements CoreEditor { this.editor.setShowPrintMargin(false); const session = this.editor.getSession(); + // @ts-expect-error + // ignore ts error here due to type definition mistake in brace for setMode(mode: string): void; + // this method accepts string or SyntaxMode which is an object. See https://github.com/ajaxorg/ace/blob/13dc911dbc0ea31ca343d5744b3f472767458fc3/ace.d.ts#L467 session.setMode(new InputMode.Mode()); (session as unknown as { setFoldStyle: (style: string) => void }).setFoldStyle('markbeginend'); session.setTabSize(2); @@ -402,8 +403,7 @@ export class LegacyCoreEditor implements CoreEditor { getCompletions: ( // eslint-disable-next-line @typescript-eslint/naming-convention DO_NOT_USE_1: IAceEditor, - // eslint-disable-next-line @typescript-eslint/naming-convention - DO_NOT_USE_2: IAceEditSession, + aceEditSession: IAceEditSession, pos: { row: number; column: number }, prefix: string, callback: (...args: unknown[]) => void @@ -412,7 +412,30 @@ export class LegacyCoreEditor implements CoreEditor { lineNumber: pos.row + 1, column: pos.column + 1, }; - autocompleter(position, prefix, callback); + + const getAnnotationControls = () => { + let customAnnotation: Annotation; + return { + setAnnotation(text: string) { + const annotations = aceEditSession.getAnnotations(); + customAnnotation = { + text, + row: pos.row, + column: pos.column, + type: 'warning', + }; + + aceEditSession.setAnnotations([...annotations, customAnnotation]); + }, + removeAnnotation() { + aceEditSession.setAnnotations( + aceEditSession.getAnnotations().filter((a: Annotation) => a !== customAnnotation) + ); + }, + }; + }; + + autocompleter(position, prefix, callback, getAnnotationControls()); }, }, ]); diff --git a/src/plugins/console/public/application/models/legacy_core_editor/mode/input.js b/src/plugins/console/public/application/models/legacy_core_editor/mode/input.js deleted file mode 100644 index 6c58036717e74c..00000000000000 --- a/src/plugins/console/public/application/models/legacy_core_editor/mode/input.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import ace from 'brace'; -import { workerModule } from './worker'; -import { ScriptMode } from './script'; - -const oop = ace.acequire('ace/lib/oop'); -const TextMode = ace.acequire('ace/mode/text').Mode; - -const MatchingBraceOutdent = ace.acequire('ace/mode/matching_brace_outdent').MatchingBraceOutdent; -const CstyleBehaviour = ace.acequire('ace/mode/behaviour/cstyle').CstyleBehaviour; -const CStyleFoldMode = ace.acequire('ace/mode/folding/cstyle').FoldMode; -const WorkerClient = ace.acequire('ace/worker/worker_client').WorkerClient; -const AceTokenizer = ace.acequire('ace/tokenizer').Tokenizer; - -import { InputHighlightRules } from './input_highlight_rules'; - -export function Mode() { - this.$tokenizer = new AceTokenizer(new InputHighlightRules().getRules()); - this.$outdent = new MatchingBraceOutdent(); - this.$behaviour = new CstyleBehaviour(); - this.foldingRules = new CStyleFoldMode(); - this.createModeDelegates({ - 'script-': ScriptMode, - }); -} -oop.inherits(Mode, TextMode); - -(function () { - this.getCompletions = function () { - // autocomplete is done by the autocomplete module. - return []; - }; - - this.getNextLineIndent = function (state, line, tab) { - let indent = this.$getIndent(line); - - if (state !== 'string_literal') { - const match = line.match(/^.*[\{\(\[]\s*$/); - if (match) { - indent += tab; - } - } - - return indent; - }; - - this.checkOutdent = function (state, line, input) { - return this.$outdent.checkOutdent(line, input); - }; - - this.autoOutdent = function (state, doc, row) { - this.$outdent.autoOutdent(doc, row); - }; - this.createWorker = function (session) { - const worker = new WorkerClient(['ace', 'sense_editor'], workerModule, 'SenseWorker'); - worker.attachToDocument(session.getDocument()); - worker.on('error', function (e) { - session.setAnnotations([e.data]); - }); - - worker.on('ok', function (anno) { - session.setAnnotations(anno.data); - }); - - return worker; - }; -}.call(Mode.prototype)); diff --git a/src/plugins/console/public/application/models/legacy_core_editor/mode/input.ts b/src/plugins/console/public/application/models/legacy_core_editor/mode/input.ts new file mode 100644 index 00000000000000..f27f6f1845020c --- /dev/null +++ b/src/plugins/console/public/application/models/legacy_core_editor/mode/input.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import ace from 'brace'; +import { workerModule } from './worker'; +import { ScriptMode } from './script'; + +const TextMode = ace.acequire('ace/mode/text').Mode; + +const MatchingBraceOutdent = ace.acequire('ace/mode/matching_brace_outdent').MatchingBraceOutdent; +const CstyleBehaviour = ace.acequire('ace/mode/behaviour/cstyle').CstyleBehaviour; +const CStyleFoldMode = ace.acequire('ace/mode/folding/cstyle').FoldMode; +const WorkerClient = ace.acequire('ace/worker/worker_client').WorkerClient; +const AceTokenizer = ace.acequire('ace/tokenizer').Tokenizer; + +import { InputHighlightRules } from './input_highlight_rules'; + +export class Mode extends TextMode { + constructor() { + super(); + this.$tokenizer = new AceTokenizer(new InputHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); + this.createModeDelegates({ + 'script-': ScriptMode, + }); + } +} + +(function (this: Mode) { + this.getCompletions = function () { + // autocomplete is done by the autocomplete module. + return []; + }; + + this.getNextLineIndent = function (state: string, line: string, tab: string) { + let indent = this.$getIndent(line); + + if (state !== 'string_literal') { + const match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function (state: unknown, line: string, input: string) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function (state: unknown, doc: string, row: string) { + this.$outdent.autoOutdent(doc, row); + }; + this.createWorker = function (session: { + getDocument: () => string; + setAnnotations: (arg0: unknown) => void; + }) { + const worker = new WorkerClient(['ace', 'sense_editor'], workerModule, 'SenseWorker'); + worker.attachToDocument(session.getDocument()); + worker.on('error', function (e: { data: unknown }) { + session.setAnnotations([e.data]); + }); + + worker.on('ok', function (anno: { data: unknown }) { + session.setAnnotations(anno.data); + }); + + return worker; + }; +}.call(Mode.prototype)); diff --git a/src/plugins/console/public/application/models/legacy_core_editor/mode/input_highlight_rules.js b/src/plugins/console/public/application/models/legacy_core_editor/mode/input_highlight_rules.js deleted file mode 100644 index bb3efc08346942..00000000000000 --- a/src/plugins/console/public/application/models/legacy_core_editor/mode/input_highlight_rules.js +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import ace from 'brace'; -import { addXJsonToRules } from '@kbn/ace'; - -export function addEOL(tokens, reg, nextIfEOL, normalNext) { - if (typeof reg === 'object') { - reg = reg.source; - } - return [ - { token: tokens.concat(['whitespace']), regex: reg + '(\\s*)$', next: nextIfEOL }, - { token: tokens, regex: reg, next: normalNext }, - ]; -} - -export function mergeTokens(/* ... */) { - return [].concat.apply([], arguments); -} - -const oop = ace.acequire('ace/lib/oop'); -const { TextHighlightRules } = ace.acequire('ace/mode/text_highlight_rules'); - -export function InputHighlightRules() { - // regexp must not have capturing parentheses. Use (?:) instead. - // regexps are ordered -> the first match is used - /*jshint -W015 */ - this.$rules = { - 'start-sql': [ - { token: 'whitespace', regex: '\\s+' }, - { token: 'paren.lparen', regex: '{', next: 'json-sql', push: true }, - { regex: '', next: 'start' }, - ], - start: mergeTokens( - [ - { token: 'warning', regex: '#!.*$' }, - { include: 'comments' }, - { token: 'paren.lparen', regex: '{', next: 'json', push: true }, - ], - addEOL(['method'], /([a-zA-Z]+)/, 'start', 'method_sep'), - [ - { - token: 'whitespace', - regex: '\\s+', - }, - { - token: 'text', - regex: '.+?', - }, - ] - ), - method_sep: mergeTokens( - addEOL( - ['whitespace', 'url.protocol_host', 'url.slash'], - /(\s+)(https?:\/\/[^?\/,]+)(\/)/, - 'start', - 'url' - ), - addEOL(['whitespace', 'variable.template'], /(\s+)(\${\w+})/, 'start', 'url'), - addEOL(['whitespace', 'url.protocol_host'], /(\s+)(https?:\/\/[^?\/,]+)/, 'start', 'url'), - addEOL(['whitespace', 'url.slash'], /(\s+)(\/)/, 'start', 'url'), - addEOL(['whitespace'], /(\s+)/, 'start', 'url') - ), - url: mergeTokens( - addEOL(['variable.template'], /(\${\w+})/, 'start'), - addEOL(['url.part'], /(_sql)/, 'start-sql', 'url-sql'), - addEOL(['url.part'], /([^?\/,\s]+)/, 'start'), - addEOL(['url.comma'], /(,)/, 'start'), - addEOL(['url.slash'], /(\/)/, 'start'), - addEOL(['url.questionmark'], /(\?)/, 'start', 'urlParams'), - addEOL(['whitespace', 'comment.punctuation', 'comment.line'], /(\s+)(\/\/)(.*$)/, 'start') - ), - urlParams: mergeTokens( - addEOL(['url.param', 'url.equal', 'variable.template'], /([^&=]+)(=)(\${\w+})/, 'start'), - addEOL(['url.param', 'url.equal', 'url.value'], /([^&=]+)(=)([^&]*)/, 'start'), - addEOL(['url.param'], /([^&=]+)/, 'start'), - addEOL(['url.amp'], /(&)/, 'start'), - addEOL(['whitespace', 'comment.punctuation', 'comment.line'], /(\s+)(\/\/)(.*$)/, 'start') - ), - 'url-sql': mergeTokens( - addEOL(['url.part'], /([^?\/,\s]+)/, 'start-sql'), - addEOL(['url.comma'], /(,)/, 'start-sql'), - addEOL(['url.slash'], /(\/)/, 'start-sql'), - addEOL(['url.questionmark'], /(\?)/, 'start-sql', 'urlParams-sql') - ), - 'urlParams-sql': mergeTokens( - addEOL(['url.param', 'url.equal', 'url.value'], /([^&=]+)(=)([^&]*)/, 'start-sql'), - addEOL(['url.param'], /([^&=]+)/, 'start-sql'), - addEOL(['url.amp'], /(&)/, 'start-sql') - ), - /** - * Each key in this.$rules considered to be a state in state machine. Regular expressions define the tokens for the current state, as well as the transitions into another state. - * See for more details https://cloud9-sdk.readme.io/docs/highlighting-rules#section-defining-states - * * - * Define a state for comments, these comment rules then can be included in other states. E.g. in 'start' and 'json' states by including { include: 'comments' } - * This will avoid duplicating the same rules in other states - */ - comments: [ - { - // Capture a line comment, indicated by # - token: ['comment.punctuation', 'comment.line'], - regex: /(#)(.*$)/, - }, - { - // Begin capturing a block comment, indicated by /* - token: 'comment.punctuation', - regex: /\/\*/, - push: [ - { - // Finish capturing a block comment, indicated by */ - token: 'comment.punctuation', - regex: /\*\//, - next: 'pop', - }, - { - defaultToken: 'comment.block', - }, - ], - }, - { - // Capture a line comment, indicated by // - token: ['comment.punctuation', 'comment.line'], - regex: /(\/\/)(.*$)/, - }, - ], - }; - - addXJsonToRules(this); - // Add comment rules to json rule set - this.$rules.json.unshift({ include: 'comments' }); - - this.$rules.json.unshift({ token: 'variable.template', regex: /("\${\w+}")/ }); - - if (this.constructor === InputHighlightRules) { - this.normalizeRules(); - } -} - -oop.inherits(InputHighlightRules, TextHighlightRules); diff --git a/src/plugins/console/public/application/models/legacy_core_editor/mode/input_highlight_rules.ts b/src/plugins/console/public/application/models/legacy_core_editor/mode/input_highlight_rules.ts new file mode 100644 index 00000000000000..acf4b091c6b0fe --- /dev/null +++ b/src/plugins/console/public/application/models/legacy_core_editor/mode/input_highlight_rules.ts @@ -0,0 +1,148 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import ace from 'brace'; +import { addXJsonToRules } from '@kbn/ace'; + +type Token = + | string + | { token?: string; regex?: string; next?: string; push?: boolean; include?: string }; + +export function addEOL( + tokens: Token[], + reg: string | RegExp, + nextIfEOL: string, + normalNext?: string +) { + if (typeof reg === 'object') { + reg = reg.source; + } + return [ + { token: tokens.concat(['whitespace']), regex: reg + '(\\s*)$', next: nextIfEOL }, + { token: tokens, regex: reg, next: normalNext }, + ]; +} + +export const mergeTokens = (...args: any[]) => [].concat.apply([], args); + +const TextHighlightRules = ace.acequire('ace/mode/text_highlight_rules').TextHighlightRules; + +export class InputHighlightRules extends TextHighlightRules { + constructor() { + super(); + this.$rules = { + 'start-sql': [ + { token: 'whitespace', regex: '\\s+' }, + { token: 'paren.lparen', regex: '{', next: 'json-sql', push: true }, + { regex: '', next: 'start' }, + ], + start: mergeTokens( + [ + { token: 'warning', regex: '#!.*$' }, + { include: 'comments' }, + { token: 'paren.lparen', regex: '{', next: 'json', push: true }, + ], + addEOL(['method'], /([a-zA-Z]+)/, 'start', 'method_sep'), + [ + { + token: 'whitespace', + regex: '\\s+', + }, + { + token: 'text', + regex: '.+?', + }, + ] + ), + method_sep: mergeTokens( + addEOL( + ['whitespace', 'url.protocol_host', 'url.slash'], + /(\s+)(https?:\/\/[^?\/,]+)(\/)/, + 'start', + 'url' + ), + addEOL(['whitespace', 'variable.template'], /(\s+)(\${\w+})/, 'start', 'url'), + addEOL(['whitespace', 'url.protocol_host'], /(\s+)(https?:\/\/[^?\/,]+)/, 'start', 'url'), + addEOL(['whitespace', 'url.slash'], /(\s+)(\/)/, 'start', 'url'), + addEOL(['whitespace'], /(\s+)/, 'start', 'url') + ), + url: mergeTokens( + addEOL(['variable.template'], /(\${\w+})/, 'start'), + addEOL(['url.part'], /(_sql)/, 'start-sql', 'url-sql'), + addEOL(['url.part'], /([^?\/,\s]+)/, 'start'), + addEOL(['url.comma'], /(,)/, 'start'), + addEOL(['url.slash'], /(\/)/, 'start'), + addEOL(['url.questionmark'], /(\?)/, 'start', 'urlParams'), + addEOL(['whitespace', 'comment.punctuation', 'comment.line'], /(\s+)(\/\/)(.*$)/, 'start') + ), + urlParams: mergeTokens( + addEOL(['url.param', 'url.equal', 'variable.template'], /([^&=]+)(=)(\${\w+})/, 'start'), + addEOL(['url.param', 'url.equal', 'url.value'], /([^&=]+)(=)([^&]*)/, 'start'), + addEOL(['url.param'], /([^&=]+)/, 'start'), + addEOL(['url.amp'], /(&)/, 'start'), + addEOL(['whitespace', 'comment.punctuation', 'comment.line'], /(\s+)(\/\/)(.*$)/, 'start') + ), + 'url-sql': mergeTokens( + addEOL(['url.part'], /([^?\/,\s]+)/, 'start-sql'), + addEOL(['url.comma'], /(,)/, 'start-sql'), + addEOL(['url.slash'], /(\/)/, 'start-sql'), + addEOL(['url.questionmark'], /(\?)/, 'start-sql', 'urlParams-sql') + ), + 'urlParams-sql': mergeTokens( + addEOL(['url.param', 'url.equal', 'url.value'], /([^&=]+)(=)([^&]*)/, 'start-sql'), + addEOL(['url.param'], /([^&=]+)/, 'start-sql'), + addEOL(['url.amp'], /(&)/, 'start-sql') + ), + /** + * Each key in this.$rules considered to be a state in state machine. Regular expressions define the tokens for the current state, as well as the transitions into another state. + * See for more details https://cloud9-sdk.readme.io/docs/highlighting-rules#section-defining-states + * * + * Define a state for comments, these comment rules then can be included in other states. E.g. in 'start' and 'json' states by including { include: 'comments' } + * This will avoid duplicating the same rules in other states + */ + comments: [ + { + // Capture a line comment, indicated by # + token: ['comment.punctuation', 'comment.line'], + regex: /(#)(.*$)/, + }, + { + // Begin capturing a block comment, indicated by /* + token: 'comment.punctuation', + regex: /\/\*/, + push: [ + { + // Finish capturing a block comment, indicated by */ + token: 'comment.punctuation', + regex: /\*\//, + next: 'pop', + }, + { + defaultToken: 'comment.block', + }, + ], + }, + { + // Capture a line comment, indicated by // + token: ['comment.punctuation', 'comment.line'], + regex: /(\/\/)(.*$)/, + }, + ], + }; + + addXJsonToRules(this, 'json'); + // Add comment rules to json rule set + this.$rules.json.unshift({ include: 'comments' }); + + this.$rules.json.unshift({ token: 'variable.template', regex: /("\${\w+}")/ }); + + if (this instanceof InputHighlightRules) { + this.normalizeRules(); + } + } +} diff --git a/src/plugins/console/public/application/models/legacy_core_editor/mode/script.js b/src/plugins/console/public/application/models/legacy_core_editor/mode/script.js deleted file mode 100644 index 17b892ec4e61d4..00000000000000 --- a/src/plugins/console/public/application/models/legacy_core_editor/mode/script.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import ace from 'brace'; -import { ScriptHighlightRules } from '@kbn/ace'; - -const oop = ace.acequire('ace/lib/oop'); -const TextMode = ace.acequire('ace/mode/text').Mode; -const MatchingBraceOutdent = ace.acequire('ace/mode/matching_brace_outdent').MatchingBraceOutdent; -const CstyleBehaviour = ace.acequire('ace/mode/behaviour/cstyle').CstyleBehaviour; -const CStyleFoldMode = ace.acequire('ace/mode/folding/cstyle').FoldMode; -ace.acequire('ace/tokenizer'); - -export function ScriptMode() { - this.$outdent = new MatchingBraceOutdent(); - this.$behaviour = new CstyleBehaviour(); - this.foldingRules = new CStyleFoldMode(); -} - -oop.inherits(ScriptMode, TextMode); - -(function () { - this.HighlightRules = ScriptHighlightRules; - - this.getNextLineIndent = function (state, line, tab) { - let indent = this.$getIndent(line); - const match = line.match(/^.*[\{\[]\s*$/); - if (match) { - indent += tab; - } - - return indent; - }; - - this.checkOutdent = function (state, line, input) { - return this.$outdent.checkOutdent(line, input); - }; - - this.autoOutdent = function (state, doc, row) { - this.$outdent.autoOutdent(doc, row); - }; -}.call(ScriptMode.prototype)); diff --git a/src/plugins/console/public/application/models/legacy_core_editor/mode/script.ts b/src/plugins/console/public/application/models/legacy_core_editor/mode/script.ts new file mode 100644 index 00000000000000..401a739e6a28c2 --- /dev/null +++ b/src/plugins/console/public/application/models/legacy_core_editor/mode/script.ts @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import ace from 'brace'; +import { ScriptHighlightRules } from '@kbn/ace'; + +const TextMode = ace.acequire('ace/mode/text').Mode; +const MatchingBraceOutdent = ace.acequire('ace/mode/matching_brace_outdent').MatchingBraceOutdent; +const CstyleBehaviour = ace.acequire('ace/mode/behaviour/cstyle').CstyleBehaviour; +const CStyleFoldMode = ace.acequire('ace/mode/folding/cstyle').FoldMode; +ace.acequire('ace/tokenizer'); + +export class ScriptMode extends TextMode { + constructor() { + super(); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); + } +} + +(function (this: ScriptMode) { + this.HighlightRules = ScriptHighlightRules; + + this.getNextLineIndent = function (state: unknown, line: string, tab: string) { + let indent = this.$getIndent(line); + const match = line.match(/^.*[\{\[]\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function (state: unknown, line: string, input: string) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function (state: unknown, doc: string, row: string) { + this.$outdent.autoOutdent(doc, row); + }; +}.call(ScriptMode.prototype)); diff --git a/src/plugins/console/public/application/models/legacy_core_editor/mode/worker/worker.js b/src/plugins/console/public/application/models/legacy_core_editor/mode/worker/worker.js index c7938437164f77..fa03617f5824f5 100644 --- a/src/plugins/console/public/application/models/legacy_core_editor/mode/worker/worker.js +++ b/src/plugins/console/public/application/models/legacy_core_editor/mode/worker/worker.js @@ -47,8 +47,7 @@ (hence the redefining of everything). It is based on the javascript mode from the brace distro. */ - -(function (window) { +function init(window) { function resolveModuleId(id, paths) { for (let testPath = id, tail = ''; testPath;) { let alias = paths[testPath]; @@ -235,7 +234,8 @@ } }; } -}(this)), +} +init(this); ace.define('ace/lib/oop', ['require', 'exports', 'module'], function ( acequire, exports diff --git a/src/plugins/console/public/application/models/sense_editor/integration.test.js b/src/plugins/console/public/application/models/sense_editor/integration.test.js index 434deb5456cafc..08912871052ba0 100644 --- a/src/plugins/console/public/application/models/sense_editor/integration.test.js +++ b/src/plugins/console/public/application/models/sense_editor/integration.test.js @@ -13,6 +13,9 @@ import $ from 'jquery'; import * as kb from '../../../lib/kb/kb'; import { AutocompleteInfo, setAutocompleteInfo } from '../../../services'; +import { httpServiceMock } from '@kbn/core-http-browser-mocks'; +import { StorageMock } from '../../../services/storage.mock'; +import { SettingsMock } from '../../../services/settings.mock'; describe('Integration', () => { let senseEditor; @@ -27,6 +30,15 @@ describe('Integration', () => { $(senseEditor.getCoreEditor().getContainer()).show(); senseEditor.autocomplete._test.removeChangeListener(); autocompleteInfo = new AutocompleteInfo(); + + const httpMock = httpServiceMock.createSetupContract(); + const storage = new StorageMock({}, 'test'); + const settingsMock = new SettingsMock(storage); + + settingsMock.getAutocomplete.mockReturnValue({ fields: true }); + + autocompleteInfo.mapping.setup(httpMock, settingsMock); + setAutocompleteInfo(autocompleteInfo); }); afterEach(() => { @@ -164,7 +176,8 @@ describe('Integration', () => { ac('textBoxPosition', posCompare); ac('rangeToReplace', rangeCompare); done(); - } + }, + { setAnnotation: () => {}, removeAnnotation: () => {} } ); }); }); diff --git a/src/plugins/console/public/application/models/sense_editor/sense_editor.ts b/src/plugins/console/public/application/models/sense_editor/sense_editor.ts index ac2205205ab465..f42cce75a4c549 100644 --- a/src/plugins/console/public/application/models/sense_editor/sense_editor.ts +++ b/src/plugins/console/public/application/models/sense_editor/sense_editor.ts @@ -12,8 +12,6 @@ import { XJson } from '@kbn/es-ui-shared-plugin/public'; import RowParser from '../../../lib/row_parser'; import * as utils from '../../../lib/utils'; - -// @ts-ignore import { constructUrl } from '../../../lib/es/es'; import { CoreEditor, Position, Range } from '../../../types'; diff --git a/src/plugins/console/public/lib/autocomplete/autocomplete.ts b/src/plugins/console/public/lib/autocomplete/autocomplete.ts index 4e3770779f5809..71cca789264590 100644 --- a/src/plugins/console/public/lib/autocomplete/autocomplete.ts +++ b/src/plugins/console/public/lib/autocomplete/autocomplete.ts @@ -15,7 +15,6 @@ import { getGlobalAutocompleteComponents, getTopLevelUrlCompleteComponents, getUnmatchedEndpointComponents, - // @ts-ignore } from '../kb/kb'; import { createTokenIterator } from '../../application/factories'; @@ -24,10 +23,8 @@ import type RowParser from '../row_parser'; import * as utils from '../utils'; -// @ts-ignore import { populateContext } from './engine'; import type { AutoCompleteContext, DataAutoCompleteRulesOneOf, ResultTerm } from './types'; -// @ts-ignore import { URL_PATH_END_MARKER } from './components'; let lastEvaluatedToken: Token | null = null; @@ -593,7 +590,10 @@ export default function ({ return null; } - if (!context.autoCompleteSet) { + const isMappingsFetchingInProgress = + context.autoCompleteType === 'body' && !!context.asyncResultsState?.isLoading; + + if (!context.autoCompleteSet && !isMappingsFetchingInProgress) { return null; // nothing to do.. } @@ -1123,80 +1123,112 @@ export default function ({ } } + /** + * Extracts terms from the autocomplete set. + * @param context + */ + function getTerms(context: AutoCompleteContext, autoCompleteSet: ResultTerm[]) { + const terms = _.map( + autoCompleteSet.filter((term) => Boolean(term) && term.name != null), + function (term) { + if (typeof term !== 'object') { + term = { + name: term, + }; + } else { + term = _.clone(term); + } + const defaults: { + value?: string; + meta: string; + score: number; + context: AutoCompleteContext; + completer?: { insertMatch: (v: unknown) => void }; + } = { + value: term.name, + meta: 'API', + score: 0, + context, + }; + // we only need our custom insertMatch behavior for the body + if (context.autoCompleteType === 'body') { + defaults.completer = { + insertMatch() { + return applyTerm(term); + }, + }; + } + return _.defaults(term, defaults); + } + ); + + terms.sort(function ( + t1: { score: number; name?: string }, + t2: { score: number; name?: string } + ) { + /* score sorts from high to low */ + if (t1.score > t2.score) { + return -1; + } + if (t1.score < t2.score) { + return 1; + } + /* names sort from low to high */ + if (t1.name! < t2.name!) { + return -1; + } + if (t1.name === t2.name) { + return 0; + } + return 1; + }); + + return terms; + } + + function getSuggestions(terms: ResultTerm[]) { + return _.map(terms, function (t, i) { + t.insertValue = t.insertValue || t.value; + t.value = '' + t.value; // normalize to strings + t.score = -i; + return t; + }); + } + function getCompletions( position: Position, prefix: string, - callback: (e: Error | null, result: ResultTerm[] | null) => void + callback: (e: Error | null, result: ResultTerm[] | null) => void, + annotationControls: { + setAnnotation: (text: string) => void; + removeAnnotation: () => void; + } ) { try { const context = getAutoCompleteContext(editor, position); + if (!context) { callback(null, []); } else { - const terms = _.map( - context.autoCompleteSet!.filter((term) => Boolean(term) && term.name != null), - function (term) { - if (typeof term !== 'object') { - term = { - name: term, - }; - } else { - term = _.clone(term); - } - const defaults: { - value?: string; - meta: string; - score: number; - context: AutoCompleteContext; - completer?: { insertMatch: (v: unknown) => void }; - } = { - value: term.name, - meta: 'API', - score: 0, - context, - }; - // we only need our custom insertMatch behavior for the body - if (context.autoCompleteType === 'body') { - defaults.completer = { - insertMatch() { - return applyTerm(term); - }, - }; - } - return _.defaults(term, defaults); - } - ); - - terms.sort(function ( - t1: { score: number; name?: string }, - t2: { score: number; name?: string } - ) { - /* score sorts from high to low */ - if (t1.score > t2.score) { - return -1; - } - if (t1.score < t2.score) { - return 1; - } - /* names sort from low to high */ - if (t1.name! < t2.name!) { - return -1; - } - if (t1.name === t2.name) { - return 0; - } - return 1; - }); - - callback( - null, - _.map(terms, function (t, i) { - t.insertValue = t.insertValue || t.value; - t.value = '' + t.value; // normalize to strings - t.score = -i; - return t; - }) - ); + if (!context.asyncResultsState?.isLoading) { + const terms = getTerms(context, context.autoCompleteSet!); + const suggestions = getSuggestions(terms); + callback(null, suggestions); + } + + if (context.asyncResultsState) { + annotationControls.setAnnotation( + i18n.translate('console.autocomplete.fieldsFetchingAnnotation', { + defaultMessage: 'Fields fetching is in progress', + }) + ); + + context.asyncResultsState.results.then((r) => { + const asyncSuggestions = getSuggestions(getTerms(context, r)); + callback(null, asyncSuggestions); + annotationControls.removeAnnotation(); + }); + } } } catch (e) { // eslint-disable-next-line no-console @@ -1216,8 +1248,12 @@ export default function ({ _editSession: unknown, pos: Position, prefix: string, - callback: (e: Error | null, result: ResultTerm[] | null) => void - ) => getCompletions(pos, prefix, callback), + callback: (e: Error | null, result: ResultTerm[] | null) => void, + annotationControls: { + setAnnotation: (text: string) => void; + removeAnnotation: () => void; + } + ) => getCompletions(pos, prefix, callback, annotationControls), addReplacementInfoToContext, addChangeListener: () => editor.on('changeSelection', editorChangeListener), removeChangeListener: () => editor.off('changeSelection', editorChangeListener), diff --git a/src/plugins/console/public/lib/autocomplete/components/full_request_component.ts b/src/plugins/console/public/lib/autocomplete/components/full_request_component.ts index 64aefa7b4a1217..33af4e71abec14 100644 --- a/src/plugins/console/public/lib/autocomplete/components/full_request_component.ts +++ b/src/plugins/console/public/lib/autocomplete/components/full_request_component.ts @@ -6,11 +6,10 @@ * Side Public License, v 1. */ -// @ts-ignore import { ConstantComponent } from './constant_component'; export class FullRequestComponent extends ConstantComponent { - private readonly name: string; + readonly name: string; constructor(name: string, parent: unknown, private readonly template: string) { super(name, parent); this.name = name; diff --git a/src/plugins/console/public/lib/autocomplete/get_endpoint_from_position.ts b/src/plugins/console/public/lib/autocomplete/get_endpoint_from_position.ts index fe24492df0e7b0..579e652615487f 100644 --- a/src/plugins/console/public/lib/autocomplete/get_endpoint_from_position.ts +++ b/src/plugins/console/public/lib/autocomplete/get_endpoint_from_position.ts @@ -10,9 +10,7 @@ import { CoreEditor, Position } from '../../types'; import { getCurrentMethodAndTokenPaths } from './autocomplete'; import type RowParser from '../row_parser'; -// @ts-ignore import { getTopLevelUrlCompleteComponents } from '../kb/kb'; -// @ts-ignore import { populateContext } from './engine'; export function getEndpointFromPosition(editor: CoreEditor, pos: Position, parser: RowParser) { diff --git a/src/plugins/console/public/lib/autocomplete/types.ts b/src/plugins/console/public/lib/autocomplete/types.ts index 15d32e6426a6ca..a151c13f46c20b 100644 --- a/src/plugins/console/public/lib/autocomplete/types.ts +++ b/src/plugins/console/public/lib/autocomplete/types.ts @@ -13,6 +13,7 @@ export interface ResultTerm { insertValue?: string; name?: string; value?: string; + score?: number; } export interface DataAutoCompleteRulesOneOf { @@ -25,6 +26,14 @@ export interface DataAutoCompleteRulesOneOf { export interface AutoCompleteContext { autoCompleteSet?: null | ResultTerm[]; + /** + * Stores a state for async results, e.g. fields suggestions based on the mappings definition. + */ + asyncResultsState?: { + isLoading: boolean; + lastFetched: number | null; + results: Promise; + }; endpoint?: null | { paramsAutocomplete: { getTopLevelComponents: (method?: string | null) => unknown; diff --git a/src/plugins/console/public/lib/autocomplete_entities/autocomplete_entities.test.js b/src/plugins/console/public/lib/autocomplete_entities/autocomplete_entities.test.js index 5349538799d9b9..f856ef5750a17e 100644 --- a/src/plugins/console/public/lib/autocomplete_entities/autocomplete_entities.test.js +++ b/src/plugins/console/public/lib/autocomplete_entities/autocomplete_entities.test.js @@ -9,6 +9,9 @@ import '../../application/models/sense_editor/sense_editor.test.mocks'; import { setAutocompleteInfo, AutocompleteInfo } from '../../services'; import { expandAliases } from './expand_aliases'; +import { httpServiceMock } from '@kbn/core-http-browser-mocks'; +import { SettingsMock } from '../../services/settings.mock'; +import { StorageMock } from '../../services/storage.mock'; function fc(f1, f2) { if (f1.name < f2.name) { @@ -32,10 +35,20 @@ describe('Autocomplete entities', () => { let componentTemplate; let dataStream; let autocompleteInfo; + let settingsMock; + let httpMock; + beforeEach(() => { autocompleteInfo = new AutocompleteInfo(); setAutocompleteInfo(autocompleteInfo); mapping = autocompleteInfo.mapping; + + httpMock = httpServiceMock.createSetupContract(); + const storage = new StorageMock({}, 'test'); + settingsMock = new SettingsMock(storage); + + mapping.setup(httpMock, settingsMock); + alias = autocompleteInfo.alias; legacyTemplate = autocompleteInfo.legacyTemplate; indexTemplate = autocompleteInfo.indexTemplate; @@ -48,61 +61,98 @@ describe('Autocomplete entities', () => { }); describe('Mappings', function () { - test('Multi fields 1.0 style', function () { - mapping.loadMappings({ - index: { - properties: { - first_name: { - type: 'string', - index: 'analyzed', - path: 'just_name', - fields: { - any_name: { type: 'string', index: 'analyzed' }, - }, - }, - last_name: { - type: 'string', - index: 'no', - fields: { - raw: { type: 'string', index: 'analyzed' }, + describe('When fields autocomplete is disabled', () => { + beforeEach(() => { + settingsMock.getAutocomplete.mockReturnValue({ fields: false }); + }); + + test('does not return any suggestions', function () { + mapping.loadMappings({ + index: { + properties: { + first_name: { + type: 'string', + index: 'analyzed', + path: 'just_name', + fields: { + any_name: { type: 'string', index: 'analyzed' }, + }, }, }, }, - }, - }); + }); - expect(mapping.getMappings('index').sort(fc)).toEqual([ - f('any_name', 'string'), - f('first_name', 'string'), - f('last_name', 'string'), - f('last_name.raw', 'string'), - ]); + expect(mapping.getMappings('index').sort(fc)).toEqual([]); + }); }); - test('Simple fields', function () { - mapping.loadMappings({ - index: { - properties: { - str: { - type: 'string', - }, - number: { - type: 'int', + describe('When fields autocomplete is enabled', () => { + beforeEach(() => { + settingsMock.getAutocomplete.mockReturnValue({ fields: true }); + httpMock.get.mockReturnValue( + Promise.resolve({ + mappings: { index: { mappings: { properties: { '@timestamp': { type: 'date' } } } } }, + }) + ); + }); + + test('attempts to fetch mappings if not loaded', async () => { + const autoCompleteContext = {}; + let loadingIndicator; + + mapping.isLoading$.subscribe((v) => { + loadingIndicator = v; + }); + + // act + mapping.getMappings('index', [], autoCompleteContext); + + expect(autoCompleteContext.asyncResultsState.isLoading).toBe(true); + expect(loadingIndicator).toBe(true); + + expect(httpMock.get).toHaveBeenCalled(); + + const fields = await autoCompleteContext.asyncResultsState.results; + + expect(loadingIndicator).toBe(false); + expect(autoCompleteContext.asyncResultsState.isLoading).toBe(false); + expect(fields).toEqual([{ name: '@timestamp', type: 'date' }]); + }); + + test('Multi fields 1.0 style', function () { + mapping.loadMappings({ + index: { + properties: { + first_name: { + type: 'string', + index: 'analyzed', + path: 'just_name', + fields: { + any_name: { type: 'string', index: 'analyzed' }, + }, + }, + last_name: { + type: 'string', + index: 'no', + fields: { + raw: { type: 'string', index: 'analyzed' }, + }, + }, }, }, - }, - }); + }); - expect(mapping.getMappings('index').sort(fc)).toEqual([ - f('number', 'int'), - f('str', 'string'), - ]); - }); + expect(mapping.getMappings('index').sort(fc)).toEqual([ + f('any_name', 'string'), + f('first_name', 'string'), + f('last_name', 'string'), + f('last_name.raw', 'string'), + ]); + }); - test('Simple fields - 1.0 style', function () { - mapping.loadMappings({ - index: { - mappings: { + test('Simple fields', function () { + mapping.loadMappings({ + index: { properties: { str: { type: 'string', @@ -112,108 +162,130 @@ describe('Autocomplete entities', () => { }, }, }, - }, - }); + }); - expect(mapping.getMappings('index').sort(fc)).toEqual([ - f('number', 'int'), - f('str', 'string'), - ]); - }); + expect(mapping.getMappings('index').sort(fc)).toEqual([ + f('number', 'int'), + f('str', 'string'), + ]); + }); - test('Nested fields', function () { - mapping.loadMappings({ - index: { - properties: { - person: { - type: 'object', + test('Simple fields - 1.0 style', function () { + mapping.loadMappings({ + index: { + mappings: { properties: { - name: { - properties: { - first_name: { type: 'string' }, - last_name: { type: 'string' }, - }, + str: { + type: 'string', + }, + number: { + type: 'int', }, - sid: { type: 'string', index: 'not_analyzed' }, }, }, - message: { type: 'string' }, }, - }, - }); + }); - expect(mapping.getMappings('index', []).sort(fc)).toEqual([ - f('message'), - f('person.name.first_name'), - f('person.name.last_name'), - f('person.sid'), - ]); - }); + expect(mapping.getMappings('index').sort(fc)).toEqual([ + f('number', 'int'), + f('str', 'string'), + ]); + }); - test('Enabled fields', function () { - mapping.loadMappings({ - index: { - properties: { - person: { - type: 'object', - properties: { - name: { - type: 'object', - enabled: false, + test('Nested fields', function () { + mapping.loadMappings({ + index: { + properties: { + person: { + type: 'object', + properties: { + name: { + properties: { + first_name: { type: 'string' }, + last_name: { type: 'string' }, + }, + }, + sid: { type: 'string', index: 'not_analyzed' }, }, - sid: { type: 'string', index: 'not_analyzed' }, }, + message: { type: 'string' }, }, - message: { type: 'string' }, }, - }, - }); + }); - expect(mapping.getMappings('index', []).sort(fc)).toEqual([f('message'), f('person.sid')]); - }); + expect(mapping.getMappings('index', []).sort(fc)).toEqual([ + f('message'), + f('person.name.first_name'), + f('person.name.last_name'), + f('person.sid'), + ]); + }); - test('Path tests', function () { - mapping.loadMappings({ - index: { - properties: { - name1: { - type: 'object', - path: 'just_name', - properties: { - first1: { type: 'string' }, - last1: { type: 'string', index_name: 'i_last_1' }, + test('Enabled fields', function () { + mapping.loadMappings({ + index: { + properties: { + person: { + type: 'object', + properties: { + name: { + type: 'object', + enabled: false, + }, + sid: { type: 'string', index: 'not_analyzed' }, + }, }, + message: { type: 'string' }, }, - name2: { - type: 'object', - path: 'full', - properties: { - first2: { type: 'string' }, - last2: { type: 'string', index_name: 'i_last_2' }, + }, + }); + + expect(mapping.getMappings('index', []).sort(fc)).toEqual([f('message'), f('person.sid')]); + }); + + test('Path tests', function () { + mapping.loadMappings({ + index: { + properties: { + name1: { + type: 'object', + path: 'just_name', + properties: { + first1: { type: 'string' }, + last1: { type: 'string', index_name: 'i_last_1' }, + }, + }, + name2: { + type: 'object', + path: 'full', + properties: { + first2: { type: 'string' }, + last2: { type: 'string', index_name: 'i_last_2' }, + }, }, }, }, - }, - }); + }); - expect(mapping.getMappings().sort(fc)).toEqual([ - f('first1'), - f('i_last_1'), - f('name2.first2'), - f('name2.i_last_2'), - ]); - }); + expect(mapping.getMappings().sort(fc)).toEqual([ + f('first1'), + f('i_last_1'), + f('name2.first2'), + f('name2.i_last_2'), + ]); + }); - test('Use index_name tests', function () { - mapping.loadMappings({ - index: { - properties: { - last1: { type: 'string', index_name: 'i_last_1' }, + test('Use index_name tests', function () { + mapping.loadMappings({ + index: { + properties: { + last1: { type: 'string', index_name: 'i_last_1' }, + }, }, - }, - }); + }); - expect(mapping.getMappings().sort(fc)).toEqual([f('i_last_1')]); + expect(mapping.getMappings().sort(fc)).toEqual([f('i_last_1')]); + }); }); }); diff --git a/src/plugins/console/public/lib/autocomplete_entities/mapping.ts b/src/plugins/console/public/lib/autocomplete_entities/mapping.ts index 71e72dac0a280e..3c383ca124167d 100644 --- a/src/plugins/console/public/lib/autocomplete_entities/mapping.ts +++ b/src/plugins/console/public/lib/autocomplete_entities/mapping.ts @@ -7,9 +7,15 @@ */ import _ from 'lodash'; +import { BehaviorSubject } from 'rxjs'; import type { IndicesGetMappingResponse } from '@elastic/elasticsearch/lib/api/types'; +import { HttpSetup } from '@kbn/core-http-browser'; +import { type Settings } from '../../services'; +import { API_BASE_PATH } from '../../../common/constants'; +import type { ResultTerm, AutoCompleteContext } from '../autocomplete/types'; import { expandAliases } from './expand_aliases'; import type { Field, FieldMapping } from './types'; +import { type AutoCompleteEntitiesApiResponse } from './types'; function getFieldNamesFromProperties(properties: Record = {}) { const fieldList = Object.entries(properties).flatMap(([fieldName, fieldMapping]) => { @@ -70,22 +76,127 @@ function getFieldNamesFromFieldMapping( export interface BaseMapping { perIndexTypes: Record; - getMappings(indices: string | string[], types?: string | string[]): Field[]; + /** + * Fetches mappings definition + */ + fetchMappings(index: string): Promise; + + /** + * Retrieves mappings definition from cache, fetches if necessary. + */ + getMappings( + indices: string | string[], + types?: string | string[], + autoCompleteContext?: AutoCompleteContext + ): Field[]; + + /** + * Stores mappings definition + * @param mappings + */ loadMappings(mappings: IndicesGetMappingResponse): void; clearMappings(): void; } export class Mapping implements BaseMapping { + private http!: HttpSetup; + + private settings!: Settings; + + /** + * Map of the mappings of actual ES indices. + */ public perIndexTypes: Record = {}; - getMappings = (indices: string | string[], types?: string | string[]) => { + private readonly _isLoading$ = new BehaviorSubject(false); + + /** + * Indicates if mapping fetching is in progress. + */ + public readonly isLoading$ = this._isLoading$.asObservable(); + + /** + * Map of the currently loading mappings for index patterns specified by a user. + * @private + */ + private loadingState: Record = {}; + + public setup(http: HttpSetup, settings: Settings) { + this.http = http; + this.settings = settings; + } + + /** + * Fetches mappings of the requested indices. + * @param index + */ + async fetchMappings(index: string): Promise { + const response = await this.http.get( + `${API_BASE_PATH}/autocomplete_entities`, + { + query: { fields: true, fieldsIndices: index }, + } + ); + + return response.mappings; + } + + getMappings = ( + indices: string | string[], + types?: string | string[], + autoCompleteContext?: AutoCompleteContext + ) => { // get fields for indices and types. Both can be a list, a string or null (meaning all). let ret: Field[] = []; + + if (!this.settings.getAutocomplete().fields) return ret; + indices = expandAliases(indices); if (typeof indices === 'string') { const typeDict = this.perIndexTypes[indices] as Record; - if (!typeDict) { + + if (!typeDict || Object.keys(typeDict).length === 0) { + if (!autoCompleteContext) return ret; + + // Mappings fetching for the index is already in progress + if (this.loadingState[indices]) return ret; + + this.loadingState[indices] = true; + + if (!autoCompleteContext.asyncResultsState) { + autoCompleteContext.asyncResultsState = {} as AutoCompleteContext['asyncResultsState']; + } + + autoCompleteContext.asyncResultsState!.isLoading = true; + + autoCompleteContext.asyncResultsState!.results = new Promise( + (resolve, reject) => { + this._isLoading$.next(true); + + this.fetchMappings(indices as string) + .then((mapping) => { + this._isLoading$.next(false); + + autoCompleteContext.asyncResultsState!.isLoading = false; + autoCompleteContext.asyncResultsState!.lastFetched = Date.now(); + + // cache mappings + this.loadMappings(mapping); + + const mappings = this.getMappings(indices, types, autoCompleteContext); + delete this.loadingState[indices as string]; + resolve(mappings); + }) + .catch((error) => { + // eslint-disable-next-line no-console + console.error(error); + this._isLoading$.next(false); + delete this.loadingState[indices as string]; + }); + } + ); + return []; } @@ -108,7 +219,7 @@ export class Mapping implements BaseMapping { // multi index mode. Object.keys(this.perIndexTypes).forEach((index) => { if (!indices || indices.length === 0 || indices.includes(index)) { - ret.push(this.getMappings(index, types) as unknown as Field); + ret.push(this.getMappings(index, types, autoCompleteContext) as unknown as Field); } }); @@ -121,8 +232,6 @@ export class Mapping implements BaseMapping { }; loadMappings = (mappings: IndicesGetMappingResponse) => { - this.perIndexTypes = {}; - Object.entries(mappings).forEach(([index, indexMapping]) => { const normalizedIndexMappings: Record = {}; let transformedMapping: Record = indexMapping; diff --git a/src/plugins/console/public/services/autocomplete.ts b/src/plugins/console/public/services/autocomplete.ts index 3e1a38a5146078..57324049bab944 100644 --- a/src/plugins/console/public/services/autocomplete.ts +++ b/src/plugins/console/public/services/autocomplete.ts @@ -53,7 +53,11 @@ export class AutocompleteInfo { const collaborator = this.mapping; return () => this.alias.getIndices(includeAliases, collaborator); case ENTITIES.FIELDS: - return this.mapping.getMappings(context.indices, context.types); + return this.mapping.getMappings( + context.indices, + context.types, + Object.getPrototypeOf(context) + ); case ENTITIES.INDEX_TEMPLATES: return () => this.indexTemplate.getTemplates(); case ENTITIES.COMPONENT_TEMPLATES: @@ -93,7 +97,6 @@ export class AutocompleteInfo { } private load(data: AutoCompleteEntitiesApiResponse) { - this.mapping.loadMappings(data.mappings); const collaborator = this.mapping; this.alias.loadAliases(data.aliases, collaborator); this.indexTemplate.loadTemplates(data.indexTemplates); diff --git a/src/plugins/console/public/services/settings.ts b/src/plugins/console/public/services/settings.ts index e4731dd3f3a318..4056d20063a3e5 100644 --- a/src/plugins/console/public/services/settings.ts +++ b/src/plugins/console/public/services/settings.ts @@ -14,7 +14,12 @@ export const DEFAULT_SETTINGS = Object.freeze({ pollInterval: 60000, tripleQuotes: true, wrapMode: true, - autocomplete: Object.freeze({ fields: true, indices: true, templates: true, dataStreams: true }), + autocomplete: Object.freeze({ + fields: true, + indices: true, + templates: true, + dataStreams: true, + }), isHistoryEnabled: true, isKeyboardShortcutsEnabled: true, }); diff --git a/src/plugins/console/public/types/core_editor.ts b/src/plugins/console/public/types/core_editor.ts index 1c9d6352914a2e..34f44578a0bce9 100644 --- a/src/plugins/console/public/types/core_editor.ts +++ b/src/plugins/console/public/types/core_editor.ts @@ -7,6 +7,7 @@ */ import type { Editor } from 'brace'; +import { ResultTerm } from '../lib/autocomplete/types'; import { TokensProvider } from './tokens_provider'; import { Token } from './token'; @@ -23,7 +24,11 @@ export type EditorEvent = export type AutoCompleterFunction = ( pos: Position, prefix: string, - callback: (...args: unknown[]) => void + callback: (e: Error | null, result: ResultTerm[] | null) => void, + annotationControls: { + setAnnotation: (text: string) => void; + removeAnnotation: () => void; + } ) => void; export interface Position { diff --git a/src/plugins/console/server/routes/api/console/autocomplete_entities/index.ts b/src/plugins/console/server/routes/api/console/autocomplete_entities/index.ts index 8bd5f8ee50b481..2d19de0a56e749 100644 --- a/src/plugins/console/server/routes/api/console/autocomplete_entities/index.ts +++ b/src/plugins/console/server/routes/api/console/autocomplete_entities/index.ts @@ -6,26 +6,25 @@ * Side Public License, v 1. */ -import { parse } from 'query-string'; import type { IScopedClusterClient } from '@kbn/core-elasticsearch-server'; import type { RouteDependencies } from '../../..'; -interface SettingsToRetrieve { - indices: boolean; - fields: boolean; - templates: boolean; - dataStreams: boolean; -} +import { autoCompleteEntitiesValidationConfig, type SettingsToRetrieve } from './validation_config'; const MAX_RESPONSE_SIZE = 10 * 1024 * 1024; // 10MB // Limit the response size to 10MB, because the response can be very large and sending it to the client // can cause the browser to hang. const getMappings = async (settings: SettingsToRetrieve, esClient: IScopedClusterClient) => { - if (settings.fields) { - const mappings = await esClient.asInternalUser.indices.getMapping(undefined, { - maxResponseSize: MAX_RESPONSE_SIZE, - maxCompressedResponseSize: MAX_RESPONSE_SIZE, - }); + if (settings.fields && settings.fieldsIndices) { + const mappings = await esClient.asInternalUser.indices.getMapping( + { + index: settings.fieldsIndices, + }, + { + maxResponseSize: MAX_RESPONSE_SIZE, + maxCompressedResponseSize: MAX_RESPONSE_SIZE, + } + ); return mappings; } // If the user doesn't want autocomplete suggestions, then clear any that exist. @@ -87,20 +86,11 @@ export const registerAutocompleteEntitiesRoute = (deps: RouteDependencies) => { options: { tags: ['access:console'], }, - validate: false, + validate: autoCompleteEntitiesValidationConfig, }, async (context, request, response) => { const esClient = (await context.core).elasticsearch.client; - const settings = parse(request.url.search, { - parseBooleans: true, - }) as unknown as SettingsToRetrieve; - - // If no settings are specified, then return 400. - if (Object.keys(settings).length === 0) { - return response.badRequest({ - body: 'Request must contain at least one of the following parameters: indices, fields, templates, dataStreams', - }); - } + const settings = request.query; // Wait for all requests to complete, in case one of them fails return the successfull ones const results = await Promise.allSettled([ diff --git a/src/plugins/console/server/routes/api/console/autocomplete_entities/validation_config.ts b/src/plugins/console/server/routes/api/console/autocomplete_entities/validation_config.ts new file mode 100644 index 00000000000000..48bab100d0b611 --- /dev/null +++ b/src/plugins/console/server/routes/api/console/autocomplete_entities/validation_config.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { schema, TypeOf } from '@kbn/config-schema'; + +export const autoCompleteEntitiesValidationConfig = { + query: schema.object( + { + indices: schema.maybe(schema.boolean()), + fields: schema.maybe(schema.boolean()), + templates: schema.maybe(schema.boolean()), + dataStreams: schema.maybe(schema.boolean()), + /** + * Comma separated list of indices for mappings retrieval. + */ + fieldsIndices: schema.maybe(schema.string()), + }, + { + validate: (payload) => { + if (Object.keys(payload).length === 0) { + return 'The request must contain at least one of the following parameters: indices, fields, templates, dataStreams.'; + } + }, + } + ), +}; + +export type SettingsToRetrieve = TypeOf; diff --git a/src/plugins/console/tsconfig.json b/src/plugins/console/tsconfig.json index 0dcc23b1c060c9..4d1d508078eec2 100644 --- a/src/plugins/console/tsconfig.json +++ b/src/plugins/console/tsconfig.json @@ -2,11 +2,6 @@ "extends": "../../../tsconfig.base.json", "compilerOptions": { "outDir": "target/types", - // there is still a decent amount of JS in this plugin and we are taking - // advantage of the fact that TS doesn't know the types of that code and - // gives us `any`. Once that code is converted to .ts we can remove this - // and allow TS to infer types from any JS file imported. - "allowJs": false }, "include": ["common/**/*", "public/**/*", "server/**/*"], "kbn_references": [ @@ -30,6 +25,7 @@ "@kbn/core-http-router-server-internal", "@kbn/web-worker-stub", "@kbn/core-elasticsearch-server", + "@kbn/core-http-browser-mocks", ], "exclude": [ "target/**/*", diff --git a/src/plugins/content_management/common/index.ts b/src/plugins/content_management/common/index.ts index bc5dde9968d6d8..3746f26a2cf3d3 100644 --- a/src/plugins/content_management/common/index.ts +++ b/src/plugins/content_management/common/index.ts @@ -7,3 +7,5 @@ */ export { PLUGIN_ID, API_ENDPOINT } from './constants'; +export type { ProcedureSchemas, ProcedureName, GetIn, CreateIn } from './rpc'; +export { procedureNames, schemas as rpcSchemas } from './rpc'; diff --git a/src/plugins/content_management/common/rpc.ts b/src/plugins/content_management/common/rpc.ts new file mode 100644 index 00000000000000..8e03dc886a3f0f --- /dev/null +++ b/src/plugins/content_management/common/rpc.ts @@ -0,0 +1,72 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { schema, Type } from '@kbn/config-schema'; + +export interface ProcedureSchemas { + in?: Type | false; + out?: Type | false; +} + +export const procedureNames = ['get', 'create'] as const; + +export type ProcedureName = typeof procedureNames[number]; + +// --------------------------------- +// API +// --------------------------------- + +// ------- GET -------- +const getSchemas: ProcedureSchemas = { + in: schema.object( + { + contentType: schema.string(), + id: schema.string(), + options: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), + // --> "out" will be specified by each storage layer + out: schema.maybe(schema.object({}, { unknowns: 'allow' })), +}; + +export interface GetIn { + id: string; + contentType: string; + options?: Options; +} + +// -- Create content +const createSchemas: ProcedureSchemas = { + in: schema.object( + { + contentType: schema.string(), + data: schema.object({}, { unknowns: 'allow' }), + options: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), + // Here we could enforce that an "id" field is returned + out: schema.maybe(schema.object({}, { unknowns: 'allow' })), +}; + +export interface CreateIn< + T extends string = string, + Data extends object = Record, + Options extends object = any +> { + contentType: T; + data: Data; + options?: Options; +} + +export const schemas: { + [key in ProcedureName]: ProcedureSchemas; +} = { + get: getSchemas, + create: createSchemas, +}; diff --git a/src/plugins/content_management/kibana.json b/src/plugins/content_management/kibana.json deleted file mode 100644 index 8be769a8553c8f..00000000000000 --- a/src/plugins/content_management/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "contentManagement", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [], - "requiredBundles": [], - "optionalPlugins": [], - "owner": { - "name": "@elastic/kibana-global-experience", - "githubTeam": "@elastic/kibana-global-experience" - }, - "description": "Content management app" -} diff --git a/src/plugins/content_management/kibana.jsonc b/src/plugins/content_management/kibana.jsonc new file mode 100644 index 00000000000000..73878817d9d201 --- /dev/null +++ b/src/plugins/content_management/kibana.jsonc @@ -0,0 +1,11 @@ +{ + "type": "plugin", + "id": "@kbn/content-management-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Content management app", + "plugin": { + "id": "contentManagement", + "server": true, + "browser": true + } +} diff --git a/src/plugins/content_management/public/content_client/content_client.test.ts b/src/plugins/content_management/public/content_client/content_client.test.ts new file mode 100644 index 00000000000000..74be9a7c6aecf1 --- /dev/null +++ b/src/plugins/content_management/public/content_client/content_client.test.ts @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { lastValueFrom } from 'rxjs'; +import { takeWhile, toArray } from 'rxjs/operators'; +import type { RpcClient } from '../rpc_client'; +import { createRpcClientMock } from '../rpc_client/rpc_client.mock'; +import { ContentClient } from './content_client'; +import type { GetIn, CreateIn } from '../../common'; + +let contentClient: ContentClient; +let rpcClient: jest.Mocked; +beforeEach(() => { + rpcClient = createRpcClientMock(); + contentClient = new ContentClient(rpcClient); +}); + +describe('#get', () => { + it('calls rpcClient.get with input and returns output', async () => { + const input: GetIn = { id: 'test', contentType: 'testType' }; + const output = { test: 'test' }; + rpcClient.get.mockResolvedValueOnce(output); + expect(await contentClient.get(input)).toEqual(output); + expect(rpcClient.get).toBeCalledWith(input); + }); + + it('calls rpcClient.get$ with input and returns output', async () => { + const input: GetIn = { id: 'test', contentType: 'testType' }; + const output = { test: 'test' }; + rpcClient.get.mockResolvedValueOnce(output); + const get$ = contentClient.get$(input).pipe( + takeWhile((result) => { + return result.data == null; + }, true), + toArray() + ); + + const [loadingState, loadedState] = await lastValueFrom(get$); + + expect(loadingState.isLoading).toBe(true); + expect(loadingState.data).toBeUndefined(); + + expect(loadedState.isLoading).toBe(false); + expect(loadedState.data).toEqual(output); + }); +}); + +describe('#create', () => { + it('calls rpcClient.create with input and returns output', async () => { + const input: CreateIn = { contentType: 'testType', data: { foo: 'bar' } }; + const output = { test: 'test' }; + rpcClient.create.mockImplementation(() => Promise.resolve(output)); + + expect(await contentClient.create(input)).toEqual(output); + expect(rpcClient.create).toBeCalledWith(input); + }); +}); diff --git a/src/plugins/content_management/public/content_client/content_client.tsx b/src/plugins/content_management/public/content_client/content_client.tsx new file mode 100644 index 00000000000000..72c9ea9f889291 --- /dev/null +++ b/src/plugins/content_management/public/content_client/content_client.tsx @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { QueryClient } from '@tanstack/react-query'; +import { createQueryObservable } from './query_observable'; +import type { RpcClient } from '../rpc_client'; +import type { CreateIn, GetIn } from '../../common'; + +const queryKeyBuilder = { + all: (type: string) => [type] as const, + item: (type: string, id: string) => { + return [...queryKeyBuilder.all(type), id] as const; + }, +}; + +const createQueryOptionBuilder = ({ rpcClient }: { rpcClient: RpcClient }) => { + return { + get: (input: I) => { + return { + queryKey: queryKeyBuilder.item(input.contentType, input.id), + queryFn: () => rpcClient.get(input), + }; + }, + }; +}; + +export class ContentClient { + readonly queryClient: QueryClient; + readonly queryOptionBuilder: ReturnType; + + constructor(private readonly rpcClient: RpcClient) { + this.queryClient = new QueryClient(); + this.queryOptionBuilder = createQueryOptionBuilder({ + rpcClient: this.rpcClient, + }); + } + + get(input: I): Promise { + return this.queryClient.fetchQuery(this.queryOptionBuilder.get(input)); + } + + get$(input: I) { + return createQueryObservable(this.queryClient, this.queryOptionBuilder.get(input)); + } + + create(input: I): Promise { + return this.rpcClient.create(input); + } +} diff --git a/src/plugins/content_management/public/content_client/content_client_context.tsx b/src/plugins/content_management/public/content_client/content_client_context.tsx new file mode 100644 index 00000000000000..0685c6acf74ed1 --- /dev/null +++ b/src/plugins/content_management/public/content_client/content_client_context.tsx @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { QueryClientProvider } from '@tanstack/react-query'; +import type { ContentClient } from './content_client'; + +const ContentClientContext = React.createContext(null as unknown as ContentClient); + +export const useContentClient = (): ContentClient => { + const contentClient = React.useContext(ContentClientContext); + if (!contentClient) throw new Error('contentClient not found'); + return contentClient; +}; + +export const ContentClientProvider: React.FC<{ contentClient: ContentClient }> = ({ + contentClient, + children, +}) => { + return ( + + {children} + + ); +}; diff --git a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx new file mode 100644 index 00000000000000..a7b9d4a5dfc7a4 --- /dev/null +++ b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { renderHook } from '@testing-library/react-hooks'; +import { ContentClientProvider } from './content_client_context'; +import { ContentClient } from './content_client'; +import { RpcClient } from '../rpc_client'; +import { createRpcClientMock } from '../rpc_client/rpc_client.mock'; +import { useCreateContentMutation } from './content_client_mutation_hooks'; +import type { CreateIn } from '../../common'; + +let contentClient: ContentClient; +let rpcClient: jest.Mocked; +beforeEach(() => { + rpcClient = createRpcClientMock(); + contentClient = new ContentClient(rpcClient); +}); + +const Wrapper: React.FC = ({ children }) => ( + {children} +); + +describe('useCreateContentMutation', () => { + test('should call rpcClient.create with input and resolve with output', async () => { + const input: CreateIn = { contentType: 'testType', data: { foo: 'bar' } }; + const output = { test: 'test' }; + rpcClient.create.mockImplementation(() => Promise.resolve(output)); + const { result, waitFor } = renderHook(() => useCreateContentMutation(), { wrapper: Wrapper }); + result.current.mutate(input); + + await waitFor(() => result.current.isSuccess); + + expect(result.current.data).toEqual(output); + }); +}); diff --git a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx new file mode 100644 index 00000000000000..372b05b2ed093d --- /dev/null +++ b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { useMutation } from '@tanstack/react-query'; +import { useContentClient } from './content_client_context'; +import type { CreateIn } from '../../common'; + +export const useCreateContentMutation = () => { + const contentClient = useContentClient(); + return useMutation({ + mutationFn: (input: I) => { + return contentClient.create(input); + }, + }); +}; diff --git a/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx b/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx new file mode 100644 index 00000000000000..07a22bb5154d54 --- /dev/null +++ b/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx @@ -0,0 +1,38 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { renderHook } from '@testing-library/react-hooks'; +import { ContentClientProvider } from './content_client_context'; +import { ContentClient } from './content_client'; +import { RpcClient } from '../rpc_client'; +import { createRpcClientMock } from '../rpc_client/rpc_client.mock'; +import { useGetContentQuery } from './content_client_query_hooks'; +import type { GetIn } from '../../common'; + +let contentClient: ContentClient; +let rpcClient: jest.Mocked; +beforeEach(() => { + rpcClient = createRpcClientMock(); + contentClient = new ContentClient(rpcClient); +}); + +const Wrapper: React.FC = ({ children }) => ( + {children} +); + +describe('useGetContentQuery', () => { + test('should call rpcClient.get with input and resolve with output', async () => { + const input: GetIn = { id: 'test', contentType: 'testType' }; + const output = { test: 'test' }; + rpcClient.get.mockImplementation(() => Promise.resolve(output)); + const { result, waitFor } = renderHook(() => useGetContentQuery(input), { wrapper: Wrapper }); + await waitFor(() => result.current.isSuccess); + expect(result.current.data).toEqual(output); + }); +}); diff --git a/src/plugins/content_management/public/content_client/content_client_query_hooks.tsx b/src/plugins/content_management/public/content_client/content_client_query_hooks.tsx new file mode 100644 index 00000000000000..09ee31bdd14f30 --- /dev/null +++ b/src/plugins/content_management/public/content_client/content_client_query_hooks.tsx @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { useQuery, QueryObserverOptions } from '@tanstack/react-query'; +import { useContentClient } from './content_client_context'; +import type { GetIn } from '../../common'; + +/** + * Exposed `useQuery` options + */ +export type QueryOptions = Pick; + +/** + * + * @param input - get content identifier like "id" and "contentType" + * @param queryOptions - + */ +export const useGetContentQuery = ( + input: I, + queryOptions?: QueryOptions +) => { + const contentClient = useContentClient(); + return useQuery({ + ...contentClient.queryOptionBuilder.get(input), + ...queryOptions, + }); +}; diff --git a/src/plugins/content_management/public/content_client/index.ts b/src/plugins/content_management/public/content_client/index.ts new file mode 100644 index 00000000000000..329df9c596452c --- /dev/null +++ b/src/plugins/content_management/public/content_client/index.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { ContentClient } from './content_client'; +export { ContentClientProvider, useContentClient } from './content_client_context'; +export { useGetContentQuery } from './content_client_query_hooks'; +export { useCreateContentMutation } from './content_client_mutation_hooks'; diff --git a/src/plugins/content_management/public/content_client/query_observable.ts b/src/plugins/content_management/public/content_client/query_observable.ts new file mode 100644 index 00000000000000..f486befb87d5e5 --- /dev/null +++ b/src/plugins/content_management/public/content_client/query_observable.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + notifyManager, + QueryObserver, + QueryObserverOptions, + QueryObserverResult, + QueryClient, + QueryKey, +} from '@tanstack/react-query'; +import { Observable } from 'rxjs'; + +export const createQueryObservable = < + TQueryFnData = unknown, + TError = unknown, + TData = TQueryFnData, + TQueryData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey +>( + queryClient: QueryClient, + queryOptions: QueryObserverOptions +) => { + const queryObserver = new QueryObserver( + queryClient, + queryClient.defaultQueryOptions(queryOptions) + ); + + return new Observable>((subscriber) => { + const unsubscribe = queryObserver.subscribe( + // notifyManager is a singleton that batches updates across react query + notifyManager.batchCalls((result) => { + subscriber.next(result); + }) + ); + return () => { + unsubscribe(); + }; + }); +}; diff --git a/src/plugins/content_management/public/plugin.ts b/src/plugins/content_management/public/plugin.ts index 1650d95955d44f..77d0bcc6039bcb 100644 --- a/src/plugins/content_management/public/plugin.ts +++ b/src/plugins/content_management/public/plugin.ts @@ -6,21 +6,33 @@ * Side Public License, v 1. */ -import type { CoreSetup, Plugin } from '@kbn/core/public'; +import type { CoreSetup, CoreStart, Plugin } from '@kbn/core/public'; import { ContentManagementPublicStart, ContentManagementPublicSetup, SetupDependencies, + StartDependencies, } from './types'; +import type { ContentClient } from './content_client'; export class ContentManagementPlugin - implements Plugin + implements + Plugin< + ContentManagementPublicSetup, + ContentManagementPublicStart, + SetupDependencies, + StartDependencies + > { public setup(core: CoreSetup, deps: SetupDependencies) { return {}; } - public start() { - return {}; + public start(core: CoreStart, deps: StartDependencies) { + // don't actually expose the client until it is used to avoid increasing bundle size + // const rpcClient = new RpcClient(core.http); + // const contentClient = new ContentClient(rpcClient); + // return { client: contentClient }; + return { client: {} as ContentClient }; } } diff --git a/src/plugins/content_management/public/rpc_client/index.ts b/src/plugins/content_management/public/rpc_client/index.ts new file mode 100644 index 00000000000000..da7d96888124ba --- /dev/null +++ b/src/plugins/content_management/public/rpc_client/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { RpcClient } from './rpc_client'; diff --git a/src/plugins/content_management/public/rpc_client/rpc_client.mock.ts b/src/plugins/content_management/public/rpc_client/rpc_client.mock.ts new file mode 100644 index 00000000000000..ad8cd384dd0e52 --- /dev/null +++ b/src/plugins/content_management/public/rpc_client/rpc_client.mock.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { RpcClient } from './rpc_client'; +import { PublicMethodsOf } from '@kbn/utility-types'; + +export const createRpcClientMock = (): jest.Mocked => { + const mock: jest.Mocked> = { + get: jest.fn((input) => Promise.resolve({} as any)), + create: jest.fn((input) => Promise.resolve({} as any)), + }; + return mock as jest.Mocked; +}; diff --git a/src/plugins/content_management/public/rpc_client/rpc_client.ts b/src/plugins/content_management/public/rpc_client/rpc_client.ts new file mode 100644 index 00000000000000..1cfb2b12f02a53 --- /dev/null +++ b/src/plugins/content_management/public/rpc_client/rpc_client.ts @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { HttpSetup } from '@kbn/core/public'; +import { API_ENDPOINT } from '../../common'; +import type { GetIn, CreateIn, ProcedureName } from '../../common'; + +export class RpcClient { + constructor(private http: { post: HttpSetup['post'] }) {} + + public get(input: I): Promise { + return this.sendMessage('get', input); + } + + public create(input: I): Promise { + return this.sendMessage('create', input); + } + + private sendMessage = async (name: ProcedureName, input: any): Promise => { + const { result } = await this.http.post<{ result: any }>(`${API_ENDPOINT}/${name}`, { + body: JSON.stringify(input), + }); + return result; + }; +} diff --git a/src/plugins/content_management/public/types.ts b/src/plugins/content_management/public/types.ts index e06d6e48bba40d..dcee504cd8d6b9 100644 --- a/src/plugins/content_management/public/types.ts +++ b/src/plugins/content_management/public/types.ts @@ -6,11 +6,17 @@ * Side Public License, v 1. */ +import type { ContentClient } from './content_client'; + // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface SetupDependencies {} // eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface ContentManagementPublicSetup {} +export interface StartDependencies {} // eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface ContentManagementPublicStart {} +export interface ContentManagementPublicSetup {} + +export interface ContentManagementPublicStart { + client: ContentClient; +} diff --git a/src/plugins/content_management/tsconfig.json b/src/plugins/content_management/tsconfig.json index d0ad9f31d30c02..0c998149f88b88 100644 --- a/src/plugins/content_management/tsconfig.json +++ b/src/plugins/content_management/tsconfig.json @@ -6,6 +6,8 @@ "include": ["common/**/*", "public/**/*", "server/**/*", ".storybook/**/*"], "kbn_references": [ "@kbn/core", + "@kbn/config-schema", + "@kbn/utility-types", ], "exclude": [ "target/**/*", diff --git a/src/plugins/controls/common/options_list/types.ts b/src/plugins/controls/common/options_list/types.ts index 1c9555bdc8d902..510dac280fe76d 100644 --- a/src/plugins/controls/common/options_list/types.ts +++ b/src/plugins/controls/common/options_list/types.ts @@ -9,8 +9,8 @@ import { FieldSpec, DataView, RuntimeFieldSpec } from '@kbn/data-views-plugin/common'; import type { Filter, Query, BoolQuery, TimeRange } from '@kbn/es-query'; -import { OptionsListSortingType } from './suggestions_sorting'; -import { DataControlInput } from '../types'; +import type { OptionsListSortingType } from './suggestions_sorting'; +import type { DataControlInput } from '../types'; export const OPTIONS_LIST_CONTROL = 'optionsListControl'; @@ -20,20 +20,14 @@ export interface OptionsListEmbeddableInput extends DataControlInput { existsSelected?: boolean; runPastTimeout?: boolean; singleSelect?: boolean; + hideActionBar?: boolean; hideExclude?: boolean; hideExists?: boolean; hideSort?: boolean; - hideActionBar?: boolean; exclude?: boolean; placeholder?: string; } -export type OptionsListField = FieldSpec & { - textFieldName?: string; - parentFieldName?: string; - childFieldName?: string; -}; - export interface OptionsListSuggestions { [key: string]: { doc_count: number }; } @@ -41,13 +35,27 @@ export interface OptionsListSuggestions { /** * The Options list response is returned from the serverside Options List route. */ -export interface OptionsListResponse { - rejected: boolean; +export interface OptionsListSuccessResponse { suggestions: OptionsListSuggestions; - totalCardinality: number; + totalCardinality?: number; // total cardinality will be undefined when `useExpensiveQueries` is `false` invalidSelections?: string[]; } +/** + * The invalid selections are parsed **after** the server returns with the result from the ES client; so, the + * suggestion aggregation parser only returns the suggestions list + the cardinality of the result + */ +export type OptionsListParsedSuggestions = Pick< + OptionsListSuccessResponse, + 'suggestions' | 'totalCardinality' +>; + +export interface OptionsListFailureResponse { + error: 'aborted' | Error; +} + +export type OptionsListResponse = OptionsListSuccessResponse | OptionsListFailureResponse; + /** * The Options list request type taken in by the public Options List service. */ @@ -55,11 +63,12 @@ export type OptionsListRequest = Omit< OptionsListRequestBody, 'filters' | 'fieldName' | 'fieldSpec' | 'textFieldName' > & { + allowExpensiveQueries: boolean; timeRange?: TimeRange; - field: OptionsListField; runPastTimeout?: boolean; dataView: DataView; filters?: Filter[]; + field: FieldSpec; query?: Query; }; @@ -68,13 +77,13 @@ export type OptionsListRequest = Omit< */ export interface OptionsListRequestBody { runtimeFieldMap?: Record; + allowExpensiveQueries: boolean; sort?: OptionsListSortingType; filters?: Array<{ bool: BoolQuery }>; selectedOptions?: string[]; runPastTimeout?: boolean; - parentFieldName?: string; - textFieldName?: string; searchString?: string; fieldSpec?: FieldSpec; fieldName: string; + size: number; } diff --git a/src/plugins/controls/common/types.ts b/src/plugins/controls/common/types.ts index 8f03b82bfaa93d..5f37ef2c72871a 100644 --- a/src/plugins/controls/common/types.ts +++ b/src/plugins/controls/common/types.ts @@ -30,7 +30,5 @@ export type ControlInput = EmbeddableInput & { export type DataControlInput = ControlInput & { fieldName: string; - parentFieldName?: string; - childFieldName?: string; dataViewId: string; }; diff --git a/src/plugins/controls/kibana.json b/src/plugins/controls/kibana.json deleted file mode 100644 index e87af3f517af2d..00000000000000 --- a/src/plugins/controls/kibana.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "id": "controls", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "extraPublicDirs": ["common"], - "requiredPlugins": [ - "presentationUtil", - "savedObjects", - "kibanaReact", - "expressions", - "embeddable", - "dataViews", - "data", - "unifiedSearch" - ], - "optionalPlugins": [] -} diff --git a/src/plugins/controls/kibana.jsonc b/src/plugins/controls/kibana.jsonc new file mode 100644 index 00000000000000..defb62693b55ce --- /dev/null +++ b/src/plugins/controls/kibana.jsonc @@ -0,0 +1,24 @@ +{ + "type": "plugin", + "id": "@kbn/controls-plugin", + "owner": "@elastic/kibana-presentation", + "description": "The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls", + "plugin": { + "id": "controls", + "server": true, + "browser": true, + "requiredPlugins": [ + "presentationUtil", + "savedObjects", + "kibanaReact", + "expressions", + "embeddable", + "dataViews", + "data", + "unifiedSearch" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/controls/public/__stories__/controls.stories.tsx b/src/plugins/controls/public/__stories__/controls.stories.tsx index 6b1f97e39ed7ef..4326ce056d1181 100644 --- a/src/plugins/controls/public/__stories__/controls.stories.tsx +++ b/src/plugins/controls/public/__stories__/controls.stories.tsx @@ -61,7 +61,6 @@ const storybookStubOptionsListRequest = async ( {} ), totalCardinality: 100, - rejected: false, }), 120 ) diff --git a/src/plugins/controls/public/control_group/component/control_frame_component.tsx b/src/plugins/controls/public/control_group/component/control_frame_component.tsx index 31a63f2fd4efff..eb5cda421381de 100644 --- a/src/plugins/controls/public/control_group/component/control_frame_component.tsx +++ b/src/plugins/controls/public/control_group/component/control_frame_component.tsx @@ -9,15 +9,13 @@ import React, { useEffect, useMemo, useState } from 'react'; import classNames from 'classnames'; import { + EuiButtonEmpty, EuiButtonIcon, EuiFormControlLayout, EuiFormLabel, EuiFormRow, - EuiIcon, - EuiLink, EuiLoadingChart, EuiPopover, - EuiText, EuiToolTip, } from '@elastic/eui'; @@ -40,25 +38,26 @@ interface ControlFrameErrorProps { const ControlFrameError = ({ error }: ControlFrameErrorProps) => { const [isPopoverOpen, setPopoverOpen] = useState(false); const popoverButton = ( - - setPopoverOpen((open) => !open)} - > - - - - + setPopoverOpen((open) => !open)} + className={'errorEmbeddableCompact__button'} + textProps={{ className: 'errorEmbeddableCompact__text' }} + > + + ); return ( setPopoverOpen(false)} > diff --git a/src/plugins/controls/public/control_group/editor/control_editor.tsx b/src/plugins/controls/public/control_group/editor/control_editor.tsx index bff1506280653e..785e0e50bd78a6 100644 --- a/src/plugins/controls/public/control_group/editor/control_editor.tsx +++ b/src/plugins/controls/public/control_group/editor/control_editor.tsx @@ -199,11 +199,8 @@ export const ControlEditor = ({ selectedFieldName={selectedField} dataView={dataView} onSelectField={(field) => { - const { parentFieldName, childFieldName } = fieldRegistry?.[field.name] ?? {}; onTypeEditorChange({ fieldName: field.name, - ...(parentFieldName && { parentFieldName }), - ...(childFieldName && { childFieldName }), }); const newDefaultTitle = field.displayName ?? field.name; setDefaultTitle(newDefaultTitle); diff --git a/src/plugins/controls/public/control_group/editor/data_control_editor_tools.ts b/src/plugins/controls/public/control_group/editor/data_control_editor_tools.ts index 4344891280ce60..8cfd3cebe5dac6 100644 --- a/src/plugins/controls/public/control_group/editor/data_control_editor_tools.ts +++ b/src/plugins/controls/public/control_group/editor/data_control_editor_tools.ts @@ -8,11 +8,10 @@ import { memoize } from 'lodash'; -import { IFieldSubTypeMulti } from '@kbn/es-query'; import { DataView } from '@kbn/data-views-plugin/common'; import { pluginServices } from '../../services'; -import { DataControlFieldRegistry, IEditableControlFactory } from '../../types'; +import { DataControlField, DataControlFieldRegistry, IEditableControlFactory } from '../../types'; export const getDataControlFieldRegistry = memoize( async (dataView: DataView) => { @@ -21,50 +20,30 @@ export const getDataControlFieldRegistry = memoize( (dataView: DataView) => [dataView.id, JSON.stringify(dataView.fields.getAll())].join('|') ); -const doubleLinkFields = (dataView: DataView) => { - // double link the parent-child relationship specifically for case-sensitivity support for options lists - const fieldRegistry: DataControlFieldRegistry = {}; - - for (const field of dataView.fields.getAll()) { - if (!fieldRegistry[field.name]) { - fieldRegistry[field.name] = { field, compatibleControlTypes: [] }; - } - - const parentFieldName = (field.subType as IFieldSubTypeMulti)?.multi?.parent; - if (parentFieldName) { - fieldRegistry[field.name].parentFieldName = parentFieldName; - - const parentField = dataView.getFieldByName(parentFieldName); - if (!fieldRegistry[parentFieldName] && parentField) { - fieldRegistry[parentFieldName] = { field: parentField, compatibleControlTypes: [] }; - } - fieldRegistry[parentFieldName].childFieldName = field.name; - } - } - return fieldRegistry; -}; - const loadFieldRegistryFromDataView = async ( dataView: DataView ): Promise => { const { controls: { getControlTypes, getControlFactory }, } = pluginServices.getServices(); - const newFieldRegistry: DataControlFieldRegistry = doubleLinkFields(dataView); + const controlFactories = getControlTypes().map( (controlType) => getControlFactory(controlType) as IEditableControlFactory ); - dataView.fields.map((dataViewField) => { - for (const factory of controlFactories) { - if (factory.isFieldCompatible) { - factory.isFieldCompatible(newFieldRegistry[dataViewField.name]); + const fieldRegistry: DataControlFieldRegistry = dataView.fields + .getAll() + .reduce((registry, field) => { + const test: DataControlField = { field, compatibleControlTypes: [] }; + for (const factory of controlFactories) { + if (factory.isFieldCompatible) { + factory.isFieldCompatible(test); + } } - } - - if (newFieldRegistry[dataViewField.name]?.compatibleControlTypes.length === 0) { - delete newFieldRegistry[dataViewField.name]; - } - }); + if (test.compatibleControlTypes.length === 0) { + return { ...registry }; + } + return { ...registry, [field.name]: test }; + }, {}); - return newFieldRegistry; + return fieldRegistry; }; diff --git a/src/plugins/controls/public/options_list/components/options_list.scss b/src/plugins/controls/public/options_list/components/options_list.scss index e88208ee4c6238..ad042916fff6ee 100644 --- a/src/plugins/controls/public/options_list/components/options_list.scss +++ b/src/plugins/controls/public/options_list/components/options_list.scss @@ -9,8 +9,18 @@ .optionsList__actions { padding: $euiSizeS; + padding-bottom: 0; border-bottom: $euiBorderThin; border-color: darken($euiColorLightestShade, 2%); + + .optionsList__actionsRow { + margin: ($euiSizeS / 2) 0 !important; + + .optionsList__actionBarDivider { + height: $euiSize; + border-right: $euiBorderThin; + } + } } .optionsList__popoverTitle { @@ -30,13 +40,17 @@ font-style: italic; } +.optionsList__loadMore { + font-style: italic; +} + .optionsList__negateLabel { font-weight: bold; font-size: $euiSizeM; color: $euiColorDanger; } -.optionsList__ignoredBadge { +.optionsList__actionBarFirstBadge { margin-left: $euiSizeS; } @@ -86,3 +100,18 @@ .optionsList--sortPopover { width: $euiSizeXL * 7; } + +.optionslist--loadingMoreGroupLabel { + text-align: center; + padding: $euiSizeM; + font-style: italic; + height: $euiSizeXXL !important; +} + +.optionslist--endOfOptionsGroupLabel { + text-align: center; + font-size: $euiSizeM; + height: auto !important; + color: $euiTextSubduedColor; + padding: $euiSizeM; +} diff --git a/src/plugins/controls/public/options_list/components/options_list_control.test.tsx b/src/plugins/controls/public/options_list/components/options_list_control.test.tsx index a4d5028f0f7be2..7fe1cd2f7aa783 100644 --- a/src/plugins/controls/public/options_list/components/options_list_control.test.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_control.test.tsx @@ -20,6 +20,7 @@ import { BehaviorSubject } from 'rxjs'; describe('Options list control', () => { const defaultProps = { typeaheadSubject: new BehaviorSubject(''), + loadMoreSubject: new BehaviorSubject(10), }; interface MountOptions { diff --git a/src/plugins/controls/public/options_list/components/options_list_control.tsx b/src/plugins/controls/public/options_list/components/options_list_control.tsx index 98f545718efc67..7906d77730f0d8 100644 --- a/src/plugins/controls/public/options_list/components/options_list_control.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_control.tsx @@ -17,20 +17,24 @@ import { useReduxEmbeddableContext } from '@kbn/presentation-util-plugin/public' import { OptionsListStrings } from './options_list_strings'; import { OptionsListPopover } from './options_list_popover'; import { optionsListReducers } from '../options_list_reducers'; -import { OptionsListReduxState } from '../types'; +import { MAX_OPTIONS_LIST_REQUEST_SIZE, OptionsListReduxState } from '../types'; import './options_list.scss'; -export const OptionsListControl = ({ typeaheadSubject }: { typeaheadSubject: Subject }) => { - const [isPopoverOpen, setIsPopoverOpen] = useState(false); - +export const OptionsListControl = ({ + typeaheadSubject, + loadMoreSubject, +}: { + typeaheadSubject: Subject; + loadMoreSubject: Subject; +}) => { const resizeRef = useRef(null); const dimensions = useResizeObserver(resizeRef.current); // Redux embeddable Context const { useEmbeddableDispatch, - actions: { replaceSelection, setSearchString }, + actions: { replaceSelection, setSearchString, setPopoverOpen }, useEmbeddableSelector: select, } = useReduxEmbeddableContext(); const dispatch = useEmbeddableDispatch(); @@ -38,6 +42,7 @@ export const OptionsListControl = ({ typeaheadSubject }: { typeaheadSubject: Sub // Select current state from Redux using multiple selectors to avoid rerenders. const invalidSelections = select((state) => state.componentState.invalidSelections); const validSelections = select((state) => state.componentState.validSelections); + const isPopoverOpen = select((state) => state.componentState.popoverOpen); const selectedOptions = select((state) => state.explicitInput.selectedOptions); const existsSelected = select((state) => state.explicitInput.existsSelected); @@ -51,6 +56,12 @@ export const OptionsListControl = ({ typeaheadSubject }: { typeaheadSubject: Sub const loading = select((state) => state.output.loading); + useEffect(() => { + return () => { + dispatch(setPopoverOpen(false)); // on unmount, close the popover + }; + }, [dispatch, setPopoverOpen]); + // debounce loading state so loading doesn't flash when user types const [debouncedLoading, setDebouncedLoading] = useState(true); const debounceSetLoading = useMemo( @@ -77,6 +88,13 @@ export const OptionsListControl = ({ typeaheadSubject }: { typeaheadSubject: Sub [typeaheadSubject, dispatch, setSearchString] ); + const loadMoreSuggestions = useCallback( + (cardinality: number) => { + loadMoreSubject.next(Math.min(cardinality, MAX_OPTIONS_LIST_REQUEST_SIZE)); + }, + [loadMoreSubject] + ); + const { hasSelections, selectionDisplayNode, validSelectionsCount } = useMemo(() => { return { hasSelections: !isEmpty(validSelections) || !isEmpty(invalidSelections), @@ -123,7 +141,7 @@ export const OptionsListControl = ({ typeaheadSubject }: { typeaheadSubject: Sub 'optionsList--filterBtnPlaceholder': !hasSelections, })} data-test-subj={`optionsList-control-${id}`} - onClick={() => setIsPopoverOpen((openState) => !openState)} + onClick={() => dispatch(setPopoverOpen(!isPopoverOpen))} isSelected={isPopoverOpen} numActiveFilters={validSelectionsCount} hasActiveFilters={Boolean(validSelectionsCount)} @@ -149,7 +167,7 @@ export const OptionsListControl = ({ typeaheadSubject }: { typeaheadSubject: Sub panelPaddingSize="none" anchorPosition="downCenter" className="optionsList__popoverOverride" - closePopover={() => setIsPopoverOpen(false)} + closePopover={() => dispatch(setPopoverOpen(false))} anchorClassName="optionsList__anchorOverride" aria-label={OptionsListStrings.popover.getAriaLabel(fieldName)} > @@ -157,6 +175,7 @@ export const OptionsListControl = ({ typeaheadSubject }: { typeaheadSubject: Sub width={dimensions.width} isLoading={debouncedLoading} updateSearchString={updateSearchString} + loadMoreSuggestions={loadMoreSuggestions} /> diff --git a/src/plugins/controls/public/options_list/components/options_list_popover.test.tsx b/src/plugins/controls/public/options_list/components/options_list_popover.test.tsx index a8504aba372c8e..4b40414974b67d 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover.test.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover.test.tsx @@ -11,11 +11,11 @@ import { ReactWrapper } from 'enzyme'; import { mountWithIntl } from '@kbn/test-jest-helpers'; import { findTestSubject } from '@elastic/eui/lib/test'; +import { FieldSpec } from '@kbn/data-views-plugin/common'; import { OptionsListPopover, OptionsListPopoverProps } from './options_list_popover'; import { OptionsListComponentState, OptionsListReduxState } from '../types'; import { mockOptionsListReduxEmbeddableTools } from '../../../common/mocks'; -import { OptionsListField } from '../../../common/options_list/types'; import { ControlOutput, OptionsListEmbeddableInput } from '../..'; describe('Options list popover', () => { @@ -23,6 +23,7 @@ describe('Options list popover', () => { width: 500, isLoading: false, updateSearchString: jest.fn(), + loadMoreSuggestions: jest.fn(), }; interface MountOptions { @@ -63,7 +64,7 @@ describe('Options list popover', () => { // the div cannot be smaller than 301 pixels wide popover = await mountComponent({ popoverProps: { width: 300 } }); popoverDiv = findTestSubject(popover, 'optionsList-control-available-options'); - expect(popoverDiv.getDOMNode().getAttribute('style')).toBe(null); + expect(popoverDiv.getDOMNode().getAttribute('style')).toBe('width: 100%; height: 100%;'); }); test('no available options', async () => { @@ -237,7 +238,7 @@ describe('Options list popover', () => { test('when sorting suggestions, show both sorting types for keyword field', async () => { const popover = await mountComponent({ componentState: { - field: { name: 'Test keyword field', type: 'keyword' } as OptionsListField, + field: { name: 'Test keyword field', type: 'keyword' } as FieldSpec, }, }); const sortButton = findTestSubject(popover, 'optionsListControl__sortingOptionsButton'); @@ -252,7 +253,7 @@ describe('Options list popover', () => { const popover = await mountComponent({ explicitInput: { sort: { by: '_key', direction: 'asc' } }, componentState: { - field: { name: 'Test keyword field', type: 'keyword' } as OptionsListField, + field: { name: 'Test keyword field', type: 'keyword' } as FieldSpec, }, }); const sortButton = findTestSubject(popover, 'optionsListControl__sortingOptionsButton'); @@ -270,7 +271,7 @@ describe('Options list popover', () => { test('when sorting suggestions, only show document count sorting for IP fields', async () => { const popover = await mountComponent({ - componentState: { field: { name: 'Test IP field', type: 'ip' } as OptionsListField }, + componentState: { field: { name: 'Test IP field', type: 'ip' } as FieldSpec }, }); const sortButton = findTestSubject(popover, 'optionsListControl__sortingOptionsButton'); sortButton.simulate('click'); @@ -280,6 +281,25 @@ describe('Options list popover', () => { expect(optionsText).toEqual(['By document count - Checked option.']); }); + test('ensure warning icon does not show up when testAllowExpensiveQueries = true/undefined', async () => { + const popover = await mountComponent({ + componentState: { field: { name: 'Test keyword field', type: 'keyword' } as FieldSpec }, + }); + const warning = findTestSubject(popover, 'optionsList-allow-expensive-queries-warning'); + expect(warning).toEqual({}); + }); + + test('ensure warning icon shows up when testAllowExpensiveQueries = false', async () => { + const popover = await mountComponent({ + componentState: { + field: { name: 'Test keyword field', type: 'keyword' } as FieldSpec, + allowExpensiveQueries: false, + }, + }); + const warning = findTestSubject(popover, 'optionsList-allow-expensive-queries-warning'); + expect(warning.getDOMNode()).toBeInstanceOf(HTMLDivElement); + }); + describe('Test advanced settings', () => { const ensureComponentIsHidden = async ({ explicitInput, diff --git a/src/plugins/controls/public/options_list/components/options_list_popover.tsx b/src/plugins/controls/public/options_list/components/options_list_popover.tsx index b5562c43f3be2b..df5f3d00730d0a 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover.tsx @@ -9,12 +9,12 @@ import React, { useState } from 'react'; import { isEmpty } from 'lodash'; -import { EuiPopoverTitle } from '@elastic/eui'; import { useReduxEmbeddableContext } from '@kbn/presentation-util-plugin/public'; import { OptionsListReduxState } from '../types'; import { OptionsListStrings } from './options_list_strings'; import { optionsListReducers } from '../options_list_reducers'; +import { OptionsListPopoverTitle } from './options_list_popover_title'; import { OptionsListPopoverFooter } from './options_list_popover_footer'; import { OptionsListPopoverActionBar } from './options_list_popover_action_bar'; import { OptionsListPopoverSuggestions } from './options_list_popover_suggestions'; @@ -23,6 +23,7 @@ import { OptionsListPopoverInvalidSelections } from './options_list_popover_inva export interface OptionsListPopoverProps { width: number; isLoading: boolean; + loadMoreSuggestions: (cardinality: number) => void; updateSearchString: (newSearchString: string) => void; } @@ -30,6 +31,7 @@ export const OptionsListPopover = ({ width, isLoading, updateSearchString, + loadMoreSuggestions, }: OptionsListPopoverProps) => { // Redux embeddable container Context const { useEmbeddableSelector: select } = useReduxEmbeddableContext< @@ -42,39 +44,45 @@ export const OptionsListPopover = ({ const availableOptions = select((state) => state.componentState.availableOptions); const field = select((state) => state.componentState.field); - const hideExclude = select((state) => state.explicitInput.hideExclude); const hideActionBar = select((state) => state.explicitInput.hideActionBar); + const hideExclude = select((state) => state.explicitInput.hideExclude); const fieldName = select((state) => state.explicitInput.fieldName); - const title = select((state) => state.explicitInput.title); const id = select((state) => state.explicitInput.id); const [showOnlySelected, setShowOnlySelected] = useState(false); return ( -
    - {title} - {field?.type !== 'boolean' && !hideActionBar && ( - - )} + <>
    - - {!showOnlySelected && invalidSelections && !isEmpty(invalidSelections) && ( - + + + {field?.type !== 'boolean' && !hideActionBar && ( + )} +
    + + {!showOnlySelected && invalidSelections && !isEmpty(invalidSelections) && ( + + )} +
    + {!hideExclude && }
    - {!hideExclude && } -
    + ); }; diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_action_bar.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_action_bar.tsx index 375a2a20586926..fc3c1cfdfd9935 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover_action_bar.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover_action_bar.tsx @@ -15,7 +15,7 @@ import { EuiFlexItem, EuiFormRow, EuiToolTip, - EuiBadge, + EuiText, } from '@elastic/eui'; import { useReduxEmbeddableContext } from '@kbn/presentation-util-plugin/public'; @@ -26,8 +26,8 @@ import { OptionsListPopoverSortingButton } from './options_list_popover_sorting_ interface OptionsListPopoverProps { showOnlySelected: boolean; - setShowOnlySelected: (value: boolean) => void; updateSearchString: (newSearchString: string) => void; + setShowOnlySelected: (value: boolean) => void; } export const OptionsListPopoverActionBar = ({ @@ -44,23 +44,17 @@ export const OptionsListPopoverActionBar = ({ const dispatch = useEmbeddableDispatch(); // Select current state from Redux using multiple selectors to avoid rerenders. + const allowExpensiveQueries = select((state) => state.componentState.allowExpensiveQueries); const invalidSelections = select((state) => state.componentState.invalidSelections); - const totalCardinality = select((state) => state.componentState.totalCardinality); + const totalCardinality = select((state) => state.componentState.totalCardinality) ?? 0; const searchString = select((state) => state.componentState.searchString); - const hideSort = select((state) => state.explicitInput.hideSort); return (
    - - + + updateSearchString(event.target.value)} value={searchString.value} data-test-subj="optionsList-control-search-input" - placeholder={ - totalCardinality - ? OptionsListStrings.popover.getTotalCardinalityPlaceholder(totalCardinality) - : undefined - } + placeholder={OptionsListStrings.popover.getSearchPlaceholder()} autoFocus={true} /> - - {(invalidSelections?.length ?? 0) > 0 && ( - - - {invalidSelections?.length} - - - )} - {!hideSort && ( )} - - - setShowOnlySelected(!showOnlySelected)} - data-test-subj="optionsList-control-show-only-selected" - aria-label={ - showOnlySelected - ? OptionsListStrings.popover.getAllOptionsButtonTitle() - : OptionsListStrings.popover.getSelectedOptionsButtonTitle() - } - /> - - - - + + + + {allowExpensiveQueries && ( + + + {OptionsListStrings.popover.getCardinalityLabel(totalCardinality)} + + + )} + {invalidSelections && invalidSelections.length > 0 && ( + <> + {allowExpensiveQueries && ( + +
    + + )} + + + {OptionsListStrings.popover.getInvalidSelectionsLabel(invalidSelections.length)} + + + + )} + + - dispatch(clearSelections({}))} - data-test-subj="optionsList-control-clear-all-selections" - aria-label={OptionsListStrings.popover.getClearAllSelectionsButtonTitle()} - /> - + + + setShowOnlySelected(!showOnlySelected)} + data-test-subj="optionsList-control-show-only-selected" + aria-label={ + showOnlySelected + ? OptionsListStrings.popover.getAllOptionsButtonTitle() + : OptionsListStrings.popover.getSelectedOptionsButtonTitle() + } + /> + + + + + dispatch(clearSelections({}))} + data-test-subj="optionsList-control-clear-all-selections" + aria-label={OptionsListStrings.popover.getClearAllSelectionsButtonTitle()} + /> + + + diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_footer.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_footer.tsx index 8a51a33a31ba07..d04e389f8ec995 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover_footer.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover_footer.tsx @@ -7,7 +7,13 @@ */ import React from 'react'; -import { EuiPopoverFooter, EuiButtonGroup, useEuiBackgroundColor } from '@elastic/eui'; +import { + useEuiBackgroundColor, + useEuiPaddingSize, + EuiPopoverFooter, + EuiButtonGroup, + EuiProgress, +} from '@elastic/eui'; import { css } from '@emotion/react'; import { useReduxEmbeddableContext } from '@kbn/presentation-util-plugin/public'; @@ -26,7 +32,7 @@ const aggregationToggleButtons = [ }, ]; -export const OptionsListPopoverFooter = () => { +export const OptionsListPopoverFooter = ({ isLoading }: { isLoading: boolean }) => { // Redux embeddable container Context const { useEmbeddableDispatch, @@ -41,19 +47,32 @@ export const OptionsListPopoverFooter = () => { return ( <> - dispatch(setExclude(optionId === 'optionsList__excludeResults'))} - buttonSize="compressed" - data-test-subj="optionsList__includeExcludeButtonGroup" - /> + {isLoading && ( +
    + +
    + )} +
    + + dispatch(setExclude(optionId === 'optionsList__excludeResults')) + } + buttonSize="compressed" + data-test-subj="optionsList__includeExcludeButtonGroup" + /> +
    ); diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_sorting_button.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_sorting_button.tsx index 91482e6f546680..9132fee3dc5dce 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover_sorting_button.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover_sorting_button.tsx @@ -12,14 +12,14 @@ import { EuiButtonGroupOptionProps, EuiSelectableOption, EuiPopoverTitle, + EuiButtonEmpty, EuiButtonGroup, - EuiButtonIcon, EuiSelectable, EuiFlexGroup, EuiFlexItem, - EuiToolTip, EuiPopover, Direction, + EuiToolTip, } from '@elastic/eui'; import { useReduxEmbeddableContext } from '@kbn/presentation-util-plugin/public'; @@ -91,25 +91,32 @@ export const OptionsListPopoverSortingButton = ({ } }; + const SortButton = () => ( + setIsSortingPopoverOpen(!isSortingPopoverOpen)} + className="euiFilterGroup" // this gives the button a nice border + aria-label={OptionsListStrings.popover.getSortPopoverDescription()} + > + {OptionsListStrings.popover.getSortPopoverTitle()} + + ); + return ( - setIsSortingPopoverOpen(!isSortingPopoverOpen)} - aria-label={OptionsListStrings.popover.getSortPopoverDescription()} - /> - + showOnlySelected ? ( + + + + ) : ( + + ) } panelPaddingSize="none" isOpen={isSortingPopoverOpen} diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_suggestions.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_suggestions.tsx index 8bd8e361e7081a..fd0e7668c82fa2 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover_suggestions.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover_suggestions.tsx @@ -6,26 +6,27 @@ * Side Public License, v 1. */ -import React, { useEffect, useMemo, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import { EuiLoadingSpinner, EuiSelectable, EuiSpacer } from '@elastic/eui'; +import { euiThemeVars } from '@kbn/ui-theme'; +import { EuiSelectable } from '@elastic/eui'; import { useReduxEmbeddableContext } from '@kbn/presentation-util-plugin/public'; import { EuiSelectableOption } from '@elastic/eui/src/components/selectable/selectable_option'; -import { OptionsListReduxState } from '../types'; import { OptionsListStrings } from './options_list_strings'; import { optionsListReducers } from '../options_list_reducers'; +import { MAX_OPTIONS_LIST_REQUEST_SIZE, OptionsListReduxState } from '../types'; import { OptionsListPopoverEmptyMessage } from './options_list_popover_empty_message'; import { OptionsListPopoverSuggestionBadge } from './options_list_popover_suggestion_badge'; interface OptionsListPopoverSuggestionsProps { - isLoading: boolean; showOnlySelected: boolean; + loadMoreSuggestions: (cardinality: number) => void; } export const OptionsListPopoverSuggestions = ({ - isLoading, showOnlySelected, + loadMoreSuggestions, }: OptionsListPopoverSuggestionsProps) => { // Redux embeddable container Context const { @@ -38,12 +39,27 @@ export const OptionsListPopoverSuggestions = ({ // Select current state from Redux using multiple selectors to avoid rerenders. const invalidSelections = select((state) => state.componentState.invalidSelections); const availableOptions = select((state) => state.componentState.availableOptions); + const totalCardinality = select((state) => state.componentState.totalCardinality); + const searchString = select((state) => state.componentState.searchString); const selectedOptions = select((state) => state.explicitInput.selectedOptions); const existsSelected = select((state) => state.explicitInput.existsSelected); const singleSelect = select((state) => state.explicitInput.singleSelect); const hideExists = select((state) => state.explicitInput.hideExists); + const isLoading = select((state) => state.output.loading) ?? false; const fieldName = select((state) => state.explicitInput.fieldName); + const sort = select((state) => state.explicitInput.sort); + + const listRef = useRef(null); + + const canLoadMoreSuggestions = useMemo( + () => + totalCardinality + ? Object.keys(availableOptions ?? {}).length < + Math.min(totalCardinality, MAX_OPTIONS_LIST_REQUEST_SIZE) + : false, + [availableOptions, totalCardinality] + ); // track selectedOptions and invalidSelections in sets for more efficient lookup const selectedOptionsSet = useMemo(() => new Set(selectedOptions), [selectedOptions]); @@ -51,7 +67,6 @@ export const OptionsListPopoverSuggestions = ({ () => new Set(invalidSelections), [invalidSelections] ); - const suggestions = useMemo(() => { return showOnlySelected ? selectedOptions : Object.keys(availableOptions ?? {}); }, [availableOptions, selectedOptions, showOnlySelected]); @@ -87,10 +102,23 @@ export const OptionsListPopoverSuggestions = ({ ) : undefined, }; }); - const suggestionsSelectableOptions = existsSelectableOption - ? [existsSelectableOption, ...options] - : options; - setSelectableOptions(suggestionsSelectableOptions); + + if (canLoadMoreSuggestions) { + options.push({ + key: 'loading-option', + className: 'optionslist--loadingMoreGroupLabel', + label: OptionsListStrings.popover.getLoadingMoreMessage(), + isGroupLabel: true, + }); + } else if (options.length === MAX_OPTIONS_LIST_REQUEST_SIZE) { + options.push({ + key: 'no-more-option', + className: 'optionslist--endOfOptionsGroupLabel', + label: OptionsListStrings.popover.getAtEndOfOptionsMessage(), + isGroupLabel: true, + }); + } + setSelectableOptions(existsSelectableOption ? [existsSelectableOption, ...options] : options); }, [ suggestions, availableOptions, @@ -98,42 +126,66 @@ export const OptionsListPopoverSuggestions = ({ selectedOptionsSet, invalidSelectionsSet, existsSelectableOption, + canLoadMoreSuggestions, ]); + const loadMoreOptions = useCallback(() => { + const listbox = listRef.current?.querySelector('.euiSelectableList__list'); + if (!listbox) return; + + const { scrollTop, scrollHeight, clientHeight } = listbox; + if (scrollTop + clientHeight >= scrollHeight - parseInt(euiThemeVars.euiSizeXXL, 10)) { + // reached the "bottom" of the list, where euiSizeXXL acts as a "margin of error" so that the user doesn't + // have to scroll **all the way** to the bottom in order to load more options + loadMoreSuggestions(totalCardinality ?? MAX_OPTIONS_LIST_REQUEST_SIZE); + } + }, [loadMoreSuggestions, totalCardinality]); + + useEffect(() => { + const container = listRef.current; + if (!isLoading && canLoadMoreSuggestions) { + container?.addEventListener('scroll', loadMoreOptions, true); + return () => { + container?.removeEventListener('scroll', loadMoreOptions, true); + }; + } + }, [loadMoreOptions, isLoading, canLoadMoreSuggestions]); + + useEffect(() => { + // scroll back to the top when changing the sorting or the search string + const listbox = listRef.current?.querySelector('.euiSelectableList__list'); + listbox?.scrollTo({ top: 0 }); + }, [sort, searchString]); + return ( - - - - {OptionsListStrings.popover.getLoadingMessage()} - - } - options={selectableOptions} - listProps={{ onFocusBadge: false }} - aria-label={OptionsListStrings.popover.getSuggestionsAriaLabel( - fieldName, - selectableOptions.length - )} - emptyMessage={} - onChange={(newSuggestions, _, changedOption) => { - setSelectableOptions(newSuggestions); - - const key = changedOption.key ?? changedOption.label; - // the order of these checks matters, so be careful if rearranging them - if (key === 'exists-option') { - dispatch(selectExists(!Boolean(existsSelected))); - } else if (showOnlySelected || selectedOptionsSet.has(key)) { - dispatch(deselectOption(key)); - } else if (singleSelect) { - dispatch(replaceSelection(key)); - } else { - dispatch(selectOption(key)); - } - }} - > - {(list) => list} - + <> +
    + } + onChange={(newSuggestions, _, changedOption) => { + const key = changedOption.key ?? changedOption.label; + setSelectableOptions(newSuggestions); + // the order of these checks matters, so be careful if rearranging them + if (key === 'exists-option') { + dispatch(selectExists(!Boolean(existsSelected))); + } else if (showOnlySelected || selectedOptionsSet.has(key)) { + dispatch(deselectOption(key)); + } else if (singleSelect) { + dispatch(replaceSelection(key)); + } else { + dispatch(selectOption(key)); + } + }} + > + {(list) => list} + +
    + ); }; diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_title.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_title.tsx new file mode 100644 index 00000000000000..40361260e56c07 --- /dev/null +++ b/src/plugins/controls/public/options_list/components/options_list_popover_title.tsx @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; + +import { EuiFlexGroup, EuiFlexItem, EuiPopoverTitle, EuiIconTip } from '@elastic/eui'; +import { useReduxEmbeddableContext } from '@kbn/presentation-util-plugin/public'; + +import { OptionsListReduxState } from '../types'; +import { OptionsListStrings } from './options_list_strings'; +import { optionsListReducers } from '../options_list_reducers'; + +export const OptionsListPopoverTitle = () => { + // Redux embeddable container Context + const { useEmbeddableSelector: select } = useReduxEmbeddableContext< + OptionsListReduxState, + typeof optionsListReducers + >(); + + // Select current state from Redux using multiple selectors to avoid rerenders. + const allowExpensiveQueries = select((state) => state.componentState.allowExpensiveQueries); + const title = select((state) => state.explicitInput.title); + + return ( + + + {title} + {!allowExpensiveQueries && ( + + + + )} + + + ); +}; diff --git a/src/plugins/controls/public/options_list/components/options_list_strings.ts b/src/plugins/controls/public/options_list/components/options_list_strings.ts index bef8a2cbc26ffc..f67676103a92d4 100644 --- a/src/plugins/controls/public/options_list/components/options_list_strings.ts +++ b/src/plugins/controls/public/options_list/components/options_list_strings.ts @@ -54,9 +54,19 @@ export const OptionsListStrings = { 'Available {optionCount, plural, one {option} other {options}} for {fieldName}', values: { fieldName, optionCount }, }), - getLoadingMessage: () => - i18n.translate('controls.optionsList.popover.loading', { - defaultMessage: 'Loading options', + getAllowExpensiveQueriesWarning: () => + i18n.translate('controls.optionsList.popover.allowExpensiveQueriesWarning', { + defaultMessage: + 'The cluster setting to allow expensive queries is off, so some features are disabled.', + }), + getLoadingMoreMessage: () => + i18n.translate('controls.optionsList.popover.loadingMore', { + defaultMessage: 'Loading more options...', + }), + getAtEndOfOptionsMessage: () => + i18n.translate('controls.optionsList.popover.endOfOptions', { + defaultMessage: + 'The top 1,000 available options are displayed. View more options by searching for the name.', }), getEmptyMessage: () => i18n.translate('controls.optionsList.popover.empty', { @@ -78,10 +88,14 @@ export const OptionsListStrings = { i18n.translate('controls.optionsList.popover.clearAllSelectionsTitle', { defaultMessage: 'Clear selections', }), - getTotalCardinalityPlaceholder: (totalOptions: number) => - i18n.translate('controls.optionsList.popover.cardinalityPlaceholder', { + getSearchPlaceholder: () => + i18n.translate('controls.optionsList.popover.searchPlaceholder', { + defaultMessage: 'Search', + }), + getCardinalityLabel: (totalOptions: number) => + i18n.translate('controls.optionsList.popover.cardinalityLabel', { defaultMessage: - 'Search {totalOptions} available {totalOptions, plural, one {option} other {options}}', + '{totalOptions, number} {totalOptions, plural, one {option} other {options}}', values: { totalOptions }, }), getInvalidSelectionsSectionAriaLabel: (fieldName: string, invalidSelectionCount: number) => @@ -96,10 +110,10 @@ export const OptionsListStrings = { 'Ignored {invalidSelectionCount, plural, one {selection} other {selections}}', values: { invalidSelectionCount }, }), - getInvalidSelectionsTooltip: (selectedOptions: number) => - i18n.translate('controls.optionsList.popover.invalidSelectionsTooltip', { + getInvalidSelectionsLabel: (selectedOptions: number) => + i18n.translate('controls.optionsList.popover.invalidSelectionsLabel', { defaultMessage: - '{selectedOptions} selected {selectedOptions, plural, one {option} other {options}} {selectedOptions, plural, one {is} other {are}} ignored because {selectedOptions, plural, one {it is} other {they are}} no longer in the data.', + '{selectedOptions} {selectedOptions, plural, one {selection} other {selections}} ignored', values: { selectedOptions }, }), getInvalidSelectionScreenReaderText: () => diff --git a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx index 8d8fb505b5cdd6..2a7f7e116c40f3 100644 --- a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx +++ b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx @@ -24,11 +24,11 @@ import { buildExistsFilter, } from '@kbn/es-query'; import { ReduxEmbeddableTools, ReduxEmbeddablePackage } from '@kbn/presentation-util-plugin/public'; -import { DataView } from '@kbn/data-views-plugin/public'; +import { DataView, FieldSpec } from '@kbn/data-views-plugin/public'; import { Embeddable, IContainer } from '@kbn/embeddable-plugin/public'; import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; -import { OptionsListReduxState } from '../types'; +import { MIN_OPTIONS_LIST_REQUEST_SIZE, OptionsListReduxState } from '../types'; import { pluginServices } from '../../services'; import { ControlInput, @@ -40,7 +40,6 @@ import { getDefaultComponentState, optionsListReducers } from '../options_list_r import { OptionsListControl } from '../components/options_list_control'; import { ControlsDataViewsService } from '../../services/data_views/types'; import { ControlsOptionsListService } from '../../services/options_list/types'; -import { OptionsListField } from '../../../common/options_list/types'; const diffDataFetchProps = ( last?: OptionsListDataFetchProps, @@ -76,9 +75,10 @@ export class OptionsListEmbeddable extends Embeddable = new Subject(); + private loadMoreSubject: Subject = new Subject(); private abortController?: AbortController; private dataView?: DataView; - private field?: OptionsListField; + private field?: FieldSpec; private reduxEmbeddableTools: ReduxEmbeddableTools< OptionsListReduxState, @@ -98,6 +98,7 @@ export class OptionsListEmbeddable extends Embeddable(); + this.loadMoreSubject = new Subject(); // build redux embeddable tools this.reduxEmbeddableTools = reduxEmbeddablePackage.createTools< @@ -115,6 +116,13 @@ export class OptionsListEmbeddable extends Embeddable { const { selectedOptions: initialSelectedOptions } = this.getInput(); if (!initialSelectedOptions) this.setInitializationFinished(); + + const { + actions: { setAllowExpensiveQueries }, + dispatch, + } = this.reduxEmbeddableTools; + dispatch(setAllowExpensiveQueries(await this.optionsListService.getAllowExpensiveQueries())); + this.runOptionsListQuery().then(async () => { if (initialSelectedOptions) { await this.buildFilter(); @@ -144,12 +152,21 @@ export class OptionsListEmbeddable extends Embeddable { + this.runOptionsListQuery(); + }) + ); + // fetch more options when reaching the bottom of the available options + this.subscriptions.add( + loadMorePipe.subscribe((size) => { + this.runOptionsListQuery(size); + }) ); /** @@ -203,7 +220,7 @@ export class OptionsListEmbeddable extends Embeddable => { const { dispatch, @@ -212,7 +229,7 @@ export class OptionsListEmbeddable extends Embeddable { + private runOptionsListQuery = async (size: number = MIN_OPTIONS_LIST_REQUEST_SIZE) => { const { dispatch, getState, actions: { setLoading, publishFilters, setSearchString, updateQueryResults }, } = this.reduxEmbeddableTools; - const previousFieldName = this.field?.name; const { dataView, field } = await this.getCurrentDataViewAndField(); if (!dataView || !field) return; @@ -284,7 +286,7 @@ export class OptionsListEmbeddable extends Embeddable { + const { + dispatch, + actions: { setPopoverOpen, setLoading }, + } = this.reduxEmbeddableTools; + batch(() => { + dispatch(setLoading(false)); + dispatch(setPopoverOpen(false)); + }); + super.onFatalError(e); + }; + public destroy = () => { super.destroy(); this.abortController?.abort(); this.subscriptions.unsubscribe(); this.reduxEmbeddableTools.cleanup(); + if (this.node) ReactDOM.unmountComponentAtNode(this.node); }; public render = (node: HTMLElement) => { @@ -427,7 +449,10 @@ export class OptionsListEmbeddable extends Embeddable - + , node diff --git a/src/plugins/controls/public/options_list/options_list_reducers.ts b/src/plugins/controls/public/options_list/options_list_reducers.ts index e2d7388c7f81e2..f50ab9bd6f7f73 100644 --- a/src/plugins/controls/public/options_list/options_list_reducers.ts +++ b/src/plugins/controls/public/options_list/options_list_reducers.ts @@ -9,9 +9,9 @@ import { PayloadAction } from '@reduxjs/toolkit'; import { WritableDraft } from 'immer/dist/types/types-external'; import { Filter } from '@kbn/es-query'; +import { FieldSpec } from '@kbn/data-views-plugin/common'; import { OptionsListReduxState, OptionsListComponentState } from './types'; -import { OptionsListField } from '../../common/options_list/types'; import { getIpRangeQuery } from '../../common/options_list/ip_search'; import { OPTIONS_LIST_DEFAULT_SORT, @@ -19,6 +19,8 @@ import { } from '../../common/options_list/suggestions_sorting'; export const getDefaultComponentState = (): OptionsListReduxState['componentState'] => ({ + popoverOpen: false, + allowExpensiveQueries: true, searchString: { value: '', valid: true }, }); @@ -41,6 +43,15 @@ export const optionsListReducers = { state.componentState.searchString.valid = getIpRangeQuery(action.payload).validSearch; } }, + setAllowExpensiveQueries: ( + state: WritableDraft, + action: PayloadAction + ) => { + state.componentState.allowExpensiveQueries = action.payload; + }, + setPopoverOpen: (state: WritableDraft, action: PayloadAction) => { + state.componentState.popoverOpen = action.payload; + }, setSort: ( state: WritableDraft, action: PayloadAction> @@ -97,7 +108,7 @@ export const optionsListReducers = { }, setField: ( state: WritableDraft, - action: PayloadAction + action: PayloadAction ) => { state.componentState.field = action.payload; }, @@ -110,7 +121,10 @@ export const optionsListReducers = { > > ) => { - state.componentState = { ...(state.componentState ?? {}), ...action.payload }; + state.componentState = { + ...(state.componentState ?? {}), + ...action.payload, + }; }, publishFilters: ( state: WritableDraft, diff --git a/src/plugins/controls/public/options_list/types.ts b/src/plugins/controls/public/options_list/types.ts index ae825132b6f80a..c0501b0b6f38bd 100644 --- a/src/plugins/controls/public/options_list/types.ts +++ b/src/plugins/controls/public/options_list/types.ts @@ -7,13 +7,17 @@ */ import { ReduxEmbeddableState } from '@kbn/presentation-util-plugin/public'; +import { FieldSpec } from '@kbn/data-views-plugin/common'; + import { ControlOutput } from '../types'; import { - OptionsListField, OptionsListSuggestions, OptionsListEmbeddableInput, } from '../../common/options_list/types'; +export const MIN_OPTIONS_LIST_REQUEST_SIZE = 10; +export const MAX_OPTIONS_LIST_REQUEST_SIZE = 1000; + interface SearchString { value: string; valid: boolean; @@ -21,12 +25,14 @@ interface SearchString { // Component state is only used by public components. export interface OptionsListComponentState { - field?: OptionsListField; - totalCardinality?: number; availableOptions?: OptionsListSuggestions; + allowExpensiveQueries: boolean; invalidSelections?: string[]; - validSelections?: string[]; searchString: SearchString; + validSelections?: string[]; + totalCardinality?: number; + popoverOpen: boolean; + field?: FieldSpec; } // public only - redux embeddable state type diff --git a/src/plugins/controls/public/services/http/http.stub.ts b/src/plugins/controls/public/services/http/http.stub.ts index d3362491ee71d0..54fee10ce533eb 100644 --- a/src/plugins/controls/public/services/http/http.stub.ts +++ b/src/plugins/controls/public/services/http/http.stub.ts @@ -13,5 +13,6 @@ import { ControlsHTTPService } from './types'; type HttpServiceFactory = PluginServiceFactory; export const httpServiceFactory: HttpServiceFactory = () => ({ + get: async () => ({} as unknown as HttpResponse), fetch: async () => ({} as unknown as HttpResponse), }); diff --git a/src/plugins/controls/public/services/http/http_service.ts b/src/plugins/controls/public/services/http/http_service.ts index 88eca23e3c1d61..c48aed61b1c124 100644 --- a/src/plugins/controls/public/services/http/http_service.ts +++ b/src/plugins/controls/public/services/http/http_service.ts @@ -16,10 +16,11 @@ export type HttpServiceFactory = KibanaPluginServiceFactory< >; export const httpServiceFactory: HttpServiceFactory = ({ coreStart }) => { const { - http: { fetch }, + http: { get, fetch }, } = coreStart; return { + get, fetch, }; }; diff --git a/src/plugins/controls/public/services/http/types.ts b/src/plugins/controls/public/services/http/types.ts index ce75c4b75a3d06..ea92ce6c4a74f8 100644 --- a/src/plugins/controls/public/services/http/types.ts +++ b/src/plugins/controls/public/services/http/types.ts @@ -9,5 +9,6 @@ import { CoreSetup } from '@kbn/core/public'; export interface ControlsHTTPService { + get: CoreSetup['http']['get']; fetch: CoreSetup['http']['fetch']; } diff --git a/src/plugins/controls/public/services/options_list/options_list.story.ts b/src/plugins/controls/public/services/options_list/options_list.story.ts index c641e9ee8834a7..6d3305f97b9aa2 100644 --- a/src/plugins/controls/public/services/options_list/options_list.story.ts +++ b/src/plugins/controls/public/services/options_list/options_list.story.ts @@ -20,14 +20,11 @@ let optionsListRequestMethod = async (request: OptionsListRequest, abortSignal: r({ suggestions: {}, totalCardinality: 100, - rejected: false, }), 120 ) ); -const clearOptionsListCacheMock = () => {}; - export const replaceOptionsListMethod = ( newMethod: (request: OptionsListRequest, abortSignal: AbortSignal) => Promise ) => (optionsListRequestMethod = newMethod); @@ -35,6 +32,12 @@ export const replaceOptionsListMethod = ( export const optionsListServiceFactory: OptionsListServiceFactory = () => { return { runOptionsListRequest: optionsListRequestMethod, - clearOptionsListCache: clearOptionsListCacheMock, + clearOptionsListCache: jest.fn(), + getAllowExpensiveQueries: jest.fn().mockReturnValue(Promise.resolve(true)), + optionsListResponseWasFailure: jest + .fn() + .mockReturnValue( + false + ) as unknown as ControlsOptionsListService['optionsListResponseWasFailure'], }; }; diff --git a/src/plugins/controls/public/services/options_list/options_list_service.ts b/src/plugins/controls/public/services/options_list/options_list_service.ts index 888d2e2efb837d..7152d190c997df 100644 --- a/src/plugins/controls/public/services/options_list/options_list_service.ts +++ b/src/plugins/controls/public/services/options_list/options_list_service.ts @@ -16,7 +16,7 @@ import { OptionsListRequest, OptionsListResponse, OptionsListRequestBody, - OptionsListField, + OptionsListFailureResponse, } from '../../../common/options_list/types'; import { ControlsHTTPService } from '../http/types'; import { ControlsDataService } from '../data/types'; @@ -38,6 +38,7 @@ class OptionsListService implements ControlsOptionsListService { private optionsListCacheResolver = (request: OptionsListRequest) => { const { + size, sort, query, filters, @@ -59,6 +60,7 @@ class OptionsListService implements ControlsOptionsListService { dataViewTitle, searchString, fieldName, + size, ].join('|'); }; @@ -90,18 +92,39 @@ class OptionsListService implements ControlsOptionsListService { filters: esFilters, fieldName: field.name, fieldSpec: field, - textFieldName: (field as OptionsListField).textFieldName, runtimeFieldMap: dataView.toSpec().runtimeFieldMap, }; }; + private cachedAllowExpensiveQueries = memoize(async () => { + const { allowExpensiveQueries } = await this.http.get<{ + allowExpensiveQueries: boolean; + }>('/api/kibana/controls/optionsList/getClusterSettings'); + return allowExpensiveQueries; + }); + + public getAllowExpensiveQueries = async (): Promise => { + try { + return await this.cachedAllowExpensiveQueries(); + } catch (error) { + return false; + } + }; + + public optionsListResponseWasFailure = ( + response: OptionsListResponse + ): response is OptionsListFailureResponse => { + return (response as OptionsListFailureResponse).error !== undefined; + }; + public runOptionsListRequest = async (request: OptionsListRequest, abortSignal: AbortSignal) => { try { return await this.cachedOptionsListRequest(request, abortSignal); - } catch (error) { + } catch (error: any) { // Remove rejected results from memoize cache this.cachedOptionsListRequest.cache.delete(this.optionsListCacheResolver(request)); - return { rejected: true } as OptionsListResponse; + if (error.name === 'AbortError') return { error: 'aborted' } as OptionsListFailureResponse; + return { error } as OptionsListFailureResponse; } }; diff --git a/src/plugins/controls/public/services/options_list/types.ts b/src/plugins/controls/public/services/options_list/types.ts index 569042b136419d..c78819c27c5d57 100644 --- a/src/plugins/controls/public/services/options_list/types.ts +++ b/src/plugins/controls/public/services/options_list/types.ts @@ -6,13 +6,20 @@ * Side Public License, v 1. */ -import { OptionsListRequest, OptionsListResponse } from '../../../common/options_list/types'; +import { + OptionsListFailureResponse, + OptionsListRequest, + OptionsListResponse, +} from '../../../common/options_list/types'; export interface ControlsOptionsListService { runOptionsListRequest: ( request: OptionsListRequest, abortSignal: AbortSignal ) => Promise; - clearOptionsListCache: () => void; + optionsListResponseWasFailure: ( + response: OptionsListResponse + ) => response is OptionsListFailureResponse; + getAllowExpensiveQueries: () => Promise; } diff --git a/src/plugins/controls/public/types.ts b/src/plugins/controls/public/types.ts index 59686af51cca61..17608ee7bef8d1 100644 --- a/src/plugins/controls/public/types.ts +++ b/src/plugins/controls/public/types.ts @@ -63,8 +63,6 @@ export interface ControlEditorProps { export interface DataControlField { field: DataViewField; - parentFieldName?: string; - childFieldName?: string; compatibleControlTypes: string[]; } diff --git a/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.test.ts b/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.test.ts new file mode 100644 index 00000000000000..31783a1267aca5 --- /dev/null +++ b/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.test.ts @@ -0,0 +1,606 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FieldSpec } from '@kbn/data-views-plugin/common'; +import { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; + +import { getCheapSuggestionAggregationBuilder } from './options_list_cheap_suggestion_queries'; +import { OptionsListRequestBody } from '../../common/options_list/types'; + +describe('options list cheap queries', () => { + let rawSearchResponseMock: SearchResponse = {} as SearchResponse; + + beforeEach(() => { + rawSearchResponseMock = { + hits: { + total: 10, + max_score: 10, + hits: [], + }, + took: 10, + timed_out: false, + _shards: { + failed: 0, + successful: 1, + total: 1, + skipped: 0, + }, + aggregations: {}, + }; + }); + + describe('suggestion aggregation', () => { + describe('keyword or text+keyword field', () => { + test('without a search string, creates keyword aggregation', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + allowExpensiveQueries: false, + fieldName: 'coolTestField.keyword', + sort: { by: '_count', direction: 'asc' }, + fieldSpec: { aggregatable: true } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "coolTestField.keyword", + "include": ".*", + "order": Object { + "_count": "asc", + }, + "shard_size": 10, + }, + }, + } + `); + }); + + test('with a search string, creates case sensitive keyword aggregation', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + searchString: 'cooool', + allowExpensiveQueries: false, + fieldName: 'coolTestField.keyword', + fieldSpec: { aggregatable: true } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "coolTestField.keyword", + "include": "cooool.*", + "order": Object { + "_count": "desc", + }, + "shard_size": 10, + }, + }, + } + `); + }); + }); + + test('creates boolean aggregation for boolean field', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'coolean', + allowExpensiveQueries: false, + sort: { by: '_key', direction: 'desc' }, + fieldSpec: { type: 'boolean' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "coolean", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + }, + }, + } + `); + }); + + test('creates nested aggregation for nested field', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + searchString: 'cooool', + allowExpensiveQueries: false, + fieldName: 'coolNestedField', + sort: { by: '_key', direction: 'asc' }, + fieldSpec: { subType: { nested: { path: 'path.to.nested' } } } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "nestedSuggestions": Object { + "aggs": Object { + "suggestions": Object { + "terms": Object { + "field": "coolNestedField", + "include": "cooool.*", + "order": Object { + "_key": "asc", + }, + "shard_size": 10, + }, + }, + }, + "nested": Object { + "path": "path.to.nested", + }, + }, + } + `); + }); + + describe('IP field', () => { + test('without a search string, creates IP range aggregation with default range', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: false, + sort: { by: '_count', direction: 'asc' }, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_count": "asc", + }, + "shard_size": 10, + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "from": "::", + "key": "ipv6", + "to": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + }, + ], + }, + }, + } + `); + }); + + test('full IPv4 in the search string, creates IP range aggregation with CIDR mask', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: false, + searchString: '41.77.243.255', + sort: { by: '_key', direction: 'desc' }, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "key": "ipv4", + "mask": "41.77.243.255/32", + }, + ], + }, + }, + } + `); + }); + + test('full IPv6 in the search string, creates IP range aggregation with CIDR mask', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: false, + sort: { by: '_key', direction: 'asc' }, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + searchString: 'f688:fb50:6433:bba2:604:f2c:194a:d3c5', + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_key": "asc", + }, + "shard_size": 10, + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "key": "ipv6", + "mask": "f688:fb50:6433:bba2:604:f2c:194a:d3c5/128", + }, + ], + }, + }, + } + `); + }); + + test('partial IPv4 in the search string, creates IP range aggregation with min and max', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + searchString: '41.77', + allowExpensiveQueries: false, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_count": "desc", + }, + "shard_size": 10, + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "from": "41.77.0.0", + "key": "ipv4", + "to": "41.77.255.255", + }, + ], + }, + }, + } + `); + }); + + test('partial IPv46 in the search string, creates IP range aggregation with min and max', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + searchString: 'cdb6:', + allowExpensiveQueries: false, + sort: { by: '_count', direction: 'desc' }, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_count": "desc", + }, + "shard_size": 10, + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "from": "cdb6::", + "key": "ipv6", + "to": "cdb6:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + }, + ], + }, + }, + } + `); + }); + }); + }); + + describe('suggestion parsing', () => { + test('parses keyword / text result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + searchString: 'cooool', + allowExpensiveQueries: false, + fieldName: 'coolTestField.keyword', + fieldSpec: { aggregatable: true } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: [ + { doc_count: 5, key: 'cool1' }, + { doc_count: 15, key: 'cool2' }, + { doc_count: 10, key: 'cool3' }, + ], + }, + }; + expect( + suggestionAggBuilder.parse(rawSearchResponseMock, optionsListRequestBodyMock).suggestions + ).toMatchInlineSnapshot(` + Object { + "cool1": Object { + "doc_count": 5, + }, + "cool2": Object { + "doc_count": 15, + }, + "cool3": Object { + "doc_count": 10, + }, + } + `); + }); + + test('parses boolean result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'coolean', + allowExpensiveQueries: false, + fieldSpec: { type: 'boolean' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: [ + { doc_count: 55, key_as_string: 'false' }, + { doc_count: 155, key_as_string: 'true' }, + ], + }, + }; + expect( + suggestionAggBuilder.parse(rawSearchResponseMock, optionsListRequestBodyMock).suggestions + ).toMatchInlineSnapshot(` + Object { + "false": Object { + "doc_count": 55, + }, + "true": Object { + "doc_count": 155, + }, + } + `); + }); + + test('parses nested result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + searchString: 'cooool', + fieldName: 'coolNestedField', + allowExpensiveQueries: false, + fieldSpec: { subType: { nested: { path: 'path.to.nested' } } } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + rawSearchResponseMock.aggregations = { + nestedSuggestions: { + suggestions: { + buckets: [ + { doc_count: 5, key: 'cool1' }, + { doc_count: 15, key: 'cool2' }, + { doc_count: 10, key: 'cool3' }, + ], + }, + }, + }; + expect( + suggestionAggBuilder.parse(rawSearchResponseMock, optionsListRequestBodyMock).suggestions + ).toMatchInlineSnapshot(` + Object { + "cool1": Object { + "doc_count": 5, + }, + "cool2": Object { + "doc_count": 15, + }, + "cool3": Object { + "doc_count": 10, + }, + } + `); + }); + + test('parses keyword only result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + searchString: 'cooool', + allowExpensiveQueries: false, + fieldName: 'coolTestField.keyword', + fieldSpec: { aggregatable: true } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: [ + { doc_count: 5, key: 'cool1' }, + { doc_count: 15, key: 'cool2' }, + { doc_count: 10, key: 'cool3' }, + ], + }, + }; + expect( + suggestionAggBuilder.parse(rawSearchResponseMock, optionsListRequestBodyMock).suggestions + ).toMatchInlineSnapshot(` + Object { + "cool1": Object { + "doc_count": 5, + }, + "cool2": Object { + "doc_count": 15, + }, + "cool3": Object { + "doc_count": 10, + }, + } + `); + }); + }); + + test('parses mixed IPv4 and IPv6 result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: false, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: { + ipv4: { + from: '0.0.0.0', + to: '255.255.255.255', + filteredSuggestions: { + buckets: [ + { doc_count: 8, key: '21.35.91.62' }, + { doc_count: 8, key: '21.35.91.61' }, + { doc_count: 11, key: '111.52.174.2' }, + { doc_count: 1, key: '56.73.58.63' }, + { doc_count: 9, key: '23.216.241.120' }, + { doc_count: 10, key: '196.162.13.39' }, + { doc_count: 7, key: '203.88.33.151' }, + ], + }, + }, + ipv6: { + from: '::', + to: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', + filteredSuggestions: { + buckets: [ + { doc_count: 12, key: '52:ae76:5947:5e2a:551:fe6a:712a:c72' }, + { doc_count: 1, key: 'fd:4aa0:c27c:b04:997f:2de1:51b4:8418' }, + { doc_count: 9, key: '28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172' }, + { doc_count: 6, key: '1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8' }, + { doc_count: 10, key: 'f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63' }, + ], + }, + }, + }, + }, + }; + + const parsed = suggestionAggBuilder.parse( + rawSearchResponseMock, + optionsListRequestBodyMock + ).suggestions; + /** first, verify that the sorting worked as expected */ + expect(Object.keys(parsed)).toMatchInlineSnapshot(` + Array [ + "52:ae76:5947:5e2a:551:fe6a:712a:c72", + "111.52.174.2", + "196.162.13.39", + "f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63", + "23.216.241.120", + "28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172", + "21.35.91.62", + "21.35.91.61", + "203.88.33.151", + "1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8", + ] + `); + /** then, make sure the object is structured properly */ + expect(parsed).toMatchInlineSnapshot(` + Object { + "111.52.174.2": Object { + "doc_count": 11, + }, + "196.162.13.39": Object { + "doc_count": 10, + }, + "1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8": Object { + "doc_count": 6, + }, + "203.88.33.151": Object { + "doc_count": 7, + }, + "21.35.91.61": Object { + "doc_count": 8, + }, + "21.35.91.62": Object { + "doc_count": 8, + }, + "23.216.241.120": Object { + "doc_count": 9, + }, + "28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172": Object { + "doc_count": 9, + }, + "52:ae76:5947:5e2a:551:fe6a:712a:c72": Object { + "doc_count": 12, + }, + "f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63": Object { + "doc_count": 10, + }, + } + `); + }); +}); diff --git a/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.ts b/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.ts new file mode 100644 index 00000000000000..3a302cf62d04b8 --- /dev/null +++ b/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.ts @@ -0,0 +1,201 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { get } from 'lodash'; +import { getFieldSubtypeNested } from '@kbn/data-views-plugin/common'; + +import { OptionsListRequestBody, OptionsListSuggestions } from '../../common/options_list/types'; +import { getIpRangeQuery, type IpRangeQuery } from '../../common/options_list/ip_search'; +import { EsBucket, OptionsListSuggestionAggregationBuilder } from './types'; +import { + getEscapedQuery, + getIpBuckets, + getSortType, +} from './options_list_suggestion_query_helpers'; + +/** + * Suggestion aggregations + */ +export const getCheapSuggestionAggregationBuilder = ({ fieldSpec }: OptionsListRequestBody) => { + if (fieldSpec?.type === 'boolean') { + return cheapSuggestionAggSubtypes.boolean; + } + if (fieldSpec?.type === 'ip') { + return cheapSuggestionAggSubtypes.ip; + } + if (fieldSpec && getFieldSubtypeNested(fieldSpec)) { + return cheapSuggestionAggSubtypes.subtypeNested; + } + return cheapSuggestionAggSubtypes.keywordOrText; +}; + +const cheapSuggestionAggSubtypes: { [key: string]: OptionsListSuggestionAggregationBuilder } = { + /** + * The "textOrKeyword" query / parser should be used whenever the field is built on some type non-nested string field + * (such as a keyword field or a keyword+text multi-field) + */ + keywordOrText: { + buildAggregation: ({ fieldName, searchString, sort }: OptionsListRequestBody) => ({ + suggestions: { + terms: { + field: fieldName, + include: `${getEscapedQuery(searchString)}.*`, + shard_size: 10, + order: getSortType(sort), + }, + }, + }), + parse: (rawEsResult) => ({ + suggestions: get(rawEsResult, 'aggregations.suggestions.buckets').reduce( + (suggestions: OptionsListSuggestions, suggestion: EsBucket) => { + return { ...suggestions, [suggestion.key]: { doc_count: suggestion.doc_count } }; + }, + {} + ), + }), + }, + + /** + * the "Boolean" query / parser should be used when the options list is built on a field of type boolean. The query is slightly different than a keyword query. + */ + boolean: { + buildAggregation: ({ fieldName, sort }: OptionsListRequestBody) => ({ + suggestions: { + terms: { + field: fieldName, + shard_size: 10, + order: getSortType(sort), + }, + }, + }), + parse: (rawEsResult) => ({ + suggestions: get(rawEsResult, 'aggregations.suggestions.buckets')?.reduce( + (suggestions: OptionsListSuggestions, suggestion: EsBucket & { key_as_string: string }) => { + return { + ...suggestions, + [suggestion.key_as_string]: { doc_count: suggestion.doc_count }, + }; + }, + {} + ), + }), + }, + + /** + * the "IP" query / parser should be used when the options list is built on a field of type IP. + */ + ip: { + buildAggregation: ({ fieldName, searchString, sort }: OptionsListRequestBody) => { + let ipRangeQuery: IpRangeQuery = { + validSearch: true, + rangeQuery: [ + { + key: 'ipv6', + from: '::', + to: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', + }, + ], + }; + + if (searchString) { + ipRangeQuery = getIpRangeQuery(searchString); + if (!ipRangeQuery.validSearch) { + // ideally should be prevented on the client side but, if somehow an invalid search gets through to the server, + // simply don't return an aggregation query for the ES search request + return undefined; + } + } + + return { + suggestions: { + ip_range: { + field: fieldName, + ranges: ipRangeQuery.rangeQuery, + keyed: true, + }, + aggs: { + filteredSuggestions: { + terms: { + field: fieldName, + shard_size: 10, + order: getSortType(sort), + }, + }, + }, + }, + }; + }, + parse: (rawEsResult, { sort }) => { + if (!Boolean(rawEsResult.aggregations?.suggestions)) { + // if this is happens, that means there is an invalid search that snuck through to the server side code; + // so, might as well early return with no suggestions + return { suggestions: {} }; + } + + const buckets: EsBucket[] = []; + getIpBuckets(rawEsResult, buckets, 'ipv4'); // modifies buckets array directly, i.e. "by reference" + getIpBuckets(rawEsResult, buckets, 'ipv6'); + + const sortedSuggestions = + sort?.direction === 'asc' + ? buckets.sort( + (bucketA: EsBucket, bucketB: EsBucket) => bucketA.doc_count - bucketB.doc_count + ) + : buckets.sort( + (bucketA: EsBucket, bucketB: EsBucket) => bucketB.doc_count - bucketA.doc_count + ); + + return { + suggestions: sortedSuggestions + .slice(0, 10) // only return top 10 results + .reduce((suggestions, suggestion: EsBucket) => { + return { ...suggestions, [suggestion.key]: { doc_count: suggestion.doc_count } }; + }, {}), + }; + }, + }, + + /** + * the "Subtype Nested" query / parser should be used when the options list is built on a field with subtype nested. + */ + subtypeNested: { + buildAggregation: (req: OptionsListRequestBody) => { + const { fieldSpec, fieldName, searchString, sort } = req; + const subTypeNested = fieldSpec && getFieldSubtypeNested(fieldSpec); + if (!subTypeNested) { + // if this field is not subtype nested, fall back to keywordOnly + return cheapSuggestionAggSubtypes.keywordOnly.buildAggregation(req); + } + return { + nestedSuggestions: { + nested: { + path: subTypeNested.nested.path, + }, + aggs: { + suggestions: { + terms: { + field: fieldName, + include: `${getEscapedQuery(searchString)}.*`, + shard_size: 10, + order: getSortType(sort), + }, + }, + }, + }, + }; + }, + parse: (rawEsResult) => ({ + suggestions: get(rawEsResult, 'aggregations.nestedSuggestions.suggestions.buckets').reduce( + (suggestions: OptionsListSuggestions, suggestion: EsBucket) => { + return { ...suggestions, [suggestion.key]: { doc_count: suggestion.doc_count } }; + }, + {} + ), + }), + }, +}; diff --git a/src/plugins/controls/server/options_list/options_list_cluster_settings_route.ts b/src/plugins/controls/server/options_list/options_list_cluster_settings_route.ts new file mode 100644 index 00000000000000..3da1585405305e --- /dev/null +++ b/src/plugins/controls/server/options_list/options_list_cluster_settings_route.ts @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { getKbnServerError, reportServerError } from '@kbn/kibana-utils-plugin/server'; +import { CoreSetup } from '@kbn/core/server'; + +export const setupOptionsListClusterSettingsRoute = ({ http }: CoreSetup) => { + const router = http.createRouter(); + router.get( + { + path: '/api/kibana/controls/optionsList/getClusterSettings', + validate: false, + }, + async (context, _, response) => { + try { + const esClient = (await context.core).elasticsearch.client.asCurrentUser; + const settings = await esClient.cluster.getSettings({ + include_defaults: true, + filter_path: '**.allow_expensive_queries', + }); + + // priority: transient -> persistent -> default + const allowExpensiveQueries: string = + settings.transient?.search?.allow_expensive_queries ?? + settings.persistent?.search?.allow_expensive_queries ?? + settings.defaults?.search?.allow_expensive_queries ?? + // by default, the allowExpensiveQueries cluster setting is undefined; so, we need to treat this the same + // as `true` since that's the way other applications (such as the dashboard listing page) handle this. + 'true'; + + return response.ok({ + body: { + allowExpensiveQueries: allowExpensiveQueries === 'true', + }, + }); + } catch (e) { + const kbnErr = getKbnServerError(e); + return reportServerError(response, kbnErr); + } + } + ); +}; diff --git a/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.test.ts b/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.test.ts new file mode 100644 index 00000000000000..7026359e10ee4d --- /dev/null +++ b/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.test.ts @@ -0,0 +1,676 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FieldSpec } from '@kbn/data-views-plugin/common'; +import { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; + +import { getExpensiveSuggestionAggregationBuilder } from './options_list_expensive_suggestion_queries'; +import { OptionsListRequestBody } from '../../common/options_list/types'; + +describe('options list expensive queries', () => { + let rawSearchResponseMock: SearchResponse = {} as SearchResponse; + + beforeEach(() => { + rawSearchResponseMock = { + hits: { + total: 10, + max_score: 10, + hits: [], + }, + took: 10, + timed_out: false, + _shards: { + failed: 0, + successful: 1, + total: 1, + skipped: 0, + }, + aggregations: {}, + }; + }); + + describe('suggestion aggregation', () => { + describe('string (keyword, text+keyword, or nested) field', () => { + test('test keyword field, without a search string', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + allowExpensiveQueries: true, + fieldName: 'coolTestField.keyword', + sort: { by: '_key', direction: 'asc' }, + fieldSpec: { aggregatable: true } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "coolTestField.keyword", + "order": Object { + "_key": "asc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "coolTestField.keyword", + }, + }, + } + `); + }); + + test('test keyword field, with a search string', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + searchString: 'cooool', + allowExpensiveQueries: true, + fieldName: 'coolTestField.keyword', + sort: { by: '_key', direction: 'desc' }, + fieldSpec: { aggregatable: true } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "filteredSuggestions": Object { + "aggs": Object { + "suggestions": Object { + "terms": Object { + "field": "coolTestField.keyword", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "coolTestField.keyword", + }, + }, + }, + "filter": Object { + "prefix": Object { + "coolTestField.keyword": Object { + "case_insensitive": true, + "value": "cooool", + }, + }, + }, + }, + } + `); + }); + + test('test nested field, with a search string', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + searchString: 'cooool', + allowExpensiveQueries: true, + fieldName: 'coolNestedField', + sort: { by: '_count', direction: 'asc' }, + fieldSpec: { subType: { nested: { path: 'path.to.nested' } } } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "nestedSuggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "aggs": Object { + "suggestions": Object { + "terms": Object { + "field": "coolNestedField", + "order": Object { + "_count": "asc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "coolNestedField", + }, + }, + }, + "filter": Object { + "prefix": Object { + "coolNestedField": Object { + "case_insensitive": true, + "value": "cooool", + }, + }, + }, + }, + }, + "nested": Object { + "path": "path.to.nested", + }, + }, + } + `); + }); + }); + + test('boolean field', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'coolean', + allowExpensiveQueries: false, + sort: { by: '_key', direction: 'desc' }, + fieldSpec: { type: 'boolean' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "coolean", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + }, + }, + } + `); + }); + + describe('IP field', () => { + test('without a search string, creates IP range aggregation with default range', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: true, + sort: { by: '_key', direction: 'asc' }, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_key": "asc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "clientip", + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "from": "::", + "key": "ipv6", + "to": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + }, + ], + }, + }, + } + `); + }); + + test('full IPv4 in the search string, creates IP range aggregation with CIDR mask', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: true, + searchString: '41.77.243.255', + sort: { by: '_count', direction: 'asc' }, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_count": "asc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "clientip", + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "key": "ipv4", + "mask": "41.77.243.255/32", + }, + ], + }, + }, + } + `); + }); + + test('full IPv6 in the search string, creates IP range aggregation with CIDR mask', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: true, + sort: { by: '_key', direction: 'asc' }, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + searchString: 'f688:fb50:6433:bba2:604:f2c:194a:d3c5', + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_key": "asc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "clientip", + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "key": "ipv6", + "mask": "f688:fb50:6433:bba2:604:f2c:194a:d3c5/128", + }, + ], + }, + }, + } + `); + }); + + test('partial IPv4 in the search string, creates IP range aggregation with min and max', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + searchString: '41.77', + allowExpensiveQueries: true, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_count": "desc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "clientip", + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "from": "41.77.0.0", + "key": "ipv4", + "to": "41.77.255.255", + }, + ], + }, + }, + } + `); + }); + + test('partial IPv46 in the search string, creates IP range aggregation with min and max', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + searchString: 'cdb6:', + allowExpensiveQueries: true, + sort: { by: '_count', direction: 'desc' }, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "aggs": Object { + "filteredSuggestions": Object { + "terms": Object { + "field": "clientip", + "order": Object { + "_count": "desc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "clientip", + }, + }, + }, + "ip_range": Object { + "field": "clientip", + "keyed": true, + "ranges": Array [ + Object { + "from": "cdb6::", + "key": "ipv6", + "to": "cdb6:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + }, + ], + }, + }, + } + `); + }); + }); + }); + + describe('suggestion parsing', () => { + test('parses string (keyword, text+keyword, or nested) result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + allowExpensiveQueries: true, + fieldName: 'coolTestField.keyword', + fieldSpec: { aggregatable: true } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: [ + { doc_count: 5, key: 'cool1' }, + { doc_count: 15, key: 'cool2' }, + { doc_count: 10, key: 'cool3' }, + ], + }, + unique_terms: { + value: 3, + }, + }; + expect(suggestionAggBuilder.parse(rawSearchResponseMock, optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "cool1": Object { + "doc_count": 5, + }, + "cool2": Object { + "doc_count": 15, + }, + "cool3": Object { + "doc_count": 10, + }, + }, + "totalCardinality": 3, + } + `); + }); + + test('parses boolean result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'coolean', + allowExpensiveQueries: true, + fieldSpec: { type: 'boolean' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: [ + { doc_count: 55, key_as_string: 'false' }, + { doc_count: 155, key_as_string: 'true' }, + ], + }, + }; + expect(suggestionAggBuilder.parse(rawSearchResponseMock, optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "false": Object { + "doc_count": 55, + }, + "true": Object { + "doc_count": 155, + }, + }, + "totalCardinality": 2, + } + `); + }); + + test('parses nested result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + searchString: 'co', + fieldName: 'coolNestedField', + allowExpensiveQueries: true, + fieldSpec: { subType: { nested: { path: 'path.to.nested' } } } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + rawSearchResponseMock.aggregations = { + nestedSuggestions: { + filteredSuggestions: { + suggestions: { + buckets: [ + { doc_count: 5, key: 'cool1' }, + { doc_count: 15, key: 'cool2' }, + { doc_count: 10, key: 'cool3' }, + ], + }, + unique_terms: { + value: 3, + }, + }, + }, + }; + expect(suggestionAggBuilder.parse(rawSearchResponseMock, optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "cool1": Object { + "doc_count": 5, + }, + "cool2": Object { + "doc_count": 15, + }, + "cool3": Object { + "doc_count": 10, + }, + }, + "totalCardinality": 3, + } + `); + }); + + test('parses mixed IPv4 and IPv6 result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: true, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: { + ipv4: { + from: '0.0.0.0', + to: '255.255.255.255', + filteredSuggestions: { + buckets: [ + { doc_count: 8, key: '21.35.91.62' }, + { doc_count: 8, key: '21.35.91.61' }, + { doc_count: 11, key: '111.52.174.2' }, + { doc_count: 1, key: '56.73.58.63' }, + { doc_count: 9, key: '23.216.241.120' }, + { doc_count: 10, key: '196.162.13.39' }, + { doc_count: 7, key: '203.88.33.151' }, + ], + }, + }, + ipv6: { + from: '::', + to: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', + filteredSuggestions: { + buckets: [ + { doc_count: 12, key: '52:ae76:5947:5e2a:551:fe6a:712a:c72' }, + { doc_count: 1, key: 'fd:4aa0:c27c:b04:997f:2de1:51b4:8418' }, + { doc_count: 9, key: '28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172' }, + { doc_count: 6, key: '1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8' }, + { doc_count: 10, key: 'f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63' }, + ], + }, + }, + }, + }, + unique_terms: { + buckets: { + ipv4: { + value: 7, + }, + ipv6: { + value: 5, + }, + }, + }, + }; + + const parsed = suggestionAggBuilder.parse( + rawSearchResponseMock, + optionsListRequestBodyMock + ).suggestions; + /** first, verify that the sorting worked as expected */ + expect(Object.keys(parsed)).toMatchInlineSnapshot(` + Array [ + "52:ae76:5947:5e2a:551:fe6a:712a:c72", + "111.52.174.2", + "196.162.13.39", + "f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63", + "23.216.241.120", + "28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172", + "21.35.91.62", + "21.35.91.61", + "203.88.33.151", + "1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8", + ] + `); + /** then, make sure the object is structured properly */ + expect(parsed).toMatchInlineSnapshot(` + Object { + "111.52.174.2": Object { + "doc_count": 11, + }, + "196.162.13.39": Object { + "doc_count": 10, + }, + "1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8": Object { + "doc_count": 6, + }, + "203.88.33.151": Object { + "doc_count": 7, + }, + "21.35.91.61": Object { + "doc_count": 8, + }, + "21.35.91.62": Object { + "doc_count": 8, + }, + "23.216.241.120": Object { + "doc_count": 9, + }, + "28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172": Object { + "doc_count": 9, + }, + "52:ae76:5947:5e2a:551:fe6a:712a:c72": Object { + "doc_count": 12, + }, + "f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63": Object { + "doc_count": 10, + }, + } + `); + }); + }); +}); diff --git a/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.ts b/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.ts new file mode 100644 index 00000000000000..63347f8d436d3c --- /dev/null +++ b/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.ts @@ -0,0 +1,217 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { get } from 'lodash'; +import { getFieldSubtypeNested } from '@kbn/data-views-plugin/common'; + +import { OptionsListRequestBody, OptionsListSuggestions } from '../../common/options_list/types'; +import { getIpRangeQuery, type IpRangeQuery } from '../../common/options_list/ip_search'; +import { EsBucket, OptionsListSuggestionAggregationBuilder } from './types'; +import { getIpBuckets, getSortType } from './options_list_suggestion_query_helpers'; + +/** + * Suggestion aggregations + */ +export const getExpensiveSuggestionAggregationBuilder = ({ fieldSpec }: OptionsListRequestBody) => { + if (fieldSpec?.type === 'boolean') { + return expensiveSuggestionAggSubtypes.boolean; + } + if (fieldSpec?.type === 'ip') { + return expensiveSuggestionAggSubtypes.ip; + } + return expensiveSuggestionAggSubtypes.textOrKeywordOrNested; +}; + +const expensiveSuggestionAggSubtypes: { [key: string]: OptionsListSuggestionAggregationBuilder } = { + /** + * The "textOrKeywordOrNested" query / parser should be used whenever the field is built on some type of string field, + * regardless of if it is keyword only, keyword+text, or some nested keyword/keyword+text field. + */ + textOrKeywordOrNested: { + buildAggregation: ({ + searchString, + fieldName, + fieldSpec, + sort, + size, + }: OptionsListRequestBody) => { + const subTypeNested = fieldSpec && getFieldSubtypeNested(fieldSpec); + let textOrKeywordQuery: any = { + suggestions: { + terms: { + size, + field: fieldName, + shard_size: 10, + order: getSortType(sort), + }, + }, + unique_terms: { + cardinality: { + field: fieldName, + }, + }, + }; + if (searchString) { + textOrKeywordQuery = { + filteredSuggestions: { + filter: { + prefix: { + [fieldName]: { + value: searchString, + case_insensitive: true, + }, + }, + }, + aggs: { ...textOrKeywordQuery }, + }, + }; + } + if (subTypeNested) { + textOrKeywordQuery = { + nestedSuggestions: { + nested: { + path: subTypeNested.nested.path, + }, + aggs: { + ...textOrKeywordQuery, + }, + }, + }; + } + return textOrKeywordQuery; + }, + parse: (rawEsResult, request) => { + let basePath = 'aggregations'; + const isNested = request.fieldSpec && getFieldSubtypeNested(request.fieldSpec); + basePath += isNested ? '.nestedSuggestions' : ''; + basePath += request.searchString ? '.filteredSuggestions' : ''; + + const suggestions = get(rawEsResult, `${basePath}.suggestions.buckets`)?.reduce( + (acc: OptionsListSuggestions, suggestion: EsBucket) => { + return { ...acc, [suggestion.key]: { doc_count: suggestion.doc_count } }; + }, + {} + ); + return { + suggestions, + totalCardinality: get(rawEsResult, `${basePath}.unique_terms.value`), + }; + }, + }, + + /** + * the "Boolean" query / parser should be used when the options list is built on a field of type boolean. The query is slightly different than a keyword query. + */ + boolean: { + buildAggregation: ({ fieldName, sort }: OptionsListRequestBody) => ({ + suggestions: { + terms: { + field: fieldName, + shard_size: 10, + order: getSortType(sort), + }, + }, + }), + parse: (rawEsResult) => { + const suggestions = get(rawEsResult, 'aggregations.suggestions.buckets')?.reduce( + (acc: OptionsListSuggestions, suggestion: EsBucket & { key_as_string: string }) => { + return { + ...acc, + [suggestion.key_as_string]: { doc_count: suggestion.doc_count }, + }; + }, + {} + ); + return { suggestions, totalCardinality: Object.keys(suggestions).length }; // cardinality is only ever 0, 1, or 2 so safe to use length here + }, + }, + + /** + * the "IP" query / parser should be used when the options list is built on a field of type IP. + */ + ip: { + buildAggregation: ({ fieldName, searchString, sort, size }: OptionsListRequestBody) => { + let ipRangeQuery: IpRangeQuery = { + validSearch: true, + rangeQuery: [ + { + key: 'ipv6', + from: '::', + to: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', + }, + ], + }; + + if (searchString) { + ipRangeQuery = getIpRangeQuery(searchString); + if (!ipRangeQuery.validSearch) { + // ideally should be prevented on the client side but, if somehow an invalid search gets through to the server, + // simply don't return an aggregation query for the ES search request + return undefined; + } + } + + return { + suggestions: { + ip_range: { + field: fieldName, + ranges: ipRangeQuery.rangeQuery, + keyed: true, + }, + aggs: { + filteredSuggestions: { + terms: { + size, + field: fieldName, + shard_size: 10, + order: getSortType(sort), + }, + }, + unique_terms: { + cardinality: { + field: fieldName, + }, + }, + }, + }, + }; + }, + parse: (rawEsResult, request) => { + if (!Boolean(rawEsResult.aggregations?.suggestions)) { + // if this is happens, that means there is an invalid search that snuck through to the server side code; + // so, might as well early return with no suggestions + return { suggestions: {}, totalCardinality: 0 }; + } + const buckets: EsBucket[] = []; + getIpBuckets(rawEsResult, buckets, 'ipv4'); // modifies buckets array directly, i.e. "by reference" + getIpBuckets(rawEsResult, buckets, 'ipv6'); + + const sortedSuggestions = + request.sort?.direction === 'asc' + ? buckets.sort( + (bucketA: EsBucket, bucketB: EsBucket) => bucketA.doc_count - bucketB.doc_count + ) + : buckets.sort( + (bucketA: EsBucket, bucketB: EsBucket) => bucketB.doc_count - bucketA.doc_count + ); + + const suggestions: OptionsListSuggestions = sortedSuggestions + .slice(0, request.size) + .reduce((acc: OptionsListSuggestions, suggestion: EsBucket) => { + return { ...acc, [suggestion.key]: { doc_count: suggestion.doc_count } }; + }, {}); + const totalCardinality = + (get(rawEsResult, `aggregations.suggestions.buckets.ipv4.unique_terms.value`) ?? 0) + + (get(rawEsResult, `aggregations.suggestions.buckets.ipv6.unique_terms.value`) ?? 0); + return { + suggestions, + totalCardinality, + }; + }, + }, +}; diff --git a/src/plugins/controls/server/options_list/options_list_queries.test.ts b/src/plugins/controls/server/options_list/options_list_queries.test.ts deleted file mode 100644 index d3e5525a36d060..00000000000000 --- a/src/plugins/controls/server/options_list/options_list_queries.test.ts +++ /dev/null @@ -1,647 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { FieldSpec } from '@kbn/data-views-plugin/common'; -import { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; - -import { - getSuggestionAggregationBuilder, - getValidationAggregationBuilder, -} from './options_list_queries'; -import { OptionsListRequestBody } from '../../common/options_list/types'; - -describe('options list queries', () => { - let rawSearchResponseMock: SearchResponse = {} as SearchResponse; - - beforeEach(() => { - rawSearchResponseMock = { - hits: { - total: 10, - max_score: 10, - hits: [], - }, - took: 10, - timed_out: false, - _shards: { - failed: 0, - successful: 1, - total: 1, - skipped: 0, - }, - aggregations: {}, - }; - }); - - describe('validation aggregation and parsing', () => { - test('creates validation aggregation when given selections', () => { - const validationAggBuilder = getValidationAggregationBuilder(); - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolTestField', - selectedOptions: ['coolOption1', 'coolOption2', 'coolOption3'], - }; - expect(validationAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "filters": Object { - "filters": Object { - "coolOption1": Object { - "match": Object { - "coolTestField": "coolOption1", - }, - }, - "coolOption2": Object { - "match": Object { - "coolTestField": "coolOption2", - }, - }, - "coolOption3": Object { - "match": Object { - "coolTestField": "coolOption3", - }, - }, - }, - }, - } - `); - }); - - test('returns undefined when not given selections', () => { - const validationAggBuilder = getValidationAggregationBuilder(); - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolTestField', - }; - expect(validationAggBuilder.buildAggregation(optionsListRequestBodyMock)).toBeUndefined(); - }); - - test('parses validation result', () => { - const validationAggBuilder = getValidationAggregationBuilder(); - rawSearchResponseMock.aggregations = { - validation: { - buckets: { - cool1: { doc_count: 0 }, - cool2: { doc_count: 15 }, - cool3: { doc_count: 0 }, - cool4: { doc_count: 2 }, - cool5: { doc_count: 112 }, - cool6: { doc_count: 0 }, - }, - }, - }; - expect(validationAggBuilder.parse(rawSearchResponseMock)).toMatchInlineSnapshot(` - Array [ - "cool1", - "cool3", - "cool6", - ] - `); - }); - }); - - describe('suggestion aggregation', () => { - describe('text / keyword field', () => { - test('with a search string, creates case insensitive aggregation', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolTestField.keyword', - textFieldName: 'coolTestField', - searchString: 'cooool', - fieldSpec: { aggregatable: true } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "aggs": Object { - "keywordSuggestions": Object { - "terms": Object { - "field": "coolTestField.keyword", - "order": Object { - "_count": "desc", - }, - "shard_size": 10, - }, - }, - }, - "filter": Object { - "match_phrase_prefix": Object { - "coolTestField": "cooool", - }, - }, - } - `); - }); - - test('without a search string, creates keyword aggregation', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolTestField.keyword', - textFieldName: 'coolTestField', - fieldSpec: { aggregatable: true } as unknown as FieldSpec, - sort: { by: '_count', direction: 'asc' }, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "terms": Object { - "execution_hint": "map", - "field": "coolTestField.keyword", - "include": ".*", - "order": Object { - "_count": "asc", - }, - "shard_size": 10, - }, - } - `); - }); - }); - - test('creates boolean aggregation for boolean field', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolean', - fieldSpec: { type: 'boolean' } as unknown as FieldSpec, - sort: { by: '_key', direction: 'desc' }, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "terms": Object { - "execution_hint": "map", - "field": "coolean", - "order": Object { - "_key": "desc", - }, - "shard_size": 10, - }, - } - `); - }); - - test('creates nested aggregation for nested field', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolNestedField', - searchString: 'cooool', - fieldSpec: { subType: { nested: { path: 'path.to.nested' } } } as unknown as FieldSpec, - sort: { by: '_key', direction: 'asc' }, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "aggs": Object { - "nestedSuggestions": Object { - "terms": Object { - "execution_hint": "map", - "field": "coolNestedField", - "include": "cooool.*", - "order": Object { - "_key": "asc", - }, - "shard_size": 10, - }, - }, - }, - "nested": Object { - "path": "path.to.nested", - }, - } - `); - }); - - test('creates keyword only aggregation', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolTestField.keyword', - searchString: 'cooool', - fieldSpec: { aggregatable: true } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "terms": Object { - "execution_hint": "map", - "field": "coolTestField.keyword", - "include": "cooool.*", - "order": Object { - "_count": "desc", - }, - "shard_size": 10, - }, - } - `); - }); - - describe('IP field', () => { - test('without a search string, creates IP range aggregation with default range', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'clientip', - fieldSpec: { type: 'ip' } as unknown as FieldSpec, - sort: { by: '_count', direction: 'asc' }, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "aggs": Object { - "filteredSuggestions": Object { - "terms": Object { - "execution_hint": "map", - "field": "clientip", - "order": Object { - "_count": "asc", - }, - "shard_size": 10, - }, - }, - }, - "ip_range": Object { - "field": "clientip", - "keyed": true, - "ranges": Array [ - Object { - "from": "::", - "key": "ipv6", - "to": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", - }, - ], - }, - } - `); - }); - - test('full IPv4 in the search string, creates IP range aggregation with CIDR mask', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'clientip', - fieldSpec: { type: 'ip' } as unknown as FieldSpec, - searchString: '41.77.243.255', - sort: { by: '_key', direction: 'desc' }, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "aggs": Object { - "filteredSuggestions": Object { - "terms": Object { - "execution_hint": "map", - "field": "clientip", - "order": Object { - "_key": "desc", - }, - "shard_size": 10, - }, - }, - }, - "ip_range": Object { - "field": "clientip", - "keyed": true, - "ranges": Array [ - Object { - "key": "ipv4", - "mask": "41.77.243.255/32", - }, - ], - }, - } - `); - }); - - test('full IPv6 in the search string, creates IP range aggregation with CIDR mask', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'clientip', - fieldSpec: { type: 'ip' } as unknown as FieldSpec, - searchString: 'f688:fb50:6433:bba2:604:f2c:194a:d3c5', - sort: { by: '_key', direction: 'asc' }, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "aggs": Object { - "filteredSuggestions": Object { - "terms": Object { - "execution_hint": "map", - "field": "clientip", - "order": Object { - "_key": "asc", - }, - "shard_size": 10, - }, - }, - }, - "ip_range": Object { - "field": "clientip", - "keyed": true, - "ranges": Array [ - Object { - "key": "ipv6", - "mask": "f688:fb50:6433:bba2:604:f2c:194a:d3c5/128", - }, - ], - }, - } - `); - }); - - test('partial IPv4 in the search string, creates IP range aggregation with min and max', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'clientip', - fieldSpec: { type: 'ip' } as unknown as FieldSpec, - searchString: '41.77', - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "aggs": Object { - "filteredSuggestions": Object { - "terms": Object { - "execution_hint": "map", - "field": "clientip", - "order": Object { - "_count": "desc", - }, - "shard_size": 10, - }, - }, - }, - "ip_range": Object { - "field": "clientip", - "keyed": true, - "ranges": Array [ - Object { - "from": "41.77.0.0", - "key": "ipv4", - "to": "41.77.255.255", - }, - ], - }, - } - `); - }); - - test('partial IPv46 in the search string, creates IP range aggregation with min and max', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'clientip', - fieldSpec: { type: 'ip' } as unknown as FieldSpec, - searchString: 'cdb6:', - sort: { by: '_count', direction: 'desc' }, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "aggs": Object { - "filteredSuggestions": Object { - "terms": Object { - "execution_hint": "map", - "field": "clientip", - "order": Object { - "_count": "desc", - }, - "shard_size": 10, - }, - }, - }, - "ip_range": Object { - "field": "clientip", - "keyed": true, - "ranges": Array [ - Object { - "from": "cdb6::", - "key": "ipv6", - "to": "cdb6:ffff:ffff:ffff:ffff:ffff:ffff:ffff", - }, - ], - }, - } - `); - }); - }); - }); - - describe('suggestion parsing', () => { - test('parses keyword / text result', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolTestField.keyword', - textFieldName: 'coolTestField', - searchString: 'cooool', - fieldSpec: { aggregatable: true } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - rawSearchResponseMock.aggregations = { - suggestions: { - keywordSuggestions: { - buckets: [ - { doc_count: 5, key: 'cool1' }, - { doc_count: 15, key: 'cool2' }, - { doc_count: 10, key: 'cool3' }, - ], - }, - }, - }; - expect(suggestionAggBuilder.parse(rawSearchResponseMock)).toMatchInlineSnapshot(` - Object { - "cool1": Object { - "doc_count": 5, - }, - "cool2": Object { - "doc_count": 15, - }, - "cool3": Object { - "doc_count": 10, - }, - } - `); - }); - - test('parses boolean result', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolean', - fieldSpec: { type: 'boolean' } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - rawSearchResponseMock.aggregations = { - suggestions: { - buckets: [ - { doc_count: 55, key_as_string: 'false' }, - { doc_count: 155, key_as_string: 'true' }, - ], - }, - }; - expect(suggestionAggBuilder.parse(rawSearchResponseMock)).toMatchInlineSnapshot(` - Object { - "false": Object { - "doc_count": 55, - }, - "true": Object { - "doc_count": 155, - }, - } - `); - }); - - test('parses nested result', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolNestedField', - searchString: 'cooool', - fieldSpec: { subType: { nested: { path: 'path.to.nested' } } } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - rawSearchResponseMock.aggregations = { - suggestions: { - nestedSuggestions: { - buckets: [ - { doc_count: 5, key: 'cool1' }, - { doc_count: 15, key: 'cool2' }, - { doc_count: 10, key: 'cool3' }, - ], - }, - }, - }; - expect(suggestionAggBuilder.parse(rawSearchResponseMock)).toMatchInlineSnapshot(` - Object { - "cool1": Object { - "doc_count": 5, - }, - "cool2": Object { - "doc_count": 15, - }, - "cool3": Object { - "doc_count": 10, - }, - } - `); - }); - - test('parses keyword only result', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'coolTestField.keyword', - searchString: 'cooool', - fieldSpec: { aggregatable: true } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - rawSearchResponseMock.aggregations = { - suggestions: { - buckets: [ - { doc_count: 5, key: 'cool1' }, - { doc_count: 15, key: 'cool2' }, - { doc_count: 10, key: 'cool3' }, - ], - }, - }; - expect(suggestionAggBuilder.parse(rawSearchResponseMock)).toMatchInlineSnapshot(` - Object { - "cool1": Object { - "doc_count": 5, - }, - "cool2": Object { - "doc_count": 15, - }, - "cool3": Object { - "doc_count": 10, - }, - } - `); - }); - }); - - test('parses mixed IPv4 and IPv6 result', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - fieldName: 'clientip', - fieldSpec: { type: 'ip' } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getSuggestionAggregationBuilder(optionsListRequestBodyMock); - rawSearchResponseMock.aggregations = { - suggestions: { - buckets: { - ipv4: { - from: '0.0.0.0', - to: '255.255.255.255', - filteredSuggestions: { - buckets: [ - { doc_count: 8, key: '21.35.91.62' }, - { doc_count: 8, key: '21.35.91.61' }, - { doc_count: 11, key: '111.52.174.2' }, - { doc_count: 1, key: '56.73.58.63' }, - { doc_count: 9, key: '23.216.241.120' }, - { doc_count: 10, key: '196.162.13.39' }, - { doc_count: 7, key: '203.88.33.151' }, - ], - }, - }, - ipv6: { - from: '::', - to: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', - filteredSuggestions: { - buckets: [ - { doc_count: 12, key: '52:ae76:5947:5e2a:551:fe6a:712a:c72' }, - { doc_count: 1, key: 'fd:4aa0:c27c:b04:997f:2de1:51b4:8418' }, - { doc_count: 9, key: '28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172' }, - { doc_count: 6, key: '1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8' }, - { doc_count: 10, key: 'f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63' }, - ], - }, - }, - }, - }, - }; - - const parsed = suggestionAggBuilder.parse(rawSearchResponseMock); - /** first, verify that the sorting worked as expected */ - expect(Object.keys(parsed)).toMatchInlineSnapshot(` - Array [ - "52:ae76:5947:5e2a:551:fe6a:712a:c72", - "111.52.174.2", - "196.162.13.39", - "f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63", - "23.216.241.120", - "28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172", - "21.35.91.62", - "21.35.91.61", - "203.88.33.151", - "1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8", - ] - `); - /** then, make sure the object is structured properly */ - expect(parsed).toMatchInlineSnapshot(` - Object { - "111.52.174.2": Object { - "doc_count": 11, - }, - "196.162.13.39": Object { - "doc_count": 10, - }, - "1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8": Object { - "doc_count": 6, - }, - "203.88.33.151": Object { - "doc_count": 7, - }, - "21.35.91.61": Object { - "doc_count": 8, - }, - "21.35.91.62": Object { - "doc_count": 8, - }, - "23.216.241.120": Object { - "doc_count": 9, - }, - "28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172": Object { - "doc_count": 9, - }, - "52:ae76:5947:5e2a:551:fe6a:712a:c72": Object { - "doc_count": 12, - }, - "f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63": Object { - "doc_count": 10, - }, - } - `); - }); -}); diff --git a/src/plugins/controls/server/options_list/options_list_queries.ts b/src/plugins/controls/server/options_list/options_list_queries.ts deleted file mode 100644 index 4a7aceba910c08..00000000000000 --- a/src/plugins/controls/server/options_list/options_list_queries.ts +++ /dev/null @@ -1,289 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { get, isEmpty } from 'lodash'; -import { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; -import { getFieldSubtypeNested } from '@kbn/data-views-plugin/common'; - -import { OptionsListRequestBody, OptionsListSuggestions } from '../../common/options_list/types'; -import { - OPTIONS_LIST_DEFAULT_SORT, - OptionsListSortingType, -} from '../../common/options_list/suggestions_sorting'; -import { getIpRangeQuery, type IpRangeQuery } from '../../common/options_list/ip_search'; - -export interface OptionsListValidationAggregationBuilder { - buildAggregation: (req: OptionsListRequestBody) => unknown; - parse: (response: SearchResponse) => string[]; -} - -export interface OptionsListSuggestionAggregationBuilder { - buildAggregation: (req: OptionsListRequestBody) => unknown; - parse: (response: SearchResponse) => OptionsListSuggestions; -} - -interface EsBucket { - key: string; - doc_count: number; -} - -const getSortType = (sort?: OptionsListSortingType) => { - return sort - ? { [sort.by]: sort.direction } - : { [OPTIONS_LIST_DEFAULT_SORT.by]: OPTIONS_LIST_DEFAULT_SORT.direction }; -}; - -/** - * Validation aggregations - */ -export const getValidationAggregationBuilder: () => OptionsListValidationAggregationBuilder = - () => ({ - buildAggregation: ({ selectedOptions, fieldName }: OptionsListRequestBody) => { - let selectedOptionsFilters; - if (selectedOptions) { - selectedOptionsFilters = selectedOptions.reduce((acc, currentOption) => { - acc[currentOption] = { match: { [fieldName]: currentOption } }; - return acc; - }, {} as { [key: string]: { match: { [key: string]: string } } }); - } - return selectedOptionsFilters && !isEmpty(selectedOptionsFilters) - ? { - filters: { - filters: selectedOptionsFilters, - }, - } - : undefined; - }, - parse: (rawEsResult) => { - const rawInvalidSuggestions = get(rawEsResult, 'aggregations.validation.buckets'); - return rawInvalidSuggestions && !isEmpty(rawInvalidSuggestions) - ? Object.keys(rawInvalidSuggestions).filter( - (key) => rawInvalidSuggestions[key].doc_count === 0 - ) - : []; - }, - }); - -/** - * Suggestion aggregations - */ -export const getSuggestionAggregationBuilder = ({ - fieldSpec, - textFieldName, - searchString, -}: OptionsListRequestBody) => { - if (textFieldName && fieldSpec?.aggregatable && searchString) { - return suggestionAggSubtypes.keywordAndText; - } - if (fieldSpec?.type === 'boolean') { - return suggestionAggSubtypes.boolean; - } - if (fieldSpec?.type === 'ip') { - return suggestionAggSubtypes.ip; - } - if (fieldSpec && getFieldSubtypeNested(fieldSpec)) { - return suggestionAggSubtypes.subtypeNested; - } - return suggestionAggSubtypes.keywordOnly; -}; - -const getEscapedQuery = (q: string = '') => - q.replace(/[.?+*|{}[\]()"\\#@&<>~]/g, (match) => `\\${match}`); - -const getIpBuckets = (rawEsResult: any, combinedBuckets: EsBucket[], type: 'ipv4' | 'ipv6') => { - const results = get( - rawEsResult, - `aggregations.suggestions.buckets.${type}.filteredSuggestions.buckets` - ); - if (results) { - results.forEach((suggestion: EsBucket) => combinedBuckets.push(suggestion)); - } -}; - -const suggestionAggSubtypes: { [key: string]: OptionsListSuggestionAggregationBuilder } = { - /** - * the "Keyword only" query / parser should be used when the options list is built on a field which has only keyword mappings. - */ - keywordOnly: { - buildAggregation: ({ fieldName, searchString, sort }: OptionsListRequestBody) => ({ - terms: { - field: fieldName, - include: `${getEscapedQuery(searchString)}.*`, - execution_hint: 'map', - shard_size: 10, - order: getSortType(sort), - }, - }), - parse: (rawEsResult) => - get(rawEsResult, 'aggregations.suggestions.buckets').reduce( - (suggestions: OptionsListSuggestions, suggestion: EsBucket) => { - return { ...suggestions, [suggestion.key]: { doc_count: suggestion.doc_count } }; - }, - {} - ), - }, - - /** - * the "Keyword and text" query / parser should be used when the options list is built on a multi-field which has both keyword and text mappings. It supports case-insensitive searching - */ - keywordAndText: { - buildAggregation: (req: OptionsListRequestBody) => { - if (!req.textFieldName) { - // if there is no textFieldName specified, or if there is no search string yet fall back to keywordOnly - return suggestionAggSubtypes.keywordOnly.buildAggregation(req); - } - const { fieldName, searchString, textFieldName, sort } = req; - return { - filter: { - match_phrase_prefix: { - [textFieldName]: searchString, - }, - }, - aggs: { - keywordSuggestions: { - terms: { - field: fieldName, - shard_size: 10, - order: getSortType(sort), - }, - }, - }, - }; - }, - parse: (rawEsResult) => - get(rawEsResult, 'aggregations.suggestions.keywordSuggestions.buckets').reduce( - (suggestions: OptionsListSuggestions, suggestion: EsBucket) => { - return { ...suggestions, [suggestion.key]: { doc_count: suggestion.doc_count } }; - }, - {} - ), - }, - - /** - * the "Boolean" query / parser should be used when the options list is built on a field of type boolean. The query is slightly different than a keyword query. - */ - boolean: { - buildAggregation: ({ fieldName, sort }: OptionsListRequestBody) => ({ - terms: { - field: fieldName, - execution_hint: 'map', - shard_size: 10, - order: getSortType(sort), - }, - }), - parse: (rawEsResult) => - get(rawEsResult, 'aggregations.suggestions.buckets')?.reduce( - (suggestions: OptionsListSuggestions, suggestion: EsBucket & { key_as_string: string }) => { - return { - ...suggestions, - [suggestion.key_as_string]: { doc_count: suggestion.doc_count }, - }; - }, - {} - ), - }, - - /** - * the "IP" query / parser should be used when the options list is built on a field of type IP. - */ - ip: { - buildAggregation: ({ fieldName, searchString, sort }: OptionsListRequestBody) => { - let ipRangeQuery: IpRangeQuery = { - validSearch: true, - rangeQuery: [ - { - key: 'ipv6', - from: '::', - to: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', - }, - ], - }; - - if (searchString) { - ipRangeQuery = getIpRangeQuery(searchString); - if (!ipRangeQuery.validSearch) { - // ideally should be prevented on the client side but, if somehow an invalid search gets through to the server, - // simply don't return an aggregation query for the ES search request - return undefined; - } - } - - return { - ip_range: { - field: fieldName, - ranges: ipRangeQuery.rangeQuery, - keyed: true, - }, - aggs: { - filteredSuggestions: { - terms: { - field: fieldName, - execution_hint: 'map', - shard_size: 10, - order: getSortType(sort), - }, - }, - }, - }; - }, - parse: (rawEsResult) => { - if (!Boolean(rawEsResult.aggregations?.suggestions)) { - // if this is happens, that means there is an invalid search that snuck through to the server side code; - // so, might as well early return with no suggestions - return []; - } - - const buckets: EsBucket[] = []; - getIpBuckets(rawEsResult, buckets, 'ipv4'); // modifies buckets array directly, i.e. "by reference" - getIpBuckets(rawEsResult, buckets, 'ipv6'); - return buckets - .sort((bucketA: EsBucket, bucketB: EsBucket) => bucketB.doc_count - bucketA.doc_count) - .slice(0, 10) // only return top 10 results - .reduce((suggestions, suggestion: EsBucket) => { - return { ...suggestions, [suggestion.key]: { doc_count: suggestion.doc_count } }; - }, {}); - }, - }, - - /** - * the "Subtype Nested" query / parser should be used when the options list is built on a field with subtype nested. - */ - subtypeNested: { - buildAggregation: (req: OptionsListRequestBody) => { - const { fieldSpec, fieldName, searchString, sort } = req; - const subTypeNested = fieldSpec && getFieldSubtypeNested(fieldSpec); - if (!subTypeNested) { - // if this field is not subtype nested, fall back to keywordOnly - return suggestionAggSubtypes.keywordOnly.buildAggregation(req); - } - return { - nested: { - path: subTypeNested.nested.path, - }, - aggs: { - nestedSuggestions: { - terms: { - field: fieldName, - include: `${getEscapedQuery(searchString)}.*`, - execution_hint: 'map', - shard_size: 10, - order: getSortType(sort), - }, - }, - }, - }; - }, - parse: (rawEsResult) => - get(rawEsResult, 'aggregations.suggestions.nestedSuggestions.buckets').reduce( - (suggestions: OptionsListSuggestions, suggestion: EsBucket) => { - return { ...suggestions, [suggestion.key]: { doc_count: suggestion.doc_count } }; - }, - {} - ), - }, -}; diff --git a/src/plugins/controls/server/options_list/options_list_suggestion_query_helpers.ts b/src/plugins/controls/server/options_list/options_list_suggestion_query_helpers.ts new file mode 100644 index 00000000000000..54e83e0ac835be --- /dev/null +++ b/src/plugins/controls/server/options_list/options_list_suggestion_query_helpers.ts @@ -0,0 +1,38 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { get } from 'lodash'; + +import { EsBucket } from './types'; +import { + OPTIONS_LIST_DEFAULT_SORT, + OptionsListSortingType, +} from '../../common/options_list/suggestions_sorting'; + +export const getSortType = (sort?: OptionsListSortingType) => { + return sort + ? { [sort.by]: sort.direction } + : { [OPTIONS_LIST_DEFAULT_SORT.by]: OPTIONS_LIST_DEFAULT_SORT.direction }; +}; + +export const getEscapedQuery = (q: string = '') => + q.replace(/[.?+*|{}[\]()"\\#@&<>~]/g, (match) => `\\${match}`); + +export const getIpBuckets = ( + rawEsResult: any, + combinedBuckets: EsBucket[], + type: 'ipv4' | 'ipv6' +) => { + const results = get( + rawEsResult, + `aggregations.suggestions.buckets.${type}.filteredSuggestions.buckets` + ); + if (results) { + results.forEach((suggestion: EsBucket) => combinedBuckets.push(suggestion)); + } +}; diff --git a/src/plugins/controls/server/options_list/options_list_suggestions_route.ts b/src/plugins/controls/server/options_list/options_list_suggestions_route.ts index 0893d24ebacf0f..61d50419d94a00 100644 --- a/src/plugins/controls/server/options_list/options_list_suggestions_route.ts +++ b/src/plugins/controls/server/options_list/options_list_suggestions_route.ts @@ -7,7 +7,6 @@ */ import { Observable } from 'rxjs'; -import { get } from 'lodash'; import { PluginSetup as UnifiedSearchPluginSetup } from '@kbn/unified-search-plugin/server'; import { getKbnServerError, reportServerError } from '@kbn/kibana-utils-plugin/server'; @@ -16,10 +15,10 @@ import { SearchRequest } from '@kbn/data-plugin/common'; import { schema } from '@kbn/config-schema'; import { OptionsListRequestBody, OptionsListResponse } from '../../common/options_list/types'; -import { - getSuggestionAggregationBuilder, - getValidationAggregationBuilder, -} from './options_list_queries'; +import { getValidationAggregationBuilder } from './options_list_validation_queries'; +import { getExpensiveSuggestionAggregationBuilder } from './options_list_expensive_suggestion_queries'; +import { getCheapSuggestionAggregationBuilder } from './options_list_cheap_suggestion_queries'; +import { OptionsListSuggestionAggregationBuilder } from './types'; export const setupOptionsListSuggestionsRoute = ( { http }: CoreSetup, @@ -39,10 +38,12 @@ export const setupOptionsListSuggestionsRoute = ( ), body: schema.object( { + size: schema.number(), fieldName: schema.string(), sort: schema.maybe(schema.any()), filters: schema.maybe(schema.any()), fieldSpec: schema.maybe(schema.any()), + allowExpensiveQueries: schema.boolean(), searchString: schema.maybe(schema.string()), selectedOptions: schema.maybe(schema.arrayOf(schema.string())), }, @@ -55,6 +56,7 @@ export const setupOptionsListSuggestionsRoute = ( const suggestionRequest: OptionsListRequestBody = request.body; const { index } = request.params; const esClient = (await context.core).elasticsearch.client.asCurrentUser; + const suggestionsResponse = await getOptionsListSuggestions({ abortedEvent$: request.events.aborted$, request: suggestionRequest, @@ -86,21 +88,21 @@ export const setupOptionsListSuggestionsRoute = ( /** * Build ES Query */ - const { runPastTimeout, filters, fieldName, runtimeFieldMap } = request; + const { runPastTimeout, filters, runtimeFieldMap, allowExpensiveQueries } = request; const { terminateAfter, timeout } = getAutocompleteSettings(); const timeoutSettings = runPastTimeout ? {} : { timeout: `${timeout}ms`, terminate_after: terminateAfter }; - const suggestionBuilder = getSuggestionAggregationBuilder(request); + let suggestionBuilder: OptionsListSuggestionAggregationBuilder; + if (allowExpensiveQueries) { + suggestionBuilder = getExpensiveSuggestionAggregationBuilder(request); + } else { + suggestionBuilder = getCheapSuggestionAggregationBuilder(request); + } const validationBuilder = getValidationAggregationBuilder(); - const builtSuggestionAggregation = suggestionBuilder.buildAggregation(request); - const suggestionAggregation = builtSuggestionAggregation - ? { - suggestions: builtSuggestionAggregation, - } - : {}; + const suggestionAggregation: any = suggestionBuilder.buildAggregation(request) ?? {}; const builtValidationAggregation = validationBuilder.buildAggregation(request); const validationAggregations = builtValidationAggregation ? { @@ -118,17 +120,11 @@ export const setupOptionsListSuggestionsRoute = ( aggs: { ...suggestionAggregation, ...validationAggregations, - unique_terms: { - cardinality: { - field: fieldName, - }, - }, }, runtime_mappings: { ...runtimeFieldMap, }, }; - /** * Run ES query */ @@ -137,14 +133,13 @@ export const setupOptionsListSuggestionsRoute = ( /** * Parse ES response into Options List Response */ - const totalCardinality = get(rawEsResult, 'aggregations.unique_terms.value'); - const suggestions = suggestionBuilder.parse(rawEsResult); + const results = suggestionBuilder.parse(rawEsResult, request); + const totalCardinality = results.totalCardinality; const invalidSelections = validationBuilder.parse(rawEsResult); return { - suggestions, + suggestions: results.suggestions, totalCardinality, invalidSelections, - rejected: false, }; }; }; diff --git a/src/plugins/controls/server/options_list/options_list_validation_queries.test.ts b/src/plugins/controls/server/options_list/options_list_validation_queries.test.ts new file mode 100644 index 00000000000000..f8a7344eb88603 --- /dev/null +++ b/src/plugins/controls/server/options_list/options_list_validation_queries.test.ts @@ -0,0 +1,104 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; + +import { OptionsListRequestBody } from '../../common/options_list/types'; +import { getValidationAggregationBuilder } from './options_list_validation_queries'; + +describe('options list queries', () => { + let rawSearchResponseMock: SearchResponse = {} as SearchResponse; + + beforeEach(() => { + rawSearchResponseMock = { + hits: { + total: 10, + max_score: 10, + hits: [], + }, + took: 10, + timed_out: false, + _shards: { + failed: 0, + successful: 1, + total: 1, + skipped: 0, + }, + aggregations: {}, + }; + }); + + describe('validation aggregation and parsing', () => { + test('creates validation aggregation when given selections', () => { + const validationAggBuilder = getValidationAggregationBuilder(); + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'coolTestField', + allowExpensiveQueries: true, + selectedOptions: ['coolOption1', 'coolOption2', 'coolOption3'], + }; + expect(validationAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "filters": Object { + "filters": Object { + "coolOption1": Object { + "match": Object { + "coolTestField": "coolOption1", + }, + }, + "coolOption2": Object { + "match": Object { + "coolTestField": "coolOption2", + }, + }, + "coolOption3": Object { + "match": Object { + "coolTestField": "coolOption3", + }, + }, + }, + }, + } + `); + }); + + test('returns undefined when not given selections', () => { + const validationAggBuilder = getValidationAggregationBuilder(); + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'coolTestField', + allowExpensiveQueries: true, + }; + expect(validationAggBuilder.buildAggregation(optionsListRequestBodyMock)).toBeUndefined(); + }); + + test('parses validation result', () => { + const validationAggBuilder = getValidationAggregationBuilder(); + rawSearchResponseMock.aggregations = { + validation: { + buckets: { + cool1: { doc_count: 0 }, + cool2: { doc_count: 15 }, + cool3: { doc_count: 0 }, + cool4: { doc_count: 2 }, + cool5: { doc_count: 112 }, + cool6: { doc_count: 0 }, + }, + }, + }; + expect(validationAggBuilder.parse(rawSearchResponseMock)).toMatchInlineSnapshot(` + Array [ + "cool1", + "cool3", + "cool6", + ] + `); + }); + }); +}); diff --git a/src/plugins/controls/server/options_list/options_list_validation_queries.ts b/src/plugins/controls/server/options_list/options_list_validation_queries.ts new file mode 100644 index 00000000000000..a79c0971a5cb11 --- /dev/null +++ b/src/plugins/controls/server/options_list/options_list_validation_queries.ts @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { get, isEmpty } from 'lodash'; + +import { OptionsListRequestBody } from '../../common/options_list/types'; +import { OptionsListValidationAggregationBuilder } from './types'; + +/** + * Validation aggregations + */ +export const getValidationAggregationBuilder: () => OptionsListValidationAggregationBuilder = + () => ({ + buildAggregation: ({ selectedOptions, fieldName }: OptionsListRequestBody) => { + let selectedOptionsFilters; + if (selectedOptions) { + selectedOptionsFilters = selectedOptions.reduce((acc, currentOption) => { + acc[currentOption] = { match: { [fieldName]: currentOption } }; + return acc; + }, {} as { [key: string]: { match: { [key: string]: string } } }); + } + return selectedOptionsFilters && !isEmpty(selectedOptionsFilters) + ? { + filters: { + filters: selectedOptionsFilters, + }, + } + : undefined; + }, + parse: (rawEsResult) => { + const rawInvalidSuggestions = get(rawEsResult, 'aggregations.validation.buckets'); + return rawInvalidSuggestions && !isEmpty(rawInvalidSuggestions) + ? Object.keys(rawInvalidSuggestions).filter( + (key) => rawInvalidSuggestions[key].doc_count === 0 + ) + : []; + }, + }); diff --git a/src/plugins/controls/server/options_list/types.ts b/src/plugins/controls/server/options_list/types.ts new file mode 100644 index 00000000000000..1ea3475eddffb7 --- /dev/null +++ b/src/plugins/controls/server/options_list/types.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; +import { + OptionsListRequestBody, + OptionsListParsedSuggestions, +} from '../../common/options_list/types'; + +export interface EsBucket { + key: string; + doc_count: number; +} + +export interface OptionsListValidationAggregationBuilder { + buildAggregation: (req: OptionsListRequestBody) => unknown; + parse: (response: SearchResponse) => string[]; +} + +export interface OptionsListSuggestionAggregationBuilder { + buildAggregation: (req: OptionsListRequestBody) => unknown; + parse: (response: SearchResponse, req: OptionsListRequestBody) => OptionsListParsedSuggestions; +} diff --git a/src/plugins/controls/server/plugin.ts b/src/plugins/controls/server/plugin.ts index 6d3838804e14a1..7e394ca69a410d 100644 --- a/src/plugins/controls/server/plugin.ts +++ b/src/plugins/controls/server/plugin.ts @@ -15,6 +15,7 @@ import { controlGroupContainerPersistableStateServiceFactory } from './control_g import { optionsListPersistableStateServiceFactory } from './options_list/options_list_embeddable_factory'; import { rangeSliderPersistableStateServiceFactory } from './range_slider/range_slider_embeddable_factory'; import { timeSliderPersistableStateServiceFactory } from './time_slider/time_slider_embeddable_factory'; +import { setupOptionsListClusterSettingsRoute } from './options_list/options_list_cluster_settings_route'; interface SetupDeps { embeddable: EmbeddableSetup; @@ -30,7 +31,7 @@ export class ControlsPlugin implements Plugin { embeddable.registerEmbeddableFactory(optionsListPersistableStateServiceFactory()); embeddable.registerEmbeddableFactory(rangeSliderPersistableStateServiceFactory()); embeddable.registerEmbeddableFactory(timeSliderPersistableStateServiceFactory()); - + setupOptionsListClusterSettingsRoute(core); setupOptionsListSuggestionsRoute(core, unifiedSearch.autocomplete.getAutocompleteSettings); return {}; } diff --git a/src/plugins/controls/tsconfig.json b/src/plugins/controls/tsconfig.json index 6aedcaf2369504..9acd44b5c2f7ea 100644 --- a/src/plugins/controls/tsconfig.json +++ b/src/plugins/controls/tsconfig.json @@ -32,6 +32,7 @@ "@kbn/test-jest-helpers", "@kbn/config-schema", "@kbn/storybook", + "@kbn/ui-theme", ], "exclude": [ "target/**/*", diff --git a/src/plugins/custom_integrations/kibana.json b/src/plugins/custom_integrations/kibana.json deleted file mode 100755 index d9a7618b25642d..00000000000000 --- a/src/plugins/custom_integrations/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "customIntegrations", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Fleet", - "githubTeam": "fleet" - }, - "description": "Add custom data integrations so they can be displayed in the Fleet integrations app", - "ui": true, - "server": true, - "extraPublicDirs": ["common"], - "requiredPlugins": [], - "requiredBundles": [], - "optionalPlugins": [] -} diff --git a/src/plugins/custom_integrations/kibana.jsonc b/src/plugins/custom_integrations/kibana.jsonc new file mode 100644 index 00000000000000..fd8a429c0d666b --- /dev/null +++ b/src/plugins/custom_integrations/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/custom-integrations-plugin", + "owner": "@elastic/fleet", + "description": "Add custom data integrations so they can be displayed in the Fleet integrations app", + "plugin": { + "id": "customIntegrations", + "server": true, + "browser": true, + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/dashboard/kibana.json b/src/plugins/dashboard/kibana.json deleted file mode 100644 index 2df14c7afb35c5..00000000000000 --- a/src/plugins/dashboard/kibana.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "id": "dashboard", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds the Dashboard app to Kibana", - "version": "kibana", - "requiredPlugins": [ - "data", - "dataViews", - "dataViewEditor", - "embeddable", - "controls", - "inspector", - "navigation", - "savedObjects", - "share", - "screenshotMode", - "uiActions", - "urlForwarding", - "presentationUtil", - "visualizations", - "unifiedSearch" - ], - "optionalPlugins": [ - "home", - "spaces", - "savedObjectsTaggingOss", - "screenshotMode", - "usageCollection", - "taskManager" - ], - "server": true, - "ui": true, - "requiredBundles": ["kibanaReact", "kibanaUtils", "presentationUtil"] -} diff --git a/src/plugins/dashboard/kibana.jsonc b/src/plugins/dashboard/kibana.jsonc new file mode 100644 index 00000000000000..ae5194d662c2ba --- /dev/null +++ b/src/plugins/dashboard/kibana.jsonc @@ -0,0 +1,41 @@ +{ + "type": "plugin", + "id": "@kbn/dashboard-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds the Dashboard app to Kibana", + "plugin": { + "id": "dashboard", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "dataViews", + "dataViewEditor", + "embeddable", + "controls", + "inspector", + "navigation", + "savedObjects", + "share", + "screenshotMode", + "uiActions", + "urlForwarding", + "presentationUtil", + "visualizations", + "unifiedSearch" + ], + "optionalPlugins": [ + "home", + "spaces", + "savedObjectsTaggingOss", + "screenshotMode", + "usageCollection", + "taskManager" + ], + "requiredBundles": [ + "kibanaReact", + "kibanaUtils", + "presentationUtil" + ] + } +} diff --git a/src/plugins/dashboard/public/dashboard_actions/add_to_library_action.tsx b/src/plugins/dashboard/public/dashboard_actions/add_to_library_action.tsx index 165f77b2c177ee..3974c4f713efb2 100644 --- a/src/plugins/dashboard/public/dashboard_actions/add_to_library_action.tsx +++ b/src/plugins/dashboard/public/dashboard_actions/add_to_library_action.tsx @@ -92,11 +92,16 @@ export class AddToLibraryAction implements Action { type: embeddable.type, explicitInput: { ...newInput }, }; - dashboard.replacePanel(panelToReplace, newPanel, true); + const replacedPanelId = await dashboard.replacePanel(panelToReplace, newPanel, true); const title = dashboardAddToLibraryActionStrings.getSuccessMessage( embeddable.getTitle() ? `'${embeddable.getTitle()}'` : '' ); + + if (dashboard.getExpandedPanelId() !== undefined) { + dashboard.setExpandedPanelId(replacedPanelId); + } + this.toastsService.addSuccess({ title, 'data-test-subj': 'addPanelToLibrarySuccess', diff --git a/src/plugins/dashboard/public/dashboard_actions/unlink_from_library_action.tsx b/src/plugins/dashboard/public/dashboard_actions/unlink_from_library_action.tsx index 1dafc89972a3ca..8980ded00871d2 100644 --- a/src/plugins/dashboard/public/dashboard_actions/unlink_from_library_action.tsx +++ b/src/plugins/dashboard/public/dashboard_actions/unlink_from_library_action.tsx @@ -86,12 +86,16 @@ export class UnlinkFromLibraryAction implements Action(savedObjectId); const [dashboardContainer, setDashboardContainer] = useState(); const [loading, setLoading] = useState(true); + const showPlainSpinner = useObservable(customBranding.hasCustomBranding$, false); useEffect(() => { // check if dashboard container is expecting id change... if not, update dashboardIdToBuild to force it to rebuild the container. @@ -107,10 +110,13 @@ export const DashboardContainerRenderer = ({ { 'dashboardViewport--screenshotMode': isScreenshotMode() }, { 'dashboardViewport--loading': loading } ); + const loadingSpinner = showPlainSpinner ? ( + + ) : ( + + ); return ( -
    - {loading ? :
    } -
    +
    {loading ? loadingSpinner :
    }
    ); }; diff --git a/src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts b/src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts index 9f9357f8fbbff7..ee57970a93cd4f 100644 --- a/src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts +++ b/src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts @@ -46,30 +46,33 @@ export async function replacePanel( previousPanelState: DashboardPanelState, newPanelState: Partial, generateNewId?: boolean -) { +): Promise { let panels; + let panelId; + if (generateNewId) { // replace panel can be called with generateNewId in order to totally destroy and recreate the embeddable + panelId = uuidv4(); panels = { ...this.input.panels }; delete panels[previousPanelState.explicitInput.id]; - const newId = uuidv4(); - panels[newId] = { + panels[panelId] = { ...previousPanelState, ...newPanelState, gridData: { ...previousPanelState.gridData, - i: newId, + i: panelId, }, explicitInput: { ...newPanelState.explicitInput, - id: newId, + id: panelId, }, }; } else { // Because the embeddable type can change, we have to operate at the container level here + panelId = previousPanelState.explicitInput.id; panels = { ...this.input.panels, - [previousPanelState.explicitInput.id]: { + [panelId]: { ...previousPanelState, ...newPanelState, gridData: { @@ -77,16 +80,18 @@ export async function replacePanel( }, explicitInput: { ...newPanelState.explicitInput, - id: previousPanelState.explicitInput.id, + id: panelId, }, }, }; } - return this.updateInput({ + await this.updateInput({ panels, lastReloadRequestTime: new Date().getTime(), }); + + return panelId; } export function showPlaceholderUntil( diff --git a/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx b/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx index cdad6434175381..c2205d68ba5467 100644 --- a/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx +++ b/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx @@ -96,7 +96,7 @@ export class DashboardContainer extends Container void; + public onDestroyControlGroup?: () => void; private subscriptions: Subscription = new Subscription(); private initialized$: BehaviorSubject = new BehaviorSubject(false); diff --git a/src/plugins/dashboard/public/dashboard_container/embeddable/integrations/controls/dashboard_control_group_integration.ts b/src/plugins/dashboard/public/dashboard_container/embeddable/integrations/controls/dashboard_control_group_integration.ts index 4e78d9185f7c49..7367f089bbaa8e 100644 --- a/src/plugins/dashboard/public/dashboard_container/embeddable/integrations/controls/dashboard_control_group_integration.ts +++ b/src/plugins/dashboard/public/dashboard_container/embeddable/integrations/controls/dashboard_control_group_integration.ts @@ -65,12 +65,19 @@ export async function startControlGroupIntegration( return; } - this.untilInitialized().then(() => startSyncingDashboardControlGroup.bind(this)()); + this.untilInitialized().then(() => { + const stopSyncingControlGroup = + startSyncingDashboardControlGroup.bind(this)()?.stopSyncingWithControlGroup; + this.onDestroyControlGroup = () => { + stopSyncingControlGroup?.(); + this.controlGroup?.destroy(); + }; + }); await controlGroup.untilInitialized(); return controlGroup; } -async function startSyncingDashboardControlGroup(this: DashboardContainer) { +function startSyncingDashboardControlGroup(this: DashboardContainer) { if (!this.controlGroup) return; const subscriptions = new Subscription(); diff --git a/src/plugins/data/common/search/aggs/buckets/_terms_order_helper.ts b/src/plugins/data/common/search/aggs/buckets/_terms_order_helper.ts index c53e43acb37c4a..fecfc94229208a 100644 --- a/src/plugins/data/common/search/aggs/buckets/_terms_order_helper.ts +++ b/src/plugins/data/common/search/aggs/buckets/_terms_order_helper.ts @@ -67,6 +67,9 @@ export const termsOrderAggParamDefinition: Partial 1 && aggs.timeRange) { const shift = orderAgg.getTimeShift(); + // The timeRange can be either absolute or relative + // We need the absolute/resolved one for moment, so use the helper method + const timeRange = aggs.getResolvedTimeRange(); orderAgg = aggs.createAggConfig( { type: 'filtered_metric', @@ -84,11 +87,11 @@ export const termsOrderAggParamDefinition: Partial { expect(typeof agg).toBe('function'); }); + test('returns a function for undefined agg buckets', () => { + const response = { + took: 10, + timed_out: false, + _shards: { + total: 1, + successful: 1, + skipped: 0, + failed: 0, + }, + hits: { + total: 14005, + max_score: 0, + hits: [], + }, + aggregations: { + 2: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 8325, + }, + }, + status: 200, + }; + const aggConfigs = getAggConfigs(nestedTerm.aggs); + const agg = buildOtherBucketAgg( + aggConfigs, + aggConfigs.aggs[1] as IBucketAggConfig, + enrichResponseWithSampling(response) + ); + expect(agg).toBe(false); + }); + test('correctly builds query with single terms agg', () => { const aggConfigs = getAggConfigs(singleTerm.aggs); const agg = buildOtherBucketAgg( @@ -646,6 +678,73 @@ describe('Terms Agg Other bucket helper', () => { expect((topAgg['1'] as any).buckets[1]['2'].buckets[3].key).toEqual('__other__'); } }); + + test('correctly merges other bucket with nested terms agg with empty string', () => { + const response = { + ...nestedTermResponse, + aggregations: { + ...nestedTermResponse.aggregations, + '1': { + ...nestedTermResponse.aggregations['1'], + buckets: [ + ...nestedTermResponse.aggregations['1'].buckets, + { + '2': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 8325, + buckets: [ + { key: 'ios', doc_count: 1850 }, + { key: 'win xp', doc_count: 1830 }, + { key: '__missing__', doc_count: 130 }, + ], + }, + key: '', + doc_count: 2830, + }, + ], + }, + }, + }; + + const otherResponse = { + took: 3, + timed_out: false, + _shards: { total: 1, successful: 1, skipped: 0, failed: 0 }, + hits: { total: 14005, max_score: 0, hits: [] }, + aggregations: { + 'other-filter': { + buckets: { + [`${SEP}US-with-dash`]: { doc_count: 2805 }, + [`${SEP}IN-with-dash`]: { doc_count: 2804 }, + [`${SEP}`]: { doc_count: 2804 }, + }, + }, + }, + status: 200, + }; + const aggConfigs = getAggConfigs(nestedTerm.aggs); + const otherAggConfig = buildOtherBucketAgg( + aggConfigs, + aggConfigs.aggs[1] as IBucketAggConfig, + enrichResponseWithSampling(response) + ); + + expect(otherAggConfig).toBeDefined(); + if (otherAggConfig) { + const mergedResponse = mergeOtherBucketAggResponse( + aggConfigs, + enrichResponseWithSampling(response), + enrichResponseWithSampling(otherResponse), + aggConfigs.aggs[1] as IBucketAggConfig, + otherAggConfig(), + constructSingleTermOtherFilter + ); + + const topAgg = getTopAggregations(mergedResponse); + expect((topAgg['1'] as any).buckets[2].key).toEqual(''); + expect((topAgg['1'] as any).buckets[2]['2'].buckets[3].key).toEqual('__other__'); + } + }); }); describe(`updateMissingBucket${getTitlePostfix()}`, () => { diff --git a/src/plugins/data/common/search/aggs/buckets/_terms_other_bucket_helper.ts b/src/plugins/data/common/search/aggs/buckets/_terms_other_bucket_helper.ts index 68c64f67ef27f7..d4542d1513f164 100644 --- a/src/plugins/data/common/search/aggs/buckets/_terms_other_bucket_helper.ts +++ b/src/plugins/data/common/search/aggs/buckets/_terms_other_bucket_helper.ts @@ -59,7 +59,7 @@ const getAggResultBuckets = ( const keyParts = key.split(OTHER_BUCKET_SEPARATOR); let responseAgg = response; for (const i in keyParts) { - if (keyParts[i]) { + if (keyParts[i] || keyParts[i] === '') { const responseAggs: Array> = values(responseAgg); // If you have multi aggs, we cannot just assume the first one is the `other` bucket, // so we need to loop over each agg until we find it. @@ -196,12 +196,11 @@ export const buildOtherBucketAgg = ( key: string ) => { // make sure there are actually results for the buckets - if (aggregations[aggId]?.buckets.length < 1) { + const agg = aggregations[aggId]; + if (!agg || !agg.buckets.length) { noAggBucketResults = true; return; } - - const agg = aggregations[aggId]; const newAggIndex = aggIndex + 1; const newAgg = bucketAggs[newAggIndex]; const currentAgg = bucketAggs[aggIndex]; @@ -209,7 +208,7 @@ export const buildOtherBucketAgg = ( exhaustiveBuckets = false; } if (aggIndex < index) { - each(agg.buckets, (bucket: any, bucketObjKey) => { + each(agg?.buckets, (bucket: any, bucketObjKey) => { const bucketKey = currentAgg.getKey( bucket, isNumber(bucketObjKey) ? undefined : bucketObjKey diff --git a/src/plugins/data/kibana.json b/src/plugins/data/kibana.json deleted file mode 100644 index 343e1deeb104b0..00000000000000 --- a/src/plugins/data/kibana.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "data", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "bfetch", - "expressions", - "uiActions", - "share", - "inspector", - "fieldFormats", - "dataViews", - "screenshotMode", - "management" - ], - "serviceFolders": ["search", "query", "ui"], - "optionalPlugins": ["usageCollection", "taskManager", "security"], - "extraPublicDirs": ["common"], - "requiredBundles": ["kibanaUtils", "kibanaReact", "inspector"], - "owner": { - "name": "Data Discovery", - "githubTeam": "kibana-data-discovery" - }, - "description": "Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters." -} diff --git a/src/plugins/data/kibana.jsonc b/src/plugins/data/kibana.jsonc new file mode 100644 index 00000000000000..90658599a87bfd --- /dev/null +++ b/src/plugins/data/kibana.jsonc @@ -0,0 +1,43 @@ +{ + "type": "plugin", + "id": "@kbn/data-plugin", + "owner": [ + "@elastic/kibana-visualizations", + "@elastic/kibana-data-discovery" + ], + "description": "Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters.", + "serviceFolders": [ + "search", + "query", + "ui" + ], + "plugin": { + "id": "data", + "server": true, + "browser": true, + "requiredPlugins": [ + "bfetch", + "expressions", + "uiActions", + "share", + "inspector", + "fieldFormats", + "dataViews", + "screenshotMode", + "management" + ], + "optionalPlugins": [ + "usageCollection", + "taskManager", + "security" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact", + "inspector" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/data/server/saved_objects/query.ts b/src/plugins/data/server/saved_objects/query.ts index 3c7e964d6c863c..0e11bf7a9f2e0a 100644 --- a/src/plugins/data/server/saved_objects/query.ts +++ b/src/plugins/data/server/saved_objects/query.ts @@ -35,8 +35,11 @@ export const querySavedObjectType: SavedObjectsType = { query: { properties: { language: { type: 'keyword' }, query: { type: 'keyword', index: false } }, }, - filters: { type: 'object', enabled: false }, - timefilter: { type: 'object', enabled: false }, + filters: { + dynamic: false, + properties: {}, + }, + timefilter: { dynamic: false, properties: {} }, }, }, migrations: savedQueryMigrations, diff --git a/src/plugins/data/server/search/saved_objects/search_session.ts b/src/plugins/data/server/search/saved_objects/search_session.ts index 3eb1c6190dd6e2..5e3906cfd8f630 100644 --- a/src/plugins/data/server/search/saved_objects/search_session.ts +++ b/src/plugins/data/server/search/saved_objects/search_session.ts @@ -35,16 +35,16 @@ export const searchSessionSavedObjectType: SavedObjectsType = { type: 'keyword', }, initialState: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, restoreState: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, idMapping: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, realmType: { type: 'keyword', diff --git a/src/plugins/data_view_editor/kibana.json b/src/plugins/data_view_editor/kibana.json deleted file mode 100644 index 26bff485037e2d..00000000000000 --- a/src/plugins/data_view_editor/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "dataViewEditor", - "version": "kibana", - "server": false, - "ui": true, - "requiredPlugins": ["data", "dataViews"], - "requiredBundles": ["kibanaReact", "esUiShared"], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "This plugin provides the ability to create data views via a modal flyout inside Kibana apps" -} diff --git a/src/plugins/data_view_editor/kibana.jsonc b/src/plugins/data_view_editor/kibana.jsonc new file mode 100644 index 00000000000000..007a7f78321db2 --- /dev/null +++ b/src/plugins/data_view_editor/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/data-view-editor-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "This plugin provides the ability to create data views via a modal flyout inside Kibana apps", + "plugin": { + "id": "dataViewEditor", + "server": false, + "browser": true, + "requiredPlugins": [ + "data", + "dataViews" + ], + "requiredBundles": [ + "kibanaReact", + "esUiShared" + ] + } +} diff --git a/src/plugins/data_view_field_editor/kibana.json b/src/plugins/data_view_field_editor/kibana.json deleted file mode 100644 index 813dbc8ad5fd31..00000000000000 --- a/src/plugins/data_view_field_editor/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "dataViewFieldEditor", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["data", "fieldFormats", "dataViews"], - "optionalPlugins": ["usageCollection"], - "requiredBundles": ["kibanaReact", "esUiShared"], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Reusable data view field editor across Kibana" -} diff --git a/src/plugins/data_view_field_editor/kibana.jsonc b/src/plugins/data_view_field_editor/kibana.jsonc new file mode 100644 index 00000000000000..50a336cfe0c9e5 --- /dev/null +++ b/src/plugins/data_view_field_editor/kibana.jsonc @@ -0,0 +1,23 @@ +{ + "type": "plugin", + "id": "@kbn/data-view-field-editor-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "Reusable data view field editor across Kibana", + "plugin": { + "id": "dataViewFieldEditor", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "fieldFormats", + "dataViews" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaReact", + "esUiShared" + ] + } +} diff --git a/src/plugins/data_view_management/kibana.json b/src/plugins/data_view_management/kibana.json deleted file mode 100644 index 8c8ace32169ca4..00000000000000 --- a/src/plugins/data_view_management/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "dataViewManagement", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["management", "data", "urlForwarding", "dataViewFieldEditor", "dataViewEditor", "dataViews", "fieldFormats", "unifiedSearch", "savedObjectsManagement"], - "requiredBundles": ["kibanaReact", "kibanaUtils"], - "optionalPlugins": ["spaces"], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Data view management app" -} diff --git a/src/plugins/data_view_management/kibana.jsonc b/src/plugins/data_view_management/kibana.jsonc new file mode 100644 index 00000000000000..cd9018c04e543a --- /dev/null +++ b/src/plugins/data_view_management/kibana.jsonc @@ -0,0 +1,29 @@ +{ + "type": "plugin", + "id": "@kbn/data-view-management-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "Data view management app", + "plugin": { + "id": "dataViewManagement", + "server": true, + "browser": true, + "requiredPlugins": [ + "management", + "data", + "urlForwarding", + "dataViewFieldEditor", + "dataViewEditor", + "dataViews", + "fieldFormats", + "unifiedSearch", + "savedObjectsManagement" + ], + "optionalPlugins": [ + "spaces" + ], + "requiredBundles": [ + "kibanaReact", + "kibanaUtils" + ] + } +} diff --git a/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx b/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx index 811222ef71e882..de421c0b8945e3 100644 --- a/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx +++ b/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx @@ -128,7 +128,10 @@ export const EditIndexPattern = withRouter( const isRollup = new URLSearchParams(useLocation().search).get('type') === 'rollup'; const displayIndexPatternEditor = showEditDialog ? ( setShowEditDialog(false)} + onSave={() => { + setFields(indexPattern.getNonScriptedFields()); + setShowEditDialog(false); + }} onCancel={() => setShowEditDialog(false)} defaultTypeIsRollup={isRollup} editData={indexPattern} diff --git a/src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/__snapshots__/table.test.tsx.snap b/src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/__snapshots__/table.test.tsx.snap index ac6ab1172a5353..65c124c6676fac 100644 --- a/src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/__snapshots__/table.test.tsx.snap +++ b/src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/__snapshots__/table.test.tsx.snap @@ -82,13 +82,17 @@ exports[`Table render conflict summary modal 1`] = ` `; exports[`Table render name 1`] = ` - + customer `; exports[`Table render name 2`] = ` - + customer   @@ -126,7 +130,9 @@ exports[`Table should render mixed, non-conflicting type 1`] = ` `; exports[`Table should render normal field name 1`] = ` - + Elastic `; @@ -324,7 +330,9 @@ exports[`Table should render the boolean template (true) 1`] = ` `; exports[`Table should render timestamp field name 1`] = ` - + timestamp   diff --git a/src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx b/src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx index a7b6cf621bb64b..b7ed701b31c683 100644 --- a/src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx +++ b/src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx @@ -220,7 +220,7 @@ const getItems = (conflictDescriptions: IndexedFieldItem['conflictDescriptions'] }; export const renderFieldName = (field: IndexedFieldItem, timeFieldName?: string) => ( - + {field.name} {field.info && field.info.length ? ( diff --git a/src/plugins/data_views/common/lib/errors.ts b/src/plugins/data_views/common/lib/errors.ts index 079dcfd8b3993e..4aee04ec78e276 100644 --- a/src/plugins/data_views/common/lib/errors.ts +++ b/src/plugins/data_views/common/lib/errors.ts @@ -6,9 +6,7 @@ * Side Public License, v 1. */ -/* eslint-disable @kbn/imports/uniform_imports */ - -import { KbnError } from '../../../kibana_utils/common'; +import { KbnError } from '@kbn/kibana-utils-plugin/common'; /** * Tried to call a method that relies on SearchSource having an indexPattern assigned diff --git a/src/plugins/data_views/kibana.json b/src/plugins/data_views/kibana.json deleted file mode 100644 index f92eb6bad2aedb..00000000000000 --- a/src/plugins/data_views/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "dataViews", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["fieldFormats", "expressions"], - "optionalPlugins": ["usageCollection"], - "extraPublicDirs": ["common"], - "requiredBundles": ["kibanaUtils"], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters." -} diff --git a/src/plugins/data_views/kibana.jsonc b/src/plugins/data_views/kibana.jsonc new file mode 100644 index 00000000000000..786f01ec226c61 --- /dev/null +++ b/src/plugins/data_views/kibana.jsonc @@ -0,0 +1,24 @@ +{ + "type": "plugin", + "id": "@kbn/data-views-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters.", + "plugin": { + "id": "dataViews", + "server": true, + "browser": true, + "requiredPlugins": [ + "fieldFormats", + "expressions" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/dev_tools/kibana.json b/src/plugins/dev_tools/kibana.json deleted file mode 100644 index 9b2ae8a3f995f2..00000000000000 --- a/src/plugins/dev_tools/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "devTools", - "version": "kibana", - "server": false, - "ui": true, - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": ["urlForwarding"], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/dev_tools/kibana.jsonc b/src/plugins/dev_tools/kibana.jsonc new file mode 100644 index 00000000000000..b9bd32b6397013 --- /dev/null +++ b/src/plugins/dev_tools/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/dev-tools-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "devTools", + "server": false, + "browser": true, + "requiredPlugins": [ + "urlForwarding" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/discover/kibana.json b/src/plugins/discover/kibana.json deleted file mode 100644 index 238de024753070..00000000000000 --- a/src/plugins/discover/kibana.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "id": "discover", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "charts", - "data", - "dataViews", - "embeddable", - "inspector", - "fieldFormats", - "urlForwarding", - "navigation", - "uiActions", - "savedObjects", - "savedObjectsFinder", - "savedObjectsManagement", - "dataViewFieldEditor", - "dataViewEditor", - "expressions", - "unifiedFieldList", - "unifiedSearch", - "unifiedHistogram" - ], - "optionalPlugins": [ - "home", - "share", - "usageCollection", - "spaces", - "triggersActionsUi", - "savedObjectsTaggingOss", - "lens" - ], - "requiredBundles": ["kibanaUtils", "kibanaReact", "unifiedSearch", "savedSearch"], - "extraPublicDirs": ["common"], - "owner": { - "name": "Data Discovery", - "githubTeam": "kibana-data-discovery" - }, - "description": "This plugin contains the Discover application and the saved search embeddable." -} diff --git a/src/plugins/discover/kibana.jsonc b/src/plugins/discover/kibana.jsonc new file mode 100644 index 00000000000000..25b714fe64778b --- /dev/null +++ b/src/plugins/discover/kibana.jsonc @@ -0,0 +1,49 @@ +{ + "type": "plugin", + "id": "@kbn/discover-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "This plugin contains the Discover application and the saved search embeddable.", + "plugin": { + "id": "discover", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "data", + "dataViews", + "embeddable", + "inspector", + "fieldFormats", + "urlForwarding", + "navigation", + "uiActions", + "savedObjects", + "savedObjectsFinder", + "savedObjectsManagement", + "dataViewFieldEditor", + "dataViewEditor", + "expressions", + "unifiedFieldList", + "unifiedSearch", + "unifiedHistogram" + ], + "optionalPlugins": [ + "home", + "share", + "usageCollection", + "spaces", + "triggersActionsUi", + "savedObjectsTaggingOss", + "lens" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact", + "unifiedSearch", + "savedSearch" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/discover/public/__mocks__/data_view.ts b/src/plugins/discover/public/__mocks__/data_view.ts index b63321674ce7ba..bb57d9eb932ede 100644 --- a/src/plugins/discover/public/__mocks__/data_view.ts +++ b/src/plugins/discover/public/__mocks__/data_view.ts @@ -109,6 +109,9 @@ export const buildDataViewMock = ({ getFormatterForField: jest.fn(() => ({ convert: (value: unknown) => value })), isTimeNanosBased: () => false, isPersisted: () => true, + getTimeField: () => { + return dataViewFields.find((field) => field.name === timeFieldName); + }, } as unknown as DataView; dataView.isTimeBased = () => !!timeFieldName; diff --git a/src/plugins/discover/public/__mocks__/services.ts b/src/plugins/discover/public/__mocks__/services.ts index 648ba828489bf8..8c1b10f236e9d4 100644 --- a/src/plugins/discover/public/__mocks__/services.ts +++ b/src/plugins/discover/public/__mocks__/services.ts @@ -51,6 +51,10 @@ export function createDiscoverServicesMock(): DiscoverServices { dataPlugin.query.getState = jest.fn(() => ({ query: { query: '', language: 'lucene' }, filters: [], + time: { + from: 'now-15m', + to: 'now', + }, })); dataPlugin.dataViews = createDiscoverDataViewsMock(); diff --git a/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.test.tsx b/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.test.tsx index 765e8edfcdbaf6..2396325ac82cc7 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.test.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.test.tsx @@ -26,18 +26,15 @@ import { buildDataTableRecord } from '../../../../utils/build_data_record'; import { DiscoverHistogramLayout, DiscoverHistogramLayoutProps } from './discover_histogram_layout'; import { SavedSearch, VIEW_MODE } from '@kbn/saved-search-plugin/public'; import { CoreTheme } from '@kbn/core/public'; -import { act } from 'react-dom/test-utils'; import { Storage } from '@kbn/kibana-utils-plugin/public'; -import { LocalStorageMock } from '../../../../__mocks__/local_storage_mock'; -import { HISTOGRAM_HEIGHT_KEY } from './use_discover_histogram'; import { createSearchSessionMock } from '../../../../__mocks__/search_session'; import { RequestAdapter } from '@kbn/inspector-plugin/public'; import { searchSourceInstanceMock } from '@kbn/data-plugin/common/search/search_source/mocks'; -import { UnifiedHistogramLayout } from '@kbn/unified-histogram-plugin/public'; import { getSessionServiceMock } from '@kbn/data-plugin/public/search/session/mocks'; import { ResetSearchButton } from './reset_search_button'; import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock'; import { DiscoverMainProvider } from '../../services/discover_state_provider'; +import { act } from 'react-dom/test-utils'; function getStateContainer() { const stateContainer = getDiscoverStateMock({ isTimeBased: true }); @@ -52,18 +49,19 @@ function getStateContainer() { return stateContainer; } -const mountComponent = ({ +const mountComponent = async ({ isPlainRecord = false, - isTimeBased = true, storage, savedSearch = savedSearchMock, resetSavedSearch = jest.fn(), + searchSessionId = '123', }: { isPlainRecord?: boolean; isTimeBased?: boolean; storage?: Storage; savedSearch?: SavedSearch; resetSavedSearch?(): void; + searchSessionId?: string | null; } = {}) => { let services = discoverServiceMock; services.data.query.timefilter.timefilter.getAbsoluteTime = () => { @@ -114,7 +112,7 @@ const mountComponent = ({ const session = getSessionServiceMock(); - session.getSession$.mockReturnValue(new BehaviorSubject('123')); + session.getSession$.mockReturnValue(new BehaviorSubject(searchSessionId ?? undefined)); const stateContainer = getStateContainer(); stateContainer.dataState.data$ = savedSearchData$; @@ -131,7 +129,6 @@ const mountComponent = ({ viewMode: VIEW_MODE.DOCUMENT_LEVEL, onAddFilter: jest.fn(), resetSavedSearch, - isTimeBased, resizeRef: { current: null }, searchSessionManager: createSearchSessionMock(session).searchSessionManager, inspectorAdapters: { requests: new RequestAdapter() }, @@ -149,65 +146,39 @@ const mountComponent = ({ ); + // wait for lazy modules + await act(() => new Promise((resolve) => setTimeout(resolve, 0))); + component.update(); + return component; }; describe('Discover histogram layout component', () => { - describe('topPanelHeight persistence', () => { - it('should try to get the initial topPanelHeight for UnifiedHistogramLayout from storage', async () => { - const storage = new LocalStorageMock({}) as unknown as Storage; - const originalGet = storage.get; - storage.get = jest.fn().mockImplementation(originalGet); - mountComponent({ storage }); - expect(storage.get).toHaveBeenCalledWith(HISTOGRAM_HEIGHT_KEY); + describe('render', () => { + it('should render null if there is no search session', async () => { + const component = await mountComponent({ searchSessionId: null }); + expect(component.isEmptyRender()).toBe(true); }); - it('should pass undefined to UnifiedHistogramLayout if no value is found in storage', async () => { - const storage = new LocalStorageMock({}) as unknown as Storage; - const originalGet = storage.get; - storage.get = jest.fn().mockImplementation(originalGet); - const component = mountComponent({ storage }); - expect(storage.get).toHaveBeenCalledWith(HISTOGRAM_HEIGHT_KEY); - expect(storage.get).toHaveReturnedWith(null); - expect(component.find(UnifiedHistogramLayout).prop('topPanelHeight')).toBe(undefined); + it('should not render null if there is a search session', async () => { + const component = await mountComponent(); + expect(component.isEmptyRender()).toBe(false); }); - it('should pass the stored topPanelHeight to UnifiedHistogramLayout if a value is found in storage', async () => { - const storage = new LocalStorageMock({}) as unknown as Storage; - const topPanelHeight = 123; - storage.get = jest.fn().mockImplementation(() => topPanelHeight); - const component = mountComponent({ storage }); - expect(storage.get).toHaveBeenCalledWith(HISTOGRAM_HEIGHT_KEY); - expect(storage.get).toHaveReturnedWith(topPanelHeight); - expect(component.find(UnifiedHistogramLayout).prop('topPanelHeight')).toBe(topPanelHeight); - }); - - it('should update the topPanelHeight in storage and pass the new value to UnifiedHistogramLayout when the topPanelHeight changes', async () => { - const storage = new LocalStorageMock({}) as unknown as Storage; - const originalSet = storage.set; - storage.set = jest.fn().mockImplementation(originalSet); - const component = mountComponent({ storage }); - const newTopPanelHeight = 123; - expect(component.find(UnifiedHistogramLayout).prop('topPanelHeight')).not.toBe( - newTopPanelHeight - ); - act(() => { - component.find(UnifiedHistogramLayout).prop('onTopPanelHeightChange')!(newTopPanelHeight); - }); - component.update(); - expect(storage.set).toHaveBeenCalledWith(HISTOGRAM_HEIGHT_KEY, newTopPanelHeight); - expect(component.find(UnifiedHistogramLayout).prop('topPanelHeight')).toBe(newTopPanelHeight); + it('should not render null if there is no search session, but isPlainRecord is true', async () => { + const component = await mountComponent({ isPlainRecord: true }); + expect(component.isEmptyRender()).toBe(false); }); }); describe('reset search button', () => { it('renders the button when there is a saved search', async () => { - const component = mountComponent(); + const component = await mountComponent(); expect(component.find(ResetSearchButton).exists()).toBe(true); }); it('does not render the button when there is no saved search', async () => { - const component = mountComponent({ + const component = await mountComponent({ savedSearch: { ...savedSearchMock, id: undefined }, }); expect(component.find(ResetSearchButton).exists()).toBe(false); @@ -215,7 +186,7 @@ describe('Discover histogram layout component', () => { it('should call resetSavedSearch when clicked', async () => { const resetSavedSearch = jest.fn(); - const component = mountComponent({ resetSavedSearch }); + const component = await mountComponent({ resetSavedSearch }); component.find(ResetSearchButton).find('button').simulate('click'); expect(resetSavedSearch).toHaveBeenCalled(); }); diff --git a/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.tsx b/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.tsx index 28a6d6c0517871..68a5d8e1c7ee96 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.tsx @@ -7,9 +7,9 @@ */ import React, { RefObject } from 'react'; -import { UnifiedHistogramLayout } from '@kbn/unified-histogram-plugin/public'; +import { UnifiedHistogramContainer } from '@kbn/unified-histogram-plugin/public'; import { css } from '@emotion/react'; -import { useDiscoverServices } from '../../../../hooks/use_discover_services'; +import useObservable from 'react-use/lib/useObservable'; import { useDiscoverHistogram } from './use_discover_histogram'; import type { DiscoverSearchSessionManager } from '../../services/discover_search_session'; import type { InspectorAdapters } from '../../hooks/use_inspector'; @@ -18,68 +18,65 @@ import { ResetSearchButton } from './reset_search_button'; export interface DiscoverHistogramLayoutProps extends DiscoverMainContentProps { resetSavedSearch: () => void; - isTimeBased: boolean; resizeRef: RefObject; inspectorAdapters: InspectorAdapters; searchSessionManager: DiscoverSearchSessionManager; } +const histogramLayoutCss = css` + height: 100%; +`; + export const DiscoverHistogramLayout = ({ isPlainRecord, dataView, resetSavedSearch, savedSearch, stateContainer, - isTimeBased, resizeRef, inspectorAdapters, searchSessionManager, ...mainContentProps }: DiscoverHistogramLayoutProps) => { - const services = useDiscoverServices(); - const commonProps = { dataView, - isPlainRecord, stateContainer, - savedSearch, savedSearchData$: stateContainer.dataState.data$, }; - const histogramProps = useDiscoverHistogram({ - isTimeBased, + const searchSessionId = useObservable(searchSessionManager.searchSessionId$); + + const { hideChart, setUnifiedHistogramApi } = useDiscoverHistogram({ inspectorAdapters, - searchSessionManager, savedSearchFetch$: stateContainer.dataState.fetch$, + searchSessionId, ...commonProps, }); - if (!histogramProps) { + // Initialized when the first search has been requested or + // when in text-based mode since search sessions are not supported + if (!searchSessionId && !isPlainRecord) { return null; } - const histogramLayoutCss = css` - height: 100%; - `; - return ( - : undefined } css={histogramLayoutCss} - {...histogramProps} > - + ); }; diff --git a/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx b/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx index 13994b401b0441..f14d89ead5b814 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx @@ -40,10 +40,11 @@ import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock' import { createSearchSessionMock } from '../../../../__mocks__/search_session'; import { getSessionServiceMock } from '@kbn/data-plugin/public/search/session/mocks'; import { DiscoverMainProvider } from '../../services/discover_state_provider'; +import { act } from 'react-dom/test-utils'; setHeaderActionMenuMounter(jest.fn()); -function mountComponent( +async function mountComponent( dataView: DataView, prevSidebarClosed?: boolean, mountOptions: { attachTo?: HTMLElement } = {}, @@ -57,13 +58,17 @@ function mountComponent( [SIDEBAR_CLOSED_KEY]: prevSidebarClosed, }) as unknown as Storage, } as unknown as DiscoverServices; - services.data.query.timefilter.timefilter.getTime = () => { - return { from: '2020-05-14T11:05:13.590', to: '2020-05-14T11:20:13.590' }; - }; + const time = { from: '2020-05-14T11:05:13.590', to: '2020-05-14T11:20:13.590' }; + services.data.query.timefilter.timefilter.getTime = () => time; (services.data.query.queryString.getDefaultQuery as jest.Mock).mockReturnValue({ language: 'kuery', query: '', }); + (services.data.query.getState as jest.Mock).mockReturnValue({ + filters: [], + query, + time, + }); (searchSourceInstanceMock.fetch$ as jest.Mock).mockImplementation( jest.fn().mockReturnValue(of({ rawResponse: { hits: { total: 2 } } })) ); @@ -132,13 +137,19 @@ function mountComponent( mountOptions ); + // wait for lazy modules + await act(async () => { + await new Promise((resolve) => setTimeout(resolve, 0)); + }); + component.update(); + return component; } describe('Discover component', () => { test('selected data view without time field displays no chart toggle', async () => { const container = document.createElement('div'); - mountComponent(dataViewMock, undefined, { attachTo: container }); + await mountComponent(dataViewMock, undefined, { attachTo: container }); expect( container.querySelector('[data-test-subj="unifiedHistogramChartOptionsToggle"]') ).toBeNull(); @@ -146,7 +157,7 @@ describe('Discover component', () => { test('selected data view with time field displays chart toggle', async () => { const container = document.createElement('div'); - mountComponent(dataViewWithTimefieldMock, undefined, { attachTo: container }); + await mountComponent(dataViewWithTimefieldMock, undefined, { attachTo: container }); expect( container.querySelector('[data-test-subj="unifiedHistogramChartOptionsToggle"]') ).not.toBeNull(); @@ -154,7 +165,7 @@ describe('Discover component', () => { test('sql query displays no chart toggle', async () => { const container = document.createElement('div'); - mountComponent( + await mountComponent( dataViewWithTimefieldMock, false, { attachTo: container }, @@ -169,7 +180,7 @@ describe('Discover component', () => { test('the saved search title h1 gains focus on navigate', async () => { const container = document.createElement('div'); document.body.appendChild(container); - const component = mountComponent(dataViewWithTimefieldMock, undefined, { + const component = await mountComponent(dataViewWithTimefieldMock, undefined, { attachTo: container, }); expect( @@ -179,17 +190,17 @@ describe('Discover component', () => { describe('sidebar', () => { test('should be opened if discover:sidebarClosed was not set', async () => { - const component = mountComponent(dataViewWithTimefieldMock, undefined); + const component = await mountComponent(dataViewWithTimefieldMock, undefined); expect(component.find(DiscoverSidebar).length).toBe(1); }, 10000); test('should be opened if discover:sidebarClosed is false', async () => { - const component = mountComponent(dataViewWithTimefieldMock, false); + const component = await mountComponent(dataViewWithTimefieldMock, false); expect(component.find(DiscoverSidebar).length).toBe(1); }, 10000); test('should be closed if discover:sidebarClosed is true', async () => { - const component = mountComponent(dataViewWithTimefieldMock, true); + const component = await mountComponent(dataViewWithTimefieldMock, true); expect(component.find(DiscoverSidebar).length).toBe(0); }, 10000); }); diff --git a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx index 2eec55daf742d7..cb7f9c64ff625b 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx @@ -239,7 +239,6 @@ export function DiscoverLayout({ setExpandedDoc={setExpandedDoc} savedSearch={savedSearch} stateContainer={stateContainer} - isTimeBased={isTimeBased} columns={currentColumns} viewMode={viewMode} onAddFilter={onAddFilter as DocViewFilterFn} diff --git a/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.test.tsx b/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.test.tsx index b075e613b6a55d..8463b380efc8fc 100644 --- a/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.test.tsx +++ b/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.test.tsx @@ -5,6 +5,7 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ + import React, { ReactElement } from 'react'; import { buildDataTableRecord } from '../../../../utils/build_data_record'; import { esHits } from '../../../../__mocks__/es_hits'; @@ -20,51 +21,42 @@ import { RecordRawType, } from '../../services/discover_data_state_container'; import type { DiscoverStateContainer } from '../../services/discover_state'; -import { savedSearchMock } from '../../../../__mocks__/saved_search'; -import type { Storage } from '@kbn/kibana-utils-plugin/public'; -import { LocalStorageMock } from '../../../../__mocks__/local_storage_mock'; import { dataPluginMock } from '@kbn/data-plugin/public/mocks'; import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield'; -import { - CHART_HIDDEN_KEY, - HISTOGRAM_HEIGHT_KEY, - useDiscoverHistogram, - UseDiscoverHistogramProps, -} from './use_discover_histogram'; +import { useDiscoverHistogram, UseDiscoverHistogramProps } from './use_discover_histogram'; import { setTimeout } from 'timers/promises'; -import { calculateBounds } from '@kbn/data-plugin/public'; import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock'; import { DiscoverMainProvider } from '../../services/discover_state_provider'; -import { createSearchSessionMock } from '../../../../__mocks__/search_session'; import { RequestAdapter } from '@kbn/inspector-plugin/public'; -import { getSessionServiceMock } from '@kbn/data-plugin/public/search/session/mocks'; -import { UnifiedHistogramFetchStatus } from '@kbn/unified-histogram-plugin/public'; +import { + UnifiedHistogramFetchStatus, + UnifiedHistogramInitializeOptions, + UnifiedHistogramState, +} from '@kbn/unified-histogram-plugin/public'; +import { createMockUnifiedHistogramApi } from '@kbn/unified-histogram-plugin/public/mocks'; import { checkHitCount, sendErrorTo } from '../../hooks/use_saved_search_messages'; import type { InspectorAdapters } from '../../hooks/use_inspector'; -import type { TypedLensByValueInput } from '@kbn/lens-plugin/public'; -import { DiscoverSearchSessionManager } from '../../services/discover_search_session'; const mockData = dataPluginMock.createStartContract(); - -mockData.query.timefilter.timefilter.getTime = () => { - return { from: '1991-03-29T08:04:00.694Z', to: '2021-03-29T07:04:00.695Z' }; -}; -mockData.query.timefilter.timefilter.calculateBounds = (timeRange) => { - return calculateBounds(timeRange); -}; - -const mockLens = { - navigateToPrefilledEditor: jest.fn(), +const mockQueryState = { + query: { + query: 'query', + language: 'kuery', + }, + filters: [], + time: { + from: 'now-15m', + to: 'now', + }, }; -let mockStorage = new LocalStorageMock({}) as unknown as Storage; -let mockCanVisualize = true; +mockData.query.getState = () => mockQueryState; jest.mock('../../../../hooks/use_discover_services', () => { const originalModule = jest.requireActual('../../../../hooks/use_discover_services'); return { ...originalModule, - useDiscoverServices: () => ({ storage: mockStorage, data: mockData, lens: mockLens }), + useDiscoverServices: () => ({ data: mockData }), }; }); @@ -72,34 +64,14 @@ jest.mock('@kbn/unified-field-list-plugin/public', () => { const originalModule = jest.requireActual('@kbn/unified-field-list-plugin/public'); return { ...originalModule, - getVisualizeInformation: jest.fn(() => Promise.resolve(mockCanVisualize)), useQuerySubscriber: jest.fn(() => ({ - query: { - query: 'query', - language: 'kuery', - }, - filters: [], + ...mockQueryState, fromDate: 'now-15m', toDate: 'now', })), }; }); -function getStateContainer() { - const stateContainer = getDiscoverStateMock({ isTimeBased: true }); - - stateContainer.setAppState({ - interval: 'auto', - hideChart: false, - breakdownField: 'extension', - }); - - const wrappedStateContainer = Object.create(stateContainer); - wrappedStateContainer.setAppState = jest.fn((newState) => stateContainer.setAppState(newState)); - - return wrappedStateContainer; -} - jest.mock('../../hooks/use_saved_search_messages', () => { const originalModule = jest.requireActual('../../hooks/use_saved_search_messages'); return { @@ -112,13 +84,20 @@ jest.mock('../../hooks/use_saved_search_messages', () => { const mockCheckHitCount = checkHitCount as jest.MockedFunction; describe('useDiscoverHistogram', () => { + const getStateContainer = () => { + const stateContainer = getDiscoverStateMock({ isTimeBased: true }); + stateContainer.setAppState({ + interval: 'auto', + hideChart: false, + breakdownField: 'extension', + }); + const wrappedStateContainer = Object.create(stateContainer); + wrappedStateContainer.setAppState = jest.fn((newState) => stateContainer.setAppState(newState)); + return wrappedStateContainer; + }; + const renderUseDiscoverHistogram = async ({ - isPlainRecord = false, - isTimeBased = true, - canVisualize = true, - storage = new LocalStorageMock({}) as unknown as Storage, stateContainer = getStateContainer(), - searchSessionManager, searchSessionId = '123', inspectorAdapters = { requests: new RequestAdapter() }, totalHits$ = new BehaviorSubject({ @@ -127,26 +106,18 @@ describe('useDiscoverHistogram', () => { }) as DataTotalHits$, main$ = new BehaviorSubject({ fetchStatus: FetchStatus.COMPLETE, - recordRawType: isPlainRecord ? RecordRawType.PLAIN : RecordRawType.DOCUMENT, + recordRawType: RecordRawType.DOCUMENT, foundDocuments: true, }) as DataMain$, savedSearchFetch$ = new Subject() as DataFetch$, }: { - isPlainRecord?: boolean; - isTimeBased?: boolean; - canVisualize?: boolean; - storage?: Storage; stateContainer?: DiscoverStateContainer; - searchSessionManager?: DiscoverSearchSessionManager; - searchSessionId?: string | null; + searchSessionId?: string; inspectorAdapters?: InspectorAdapters; totalHits$?: DataTotalHits$; main$?: DataMain$; savedSearchFetch$?: DataFetch$; } = {}) => { - mockStorage = storage; - mockCanVisualize = canVisualize; - const documents$ = new BehaviorSubject({ fetchStatus: FetchStatus.COMPLETE, result: esHits.map((esHit) => buildDataTableRecord(esHit, dataViewWithTimefieldMock)), @@ -164,22 +135,13 @@ describe('useDiscoverHistogram', () => { availableFields$, }; - if (!searchSessionManager) { - const session = getSessionServiceMock(); - session.getSession$.mockReturnValue(new BehaviorSubject(searchSessionId ?? undefined)); - searchSessionManager = createSearchSessionMock(session).searchSessionManager; - } - const initialProps = { stateContainer, savedSearchData$, savedSearchFetch$, dataView: dataViewWithTimefieldMock, - savedSearch: savedSearchMock, - isTimeBased, - isPlainRecord, inspectorAdapters, - searchSessionManager: searchSessionManager!, + searchSessionId, }; const Wrapper: WrapperComponent = ({ children }) => ( @@ -201,262 +163,188 @@ describe('useDiscoverHistogram', () => { return { hook, initialProps }; }; - describe('result', () => { - it('should return undefined if there is no search session', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ searchSessionId: null }); - expect(result.current).toBeUndefined(); - }); - - it('it should not return undefined if there is no search session, but isPlainRecord is true', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ searchSessionId: null, isPlainRecord: true }); - expect(result.current).toBeDefined(); - }); - }); - - describe('contexts', () => { - it('should output the correct hits context', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram(); - expect(result.current?.hits?.status).toBe(UnifiedHistogramFetchStatus.complete); - expect(result.current?.hits?.total).toEqual(esHits.length); - }); - - it('should output the correct chart context', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram(); - expect(result.current?.chart?.hidden).toBe(false); - expect(result.current?.chart?.timeInterval).toBe('auto'); - }); - - it('should output the correct breakdown context', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram(); - expect(result.current?.breakdown?.field?.name).toBe('extension'); - }); - - it('should output the correct request context', async () => { - const requestAdapter = new RequestAdapter(); - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ - searchSessionId: '321', - inspectorAdapters: { requests: requestAdapter }, - }); - expect(result.current?.request.adapter).toBe(requestAdapter); - expect(result.current?.request.searchSessionId).toBe('321'); - }); - - it('should output undefined for hits and chart and breakdown if isPlainRecord is true', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ isPlainRecord: true }); - expect(result.current?.hits).toBeUndefined(); - expect(result.current?.chart).toBeUndefined(); - expect(result.current?.breakdown).toBeUndefined(); - }); - - it('should output undefined for chart and breakdown if isTimeBased is false', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ isTimeBased: false }); - expect(result.current?.hits).not.toBeUndefined(); - expect(result.current?.chart).toBeUndefined(); - expect(result.current?.breakdown).toBeUndefined(); - }); - - it('should clear lensRequests when chart is undefined', async () => { - const inspectorAdapters = { - requests: new RequestAdapter(), - lensRequests: new RequestAdapter(), - }; - const { hook, initialProps } = await renderUseDiscoverHistogram({ - inspectorAdapters, - }); - expect(inspectorAdapters.lensRequests).toBeDefined(); - hook.rerender({ ...initialProps, isPlainRecord: true }); - expect(inspectorAdapters.lensRequests).toBeUndefined(); - }); - }); - - describe('search params', () => { - it('should return the correct query, filters, and timeRange', async () => { + describe('initialization', () => { + it('should pass the expected parameters to initialize', async () => { const { hook } = await renderUseDiscoverHistogram(); - expect(hook.result.current?.query).toEqual({ - query: 'query', - language: 'kuery', - }); - expect(hook.result.current?.filters).toEqual([]); - expect(hook.result.current?.timeRange).toEqual({ - from: 'now-15m', - to: 'now', + const api = createMockUnifiedHistogramApi(); + let params: UnifiedHistogramInitializeOptions | undefined; + api.initialize = jest.fn((p) => { + params = p; }); - }); - }); - - describe('onEditVisualization', () => { - it('returns a callback for onEditVisualization when the data view can be visualized', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram(); - expect(result.current?.onEditVisualization).toBeDefined(); - }); - - it('returns undefined for onEditVisualization when the data view cannot be visualized', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ canVisualize: false }); - expect(result.current?.onEditVisualization).toBeUndefined(); - }); - - it('should call lens.navigateToPrefilledEditor when onEditVisualization is called', async () => { - const { - hook: { result }, - } = await renderUseDiscoverHistogram(); - const attributes = { title: 'test' } as TypedLensByValueInput['attributes']; - result.current?.onEditVisualization!(attributes); - expect(mockLens.navigateToPrefilledEditor).toHaveBeenCalledWith({ - id: '', - timeRange: mockData.query.timefilter.timefilter.getTime(), - attributes, + act(() => { + hook.result.current.setUnifiedHistogramApi(api); }); + expect(api.initialize).toHaveBeenCalled(); + expect(params?.localStorageKeyPrefix).toBe('discover'); + expect(params?.disableAutoFetching).toBe(true); + expect(Object.keys(params?.initialState ?? {})).toEqual([ + 'dataView', + 'query', + 'filters', + 'timeRange', + 'chartHidden', + 'timeInterval', + 'breakdownField', + 'searchSessionId', + 'totalHitsStatus', + 'totalHitsResult', + 'requestAdapter', + ]); }); }); - describe('topPanelHeight', () => { - it('should try to get the topPanelHeight from storage', async () => { - const storage = new LocalStorageMock({}) as unknown as Storage; - storage.get = jest.fn(() => 100); - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ storage }); - expect(storage.get).toHaveBeenCalledWith(HISTOGRAM_HEIGHT_KEY); - expect(result.current?.topPanelHeight).toBe(100); - }); - - it('should update topPanelHeight when onTopPanelHeightChange is called', async () => { - const storage = new LocalStorageMock({}) as unknown as Storage; - storage.get = jest.fn(() => 100); - storage.set = jest.fn(); - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ storage }); - expect(result.current?.topPanelHeight).toBe(100); + describe('state', () => { + it('should subscribe to state changes', async () => { + const { hook } = await renderUseDiscoverHistogram(); + const api = createMockUnifiedHistogramApi({ initialized: true }); + jest.spyOn(api.state$, 'subscribe'); act(() => { - result.current?.onTopPanelHeightChange(200); + hook.result.current.setUnifiedHistogramApi(api); }); - expect(storage.set).toHaveBeenCalledWith(HISTOGRAM_HEIGHT_KEY, 200); - expect(result.current?.topPanelHeight).toBe(200); + expect(api.state$.subscribe).toHaveBeenCalledTimes(2); }); - }); - describe('callbacks', () => { - it('should update chartHidden when onChartHiddenChange is called', async () => { - const storage = new LocalStorageMock({}) as unknown as Storage; - storage.set = jest.fn(); + it('should sync Unified Histogram state with the state container', async () => { const stateContainer = getStateContainer(); - const session = getSessionServiceMock(); - const session$ = new BehaviorSubject('123'); - session.getSession$.mockReturnValue(session$); - const inspectorAdapters = { - requests: new RequestAdapter(), - lensRequests: new RequestAdapter(), - }; - const { hook } = await renderUseDiscoverHistogram({ - storage, - stateContainer, - searchSessionManager: createSearchSessionMock(session).searchSessionManager, - inspectorAdapters, - }); + const inspectorAdapters = { requests: new RequestAdapter(), lensRequests: undefined }; + const { hook } = await renderUseDiscoverHistogram({ stateContainer, inspectorAdapters }); + const lensRequestAdapter = new RequestAdapter(); + const state = { + timeInterval: '1m', + chartHidden: true, + breakdownField: 'test', + totalHitsStatus: UnifiedHistogramFetchStatus.loading, + totalHitsResult: undefined, + } as unknown as UnifiedHistogramState; + const api = createMockUnifiedHistogramApi({ initialized: true }); + api.state$ = new BehaviorSubject({ ...state, lensRequestAdapter }); act(() => { - hook.result.current?.onChartHiddenChange(false); + hook.result.current.setUnifiedHistogramApi(api); }); - expect(inspectorAdapters.lensRequests).toBeDefined(); - expect(storage.set).toHaveBeenCalledWith(CHART_HIDDEN_KEY, false); - expect(stateContainer.setAppState).toHaveBeenCalledWith({ hideChart: false }); - act(() => { - hook.result.current?.onChartHiddenChange(true); - session$.next('321'); + expect(inspectorAdapters.lensRequests).toBe(lensRequestAdapter); + expect(stateContainer.setAppState).toHaveBeenCalledWith({ + interval: state.timeInterval, + hideChart: state.chartHidden, + breakdownField: state.breakdownField, }); - hook.rerender(); - expect(inspectorAdapters.lensRequests).toBeUndefined(); - expect(storage.set).toHaveBeenCalledWith(CHART_HIDDEN_KEY, true); - expect(stateContainer.setAppState).toHaveBeenCalledWith({ hideChart: true }); }); - it('should set lensRequests when onChartLoad is called', async () => { - const lensRequests = new RequestAdapter(); - const inspectorAdapters = { - requests: new RequestAdapter(), - lensRequests: undefined as RequestAdapter | undefined, - }; - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ inspectorAdapters }); - expect(inspectorAdapters.lensRequests).toBeUndefined(); + it('should not sync Unified Histogram state with the state container if there are no changes', async () => { + const stateContainer = getStateContainer(); + const { hook } = await renderUseDiscoverHistogram({ stateContainer }); + const containerState = stateContainer.appState.getState(); + const state = { + timeInterval: containerState.interval, + chartHidden: containerState.hideChart, + breakdownField: containerState.breakdownField, + totalHitsStatus: UnifiedHistogramFetchStatus.loading, + totalHitsResult: undefined, + } as unknown as UnifiedHistogramState; + const api = createMockUnifiedHistogramApi({ initialized: true }); + api.state$ = new BehaviorSubject(state); act(() => { - result.current?.onChartLoad({ adapters: { requests: lensRequests } }); + hook.result.current.setUnifiedHistogramApi(api); }); - expect(inspectorAdapters.lensRequests).toBeDefined(); + expect(stateContainer.setAppState).not.toHaveBeenCalled(); }); - it('should update chart hidden when onChartHiddenChange is called', async () => { - const storage = new LocalStorageMock({}) as unknown as Storage; - storage.set = jest.fn(); + it('should sync the state container state with Unified Histogram', async () => { const stateContainer = getStateContainer(); - const inspectorAdapters = { - requests: new RequestAdapter(), - lensRequests: new RequestAdapter(), - }; - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ - storage, - stateContainer, - inspectorAdapters, + const { hook } = await renderUseDiscoverHistogram({ stateContainer }); + const api = createMockUnifiedHistogramApi({ initialized: true }); + let params: Partial = {}; + api.setRequestParams = jest.fn((p) => { + params = { ...params, ...p }; }); - act(() => { - result.current?.onChartHiddenChange(true); + api.setTotalHits = jest.fn((p) => { + params = { ...params, ...p }; }); - expect(storage.set).toHaveBeenCalledWith(CHART_HIDDEN_KEY, true); - expect(stateContainer.setAppState).toHaveBeenCalledWith({ hideChart: true }); - }); - - it('should update interval when onTimeIntervalChange is called', async () => { - const stateContainer = getStateContainer(); - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ - stateContainer, + api.setChartHidden = jest.fn((chartHidden) => { + params = { ...params, chartHidden }; + }); + api.setTimeInterval = jest.fn((timeInterval) => { + params = { ...params, timeInterval }; + }); + api.setBreakdownField = jest.fn((breakdownField) => { + params = { ...params, breakdownField }; }); act(() => { - result.current?.onTimeIntervalChange('auto'); + hook.result.current.setUnifiedHistogramApi(api); }); - expect(stateContainer.setAppState).toHaveBeenCalledWith({ interval: 'auto' }); + expect(api.setRequestParams).toHaveBeenCalled(); + expect(api.setTotalHits).toHaveBeenCalled(); + expect(api.setChartHidden).toHaveBeenCalled(); + expect(api.setTimeInterval).toHaveBeenCalled(); + expect(api.setBreakdownField).toHaveBeenCalled(); + expect(Object.keys(params ?? {})).toEqual([ + 'dataView', + 'query', + 'filters', + 'timeRange', + 'searchSessionId', + 'requestAdapter', + 'totalHitsStatus', + 'totalHitsResult', + 'chartHidden', + 'timeInterval', + 'breakdownField', + ]); }); - it('should update breakdownField when onBreakdownFieldChange is called', async () => { + it('should exclude totalHitsStatus and totalHitsResult from Unified Histogram state updates after the first load', async () => { const stateContainer = getStateContainer(); - const { - hook: { result }, - } = await renderUseDiscoverHistogram({ - stateContainer, + const { hook, initialProps } = await renderUseDiscoverHistogram({ stateContainer }); + const containerState = stateContainer.appState.getState(); + const state = { + timeInterval: containerState.interval, + chartHidden: containerState.hideChart, + breakdownField: containerState.breakdownField, + totalHitsStatus: UnifiedHistogramFetchStatus.loading, + totalHitsResult: undefined, + } as unknown as UnifiedHistogramState; + const api = createMockUnifiedHistogramApi({ initialized: true }); + let params: Partial = {}; + api.setRequestParams = jest.fn((p) => { + params = { ...params, ...p }; + }); + api.setTotalHits = jest.fn((p) => { + params = { ...params, ...p }; }); + const subject$ = new BehaviorSubject(state); + api.state$ = subject$; act(() => { - result.current?.onBreakdownFieldChange( - dataViewWithTimefieldMock.getFieldByName('extension') - ); + hook.result.current.setUnifiedHistogramApi(api); }); - expect(stateContainer.setAppState).toHaveBeenCalledWith({ breakdownField: 'extension' }); + expect(Object.keys(params ?? {})).toEqual([ + 'dataView', + 'query', + 'filters', + 'timeRange', + 'searchSessionId', + 'requestAdapter', + 'totalHitsStatus', + 'totalHitsResult', + ]); + params = {}; + hook.rerender({ ...initialProps, searchSessionId: '321' }); + act(() => { + subject$.next({ + ...state, + totalHitsStatus: UnifiedHistogramFetchStatus.complete, + totalHitsResult: 100, + }); + }); + expect(Object.keys(params ?? {})).toEqual([ + 'dataView', + 'query', + 'filters', + 'timeRange', + 'searchSessionId', + 'requestAdapter', + ]); }); - it('should update total hits when onTotalHitsChange is called', async () => { + it('should update total hits when the total hits state changes', async () => { mockCheckHitCount.mockClear(); const totalHits$ = new BehaviorSubject({ fetchStatus: FetchStatus.LOADING, @@ -467,13 +355,25 @@ describe('useDiscoverHistogram', () => { recordRawType: RecordRawType.DOCUMENT, foundDocuments: true, }) as DataMain$; - const { hook } = await renderUseDiscoverHistogram({ totalHits$, main$ }); + const stateContainer = getStateContainer(); + const { hook } = await renderUseDiscoverHistogram({ stateContainer, totalHits$, main$ }); + const containerState = stateContainer.appState.getState(); + const state = { + timeInterval: containerState.interval, + chartHidden: containerState.hideChart, + breakdownField: containerState.breakdownField, + totalHitsStatus: UnifiedHistogramFetchStatus.loading, + totalHitsResult: undefined, + } as unknown as UnifiedHistogramState; + const api = createMockUnifiedHistogramApi({ initialized: true }); + api.state$ = new BehaviorSubject({ + ...state, + totalHitsStatus: UnifiedHistogramFetchStatus.complete, + totalHitsResult: 100, + }); act(() => { - hook.result.current?.onTotalHitsChange(UnifiedHistogramFetchStatus.complete, 100); + hook.result.current.setUnifiedHistogramApi(api); }); - hook.rerender(); - expect(hook.result.current?.hits?.status).toBe(UnifiedHistogramFetchStatus.complete); - expect(hook.result.current?.hits?.total).toBe(100); expect(totalHits$.value).toEqual({ fetchStatus: FetchStatus.COMPLETE, result: 100, @@ -481,105 +381,80 @@ describe('useDiscoverHistogram', () => { expect(mockCheckHitCount).toHaveBeenCalledWith(main$, 100); }); - it('should not update total hits when onTotalHitsChange is called with an error', async () => { + it('should not update total hits when the total hits state changes to an error', async () => { mockCheckHitCount.mockClear(); const totalHits$ = new BehaviorSubject({ fetchStatus: FetchStatus.UNINITIALIZED, result: undefined, }) as DataTotalHits$; - const { hook } = await renderUseDiscoverHistogram({ totalHits$ }); + const stateContainer = getStateContainer(); + const { hook } = await renderUseDiscoverHistogram({ stateContainer, totalHits$ }); + const containerState = stateContainer.appState.getState(); const error = new Error('test'); + const state = { + timeInterval: containerState.interval, + chartHidden: containerState.hideChart, + breakdownField: containerState.breakdownField, + totalHitsStatus: UnifiedHistogramFetchStatus.loading, + totalHitsResult: undefined, + } as unknown as UnifiedHistogramState; + const api = createMockUnifiedHistogramApi({ initialized: true }); + api.state$ = new BehaviorSubject({ + ...state, + totalHitsStatus: UnifiedHistogramFetchStatus.error, + totalHitsResult: error, + }); act(() => { - hook.result.current?.onTotalHitsChange(UnifiedHistogramFetchStatus.error, error); + hook.result.current.setUnifiedHistogramApi(api); }); - hook.rerender(); expect(sendErrorTo).toHaveBeenCalledWith(mockData, totalHits$); - expect(hook.result.current?.hits?.status).toBe(UnifiedHistogramFetchStatus.error); - expect(hook.result.current?.hits?.total).toBeUndefined(); expect(totalHits$.value).toEqual({ fetchStatus: FetchStatus.ERROR, error, }); expect(mockCheckHitCount).not.toHaveBeenCalled(); }); - - it('should not update total hits when onTotalHitsChange is called with a loading status while totalHits$ has a partial status', async () => { - mockCheckHitCount.mockClear(); - const totalHits$ = new BehaviorSubject({ - fetchStatus: FetchStatus.PARTIAL, - result: undefined, - }) as DataTotalHits$; - const { hook } = await renderUseDiscoverHistogram({ totalHits$ }); - act(() => { - hook.result.current?.onTotalHitsChange(UnifiedHistogramFetchStatus.loading, undefined); - }); - hook.rerender(); - expect(hook.result.current?.hits?.status).toBe(UnifiedHistogramFetchStatus.partial); - expect(hook.result.current?.hits?.total).toBeUndefined(); - expect(totalHits$.value).toEqual({ - fetchStatus: FetchStatus.PARTIAL, - result: undefined, - }); - expect(mockCheckHitCount).not.toHaveBeenCalled(); - }); }); describe('refetching', () => { - it("should call input$.next({ type: 'refetch' }) when savedSearchFetch$ is triggered", async () => { - const savedSearchFetch$ = new BehaviorSubject({ reset: false, searchSessionId: '1234' }); + it('should call refetch when savedSearchFetch$ is triggered', async () => { + const savedSearchFetch$ = new Subject<{ + reset: boolean; + searchSessionId: string; + }>(); const { hook } = await renderUseDiscoverHistogram({ savedSearchFetch$ }); - const onRefetch = jest.fn(); - hook.result.current?.input$.subscribe(onRefetch); + const api = createMockUnifiedHistogramApi({ initialized: true }); act(() => { - savedSearchFetch$.next({ reset: false, searchSessionId: '1234' }); - }); - expect(onRefetch).toHaveBeenCalledWith({ type: 'refetch' }); - }); - - it("should not call input$.next({ type: 'refetch' }) when searchSessionId is not set", async () => { - const savedSearchFetch$ = new BehaviorSubject({ reset: false, searchSessionId: '1234' }); - const { hook } = await renderUseDiscoverHistogram({ - savedSearchFetch$, - searchSessionId: null, + hook.result.current.setUnifiedHistogramApi(api); }); - const onRefetch = jest.fn(); - hook.result.current?.input$.subscribe(onRefetch); + expect(api.refetch).not.toHaveBeenCalled(); act(() => { savedSearchFetch$.next({ reset: false, searchSessionId: '1234' }); }); - expect(onRefetch).not.toHaveBeenCalled(); + expect(api.refetch).toHaveBeenCalled(); }); - it("should call input$.next({ type: 'refetch' }) when searchSessionId is not set and isPlainRecord is true", async () => { - const savedSearchFetch$ = new BehaviorSubject({ reset: false, searchSessionId: '1234' }); - const { hook } = await renderUseDiscoverHistogram({ - savedSearchFetch$, - searchSessionId: null, - isPlainRecord: true, - }); - const onRefetch = jest.fn(); - hook.result.current?.input$.subscribe(onRefetch); + it('should skip the next refetch when hideChart changes from true to false', async () => { + const stateContainer = getStateContainer(); + const savedSearchFetch$ = new Subject<{ + reset: boolean; + searchSessionId: string; + }>(); + const { hook } = await renderUseDiscoverHistogram({ stateContainer, savedSearchFetch$ }); + const api = createMockUnifiedHistogramApi({ initialized: true }); act(() => { - savedSearchFetch$.next({ reset: false, searchSessionId: '1234' }); + hook.result.current.setUnifiedHistogramApi(api); }); - expect(onRefetch).toHaveBeenCalledWith({ type: 'refetch' }); - }); - - it('should skip the next refetch when state.hideChart changes from true to false', async () => { - const savedSearchFetch$ = new BehaviorSubject({ reset: false, searchSessionId: '1234' }); - const { hook } = await renderUseDiscoverHistogram({ savedSearchFetch$ }); - const onRefetch = jest.fn(); - hook.result.current?.input$.subscribe(onRefetch); act(() => { - hook.result.current?.onChartHiddenChange(true); + stateContainer.setAppState({ hideChart: true }); }); act(() => { - hook.result.current?.onChartHiddenChange(false); + stateContainer.setAppState({ hideChart: false }); }); act(() => { savedSearchFetch$.next({ reset: false, searchSessionId: '1234' }); }); - expect(onRefetch).not.toHaveBeenCalled(); + expect(api.refetch).not.toHaveBeenCalled(); }); }); }); diff --git a/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.ts b/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.ts index ad676b1a4247d7..d259252f18686e 100644 --- a/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.ts +++ b/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.ts @@ -6,277 +6,258 @@ * Side Public License, v 1. */ -import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; -import type { SavedSearch } from '@kbn/saved-search-plugin/public'; -import { getVisualizeInformation, useQuerySubscriber } from '@kbn/unified-field-list-plugin/public'; -import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import type { DataView } from '@kbn/data-views-plugin/common'; +import { useQuerySubscriber } from '@kbn/unified-field-list-plugin/public'; import { + UnifiedHistogramApi, UnifiedHistogramFetchStatus, - UnifiedHistogramHitsContext, - UnifiedHistogramInputMessage, + UnifiedHistogramInitializedApi, + UnifiedHistogramState, } from '@kbn/unified-histogram-plugin/public'; -import type { UnifiedHistogramChartLoadEvent } from '@kbn/unified-histogram-plugin/public'; -import useObservable from 'react-use/lib/useObservable'; -import type { TypedLensByValueInput } from '@kbn/lens-plugin/public'; -import { Subject } from 'rxjs'; -import { useAppStateSelector } from '../../services/discover_app_state_container'; -import { getUiActions } from '../../../../kibana_services'; +import { isEqual } from 'lodash'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { distinctUntilChanged, map, Observable } from 'rxjs'; import { useDiscoverServices } from '../../../../hooks/use_discover_services'; -import { useDataState } from '../../hooks/use_data_state'; -import type { DataFetch$, SavedSearchData } from '../../services/discover_data_state_container'; -import type { DiscoverStateContainer } from '../../services/discover_state'; +import { getUiActions } from '../../../../kibana_services'; import { FetchStatus } from '../../../types'; -import type { DiscoverSearchSessionManager } from '../../services/discover_search_session'; +import { useDataState } from '../../hooks/use_data_state'; import type { InspectorAdapters } from '../../hooks/use_inspector'; +import type { DataFetch$, SavedSearchData } from '../../services/discover_data_state_container'; import { checkHitCount, sendErrorTo } from '../../hooks/use_saved_search_messages'; - -export const CHART_HIDDEN_KEY = 'discover:chartHidden'; -export const HISTOGRAM_HEIGHT_KEY = 'discover:histogramHeight'; -export const HISTOGRAM_BREAKDOWN_FIELD_KEY = 'discover:histogramBreakdownField'; +import { useAppStateSelector } from '../../services/discover_app_state_container'; +import type { DiscoverStateContainer } from '../../services/discover_state'; export interface UseDiscoverHistogramProps { stateContainer: DiscoverStateContainer; savedSearchData$: SavedSearchData; dataView: DataView; - savedSearch: SavedSearch; - isTimeBased: boolean; - isPlainRecord: boolean; inspectorAdapters: InspectorAdapters; - searchSessionManager: DiscoverSearchSessionManager; savedSearchFetch$: DataFetch$; + searchSessionId: string | undefined; } export const useDiscoverHistogram = ({ stateContainer, savedSearchData$, dataView, - savedSearch, - isTimeBased, - isPlainRecord, inspectorAdapters, - searchSessionManager, savedSearchFetch$, + searchSessionId, }: UseDiscoverHistogramProps) => { - const { storage, data, lens } = useDiscoverServices(); - const [hideChart, interval, breakdownField] = useAppStateSelector((state) => [ - state.hideChart, - state.interval, - state.breakdownField, - ]); + const services = useDiscoverServices(); + const timefilter = services.data.query.timefilter.timefilter; /** - * Visualize + * API initialization */ - const timeField = dataView.timeFieldName && dataView.getFieldByName(dataView.timeFieldName); - const [canVisualize, setCanVisualize] = useState(false); + const [unifiedHistogram, setUnifiedHistogram] = useState(); - useEffect(() => { - if (!timeField) { - return; - } - getVisualizeInformation( - getUiActions(), - timeField, - dataView, - savedSearch.columns || [], - [] - ).then((info) => { - setCanVisualize(Boolean(info)); - }); - }, [dataView, savedSearch.columns, timeField]); - - const onEditVisualization = useCallback( - (lensAttributes: TypedLensByValueInput['attributes']) => { - if (!timeField) { + const setUnifiedHistogramApi = useCallback( + (api: UnifiedHistogramApi | null) => { + if (!api) { return; } - lens.navigateToPrefilledEditor({ - id: '', - timeRange: data.query.timefilter.timefilter.getTime(), - attributes: lensAttributes, - }); + + if (api.initialized) { + setUnifiedHistogram(api); + } else { + const { + hideChart: chartHidden, + interval: timeInterval, + breakdownField, + } = stateContainer.appState.getState(); + + const { fetchStatus: totalHitsStatus, result: totalHitsResult } = + savedSearchData$.totalHits$.getValue(); + + const { query, filters, time: timeRange } = services.data.query.getState(); + + api.initialize({ + services: { ...services, uiActions: getUiActions() }, + localStorageKeyPrefix: 'discover', + disableAutoFetching: true, + getRelativeTimeRange: timefilter.getTime, + initialState: { + dataView, + query, + filters, + timeRange, + chartHidden, + timeInterval, + breakdownField, + searchSessionId, + totalHitsStatus: totalHitsStatus.toString() as UnifiedHistogramFetchStatus, + totalHitsResult, + requestAdapter: inspectorAdapters.requests, + }, + }); + } }, - [data.query.timefilter.timefilter, lens, timeField] + [ + dataView, + inspectorAdapters.requests, + savedSearchData$.totalHits$, + searchSessionId, + services, + stateContainer.appState, + timefilter.getTime, + ] ); /** - * Height + * Sync Unified Histogram state with Discover state */ - const [topPanelHeight, setTopPanelHeight] = useState(() => { - const storedHeight = storage.get(HISTOGRAM_HEIGHT_KEY); - return storedHeight ? Number(storedHeight) : undefined; - }); + useEffect(() => { + const subscription = createStateSyncObservable(unifiedHistogram?.state$)?.subscribe((state) => { + inspectorAdapters.lensRequests = state.lensRequestAdapter; + + const { hideChart, interval, breakdownField } = stateContainer.appState.getState(); + const oldState = { hideChart, interval, breakdownField }; + const newState = { + hideChart: state.chartHidden, + interval: state.timeInterval, + breakdownField: state.breakdownField, + }; + + if (!isEqual(oldState, newState)) { + stateContainer.setAppState(newState); + } + }); - const onTopPanelHeightChange = useCallback( - (newTopPanelHeight: number | undefined) => { - storage.set(HISTOGRAM_HEIGHT_KEY, newTopPanelHeight); - setTopPanelHeight(newTopPanelHeight); - }, - [storage] - ); + return () => { + subscription?.unsubscribe(); + }; + }, [inspectorAdapters, stateContainer, unifiedHistogram]); /** - * Time interval + * Update Unified Histgoram request params */ - const onTimeIntervalChange = useCallback( - (newInterval: string) => { - stateContainer.setAppState({ interval: newInterval }); - }, - [stateContainer] + const { + query, + filters, + fromDate: from, + toDate: to, + } = useQuerySubscriber({ data: services.data }); + + const timeRange = useMemo( + () => (from && to ? { from, to } : timefilter.getTimeDefaults()), + [timefilter, from, to] ); + useEffect(() => { + unifiedHistogram?.setRequestParams({ + dataView, + query, + filters, + timeRange, + searchSessionId, + requestAdapter: inspectorAdapters.requests, + }); + }, [ + dataView, + filters, + inspectorAdapters.requests, + query, + searchSessionId, + timeRange, + unifiedHistogram, + ]); + /** - * Total hits + * Override Unified Histgoram total hits with Discover partial results */ - const [localHitsContext, setLocalHitsContext] = useState(); - - const onTotalHitsChange = useCallback( - (status: UnifiedHistogramFetchStatus, result?: number | Error) => { - if (result instanceof Error) { - // Display the error and set totalHits$ to an error state - sendErrorTo(data, savedSearchData$.totalHits$)(result); - return; - } - - const { fetchStatus, recordRawType } = savedSearchData$.totalHits$.getValue(); - - // If we have a partial result already, we don't want to update the total hits back to loading - if (fetchStatus === FetchStatus.PARTIAL && status === UnifiedHistogramFetchStatus.loading) { - return; - } - - // Set a local copy of the hits context to pass to unified histogram - setLocalHitsContext({ status, total: result }); + const firstLoadComplete = useRef(false); - // Sync the totalHits$ observable with the unified histogram state - savedSearchData$.totalHits$.next({ - fetchStatus: status.toString() as FetchStatus, - result, - recordRawType, - }); - - // Check the hits count to set a partial or no results state - if (status === UnifiedHistogramFetchStatus.complete && typeof result === 'number') { - checkHitCount(savedSearchData$.main$, result); - } - }, - [data, savedSearchData$.main$, savedSearchData$.totalHits$] - ); - - // We only rely on the totalHits$ observable if we don't have a local hits context yet, - // since we only want to show the partial results on the first load, or there will be - // a flickering effect as the loading spinner is quickly shown and hidden again on fetches - const { fetchStatus: hitsFetchStatus, result: hitsTotal } = useDataState( + const { fetchStatus: totalHitsStatus, result: totalHitsResult } = useDataState( savedSearchData$.totalHits$ ); - const hits = useMemo( - () => - isPlainRecord - ? undefined - : localHitsContext ?? { - status: hitsFetchStatus.toString() as UnifiedHistogramFetchStatus, - total: hitsTotal, - }, - [hitsFetchStatus, hitsTotal, isPlainRecord, localHitsContext] - ); + useEffect(() => { + // We only want to show the partial results on the first load, + // or there will be a flickering effect as the loading spinner + // is quickly shown and hidden again on fetches + if (!firstLoadComplete.current) { + unifiedHistogram?.setTotalHits({ + totalHitsStatus: totalHitsStatus.toString() as UnifiedHistogramFetchStatus, + totalHitsResult, + }); + } + }, [totalHitsResult, totalHitsStatus, unifiedHistogram]); /** - * Chart + * Sync URL query params with Unified Histogram */ - const onChartHiddenChange = useCallback( - (chartHidden: boolean) => { - storage.set(CHART_HIDDEN_KEY, chartHidden); - stateContainer.setAppState({ hideChart: chartHidden }); - }, - [stateContainer, storage] - ); + const hideChart = useAppStateSelector((state) => state.hideChart); - const onChartLoad = useCallback( - (event: UnifiedHistogramChartLoadEvent) => { - // We need to store the Lens request adapter in order to inspect its requests - inspectorAdapters.lensRequests = event.adapters.requests; - }, - [inspectorAdapters] - ); - - const chart = useMemo( - () => - isPlainRecord || !isTimeBased - ? undefined - : { - hidden: hideChart, - timeInterval: interval, - }, - [hideChart, interval, isPlainRecord, isTimeBased] - ); - - // Clear the Lens request adapter when the chart is hidden useEffect(() => { - if (hideChart || !chart) { - inspectorAdapters.lensRequests = undefined; + if (typeof hideChart === 'boolean') { + unifiedHistogram?.setChartHidden(hideChart); } - }, [chart, hideChart, inspectorAdapters]); + }, [hideChart, unifiedHistogram]); - /** - * Breakdown - */ + const timeInterval = useAppStateSelector((state) => state.interval); - const onBreakdownFieldChange = useCallback( - (newBreakdownField: DataViewField | undefined) => { - stateContainer.setAppState({ breakdownField: newBreakdownField?.name }); - }, - [stateContainer] - ); + useEffect(() => { + if (timeInterval) { + unifiedHistogram?.setTimeInterval(timeInterval); + } + }, [timeInterval, unifiedHistogram]); - const field = useMemo( - () => (breakdownField ? dataView.getFieldByName(breakdownField) : undefined), - [dataView, breakdownField] - ); + const breakdownField = useAppStateSelector((state) => state.breakdownField); - const breakdown = useMemo( - () => (isPlainRecord || !isTimeBased ? undefined : { field }), - [field, isPlainRecord, isTimeBased] - ); + useEffect(() => { + unifiedHistogram?.setBreakdownField(breakdownField); + }, [breakdownField, unifiedHistogram]); /** - * Search params + * Total hits */ - const { query, filters, fromDate: from, toDate: to } = useQuerySubscriber({ data }); - const timeRange = useMemo( - () => (from && to ? { from, to } : data.query.timefilter.timefilter.getTimeDefaults()), - [data.query.timefilter.timefilter, from, to] - ); + useEffect(() => { + const subscription = createTotalHitsObservable(unifiedHistogram?.state$)?.subscribe( + ({ status, result }) => { + if (result instanceof Error) { + // Display the error and set totalHits$ to an error state + sendErrorTo(services.data, savedSearchData$.totalHits$)(result); + return; + } + + const { recordRawType } = savedSearchData$.totalHits$.getValue(); + + // Sync the totalHits$ observable with the unified histogram state + savedSearchData$.totalHits$.next({ + fetchStatus: status.toString() as FetchStatus, + result, + recordRawType, + }); + + if (status !== UnifiedHistogramFetchStatus.complete || typeof result !== 'number') { + return; + } + + // Check the hits count to set a partial or no results state + checkHitCount(savedSearchData$.main$, result); - /** - * Request - */ + // Indicate the first load has completed so we don't show + // partial results on subsequent fetches + firstLoadComplete.current = true; + } + ); - // The searchSessionId will be updated whenever a new search is started - const searchSessionId = useObservable(searchSessionManager.searchSessionId$); - const request = useMemo( - () => ({ - searchSessionId, - adapter: inspectorAdapters.requests, - }), - [inspectorAdapters.requests, searchSessionId] - ); + return () => { + subscription?.unsubscribe(); + }; + }, [savedSearchData$.main$, savedSearchData$.totalHits$, services.data, unifiedHistogram]); /** * Data fetching */ - const input$ = useMemo(() => new Subject(), []); - - // Initialized when the first search has been requested or - // when in SQL mode since search sessions are not supported - const isInitialized = Boolean(searchSessionId) || isPlainRecord; const skipRefetch = useRef(); // Skip refetching when showing the chart since Lens will @@ -292,37 +273,41 @@ export const useDiscoverHistogram = ({ // Trigger a unified histogram refetch when savedSearchFetch$ is triggered useEffect(() => { const subscription = savedSearchFetch$.subscribe(() => { - if (isInitialized && !skipRefetch.current) { - input$.next({ type: 'refetch' }); + if (!skipRefetch.current) { + unifiedHistogram?.refetch(); } + skipRefetch.current = false; }); return () => { subscription.unsubscribe(); }; - }, [input$, isInitialized, savedSearchFetch$]); - - // Don't render the unified histogram layout until initialized - return isInitialized - ? { - query, - filters, - timeRange, - topPanelHeight, - request, - hits, - chart, - breakdown, - disableAutoFetching: true, - input$, - onEditVisualization: canVisualize ? onEditVisualization : undefined, - onTopPanelHeightChange, - onChartHiddenChange, - onTimeIntervalChange, - onBreakdownFieldChange, - onTotalHitsChange, - onChartLoad, - } - : undefined; + }, [savedSearchFetch$, unifiedHistogram]); + + return { hideChart, setUnifiedHistogramApi }; +}; + +const createStateSyncObservable = (state$?: Observable) => { + return state$?.pipe( + map(({ lensRequestAdapter, chartHidden, timeInterval, breakdownField }) => ({ + lensRequestAdapter, + chartHidden, + timeInterval, + breakdownField, + })), + distinctUntilChanged((prev, curr) => { + const { lensRequestAdapter: prevLensRequestAdapter, ...prevRest } = prev; + const { lensRequestAdapter: currLensRequestAdapter, ...currRest } = curr; + + return prevLensRequestAdapter === currLensRequestAdapter && isEqual(prevRest, currRest); + }) + ); +}; + +const createTotalHitsObservable = (state$?: Observable) => { + return state$?.pipe( + map((state) => ({ status: state.totalHitsStatus, result: state.totalHitsResult })), + distinctUntilChanged((prev, curr) => prev.status === curr.status && prev.result === curr.result) + ); }; diff --git a/src/plugins/discover/public/application/main/utils/get_state_defaults.ts b/src/plugins/discover/public/application/main/utils/get_state_defaults.ts index 9ea56f8b0174fd..677a92cb76a961 100644 --- a/src/plugins/discover/public/application/main/utils/get_state_defaults.ts +++ b/src/plugins/discover/public/application/main/utils/get_state_defaults.ts @@ -9,6 +9,7 @@ import { cloneDeep, isEqual } from 'lodash'; import { IUiSettingsClient } from '@kbn/core/public'; import { SavedSearch } from '@kbn/saved-search-plugin/public'; +import { getChartHidden } from '@kbn/unified-histogram-plugin/public'; import { AppState } from '../services/discover_app_state_container'; import { DiscoverServices } from '../../../build_services'; import { getDefaultSort, getSortArray } from '../../../utils/sorting'; @@ -19,8 +20,6 @@ import { SORT_DEFAULT_ORDER_SETTING, } from '../../../../common'; -import { CHART_HIDDEN_KEY } from '../components/layout/use_discover_histogram'; - function getDefaultColumns(savedSearch: SavedSearch, uiSettings: IUiSettingsClient) { if (savedSearch.columns && savedSearch.columns.length > 0) { return [...savedSearch.columns]; @@ -48,7 +47,7 @@ export function getStateDefaults({ const query = searchSource.getField('query') || data.query.queryString.getDefaultQuery(); const sort = getSortArray(savedSearch.sort ?? [], dataView!); const columns = getDefaultColumns(savedSearch, uiSettings); - const chartHidden = storage.get(CHART_HIDDEN_KEY); + const chartHidden = getChartHidden(storage, 'discover'); const defaultState: AppState = { query, diff --git a/src/plugins/embeddable/kibana.json b/src/plugins/embeddable/kibana.json deleted file mode 100644 index ceff49dc80f133..00000000000000 --- a/src/plugins/embeddable/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "embeddable", - "version": "kibana", - "server": true, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Adds embeddables service to Kibana", - "requiredPlugins": ["data", "inspector", "uiActions"], - "extraPublicDirs": ["common"], - "requiredBundles": ["savedObjects", "kibanaReact", "kibanaUtils"] -} diff --git a/src/plugins/embeddable/kibana.jsonc b/src/plugins/embeddable/kibana.jsonc new file mode 100644 index 00000000000000..89aa3e41026a69 --- /dev/null +++ b/src/plugins/embeddable/kibana.jsonc @@ -0,0 +1,24 @@ +{ + "type": "plugin", + "id": "@kbn/embeddable-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds embeddables service to Kibana", + "plugin": { + "id": "embeddable", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "inspector", + "uiActions" + ], + "requiredBundles": [ + "savedObjects", + "kibanaReact", + "kibanaUtils" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/embeddable/public/lib/embeddables/error_embedabble.scss b/src/plugins/embeddable/public/lib/embeddables/error_embedabble.scss deleted file mode 100644 index 51ee8cdf25f661..00000000000000 --- a/src/plugins/embeddable/public/lib/embeddables/error_embedabble.scss +++ /dev/null @@ -1,10 +0,0 @@ -.errorEmbeddableCompact__popoverAnchor { - max-width: 100%; -} - -.errorEmbeddableCompact__button { - padding-left: 0 !important; - .euiIcon { - margin-right: $euiSizeXS * .5; - } -} \ No newline at end of file diff --git a/src/plugins/embeddable/public/lib/embeddables/error_embeddable.scss b/src/plugins/embeddable/public/lib/embeddables/error_embeddable.scss new file mode 100644 index 00000000000000..cc8d7f96982219 --- /dev/null +++ b/src/plugins/embeddable/public/lib/embeddables/error_embeddable.scss @@ -0,0 +1,20 @@ + +.errorEmbeddableCompact__popover { + height: 100%; +} + +.errorEmbeddableCompact__popoverAnchor { + max-width: 100%; +} + +.errorEmbeddableCompact__button { + :hover { + text-decoration: underline; + text-decoration-color: $euiTextSubduedColor !important; + } +} + +.errorEmbeddableCompact__text { + font-size: $euiSizeM; + color: $euiTextSubduedColor; +} diff --git a/src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx b/src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx index 1ccaf61064a8a7..244803c5e13f26 100644 --- a/src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx +++ b/src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx @@ -11,6 +11,7 @@ import { EmbeddablePanelError } from '../panel/embeddable_panel_error'; import { Embeddable } from './embeddable'; import { EmbeddableInput, EmbeddableOutput, IEmbeddable } from './i_embeddable'; import { IContainer } from '../containers'; +import './error_embeddable.scss'; export const ERROR_EMBEDDABLE_TYPE = 'error'; diff --git a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/page_error.tsx b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/page_error.tsx index c338ee982e62f1..a0f132d76c511e 100644 --- a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/page_error.tsx +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/page_error.tsx @@ -12,7 +12,6 @@ import { EuiPageContent_Deprecated as EuiPageContent, } from '@elastic/eui'; import React from 'react'; -// eslint-disable-next-line @kbn/imports/no_boundary_crossing import { APP_WRAPPER_CLASS } from '@kbn/core/public'; import { Error } from '../types'; diff --git a/src/plugins/es_ui_shared/kibana.json b/src/plugins/es_ui_shared/kibana.json deleted file mode 100644 index c7fd36e0c1467f..00000000000000 --- a/src/plugins/es_ui_shared/kibana.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "esUiShared", - "version": "kibana", - "ui": true, - "server": true, - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "extraPublicDirs": [ - "static/validators/string", - "static/forms/hook_form_lib", - "static/forms/helpers", - "static/forms/components", - "static/forms/helpers/field_validators/types" - ], - "requiredBundles": ["dataViews", "kibanaReact"] -} diff --git a/src/plugins/es_ui_shared/kibana.jsonc b/src/plugins/es_ui_shared/kibana.jsonc new file mode 100644 index 00000000000000..148f16b38f59ed --- /dev/null +++ b/src/plugins/es_ui_shared/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/es-ui-shared-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "esUiShared", + "server": true, + "browser": true, + "requiredBundles": [ + "dataViews", + "kibanaReact" + ], + "extraPublicDirs": [ + "static/validators/string", + "static/forms/hook_form_lib", + "static/forms/helpers", + "static/forms/components", + "static/forms/helpers/field_validators/types" + ] + } +} diff --git a/src/plugins/event_annotation/kibana.json b/src/plugins/event_annotation/kibana.json deleted file mode 100644 index deccb699617bae..00000000000000 --- a/src/plugins/event_annotation/kibana.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "eventAnnotation", - "version": "kibana", - "server": true, - "ui": true, - "description": "The Event Annotation service contains expressions for event annotations", - "extraPublicDirs": [ - "common" - ], - "requiredPlugins": [ - "expressions", - "data" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - } -} \ No newline at end of file diff --git a/src/plugins/event_annotation/kibana.jsonc b/src/plugins/event_annotation/kibana.jsonc new file mode 100644 index 00000000000000..f4f2a4791cfbb9 --- /dev/null +++ b/src/plugins/event_annotation/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/event-annotation-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "The Event Annotation service contains expressions for event annotations", + "plugin": { + "id": "eventAnnotation", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "data" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/expression_error/kibana.json b/src/plugins/expression_error/kibana.json deleted file mode 100755 index bf4eb51524ec63..00000000000000 --- a/src/plugins/expression_error/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "expressionError", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds 'error' renderer to expressions", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": false, - "ui": true, - "requiredPlugins": ["expressions", "presentationUtil"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/expression_error/kibana.jsonc b/src/plugins/expression_error/kibana.jsonc new file mode 100644 index 00000000000000..9c9de10ab6826d --- /dev/null +++ b/src/plugins/expression_error/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/expression-error-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds 'error' renderer to expressions", + "plugin": { + "id": "expressionError", + "server": false, + "browser": true, + "requiredPlugins": [ + "expressions", + "presentationUtil" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/expression_image/kibana.json b/src/plugins/expression_image/kibana.json deleted file mode 100755 index 7391b17bce779b..00000000000000 --- a/src/plugins/expression_image/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "expressionImage", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds 'image' function and renderer to expressions", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["expressions", "presentationUtil"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/expression_image/kibana.jsonc b/src/plugins/expression_image/kibana.jsonc new file mode 100644 index 00000000000000..de49547ee73451 --- /dev/null +++ b/src/plugins/expression_image/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/expression-image-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds 'image' function and renderer to expressions", + "plugin": { + "id": "expressionImage", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "presentationUtil" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/expression_metric/kibana.json b/src/plugins/expression_metric/kibana.json deleted file mode 100755 index 3d844fa4de9fcb..00000000000000 --- a/src/plugins/expression_metric/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "expressionMetric", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds 'metric' function and renderer to expressions", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["expressions", "presentationUtil"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/expression_metric/kibana.jsonc b/src/plugins/expression_metric/kibana.jsonc new file mode 100644 index 00000000000000..1eb1afcb281565 --- /dev/null +++ b/src/plugins/expression_metric/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/expression-metric-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds 'metric' function and renderer to expressions", + "plugin": { + "id": "expressionMetric", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "presentationUtil" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/expression_repeat_image/kibana.json b/src/plugins/expression_repeat_image/kibana.json deleted file mode 100755 index 0df2eb9842312a..00000000000000 --- a/src/plugins/expression_repeat_image/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "expressionRepeatImage", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds 'repeatImage' function and renderer to expressions", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["expressions", "presentationUtil"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/expression_repeat_image/kibana.jsonc b/src/plugins/expression_repeat_image/kibana.jsonc new file mode 100644 index 00000000000000..634d9532e844f9 --- /dev/null +++ b/src/plugins/expression_repeat_image/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/expression-repeat-image-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds 'repeatImage' function and renderer to expressions", + "plugin": { + "id": "expressionRepeatImage", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "presentationUtil" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/expression_reveal_image/kibana.json b/src/plugins/expression_reveal_image/kibana.json deleted file mode 100755 index 5fb13ce31247b7..00000000000000 --- a/src/plugins/expression_reveal_image/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "expressionRevealImage", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds 'revealImage' function and renderer to expressions", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["expressions", "presentationUtil"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/expression_reveal_image/kibana.jsonc b/src/plugins/expression_reveal_image/kibana.jsonc new file mode 100644 index 00000000000000..23b82ccd2ce9c4 --- /dev/null +++ b/src/plugins/expression_reveal_image/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/expression-reveal-image-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds 'revealImage' function and renderer to expressions", + "plugin": { + "id": "expressionRevealImage", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "presentationUtil" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/expression_shape/kibana.json b/src/plugins/expression_shape/kibana.json deleted file mode 100755 index 5d831f8e98f605..00000000000000 --- a/src/plugins/expression_shape/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "expressionShape", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds 'shape' function and renderer to expressions", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "extraPublicDirs": ["common"], - "requiredPlugins": ["expressions", "presentationUtil"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/expression_shape/kibana.jsonc b/src/plugins/expression_shape/kibana.jsonc new file mode 100644 index 00000000000000..7df26227343dbd --- /dev/null +++ b/src/plugins/expression_shape/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/expression-shape-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds 'shape' function and renderer to expressions", + "plugin": { + "id": "expressionShape", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "presentationUtil" + ], + "requiredBundles": [ + "kibanaReact" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/expressions/kibana.json b/src/plugins/expressions/kibana.json deleted file mode 100644 index 3ffac5054c221d..00000000000000 --- a/src/plugins/expressions/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "expressions", - "version": "kibana", - "server": true, - "ui": true, - "owner": { - "name": "Visualizations", - "githubTeam": "kibana-visualizations" - }, - "description": "Adds expression runtime to Kibana", - "extraPublicDirs": ["common", "common/fonts"], - "requiredBundles": ["kibanaUtils", "inspector"] -} diff --git a/src/plugins/expressions/kibana.jsonc b/src/plugins/expressions/kibana.jsonc new file mode 100644 index 00000000000000..7ed96b7020deb1 --- /dev/null +++ b/src/plugins/expressions/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/expressions-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Adds expression runtime to Kibana", + "plugin": { + "id": "expressions", + "server": true, + "browser": true, + "requiredBundles": [ + "kibanaUtils", + "inspector" + ], + "extraPublicDirs": [ + "common", + "common/fonts" + ] + } +} diff --git a/src/plugins/field_formats/kibana.json b/src/plugins/field_formats/kibana.json deleted file mode 100755 index ee5529697851d1..00000000000000 --- a/src/plugins/field_formats/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "fieldFormats", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "extraPublicDirs": ["common"], - "requiredPlugins": [], - "optionalPlugins": [], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Index pattern fields and ambiguous values formatters" -} diff --git a/src/plugins/field_formats/kibana.jsonc b/src/plugins/field_formats/kibana.jsonc new file mode 100644 index 00000000000000..49347ac8131b10 --- /dev/null +++ b/src/plugins/field_formats/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/field-formats-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "Index pattern fields and ambiguous values formatters", + "plugin": { + "id": "fieldFormats", + "server": true, + "browser": true, + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/files/kibana.json b/src/plugins/files/kibana.json deleted file mode 100755 index 9c8a096bd63e43..00000000000000 --- a/src/plugins/files/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "files", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "@elastic/kibana-app-services", - "githubTeam": "team:AppServicesUx" - }, - "description": "File upload, download, sharing, and serving over HTTP implementation in Kibana.", - "server": true, - "ui": true, - "extraPublicDirs": ["common"], - "requiredBundles": ["kibanaUtils"], - "optionalPlugins": ["security", "usageCollection"] -} diff --git a/src/plugins/files/kibana.jsonc b/src/plugins/files/kibana.jsonc new file mode 100644 index 00000000000000..5f59c5d09b3d75 --- /dev/null +++ b/src/plugins/files/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/files-plugin", + "owner": "@elastic/appex-sharedux", + "description": "File upload, download, sharing, and serving over HTTP implementation in Kibana.", + "plugin": { + "id": "files", + "server": true, + "browser": true, + "optionalPlugins": [ + "security", + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/files_management/kibana.json b/src/plugins/files_management/kibana.json deleted file mode 100755 index 20c177c7ed0b07..00000000000000 --- a/src/plugins/files_management/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "filesManagement", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "@elastic/appex-sharedux", - "githubTeam": "@elastic/appex-sharedux" - }, - "description": "Simple UI for managing files in Kibana", - "server": false, - "ui": true, - "requiredPlugins": ["files", "management"], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/files_management/kibana.jsonc b/src/plugins/files_management/kibana.jsonc new file mode 100644 index 00000000000000..c336e0c61bf673 --- /dev/null +++ b/src/plugins/files_management/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/files-management-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Simple UI for managing files in Kibana", + "plugin": { + "id": "filesManagement", + "server": false, + "browser": true, + "requiredPlugins": [ + "files", + "management" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/ftr_apis/kibana.json b/src/plugins/ftr_apis/kibana.json deleted file mode 100644 index 44e77c3900b311..00000000000000 --- a/src/plugins/ftr_apis/kibana.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "ftrApis", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "kibana", - "configPath": ["ftr_apis"], - "server": true, - "ui": false -} diff --git a/src/plugins/ftr_apis/kibana.jsonc b/src/plugins/ftr_apis/kibana.jsonc new file mode 100644 index 00000000000000..f40ab911a104b3 --- /dev/null +++ b/src/plugins/ftr_apis/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/ftr-apis-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "ftrApis", + "server": true, + "browser": false, + "configPath": [ + "ftr_apis" + ] + } +} diff --git a/src/plugins/guided_onboarding/kibana.json b/src/plugins/guided_onboarding/kibana.json deleted file mode 100755 index a7c1c3d217c1b8..00000000000000 --- a/src/plugins/guided_onboarding/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "guidedOnboarding", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Journey Onboarding", - "githubTeam": "platform-onboarding" - }, - "description": "Guided onboarding framework", - "server": true, - "ui": true, - "requiredBundles": ["kibanaReact"], - "optionalPlugins": ["cloud"] -} diff --git a/src/plugins/guided_onboarding/kibana.jsonc b/src/plugins/guided_onboarding/kibana.jsonc new file mode 100644 index 00000000000000..e816f0e027fe98 --- /dev/null +++ b/src/plugins/guided_onboarding/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/guided-onboarding-plugin", + "owner": "@elastic/platform-onboarding", + "description": "Guided onboarding framework", + "plugin": { + "id": "guidedOnboarding", + "server": true, + "browser": true, + "optionalPlugins": [ + "cloud" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/guided_onboarding/public/components/guide_button.tsx b/src/plugins/guided_onboarding/public/components/guide_button.tsx index 3e2df70298c602..89849d22e7652c 100644 --- a/src/plugins/guided_onboarding/public/components/guide_button.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_button.tsx @@ -75,12 +75,23 @@ export const GuideButton = ({ ); // if there is no active guide - if (!pluginState || !pluginState.activeGuide || !pluginState.activeGuide.isActive) { + if ( + !pluginState || + !pluginState.activeGuide || + !pluginState.activeGuide.isActive || + // the guide has not started yet when the user just looks at the guide + // see https://github.com/elastic/kibana/issues/148912 for more context + pluginState.activeGuide.status === 'not_started' + ) { // if still active period and the user has not started a guide or skipped the guide, // display the button that redirects to the landing page if ( pluginState?.isActivePeriod && - (pluginState?.status === 'not_started' || pluginState?.status === 'skipped') + (pluginState?.status === 'not_started' || + pluginState?.status === 'skipped' || + // plugin state 'in_progress' without an active guide is when the guide has not started yet + // see https://github.com/elastic/kibana/issues/148912 for context + pluginState.status === 'in_progress') ) { return ( { expect(exists('guideButton')).toBe(false); }); + test('shows redirect button when a guide has been viewed but not started', async () => { + const { exists } = await setupComponentWithPluginStateMock(httpClient, { + status: 'in_progress', + isActivePeriod: true, + activeGuide: { ...testGuideStep1InProgressState, status: 'not_started' }, + }); + expect(exists('guideButtonRedirect')).toBe(true); + expect(exists('guideButton')).toBe(false); + }); + test('shows redirect button when a user skipped on the landing page', async () => { const { exists } = await setupComponentWithPluginStateMock(httpClient, { status: 'skipped', diff --git a/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx b/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx index 447e0453e84dd4..1ef7c1f455abbc 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx @@ -42,7 +42,8 @@ const renderDescription = (description: string | StepDescriptionWithLink) => { const { descriptionText, linkText, linkUrl, isLinkExternal } = description; return ( <> - {descriptionText}{' '} + {descriptionText} +
    (`${API_BASE_PATH}/guides`); - this.isLoading$.next(false); - return response; + return await this.client.get<{ state: GuideState[] }>(`${API_BASE_PATH}/guides`); } catch (error) { - this.isLoading$.next(false); throw error; } } @@ -156,10 +148,6 @@ export class ApiService implements GuidedOnboardingApi { if (!this.client) { throw new Error('ApiService has not be initialized.'); } - // don't send a request if a request is already in flight - if (this.isLoading$.value) { - return undefined; - } try { this.isLoading$.next(true); @@ -482,10 +470,6 @@ export class ApiService implements GuidedOnboardingApi { if (!this.client) { throw new Error('ApiService has not be initialized.'); } - // don't send a request if a request is already in flight - if (this.isLoading$.value) { - return undefined; - } this.isLoading$.next(true); const config = await this.configService.getGuideConfig(guideId); this.isLoading$.next(false); diff --git a/src/plugins/guided_onboarding/public/services/api.test.ts b/src/plugins/guided_onboarding/public/services/api.test.ts index 1b5a7b02d0bb3b..41c6a93faf27eb 100644 --- a/src/plugins/guided_onboarding/public/services/api.test.ts +++ b/src/plugins/guided_onboarding/public/services/api.test.ts @@ -114,6 +114,17 @@ describe('GuidedOnboarding ApiService', () => { expect(httpClient.get).toHaveBeenCalledTimes(1); expect(httpClient.get).toHaveBeenCalledWith(`${API_BASE_PATH}/guides`); }); + + it('a request to all guides state API is sent even when a fetch plugin state request is in flight at the same time', async () => { + httpClient.get.mockImplementationOnce(() => { + return new Promise((resolve) => setTimeout(resolve)); + }); + await apiService.fetchPluginState$().subscribe(); + expect(apiService.isLoading$.value).toBe(true); + await apiService.fetchAllGuidesState(); + expect(httpClient.get).toHaveBeenCalledTimes(2); + expect(httpClient.get).toHaveBeenCalledWith(`${API_BASE_PATH}/guides`); + }); }); describe('updatePluginState', () => { @@ -132,6 +143,19 @@ describe('GuidedOnboarding ApiService', () => { body: JSON.stringify({ status: 'quit' }), }); }); + + it('a request to update plugin state API is sent even when a fetch plugin state request is in flight at the same time', async () => { + httpClient.get.mockImplementationOnce(() => { + return new Promise((resolve) => setTimeout(resolve)); + }); + await apiService.fetchPluginState$().subscribe(); + expect(apiService.isLoading$.value).toBe(true); + await apiService.updatePluginState({ guide: testGuideStep1InProgressState }, false); + expect(httpClient.put).toHaveBeenCalledTimes(1); + expect(httpClient.put).toHaveBeenCalledWith(`${API_BASE_PATH}/state`, { + body: JSON.stringify({ guide: testGuideStep1InProgressState }), + }); + }); }); describe('activateGuide', () => { @@ -627,8 +651,8 @@ describe('GuidedOnboarding ApiService', () => { }); }); - describe('is updated when fetching all guides state', () => { - it('true while request is in flight, false after the request completes', async () => { + describe('is not updated when fetching all guides state', () => { + it('false while request is in flight', async () => { httpClient.get.mockImplementation(() => { return new Promise((resolve) => setTimeout( @@ -644,20 +668,7 @@ describe('GuidedOnboarding ApiService', () => { // starting the request apiService.fetchAllGuidesState().then(); - await testRequest(); - }); - - it('true while request is in flight, false after the request fails', async () => { - httpClient.get.mockImplementation(() => { - return new Promise((resolve, reject) => - setTimeout(() => reject(new Error('test')), 2000) - ); - }); - apiService.setup(httpClient, true); - // starting the request - apiService.fetchAllGuidesState().catch(() => {}); - - await testRequest(true); + expect(apiService.isLoading$.value).toBe(false); }); }); @@ -735,7 +746,18 @@ describe('GuidedOnboarding ApiService', () => { apiService.setup(httpClient, true); await apiService.getGuideConfig(testGuideId); expect(httpClient.get).toHaveBeenCalledTimes(1); - expect(httpClient.get).toHaveBeenCalledWith(`${API_BASE_PATH}/configs/${testGuideId}`); + expect(httpClient.get).toHaveBeenLastCalledWith(`${API_BASE_PATH}/configs/${testGuideId}`); + }); + + it('a request to config API is sent even when a fetch plugin state request is in flight at the same time', async () => { + httpClient.get.mockImplementationOnce(() => { + return new Promise((resolve) => setTimeout(resolve)); + }); + await apiService.fetchPluginState$().subscribe(); + expect(apiService.isLoading$.value).toBe(true); + await apiService.getGuideConfig(testGuideId); + expect(httpClient.get).toHaveBeenCalledTimes(2); + expect(httpClient.get).toHaveBeenLastCalledWith(`${API_BASE_PATH}/configs/${testGuideId}`); }); }); diff --git a/src/plugins/home/kibana.json b/src/plugins/home/kibana.json deleted file mode 100644 index 9a57af5b705187..00000000000000 --- a/src/plugins/home/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "home", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["dataViews", "share", "urlForwarding"], - "optionalPlugins": ["usageCollection", "customIntegrations", "cloud", "guidedOnboarding"], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/home/kibana.jsonc b/src/plugins/home/kibana.jsonc new file mode 100644 index 00000000000000..e4b06a33bd0af7 --- /dev/null +++ b/src/plugins/home/kibana.jsonc @@ -0,0 +1,24 @@ +{ + "type": "plugin", + "id": "@kbn/home-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "home", + "server": true, + "browser": true, + "requiredPlugins": [ + "dataViews", + "share", + "urlForwarding" + ], + "optionalPlugins": [ + "usageCollection", + "customIntegrations", + "cloud", + "guidedOnboarding" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/home/public/application/components/move_data/move_data.test.tsx b/src/plugins/home/public/application/components/move_data/move_data.test.tsx index 9c92afbf01ac37..7f8e3a1bfcf7a5 100644 --- a/src/plugins/home/public/application/components/move_data/move_data.test.tsx +++ b/src/plugins/home/public/application/components/move_data/move_data.test.tsx @@ -17,6 +17,6 @@ describe('MoveData', () => { const component = shallowWithIntl(); const $button = component.find('EuiButton'); - expect($button.props().href).toBe('/app/management/data/migrate_data'); + expect($button.props().href).toBe('https://ela.st/cloud-migration'); }); }); diff --git a/src/plugins/home/public/application/components/move_data/move_data.tsx b/src/plugins/home/public/application/components/move_data/move_data.tsx index ce97e71a6ecd89..c3e0181aa4f64f 100644 --- a/src/plugins/home/public/application/components/move_data/move_data.tsx +++ b/src/plugins/home/public/application/components/move_data/move_data.tsx @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import React, { FC, MouseEvent } from 'react'; +import React, { FC } from 'react'; import { EuiButton, EuiFlexGroup, @@ -19,18 +19,17 @@ import { } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; -import { createAppNavigationHandler } from '../app_navigation_handler'; interface Props { addBasePath: (path: string) => string; } export const MoveData: FC = ({ addBasePath }) => { - const migrateDataUrl = '/app/management/data/migrate_data'; + const migrateDataUrl = 'https://ela.st/cloud-migration'; const buttonLabel = ( ); @@ -50,7 +49,7 @@ export const MoveData: FC = ({ addBasePath }) => {

    @@ -58,18 +57,15 @@ export const MoveData: FC = ({ addBasePath }) => { - {/* eslint-disable-next-line @elastic/eui/href-or-on-click */} { - createAppNavigationHandler(migrateDataUrl)(event); - }} + href={migrateDataUrl} + target="_blank" > {buttonLabel} diff --git a/src/plugins/home/public/application/components/tutorial_directory.js b/src/plugins/home/public/application/components/tutorial_directory.js index 6dc25ea63d7e05..cde8b86f5df22f 100644 --- a/src/plugins/home/public/application/components/tutorial_directory.js +++ b/src/plugins/home/public/application/components/tutorial_directory.js @@ -69,12 +69,7 @@ class TutorialDirectoryUi extends React.Component { async componentDidMount() { this._isMounted = true; - getServices().chrome.setBreadcrumbs([ - { - text: integrationsTitle, - href: this.props.addBasePath(`/app/integrations/browse`), - }, - ]); + this.setBreadcrumbs(); const tutorialConfigs = await getTutorials(); @@ -135,6 +130,30 @@ class TutorialDirectoryUi extends React.Component { }); } + componentDidUpdate(prevProps, prevState) { + if (prevState.selectedTabId !== this.state.selectedTabId) { + this.setBreadcrumbs(); + } + } + + setBreadcrumbs = () => { + const tab = this.getSelectedTab(); + const breadcrumbs = [ + { + text: integrationsTitle, + href: this.props.addBasePath(`/app/integrations/browse`), + }, + ]; + + if (tab?.name) { + breadcrumbs.push({ + text: tab.name, + }); + } + + getServices().chrome.setBreadcrumbs(breadcrumbs); + }; + onSelectedTabChanged = (id) => { this.setState({ selectedTabId: id, @@ -150,18 +169,14 @@ class TutorialDirectoryUi extends React.Component { })); }; + getSelectedTab = () => { + return this.tabs.find(({ id }) => id === this.state.selectedTabId); + }; + renderTabContent = () => { - const tab = this.tabs.find(({ id }) => id === this.state.selectedTabId); + const tab = this.getSelectedTab(); + if (tab?.content) { - getServices().chrome.setBreadcrumbs([ - { - text: integrationsTitle, - href: this.props.addBasePath(`/app/integrations/browse`), - }, - { - text: tab.name, - }, - ]); return tab.content; } diff --git a/src/plugins/image_embeddable/kibana.json b/src/plugins/image_embeddable/kibana.json deleted file mode 100644 index dcf931d779e117..00000000000000 --- a/src/plugins/image_embeddable/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "imageEmbeddable", - "version": "kibana", - "server": false, - "ui": true, - "owner": { - "name": "@elastic/appex-sharedux", - "githubTeam": "@elastic/appex-sharedux" - }, - "description": "Image embeddable", - "requiredPlugins": ["embeddable", "files", "uiActions"], - "requiredBundles": ["kibanaUtils", "kibanaReact"], - "optionalPlugins": ["security"] -} diff --git a/src/plugins/image_embeddable/kibana.jsonc b/src/plugins/image_embeddable/kibana.jsonc new file mode 100644 index 00000000000000..bea08eaf2fc503 --- /dev/null +++ b/src/plugins/image_embeddable/kibana.jsonc @@ -0,0 +1,23 @@ +{ + "type": "plugin", + "id": "@kbn/image-embeddable-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Image embeddable", + "plugin": { + "id": "imageEmbeddable", + "server": false, + "browser": true, + "requiredPlugins": [ + "embeddable", + "files", + "uiActions" + ], + "optionalPlugins": [ + "security" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/src/plugins/input_control_vis/kibana.json b/src/plugins/input_control_vis/kibana.json deleted file mode 100644 index ad9a0e3accb6d4..00000000000000 --- a/src/plugins/input_control_vis/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "inputControlVis", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds Input Control visualization to Kibana", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": false, - "ui": true, - "requiredPlugins": ["data", "expressions", "visDefaultEditor", "visualizations", "unifiedSearch"], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/input_control_vis/kibana.jsonc b/src/plugins/input_control_vis/kibana.jsonc new file mode 100644 index 00000000000000..939bb9e592f95d --- /dev/null +++ b/src/plugins/input_control_vis/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/input-control-vis-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds Input Control visualization to Kibana", + "plugin": { + "id": "inputControlVis", + "server": false, + "browser": true, + "requiredPlugins": [ + "data", + "expressions", + "visDefaultEditor", + "visualizations", + "unifiedSearch" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/inspector/kibana.json b/src/plugins/inspector/kibana.json deleted file mode 100644 index 28327e8d3b1488..00000000000000 --- a/src/plugins/inspector/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "inspector", - "version": "kibana", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "extraPublicDirs": ["common", "common/adapters/request"], - "requiredBundles": ["kibanaReact"], - "requiredPlugins": ["share"] -} diff --git a/src/plugins/inspector/kibana.jsonc b/src/plugins/inspector/kibana.jsonc new file mode 100644 index 00000000000000..8ff572bc21f674 --- /dev/null +++ b/src/plugins/inspector/kibana.jsonc @@ -0,0 +1,20 @@ +{ + "type": "plugin", + "id": "@kbn/inspector-plugin", + "owner": "@elastic/kibana-presentation", + "plugin": { + "id": "inspector", + "server": false, + "browser": true, + "requiredPlugins": [ + "share" + ], + "requiredBundles": [ + "kibanaReact" + ], + "extraPublicDirs": [ + "common", + "common/adapters/request" + ] + } +} diff --git a/src/plugins/interactive_setup/kibana.json b/src/plugins/interactive_setup/kibana.json deleted file mode 100644 index 10270bf5b2c03a..00000000000000 --- a/src/plugins/interactive_setup/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "interactiveSetup", - "owner": { - "name": "Platform Security", - "githubTeam": "kibana-security" - }, - "description": "This plugin provides UI and APIs for the interactive setup mode.", - "version": "8.0.0", - "kibanaVersion": "kibana", - "type": "preboot", - "configPath": ["interactiveSetup"], - "server": true, - "ui": true -} diff --git a/src/plugins/interactive_setup/kibana.jsonc b/src/plugins/interactive_setup/kibana.jsonc new file mode 100644 index 00000000000000..5a6c8dace60b98 --- /dev/null +++ b/src/plugins/interactive_setup/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/interactive-setup-plugin", + "owner": "@elastic/kibana-security", + "description": "This plugin provides UI and APIs for the interactive setup mode.", + "plugin": { + "id": "interactiveSetup", + "type": "preboot", + "server": true, + "browser": true, + "configPath": [ + "interactiveSetup" + ] + } +} diff --git a/src/plugins/kibana_overview/kibana.json b/src/plugins/kibana_overview/kibana.json deleted file mode 100644 index 955b74d5583198..00000000000000 --- a/src/plugins/kibana_overview/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "kibanaOverview", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "kibana", - "server": false, - "ui": true, - "requiredPlugins": ["navigation", "dataViews", "home", "share", "dataViewEditor"], - "optionalPlugins": ["newsfeed", "usageCollection"], - "requiredBundles": ["kibanaReact", "newsfeed"] -} diff --git a/src/plugins/kibana_overview/kibana.jsonc b/src/plugins/kibana_overview/kibana.jsonc new file mode 100644 index 00000000000000..3fa85f51fce760 --- /dev/null +++ b/src/plugins/kibana_overview/kibana.jsonc @@ -0,0 +1,25 @@ +{ + "type": "plugin", + "id": "@kbn/kibana-overview-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "kibanaOverview", + "server": false, + "browser": true, + "requiredPlugins": [ + "navigation", + "dataViews", + "home", + "share", + "dataViewEditor" + ], + "optionalPlugins": [ + "newsfeed", + "usageCollection" + ], + "requiredBundles": [ + "kibanaReact", + "newsfeed" + ] + } +} diff --git a/src/plugins/kibana_react/kibana.json b/src/plugins/kibana_react/kibana.json deleted file mode 100644 index 210b15897cfad4..00000000000000 --- a/src/plugins/kibana_react/kibana.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "kibanaReact", - "version": "kibana", - "ui": true, - "server": false, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "extraPublicDirs": ["common"] -} diff --git a/src/plugins/kibana_react/kibana.jsonc b/src/plugins/kibana_react/kibana.jsonc new file mode 100644 index 00000000000000..445442e7dc72d0 --- /dev/null +++ b/src/plugins/kibana_react/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/kibana-react-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "kibanaReact", + "server": false, + "browser": true, + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/kibana_react/public/index.ts b/src/plugins/kibana_react/public/index.ts index ddc80ea5dd7744..816f3a7635a12b 100644 --- a/src/plugins/kibana_react/public/index.ts +++ b/src/plugins/kibana_react/public/index.ts @@ -37,7 +37,12 @@ export { overviewPageActions, OverviewPageFooter } from './overview_page'; export type { KibanaReactOverlays } from './overlays'; export { createReactOverlays } from './overlays'; -export { useUiSetting, useUiSetting$ } from './ui_settings'; +export { + useUiSetting, + useGlobalUiSetting, + useUiSetting$, + useGlobalUiSetting$, +} from './ui_settings'; export { useExecutionContext } from './use_execution_context'; diff --git a/src/plugins/kibana_react/public/ui_settings/use_ui_setting.test.tsx b/src/plugins/kibana_react/public/ui_settings/use_ui_setting.test.tsx index 466af1ad18324e..cca2ded991db2d 100644 --- a/src/plugins/kibana_react/public/ui_settings/use_ui_setting.test.tsx +++ b/src/plugins/kibana_react/public/ui_settings/use_ui_setting.test.tsx @@ -9,7 +9,7 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; import { act, Simulate } from 'react-dom/test-utils'; -import { useUiSetting$ } from './use_ui_setting'; +import { useGlobalUiSetting$, useUiSetting$ } from './use_ui_setting'; import { createKibanaReactContext } from '../context'; import { KibanaServices } from '../context/types'; import { Subject } from 'rxjs'; @@ -94,6 +94,67 @@ describe('useUiSetting', () => { }); }); +describe('useGlobalUiSetting', () => { + const mockGlobal = (): [KibanaServices, Subject] => { + const core = coreMock.createStart(); + const get = core.settings.globalClient.get; + const get$ = core.settings.globalClient.get$; + const subject = new Subject(); + + get.mockImplementation(() => 'baz'); + get$.mockImplementation(() => subject); + + return [core, subject]; + }; + + const TestConsumer: React.FC<{ + setting: string; + newValue?: string; + }> = ({ setting, newValue = '' }) => { + const [value, set] = useGlobalUiSetting$(setting, 'default'); + + return ( +
    + {setting}: {value} + +
    + ); + }; + + test('returns setting value', async () => { + const [core] = mockGlobal(); + const { Provider } = createKibanaReactContext(core); + + ReactDOM.render( + + + , + container + ); + + const strong = container!.querySelector('strong'); + expect(strong!.textContent).toBe('baz'); + expect(core.settings!.globalClient.get).toHaveBeenCalledTimes(1); + expect((core.settings!.globalClient.get as any).mock.calls[0][0]).toBe('foo'); + }); + + test('calls uiSettings.get() method with correct key and default value', async () => { + const [core] = mockGlobal(); + const { Provider } = createKibanaReactContext(core); + + ReactDOM.render( + + + , + container + ); + + expect(core.settings!.globalClient.get).toHaveBeenCalledTimes(1); + expect((core.settings!.globalClient.get as any).mock.calls[0][0]).toBe('fooBar'); + expect((core.settings!.globalClient.get as any).mock.calls[0][1]).toBe('default'); + }); +}); + describe('useUiSetting$', () => { const TestConsumerX: React.FC<{ setting: string; diff --git a/src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts b/src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts index d73b8721c7f474..d75e4cb96cfa33 100644 --- a/src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts +++ b/src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts @@ -29,6 +29,25 @@ export const useUiSetting = (key: string, defaultValue?: T): T => { return services.uiSettings.get(key, defaultValue); }; +/** + * Returns the current global UI-settings value. + * + * Usage: + * + * ```js + * const customBranding = useGlobalUiSetting('customBranding:pageTitle'); + * ``` + */ +export const useGlobalUiSetting = (key: string, defaultValue?: T): T => { + const { services } = useKibana(); + + if (typeof services.settings !== 'object') { + throw new TypeError('uiSettings service not available in kibana-react context.'); + } + + return services.settings.globalClient.get(key, defaultValue); +}; + type Setter = (newValue: T) => Promise; /** @@ -60,3 +79,39 @@ export const useUiSetting$ = (key: string, defaultValue?: T): [T, Setter] return [value, set]; }; + +/** + * Returns a 2-tuple, where first entry is the setting value and second is a + * function to update the setting value. + * + * Synchronously returns the most current value of the setting and subscribes + * to all subsequent updates, which will re-render your component on new values. + * + * Usage: + * + * ```js + * const [customBranding, setCustomBranding] = useGlobalUiSetting$('customBranding:pageTitle'); + * ``` + */ +export const useGlobalUiSetting$ = (key: string, defaultValue?: T): [T, Setter] => { + const { services } = useKibana(); + + if (typeof services.settings !== 'object') { + throw new TypeError('uiSettings service not available in kibana-react context.'); + } + + const observable$ = useMemo( + () => services.settings!.globalClient.get$(key, defaultValue), + [key, defaultValue, services.settings!.globalClient] + ); + const value = useObservable( + observable$, + services.settings!.globalClient.get(key, defaultValue) + ); + const set = useCallback( + (newValue: T) => services.settings!.globalClient.set(key, newValue), + [key] + ); + + return [value, set]; +}; diff --git a/src/plugins/kibana_usage_collection/kibana.json b/src/plugins/kibana_usage_collection/kibana.json deleted file mode 100644 index 41fc5c6c37b783..00000000000000 --- a/src/plugins/kibana_usage_collection/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "kibanaUsageCollection", - "owner": { - "name": "Kibana Telemetry", - "githubTeam": "kibana-telemetry" - }, - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "usageCollection" - ], - "optionalPlugins": [] -} diff --git a/src/plugins/kibana_usage_collection/kibana.jsonc b/src/plugins/kibana_usage_collection/kibana.jsonc new file mode 100644 index 00000000000000..df2eee17b0638d --- /dev/null +++ b/src/plugins/kibana_usage_collection/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/kibana-usage-collection-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "kibanaUsageCollection", + "server": true, + "browser": true, + "requiredPlugins": [ + "usageCollection" + ] + } +} diff --git a/src/plugins/kibana_usage_collection/server/collectors/csp/csp_collector.test.ts b/src/plugins/kibana_usage_collection/server/collectors/csp/csp_collector.test.ts index 7cc95fe1470e4e..e8ada00137da41 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/csp/csp_collector.test.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/csp/csp_collector.test.ts @@ -24,7 +24,6 @@ describe('csp collector', () => { function updateCsp(config: Partial) { httpMock.csp = new CspConfig({ ...CspConfig.DEFAULT, - disableUnsafeEval: false, style_src: [], worker_src: [], script_src: [], diff --git a/src/plugins/kibana_usage_collection/server/collectors/management/schema.ts b/src/plugins/kibana_usage_collection/server/collectors/management/schema.ts index 0c610044776138..9525b7345a3804 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/management/schema.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/management/schema.ts @@ -434,6 +434,10 @@ export const stackManagementSchema: MakeSchemaFrom = { type: 'boolean', _meta: { description: 'Non-default value of setting.' }, }, + 'observability:apmEnableContinuousRollups': { + type: 'boolean', + _meta: { description: 'Non-default value of setting.' }, + }, 'observability:apmAgentExplorerView': { type: 'boolean', _meta: { description: 'Non-default value of setting.' }, diff --git a/src/plugins/kibana_usage_collection/server/collectors/management/types.ts b/src/plugins/kibana_usage_collection/server/collectors/management/types.ts index c0d7e74bf0c45d..245cb553680155 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/management/types.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/management/types.ts @@ -41,6 +41,7 @@ export interface UsageStats { 'observability:enableComparisonByDefault': boolean; 'observability:enableServiceGroups': boolean; 'observability:apmEnableServiceMetrics': boolean; + 'observability:apmEnableContinuousRollups': boolean; 'observability:apmAWSLambdaPriceFactor': string; 'observability:apmAWSLambdaRequestCostPerMillion': number; 'observability:enableInfrastructureHostsView': boolean; diff --git a/src/plugins/kibana_utils/kibana.json b/src/plugins/kibana_utils/kibana.json deleted file mode 100644 index 7c0f73a160970b..00000000000000 --- a/src/plugins/kibana_utils/kibana.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "kibanaUtils", - "version": "kibana", - "ui": true, - "server": false, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "extraPublicDirs": ["common", "demos/state_containers/todomvc", "common/state_containers"] -} diff --git a/src/plugins/kibana_utils/kibana.jsonc b/src/plugins/kibana_utils/kibana.jsonc new file mode 100644 index 00000000000000..3958e74bbeea08 --- /dev/null +++ b/src/plugins/kibana_utils/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/kibana-utils-plugin", + "owner": "@elastic/kibana-app-services", + "plugin": { + "id": "kibanaUtils", + "server": false, + "browser": true, + "extraPublicDirs": [ + "common", + "demos/state_containers/todomvc", + "common/state_containers" + ] + } +} diff --git a/src/plugins/management/kibana.json b/src/plugins/management/kibana.json deleted file mode 100644 index 154eaa11258c7b..00000000000000 --- a/src/plugins/management/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "management", - "version": "kibana", - "server": true, - "ui": true, - "optionalPlugins": ["home"], - "requiredPlugins": ["share"], - "requiredBundles": ["kibanaReact", "kibanaUtils"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - } -} diff --git a/src/plugins/management/kibana.jsonc b/src/plugins/management/kibana.jsonc new file mode 100644 index 00000000000000..b180cd74fa3d32 --- /dev/null +++ b/src/plugins/management/kibana.jsonc @@ -0,0 +1,20 @@ +{ + "type": "plugin", + "id": "@kbn/management-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "management", + "server": true, + "browser": true, + "requiredPlugins": [ + "share" + ], + "optionalPlugins": [ + "home" + ], + "requiredBundles": [ + "kibanaReact", + "kibanaUtils" + ] + } +} diff --git a/src/plugins/maps_ems/kibana.json b/src/plugins/maps_ems/kibana.json deleted file mode 100644 index 62fef350b87a93..00000000000000 --- a/src/plugins/maps_ems/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "mapsEms", - "owner": { - "name": "GIS", - "githubTeam": "kibana-gis" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["map"], - "ui": true, - "server": true, - "optionalPlugins": [ - "licensing" - ], - "extraPublicDirs": ["common"] -} diff --git a/src/plugins/maps_ems/kibana.jsonc b/src/plugins/maps_ems/kibana.jsonc new file mode 100644 index 00000000000000..f71542e94ae716 --- /dev/null +++ b/src/plugins/maps_ems/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/maps-ems-plugin", + "owner": "@elastic/kibana-gis", + "plugin": { + "id": "mapsEms", + "server": true, + "browser": true, + "configPath": [ + "map" + ], + "optionalPlugins": [ + "licensing" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/navigation/kibana.json b/src/plugins/navigation/kibana.json deleted file mode 100644 index ae188be0c6d395..00000000000000 --- a/src/plugins/navigation/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "navigation", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "version": "kibana", - "server": false, - "ui": true, - "requiredPlugins": ["unifiedSearch"], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/navigation/kibana.jsonc b/src/plugins/navigation/kibana.jsonc new file mode 100644 index 00000000000000..90ced649980a5b --- /dev/null +++ b/src/plugins/navigation/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/navigation-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "navigation", + "server": false, + "browser": true, + "requiredPlugins": [ + "unifiedSearch" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/newsfeed/kibana.json b/src/plugins/newsfeed/kibana.json deleted file mode 100644 index b928caf37ea93b..00000000000000 --- a/src/plugins/newsfeed/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "newsfeed", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "kibana", - "server": true, - "ui": true, - "requiredBundles": ["kibanaReact"], - "requiredPlugins": ["screenshotMode"] -} diff --git a/src/plugins/newsfeed/kibana.jsonc b/src/plugins/newsfeed/kibana.jsonc new file mode 100644 index 00000000000000..b4d3ea1ad1d8f5 --- /dev/null +++ b/src/plugins/newsfeed/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/newsfeed-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "newsfeed", + "server": true, + "browser": true, + "requiredPlugins": [ + "screenshotMode" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/src/plugins/presentation_util/kibana.json b/src/plugins/presentation_util/kibana.json deleted file mode 100644 index 0b3cc2bedced5c..00000000000000 --- a/src/plugins/presentation_util/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "presentationUtil", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas).", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "extraPublicDirs": ["common"], - "requiredPlugins": ["savedObjects", "kibanaReact", "embeddable", "expressions", "dataViews"], - "optionalPlugins": [] -} diff --git a/src/plugins/presentation_util/kibana.jsonc b/src/plugins/presentation_util/kibana.jsonc new file mode 100644 index 00000000000000..870c9ff27c62bf --- /dev/null +++ b/src/plugins/presentation_util/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/presentation-util-plugin", + "owner": "@elastic/kibana-presentation", + "description": "The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas).", + "plugin": { + "id": "presentationUtil", + "server": true, + "browser": true, + "requiredPlugins": [ + "savedObjects", + "kibanaReact", + "embeddable", + "expressions", + "dataViews" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/saved_objects/kibana.json b/src/plugins/saved_objects/kibana.json deleted file mode 100644 index b0ab3c26a35cfb..00000000000000 --- a/src/plugins/saved_objects/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "savedObjects", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["data", "dataViews"], - "requiredBundles": [ - "kibanaUtils", - "kibanaReact" - ] -} diff --git a/src/plugins/saved_objects/kibana.jsonc b/src/plugins/saved_objects/kibana.jsonc new file mode 100644 index 00000000000000..63ed427fadf2aa --- /dev/null +++ b/src/plugins/saved_objects/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/saved-objects-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "savedObjects", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "dataViews" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/src/plugins/saved_objects_finder/kibana.json b/src/plugins/saved_objects_finder/kibana.json deleted file mode 100644 index e50c2f1adeb0c0..00000000000000 --- a/src/plugins/saved_objects_finder/kibana.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "savedObjectsFinder", - "owner": { - "name": "Data Discovery", - "githubTeam": "kibana-data-discovery" - }, - "version": "kibana", - "ui": true, - "requiredBundles": ["savedObjects"] -} diff --git a/src/plugins/saved_objects_finder/kibana.jsonc b/src/plugins/saved_objects_finder/kibana.jsonc new file mode 100644 index 00000000000000..5e19fc5ab469d2 --- /dev/null +++ b/src/plugins/saved_objects_finder/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/saved-objects-finder-plugin", + "owner": "@elastic/kibana-data-discovery", + "plugin": { + "id": "savedObjectsFinder", + "server": false, + "browser": true, + "requiredBundles": [ + "savedObjects" + ] + } +} diff --git a/src/plugins/saved_objects_management/kibana.json b/src/plugins/saved_objects_management/kibana.json deleted file mode 100644 index f9f0df88b99207..00000000000000 --- a/src/plugins/saved_objects_management/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "savedObjectsManagement", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["management", "data", "dataViews"], - "optionalPlugins": ["home", "savedObjectsTaggingOss", "spaces"], - "extraPublicDirs": ["public/lib"], - "requiredBundles": ["kibanaReact"] -} diff --git a/src/plugins/saved_objects_management/kibana.jsonc b/src/plugins/saved_objects_management/kibana.jsonc new file mode 100644 index 00000000000000..ec6004dca617df --- /dev/null +++ b/src/plugins/saved_objects_management/kibana.jsonc @@ -0,0 +1,26 @@ +{ + "type": "plugin", + "id": "@kbn/saved-objects-management-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "savedObjectsManagement", + "server": true, + "browser": true, + "requiredPlugins": [ + "management", + "data", + "dataViews" + ], + "optionalPlugins": [ + "home", + "savedObjectsTaggingOss", + "spaces" + ], + "requiredBundles": [ + "kibanaReact" + ], + "extraPublicDirs": [ + "public/lib" + ] + } +} diff --git a/src/plugins/saved_objects_tagging_oss/kibana.json b/src/plugins/saved_objects_tagging_oss/kibana.json deleted file mode 100644 index c7576014b3a898..00000000000000 --- a/src/plugins/saved_objects_tagging_oss/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "savedObjectsTaggingOss", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "kibana", - "server": false, - "ui": true, - "requiredPlugins": [], - "optionalPlugins": ["savedObjects"] -} diff --git a/src/plugins/saved_objects_tagging_oss/kibana.jsonc b/src/plugins/saved_objects_tagging_oss/kibana.jsonc new file mode 100644 index 00000000000000..823dd9c074e9ea --- /dev/null +++ b/src/plugins/saved_objects_tagging_oss/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/saved-objects-tagging-oss-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "savedObjectsTaggingOss", + "server": false, + "browser": true, + "optionalPlugins": [ + "savedObjects" + ] + } +} diff --git a/src/plugins/saved_search/kibana.json b/src/plugins/saved_search/kibana.json deleted file mode 100644 index d58d429474c879..00000000000000 --- a/src/plugins/saved_search/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "savedSearch", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "data" - ], - "requiredBundles": ["kibanaUtils"], - "extraPublicDirs": ["common"], - "owner": { - "name": "Data Discovery", - "githubTeam": "kibana-data-discovery" - }, - "description": "This plugin contains the definition and helper methods around saved searches, used by discover and visualizations." -} diff --git a/src/plugins/saved_search/kibana.jsonc b/src/plugins/saved_search/kibana.jsonc new file mode 100644 index 00000000000000..64346d0908ef88 --- /dev/null +++ b/src/plugins/saved_search/kibana.jsonc @@ -0,0 +1,20 @@ +{ + "type": "plugin", + "id": "@kbn/saved-search-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "This plugin contains the definition and helper methods around saved searches, used by discover and visualizations.", + "plugin": { + "id": "savedSearch", + "server": true, + "browser": true, + "requiredPlugins": [ + "data" + ], + "requiredBundles": [ + "kibanaUtils" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/saved_search/server/saved_objects/search.ts b/src/plugins/saved_search/server/saved_objects/search.ts index 5960cd8ebdbe95..83923df21480fa 100644 --- a/src/plugins/saved_search/server/saved_objects/search.ts +++ b/src/plugins/saved_search/server/saved_objects/search.ts @@ -49,7 +49,7 @@ export function getSavedSearchObjectType( }, sort: { type: 'keyword', index: false, doc_values: false }, title: { type: 'text' }, - grid: { type: 'object', enabled: false }, + grid: { dynamic: false, properties: {} }, version: { type: 'integer' }, rowHeight: { type: 'text' }, timeRestore: { type: 'boolean', index: false, doc_values: false }, diff --git a/src/plugins/screenshot_mode/kibana.json b/src/plugins/screenshot_mode/kibana.json deleted file mode 100644 index 98942569dfac8d..00000000000000 --- a/src/plugins/screenshot_mode/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "screenshotMode", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "version": "1.0.0", - "kibanaVersion": "kibana", - "ui": true, - "server": true, - "requiredPlugins": [], - "optionalPlugins": [] -} diff --git a/src/plugins/screenshot_mode/kibana.jsonc b/src/plugins/screenshot_mode/kibana.jsonc new file mode 100644 index 00000000000000..3b57e37801a15a --- /dev/null +++ b/src/plugins/screenshot_mode/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/screenshot-mode-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "screenshotMode", + "server": true, + "browser": true + } +} diff --git a/src/plugins/share/kibana.json b/src/plugins/share/kibana.json deleted file mode 100644 index 08365d895f4b4d..00000000000000 --- a/src/plugins/share/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "share", - "version": "kibana", - "server": true, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Adds URL Service and sharing capabilities to Kibana", - "requiredBundles": ["kibanaReact", "kibanaUtils"], - "optionalPlugins": [] -} diff --git a/src/plugins/share/kibana.jsonc b/src/plugins/share/kibana.jsonc new file mode 100644 index 00000000000000..8e9eed20fe5e3f --- /dev/null +++ b/src/plugins/share/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/share-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Adds URL Service and sharing capabilities to Kibana", + "plugin": { + "id": "share", + "server": true, + "browser": true, + "requiredBundles": [ + "kibanaReact", + "kibanaUtils" + ] + } +} diff --git a/src/plugins/telemetry/kibana.json b/src/plugins/telemetry/kibana.json deleted file mode 100644 index a6796e42f92282..00000000000000 --- a/src/plugins/telemetry/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "telemetry", - "owner": { - "name": "Kibana Telemetry", - "githubTeam": "kibana-telemetry" - }, - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["telemetryCollectionManager", "usageCollection", "screenshotMode"], - "optionalPlugins": ["home", "security"], - "extraPublicDirs": ["common/constants"], - "requiredBundles": ["kibanaUtils", "kibanaReact"] -} diff --git a/src/plugins/telemetry/kibana.jsonc b/src/plugins/telemetry/kibana.jsonc new file mode 100644 index 00000000000000..147c7ac8b84cd5 --- /dev/null +++ b/src/plugins/telemetry/kibana.jsonc @@ -0,0 +1,26 @@ +{ + "type": "plugin", + "id": "@kbn/telemetry-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "telemetry", + "server": true, + "browser": true, + "requiredPlugins": [ + "telemetryCollectionManager", + "usageCollection", + "screenshotMode" + ], + "optionalPlugins": [ + "home", + "security" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ], + "extraPublicDirs": [ + "common/constants" + ] + } +} diff --git a/src/plugins/telemetry/schema/oss_plugins.json b/src/plugins/telemetry/schema/oss_plugins.json index 7b8d7ef9386c24..52fe7853bf471d 100644 --- a/src/plugins/telemetry/schema/oss_plugins.json +++ b/src/plugins/telemetry/schema/oss_plugins.json @@ -8910,6 +8910,12 @@ "description": "Non-default value of setting." } }, + "observability:apmEnableContinuousRollups": { + "type": "boolean", + "_meta": { + "description": "Non-default value of setting." + } + }, "observability:apmAgentExplorerView": { "type": "boolean", "_meta": { diff --git a/src/plugins/telemetry_collection_manager/kibana.json b/src/plugins/telemetry_collection_manager/kibana.json deleted file mode 100644 index e435ceb37d46a6..00000000000000 --- a/src/plugins/telemetry_collection_manager/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "telemetryCollectionManager", - "owner": { - "name": "Kibana Telemetry", - "githubTeam": "kibana-telemetry" - }, - "version": "kibana", - "server": true, - "ui": false, - "requiredPlugins": [ - "usageCollection" - ], - "optionalPlugins": [] -} diff --git a/src/plugins/telemetry_collection_manager/kibana.jsonc b/src/plugins/telemetry_collection_manager/kibana.jsonc new file mode 100644 index 00000000000000..cbf63b44c61158 --- /dev/null +++ b/src/plugins/telemetry_collection_manager/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/telemetry-collection-manager-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "telemetryCollectionManager", + "server": true, + "browser": false, + "requiredPlugins": [ + "usageCollection" + ] + } +} diff --git a/src/plugins/telemetry_management_section/kibana.json b/src/plugins/telemetry_management_section/kibana.json deleted file mode 100644 index 9fc2b75c283165..00000000000000 --- a/src/plugins/telemetry_management_section/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "telemetryManagementSection", - "owner": { - "name": "Kibana Telemetry", - "githubTeam": "kibana-telemetry" - }, - "version": "kibana", - "server": false, - "ui": true, - "requiredBundles": ["usageCollection"], - "optionalPlugins": ["usageCollection"], - "requiredPlugins": [ - "advancedSettings", - "telemetry" - ] -} diff --git a/src/plugins/telemetry_management_section/kibana.jsonc b/src/plugins/telemetry_management_section/kibana.jsonc new file mode 100644 index 00000000000000..2062c3aa3b0a67 --- /dev/null +++ b/src/plugins/telemetry_management_section/kibana.jsonc @@ -0,0 +1,20 @@ +{ + "type": "plugin", + "id": "@kbn/telemetry-management-section-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "telemetryManagementSection", + "server": false, + "browser": true, + "requiredPlugins": [ + "advancedSettings", + "telemetry" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "usageCollection" + ] + } +} diff --git a/src/plugins/ui_actions/kibana.json b/src/plugins/ui_actions/kibana.json deleted file mode 100644 index e58bf1e448077a..00000000000000 --- a/src/plugins/ui_actions/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "uiActions", - "version": "kibana", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Adds UI Actions service to Kibana", - "requiredBundles": ["kibanaUtils", "kibanaReact"], - "requiredPlugins": ["dataViews"] -} diff --git a/src/plugins/ui_actions/kibana.jsonc b/src/plugins/ui_actions/kibana.jsonc new file mode 100644 index 00000000000000..396f5b82faf01a --- /dev/null +++ b/src/plugins/ui_actions/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/ui-actions-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Adds UI Actions service to Kibana", + "plugin": { + "id": "uiActions", + "server": false, + "browser": true, + "requiredPlugins": [ + "dataViews" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/src/plugins/ui_actions_enhanced/kibana.json b/src/plugins/ui_actions_enhanced/kibana.json deleted file mode 100644 index 95f78979c1f624..00000000000000 --- a/src/plugins/ui_actions_enhanced/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "uiActionsEnhanced", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Extends UI Actions plugin with more functionality", - "version": "kibana", - "configPath": ["src", "ui_actions_enhanced"], - "server": true, - "ui": true, - "requiredPlugins": ["embeddable", "uiActions"], - "optionalPlugins": ["licensing"], - "requiredBundles": ["kibanaUtils", "kibanaReact"] -} diff --git a/src/plugins/ui_actions_enhanced/kibana.jsonc b/src/plugins/ui_actions_enhanced/kibana.jsonc new file mode 100644 index 00000000000000..595c483a66505a --- /dev/null +++ b/src/plugins/ui_actions_enhanced/kibana.jsonc @@ -0,0 +1,26 @@ +{ + "type": "plugin", + "id": "@kbn/ui-actions-enhanced-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Extends UI Actions plugin with more functionality", + "plugin": { + "id": "uiActionsEnhanced", + "server": true, + "browser": true, + "configPath": [ + "src", + "ui_actions_enhanced" + ], + "requiredPlugins": [ + "embeddable", + "uiActions" + ], + "optionalPlugins": [ + "licensing" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/src/plugins/unified_field_list/kibana.json b/src/plugins/unified_field_list/kibana.json deleted file mode 100755 index 0615ee0473cce0..00000000000000 --- a/src/plugins/unified_field_list/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "unifiedFieldList", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Data Discovery", - "githubTeam": "kibana-data-discovery" - }, - "description": "Contains functionality for the field list which can be integrated into apps", - "server": true, - "ui": true, - "requiredPlugins": ["dataViews", "data", "fieldFormats", "charts", "uiActions"], - "optionalPlugins": [], - "requiredBundles": [] -} diff --git a/src/plugins/unified_field_list/kibana.jsonc b/src/plugins/unified_field_list/kibana.jsonc new file mode 100644 index 00000000000000..da5654d449ae04 --- /dev/null +++ b/src/plugins/unified_field_list/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/unified-field-list-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "Contains functionality for the field list which can be integrated into apps", + "plugin": { + "id": "unifiedFieldList", + "server": true, + "browser": true, + "requiredPlugins": [ + "dataViews", + "data", + "fieldFormats", + "charts", + "uiActions" + ] + } +} diff --git a/src/plugins/unified_histogram/README.md b/src/plugins/unified_histogram/README.md index 301216dfefdbf1..459eb88aa66107 100755 --- a/src/plugins/unified_histogram/README.md +++ b/src/plugins/unified_histogram/README.md @@ -1,3 +1,138 @@ # unifiedHistogram -The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display. +Unified Histogram is a UX Building Block including a layout with a resizable histogram and a main display. +It manages its own state and data fetching, and can easily be dropped into pages with minimal setup. + +## Example + +```tsx +// Import the container component and API contract +import { + UnifiedHistogramContainer, + type UnifiedHistogramInitializedApi, +} from '@kbn/unified-histogram-plugin/public'; + +// Import modules required for your application +import { + useServices, + useResizeRef, + useCallbacks, + useRequestParams, + useManualRefetch, + MyLayout, + MyButton, +} from './my-modules'; + +const services = useServices(); +const resizeRef = useResizeRef(); +const { onChartHiddenChange, onLensRequestAdapterChange } = useCallbacks(); +const { + dataView, + query, + filters, + timeRange, + searchSessionId, + requestAdapter, +} = useRequestParams(); + +// Use a state variable instead of a ref to preserve reactivity when the API is updated +const [unifiedHistogram, setUnifiedHistogram] = useState(); + +// Create a callback to set unifiedHistogram, and initialize it if needed +const setUnifiedHistogramApi = useCallback((api: UnifiedHistogramApi | null) => { + // Ignore if the ref is null + if (!api) { + return; + } + + if (api.initialized) { + // Update our local reference to the API + setUnifiedHistogram(api); + } else { + // Initialize if not yet initialized + api.initialize({ + // Pass the required services to Unified Histogram + services, + // Optionally provide a local storage key prefix to save parts of the state, + // such as the chart hidden state and top panel height, to local storage + localStorageKeyPrefix: 'myApp', + // By default Unified Histogram will automatically refetch based on certain + // state changes, such as chart hidden and request params, but this can be + // disabled in favour of manual fetching if preferred. Note that an initial + // request is always triggered when first initialized, and when the chart + // changes from hidden to visible, Lens will automatically trigger a refetch + // regardless of what this property is set to + disableAutoFetching: true, + // If passing an absolute time range, provide a function to get the relative range + getRelativeTimeRange: services.data.query.timefilter.timefilter.getTime, + // At minimum the initial state requires a data view, but additional + // parameters can be passed to further customize the state + initialState: { + dataView, + query, + filters, + timeRange, + searchSessionId, + requestAdapter, + }, + }); + } +}, [...]); + +// Manually refetch if disableAutoFetching is true +useManualRefetch(() => { + unifiedHistogram?.refetch(); +}); + +// Update the Unified Histogram state when our request params change +useEffect(() => { + unifiedHistogram?.setRequestParams({ + dataView, + query, + filters, + timeRange, + searchSessionId, + requestAdapter, + }); +}, [...]); + +// Listen for state changes if your application requires it +useEffect(() => { + const subscription = unifiedHistogram?.state$ + .pipe(map((state) => state.chartHidden), distinctUntilChanged()) + .subscribe(onChartHiddenChange); + + return () => { + subscription?.unsubscribe(); + }; +}, [...]); + +// Currently Lens does not accept a custom request adapter, +// so it will not use the one passed to Unified Histogram. +// Instead you can get access to the one it's using by +// listening for state changes +useEffect(() => { + const subscription = unifiedHistogram?.state$ + .pipe(map((state) => state.lensRequestAdapter), distinctUntilChanged()) + .subscribe(onLensRequestAdapterChange); + + return () => { + subscription?.unsubscribe(); + }; +}, [...]); + +return ( + } + > + + +); +``` diff --git a/src/plugins/unified_histogram/kibana.json b/src/plugins/unified_histogram/kibana.json deleted file mode 100755 index aa9e22fab2a087..00000000000000 --- a/src/plugins/unified_histogram/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "unifiedHistogram", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Data Discovery", - "githubTeam": "kibana-data-discovery" - }, - "description": "The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display.", - "server": false, - "ui": true, - "requiredPlugins": [], - "optionalPlugins": [], - "requiredBundles": ["data", "dataViews", "embeddable", "inspector"] -} diff --git a/src/plugins/unified_histogram/kibana.jsonc b/src/plugins/unified_histogram/kibana.jsonc new file mode 100644 index 00000000000000..a8aa44de27621e --- /dev/null +++ b/src/plugins/unified_histogram/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/unified-histogram-plugin", + "owner": "@elastic/kibana-data-discovery", + "description": "The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display.", + "plugin": { + "id": "unifiedHistogram", + "server": false, + "browser": true, + "requiredBundles": [ + "data", + "dataViews", + "embeddable", + "inspector" + ] + } +} diff --git a/src/plugins/unified_histogram/public/__mocks__/data_view.ts b/src/plugins/unified_histogram/public/__mocks__/data_view.ts index e51b9560949abc..34043e8348c4b1 100644 --- a/src/plugins/unified_histogram/public/__mocks__/data_view.ts +++ b/src/plugins/unified_histogram/public/__mocks__/data_view.ts @@ -99,6 +99,10 @@ export const buildDataViewMock = ({ getFormatterForField: jest.fn(() => ({ convert: (value: unknown) => value })), isTimeNanosBased: () => false, isPersisted: () => true, + getTimeField: () => { + return dataViewFields.find((field) => field.name === timeFieldName); + }, + toSpec: () => ({}), } as unknown as DataView; dataView.isTimeBased = () => !!timeFieldName; diff --git a/src/plugins/unified_histogram/public/__mocks__/data_view_with_timefield.ts b/src/plugins/unified_histogram/public/__mocks__/data_view_with_timefield.ts index b0ec2fcf84ebb5..3868ed2c70af5e 100644 --- a/src/plugins/unified_histogram/public/__mocks__/data_view_with_timefield.ts +++ b/src/plugins/unified_histogram/public/__mocks__/data_view_with_timefield.ts @@ -25,6 +25,7 @@ const fields = [ filterable: true, aggregatable: true, sortable: true, + visualizable: true, }, { name: 'message', diff --git a/src/plugins/unified_histogram/public/__mocks__/services.ts b/src/plugins/unified_histogram/public/__mocks__/services.ts index 1ce16ad8fae856..e771ab7ea8c1ea 100644 --- a/src/plugins/unified_histogram/public/__mocks__/services.ts +++ b/src/plugins/unified_histogram/public/__mocks__/services.ts @@ -17,6 +17,9 @@ dataPlugin.query.filterManager.getFilters = jest.fn(() => []); export const unifiedHistogramServicesMock = { data: dataPlugin, fieldFormats: fieldFormatsMock, + uiActions: { + getTriggerCompatibleActions: jest.fn(() => Promise.resolve([])), + }, uiSettings: { get: jest.fn(), isDefault: jest.fn(() => true), @@ -25,5 +28,11 @@ export const unifiedHistogramServicesMock = { useChartsTheme: jest.fn(() => EUI_CHARTS_THEME_LIGHT.theme), useChartsBaseTheme: jest.fn(() => EUI_CHARTS_THEME_LIGHT.theme), }, - lens: { EmbeddableComponent: jest.fn(() => null) }, + lens: { EmbeddableComponent: jest.fn(() => null), navigateToPrefilledEditor: jest.fn() }, + storage: { + get: jest.fn(), + set: jest.fn(), + remove: jest.fn(), + clear: jest.fn(), + }, } as unknown as UnifiedHistogramServices; diff --git a/src/plugins/unified_histogram/public/chart/breakdown_field_selector.test.tsx b/src/plugins/unified_histogram/public/chart/breakdown_field_selector.test.tsx index 2b6b8bd7c537fe..c0c20a1e1a80ea 100644 --- a/src/plugins/unified_histogram/public/chart/breakdown_field_selector.test.tsx +++ b/src/plugins/unified_histogram/public/chart/breakdown_field_selector.test.tsx @@ -9,10 +9,10 @@ import { EuiComboBox } from '@elastic/eui'; import { mountWithIntl } from '@kbn/test-jest-helpers'; import React from 'react'; -import { UnifiedHistogramBreakdownContext } from '..'; +import { UnifiedHistogramBreakdownContext } from '../types'; import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; import { BreakdownFieldSelector } from './breakdown_field_selector'; -import { fieldSupportsBreakdown } from './field_supports_breakdown'; +import { fieldSupportsBreakdown } from './utils/field_supports_breakdown'; describe('BreakdownFieldSelector', () => { it('should pass fields that support breakdown as options to the EuiComboBox', () => { diff --git a/src/plugins/unified_histogram/public/chart/breakdown_field_selector.tsx b/src/plugins/unified_histogram/public/chart/breakdown_field_selector.tsx index ef2a14e4423b6e..3e72aaad9d1795 100644 --- a/src/plugins/unified_histogram/public/chart/breakdown_field_selector.tsx +++ b/src/plugins/unified_histogram/public/chart/breakdown_field_selector.tsx @@ -12,7 +12,7 @@ import { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import { i18n } from '@kbn/i18n'; import React, { useCallback, useState } from 'react'; import { UnifiedHistogramBreakdownContext } from '../types'; -import { fieldSupportsBreakdown } from './field_supports_breakdown'; +import { fieldSupportsBreakdown } from './utils/field_supports_breakdown'; export interface BreakdownFieldSelectorProps { dataView: DataView; diff --git a/src/plugins/unified_histogram/public/chart/chart.test.tsx b/src/plugins/unified_histogram/public/chart/chart.test.tsx index bc4115590b4e2d..151b0f2408150e 100644 --- a/src/plugins/unified_histogram/public/chart/chart.test.tsx +++ b/src/plugins/unified_histogram/public/chart/chart.test.tsx @@ -20,7 +20,12 @@ import { HitsCounter } from '../hits_counter'; import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; import { dataViewMock } from '../__mocks__/data_view'; import { BreakdownFieldSelector } from './breakdown_field_selector'; -import { Histogram } from './histogram'; + +let mockUseEditVisualization: jest.Mock | undefined = jest.fn(); + +jest.mock('./hooks/use_edit_visualization', () => ({ + useEditVisualization: () => mockUseEditVisualization, +})); async function mountComponent({ noChart, @@ -28,7 +33,6 @@ async function mountComponent({ noBreakdown, chartHidden = false, appendHistogram, - onEditVisualization = jest.fn(), dataView = dataViewWithTimefieldMock, }: { noChart?: boolean; @@ -37,7 +41,6 @@ async function mountComponent({ chartHidden?: boolean; appendHistogram?: ReactElement; dataView?: DataView; - onEditVisualization?: null | (() => void); } = {}) { (searchSourceInstanceMock.fetch$ as jest.Mock).mockImplementation( jest.fn().mockReturnValue(of({ rawResponse: { hits: { total: noHits ? 0 : 2 } } })) @@ -72,7 +75,6 @@ async function mountComponent({ }, breakdown: noBreakdown ? undefined : { field: undefined }, appendHistogram, - onEditVisualization: onEditVisualization || undefined, onResetChartHeight: jest.fn(), onChartHiddenChange: jest.fn(), onTimeIntervalChange: jest.fn(), @@ -89,6 +91,10 @@ async function mountComponent({ } describe('Chart', () => { + beforeEach(() => { + mockUseEditVisualization = jest.fn(); + }); + test('render when chart is undefined', async () => { const component = await mountComponent({ noChart: true }); expect( @@ -97,7 +103,8 @@ describe('Chart', () => { }); test('render when chart is defined and onEditVisualization is undefined', async () => { - const component = await mountComponent({ onEditVisualization: null }); + mockUseEditVisualization = undefined; + const component = await mountComponent(); expect( component.find('[data-test-subj="unifiedHistogramChartOptionsToggle"]').exists() ).toBeTruthy(); @@ -133,16 +140,15 @@ describe('Chart', () => { }); test('triggers onEditVisualization on click', async () => { - const fn = jest.fn(); - const component = await mountComponent({ onEditVisualization: fn }); + expect(mockUseEditVisualization).not.toHaveBeenCalled(); + const component = await mountComponent(); await act(async () => { component .find('[data-test-subj="unifiedHistogramEditVisualization"]') .first() .simulate('click'); }); - const lensAttributes = component.find(Histogram).prop('lensAttributes'); - expect(fn).toHaveBeenCalledWith(lensAttributes); + expect(mockUseEditVisualization).toHaveBeenCalled(); }); it('should render HitsCounter when hits is defined', async () => { diff --git a/src/plugins/unified_histogram/public/chart/chart.tsx b/src/plugins/unified_histogram/public/chart/chart.tsx index ccfadcaa07e97b..4c590217d30e0f 100644 --- a/src/plugins/unified_histogram/public/chart/chart.tsx +++ b/src/plugins/unified_histogram/public/chart/chart.tsx @@ -18,12 +18,12 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { DataView, DataViewField, DataViewType } from '@kbn/data-views-plugin/public'; -import type { LensEmbeddableInput, TypedLensByValueInput } from '@kbn/lens-plugin/public'; +import type { LensEmbeddableInput } from '@kbn/lens-plugin/public'; import type { AggregateQuery, Filter, Query, TimeRange } from '@kbn/es-query'; import { Subject } from 'rxjs'; import { HitsCounter } from '../hits_counter'; import { Histogram } from './histogram'; -import { useChartPanels } from './use_chart_panels'; +import { useChartPanels } from './hooks/use_chart_panels'; import type { UnifiedHistogramBreakdownContext, UnifiedHistogramChartContext, @@ -36,12 +36,13 @@ import type { UnifiedHistogramInputMessage, } from '../types'; import { BreakdownFieldSelector } from './breakdown_field_selector'; -import { useTotalHits } from './use_total_hits'; -import { useRequestParams } from './use_request_params'; -import { useChartStyles } from './use_chart_styles'; -import { useChartActions } from './use_chart_actions'; -import { getLensAttributes } from './get_lens_attributes'; -import { useRefetch } from './use_refetch'; +import { useTotalHits } from './hooks/use_total_hits'; +import { useRequestParams } from './hooks/use_request_params'; +import { useChartStyles } from './hooks/use_chart_styles'; +import { useChartActions } from './hooks/use_chart_actions'; +import { getLensAttributes } from './utils/get_lens_attributes'; +import { useRefetch } from './hooks/use_refetch'; +import { useEditVisualization } from './hooks/use_edit_visualization'; export interface ChartProps { className?: string; @@ -60,7 +61,7 @@ export interface ChartProps { disableTriggers?: LensEmbeddableInput['disableTriggers']; disabledActions?: LensEmbeddableInput['disabledActions']; input$?: UnifiedHistogramInput$; - onEditVisualization?: (lensAttributes: TypedLensByValueInput['attributes']) => void; + getRelativeTimeRange?: () => TimeRange; onResetChartHeight?: () => void; onChartHiddenChange?: (chartHidden: boolean) => void; onTimeIntervalChange?: (timeInterval: string) => void; @@ -90,7 +91,7 @@ export function Chart({ disableTriggers, disabledActions, input$: originalInput$, - onEditVisualization: originalOnEditVisualization, + getRelativeTimeRange: originalGetRelativeTimeRange, onResetChartHeight, onChartHiddenChange, onTimeIntervalChange, @@ -191,16 +192,18 @@ export function Chart({ [breakdown?.field, chart?.timeInterval, chart?.title, dataView, filters, query] ); - const onEditVisualization = useMemo( - () => - originalOnEditVisualization - ? () => { - originalOnEditVisualization(lensAttributes); - } - : undefined, - [lensAttributes, originalOnEditVisualization] + const getRelativeTimeRange = useMemo( + () => originalGetRelativeTimeRange ?? (() => relativeTimeRange), + [originalGetRelativeTimeRange, relativeTimeRange] ); + const onEditVisualization = useEditVisualization({ + services, + dataView, + getRelativeTimeRange, + lensAttributes, + }); + return ( { diff --git a/src/plugins/unified_histogram/public/chart/use_chart_actions.ts b/src/plugins/unified_histogram/public/chart/hooks/use_chart_actions.ts similarity index 96% rename from src/plugins/unified_histogram/public/chart/use_chart_actions.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_chart_actions.ts index 85b876e0862c11..168db2ca0c4d9f 100644 --- a/src/plugins/unified_histogram/public/chart/use_chart_actions.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_chart_actions.ts @@ -7,7 +7,7 @@ */ import { useCallback, useEffect, useRef, useState } from 'react'; -import type { UnifiedHistogramChartContext } from '../types'; +import type { UnifiedHistogramChartContext } from '../../types'; export const useChartActions = ({ chart, diff --git a/src/plugins/unified_histogram/public/chart/use_chart_panels.test.ts b/src/plugins/unified_histogram/public/chart/hooks/use_chart_panels.test.ts similarity index 100% rename from src/plugins/unified_histogram/public/chart/use_chart_panels.test.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_chart_panels.test.ts diff --git a/src/plugins/unified_histogram/public/chart/use_chart_panels.ts b/src/plugins/unified_histogram/public/chart/hooks/use_chart_panels.ts similarity index 98% rename from src/plugins/unified_histogram/public/chart/use_chart_panels.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_chart_panels.ts index 8f2874baa624e3..6c6921ba09d6ff 100644 --- a/src/plugins/unified_histogram/public/chart/use_chart_panels.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_chart_panels.ts @@ -12,7 +12,7 @@ import type { EuiContextMenuPanelDescriptor, } from '@elastic/eui'; import { search } from '@kbn/data-plugin/public'; -import type { UnifiedHistogramChartContext } from '../types'; +import type { UnifiedHistogramChartContext } from '../../types'; export function useChartPanels({ chart, diff --git a/src/plugins/unified_histogram/public/chart/use_chart_styles.tsx b/src/plugins/unified_histogram/public/chart/hooks/use_chart_styles.tsx similarity index 100% rename from src/plugins/unified_histogram/public/chart/use_chart_styles.tsx rename to src/plugins/unified_histogram/public/chart/hooks/use_chart_styles.tsx diff --git a/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.test.ts b/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.test.ts new file mode 100644 index 00000000000000..1d92db77dc3761 --- /dev/null +++ b/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.test.ts @@ -0,0 +1,117 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { DataView } from '@kbn/data-views-plugin/common'; +import type { TypedLensByValueInput } from '@kbn/lens-plugin/public'; +import { renderHook } from '@testing-library/react-hooks'; +import { act } from 'react-test-renderer'; +import { setTimeout } from 'timers/promises'; +import { dataViewMock } from '../../__mocks__/data_view'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; +import { unifiedHistogramServicesMock } from '../../__mocks__/services'; +import { useEditVisualization } from './use_edit_visualization'; + +const getTriggerCompatibleActions = unifiedHistogramServicesMock.uiActions + .getTriggerCompatibleActions as jest.Mock; + +const navigateToPrefilledEditor = unifiedHistogramServicesMock.lens + .navigateToPrefilledEditor as jest.Mock; + +describe('useEditVisualization', () => { + beforeEach(() => { + getTriggerCompatibleActions.mockClear(); + navigateToPrefilledEditor.mockClear(); + }); + + it('should return a function to edit the visualization', async () => { + getTriggerCompatibleActions.mockReturnValue(Promise.resolve([{ id: 'test' }])); + const relativeTimeRange = { from: 'now-15m', to: 'now' }; + const lensAttributes = { + visualizationType: 'lnsXY', + title: 'test', + } as TypedLensByValueInput['attributes']; + const hook = renderHook(() => + useEditVisualization({ + services: unifiedHistogramServicesMock, + dataView: dataViewWithTimefieldMock, + getRelativeTimeRange: () => relativeTimeRange, + lensAttributes, + }) + ); + await act(() => setTimeout(0)); + expect(hook.result.current).toBeDefined(); + hook.result.current!(); + expect(navigateToPrefilledEditor).toHaveBeenCalledWith({ + id: '', + timeRange: relativeTimeRange, + attributes: lensAttributes, + }); + }); + + it('should return undefined if the data view has no ID', async () => { + getTriggerCompatibleActions.mockReturnValue(Promise.resolve([{ id: 'test' }])); + const hook = renderHook(() => + useEditVisualization({ + services: unifiedHistogramServicesMock, + dataView: { ...dataViewWithTimefieldMock, id: undefined } as DataView, + getRelativeTimeRange: () => ({ from: 'now-15m', to: 'now' }), + lensAttributes: {} as unknown as TypedLensByValueInput['attributes'], + }) + ); + await act(() => setTimeout(0)); + expect(hook.result.current).toBeUndefined(); + }); + + it('should return undefined if the data view is not time based', async () => { + getTriggerCompatibleActions.mockReturnValue(Promise.resolve([{ id: 'test' }])); + const hook = renderHook(() => + useEditVisualization({ + services: unifiedHistogramServicesMock, + dataView: dataViewMock, + getRelativeTimeRange: () => ({ from: 'now-15m', to: 'now' }), + lensAttributes: {} as unknown as TypedLensByValueInput['attributes'], + }) + ); + await act(() => setTimeout(0)); + expect(hook.result.current).toBeUndefined(); + }); + + it('should return undefined if the time field is not visualizable', async () => { + getTriggerCompatibleActions.mockReturnValue(Promise.resolve([{ id: 'test' }])); + const dataView = { + ...dataViewWithTimefieldMock, + getTimeField: () => { + return { ...dataViewWithTimefieldMock.getTimeField(), visualizable: false }; + }, + } as DataView; + const hook = renderHook(() => + useEditVisualization({ + services: unifiedHistogramServicesMock, + dataView, + getRelativeTimeRange: () => ({ from: 'now-15m', to: 'now' }), + lensAttributes: {} as unknown as TypedLensByValueInput['attributes'], + }) + ); + await act(() => setTimeout(0)); + expect(hook.result.current).toBeUndefined(); + }); + + it('should return undefined if there are no compatible actions', async () => { + getTriggerCompatibleActions.mockReturnValue(Promise.resolve([])); + const hook = renderHook(() => + useEditVisualization({ + services: unifiedHistogramServicesMock, + dataView: dataViewWithTimefieldMock, + getRelativeTimeRange: () => ({ from: 'now-15m', to: 'now' }), + lensAttributes: {} as unknown as TypedLensByValueInput['attributes'], + }) + ); + await act(() => setTimeout(0)); + expect(hook.result.current).toBeUndefined(); + }); +}); diff --git a/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.ts b/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.ts new file mode 100644 index 00000000000000..ba72f5bc9264e6 --- /dev/null +++ b/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.ts @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { DataView } from '@kbn/data-views-plugin/common'; +import type { TimeRange } from '@kbn/es-query'; +import type { TypedLensByValueInput } from '@kbn/lens-plugin/public'; +import type { VISUALIZE_FIELD_TRIGGER } from '@kbn/ui-actions-plugin/public'; +import { useCallback, useEffect, useMemo, useState } from 'react'; +import type { UnifiedHistogramServices } from '../..'; + +// Avoid taking a dependency on uiActionsPlugin just for this const +const visualizeFieldTrigger: typeof VISUALIZE_FIELD_TRIGGER = 'VISUALIZE_FIELD_TRIGGER'; + +export const useEditVisualization = ({ + services, + dataView, + getRelativeTimeRange, + lensAttributes, +}: { + services: UnifiedHistogramServices; + dataView: DataView; + getRelativeTimeRange: () => TimeRange; + lensAttributes: TypedLensByValueInput['attributes']; +}) => { + const [canVisualize, setCanVisualize] = useState(false); + + const checkCanVisualize = useCallback(async () => { + if (!dataView.id || !dataView.isTimeBased() || !dataView.getTimeField().visualizable) { + return false; + } + + const compatibleActions = await services.uiActions.getTriggerCompatibleActions( + visualizeFieldTrigger, + { + dataViewSpec: dataView.toSpec(false), + fieldName: dataView.timeFieldName, + } + ); + + return Boolean(compatibleActions.length); + }, [dataView, services.uiActions]); + + const onEditVisualization = useMemo(() => { + if (!canVisualize) { + return undefined; + } + + return () => { + services.lens.navigateToPrefilledEditor({ + id: '', + timeRange: getRelativeTimeRange(), + attributes: lensAttributes, + }); + }; + }, [canVisualize, getRelativeTimeRange, lensAttributes, services.lens]); + + useEffect(() => { + checkCanVisualize().then(setCanVisualize); + }, [checkCanVisualize]); + + return onEditVisualization; +}; diff --git a/src/plugins/unified_histogram/public/chart/use_lens_props.test.ts b/src/plugins/unified_histogram/public/chart/hooks/use_lens_props.test.ts similarity index 92% rename from src/plugins/unified_histogram/public/chart/use_lens_props.test.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_lens_props.test.ts index 289536edd02322..bae6b9ca50b22a 100644 --- a/src/plugins/unified_histogram/public/chart/use_lens_props.test.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_lens_props.test.ts @@ -9,9 +9,9 @@ import { renderHook } from '@testing-library/react-hooks'; import { act } from 'react-test-renderer'; import { Subject } from 'rxjs'; -import type { UnifiedHistogramInputMessage } from '../types'; -import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; -import { getLensAttributes } from './get_lens_attributes'; +import type { UnifiedHistogramInputMessage } from '../../types'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; +import { getLensAttributes } from '../utils/get_lens_attributes'; import { getLensProps, useLensProps } from './use_lens_props'; describe('useLensProps', () => { diff --git a/src/plugins/unified_histogram/public/chart/use_lens_props.ts b/src/plugins/unified_histogram/public/chart/hooks/use_lens_props.ts similarity index 98% rename from src/plugins/unified_histogram/public/chart/use_lens_props.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_lens_props.ts index 976f191dba5c34..cea2f28521efd8 100644 --- a/src/plugins/unified_histogram/public/chart/use_lens_props.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_lens_props.ts @@ -12,7 +12,7 @@ import type { DefaultInspectorAdapters } from '@kbn/expressions-plugin/common'; import type { TypedLensByValueInput } from '@kbn/lens-plugin/public'; import { useCallback, useEffect, useState } from 'react'; import type { Observable } from 'rxjs'; -import type { UnifiedHistogramInputMessage, UnifiedHistogramRequestContext } from '../types'; +import type { UnifiedHistogramInputMessage, UnifiedHistogramRequestContext } from '../../types'; import { useStableCallback } from './use_stable_callback'; export const useLensProps = ({ diff --git a/src/plugins/unified_histogram/public/chart/use_refetch.test.ts b/src/plugins/unified_histogram/public/chart/hooks/use_refetch.test.ts similarity index 96% rename from src/plugins/unified_histogram/public/chart/use_refetch.test.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_refetch.test.ts index 39381ea6618655..15ddf1f0f0f817 100644 --- a/src/plugins/unified_histogram/public/chart/use_refetch.test.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_refetch.test.ts @@ -16,8 +16,8 @@ import { UnifiedHistogramHitsContext, UnifiedHistogramInput$, UnifiedHistogramRequestContext, -} from '../types'; -import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; +} from '../../types'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; import { Subject } from 'rxjs'; describe('useRefetch', () => { diff --git a/src/plugins/unified_histogram/public/chart/use_refetch.ts b/src/plugins/unified_histogram/public/chart/hooks/use_refetch.ts similarity index 97% rename from src/plugins/unified_histogram/public/chart/use_refetch.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_refetch.ts index 31e08f3d732e59..344526860477f3 100644 --- a/src/plugins/unified_histogram/public/chart/use_refetch.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_refetch.ts @@ -17,7 +17,7 @@ import { UnifiedHistogramHitsContext, UnifiedHistogramInput$, UnifiedHistogramRequestContext, -} from '../types'; +} from '../../types'; export const useRefetch = ({ dataView, @@ -48,7 +48,7 @@ export const useRefetch = ({ }) => { const refetchDeps = useRef>(); - // When the unified histogram props change, we must compare the current subset + // When the Unified Histogram props change, we must compare the current subset // that should trigger a histogram refetch against the previous subset. If they // are different, we must refetch the histogram to ensure it's up to date. useEffect(() => { diff --git a/src/plugins/unified_histogram/public/chart/use_request_params.test.ts b/src/plugins/unified_histogram/public/chart/hooks/use_request_params.test.ts similarity index 95% rename from src/plugins/unified_histogram/public/chart/use_request_params.test.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_request_params.test.ts index c49bcd4ce195bb..f3889d1de6a42b 100644 --- a/src/plugins/unified_histogram/public/chart/use_request_params.test.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_request_params.test.ts @@ -7,7 +7,7 @@ */ import { renderHook } from '@testing-library/react-hooks'; -import { unifiedHistogramServicesMock } from '../__mocks__/services'; +import { unifiedHistogramServicesMock } from '../../__mocks__/services'; const getUseRequestParams = async () => { jest.doMock('@kbn/data-plugin/common', () => { diff --git a/src/plugins/unified_histogram/public/chart/use_request_params.tsx b/src/plugins/unified_histogram/public/chart/hooks/use_request_params.tsx similarity index 96% rename from src/plugins/unified_histogram/public/chart/use_request_params.tsx rename to src/plugins/unified_histogram/public/chart/hooks/use_request_params.tsx index 8afe803d329afe..c5ea702f898f00 100644 --- a/src/plugins/unified_histogram/public/chart/use_request_params.tsx +++ b/src/plugins/unified_histogram/public/chart/hooks/use_request_params.tsx @@ -9,7 +9,7 @@ import { getAbsoluteTimeRange } from '@kbn/data-plugin/common'; import type { AggregateQuery, Filter, Query, TimeRange } from '@kbn/es-query'; import { useCallback, useMemo, useRef } from 'react'; -import type { UnifiedHistogramServices } from '../types'; +import type { UnifiedHistogramServices } from '../../types'; import { useStableCallback } from './use_stable_callback'; export const useRequestParams = ({ diff --git a/src/plugins/unified_histogram/public/chart/use_stable_callback.test.ts b/src/plugins/unified_histogram/public/chart/hooks/use_stable_callback.test.ts similarity index 100% rename from src/plugins/unified_histogram/public/chart/use_stable_callback.test.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_stable_callback.test.ts diff --git a/src/plugins/unified_histogram/public/chart/use_stable_callback.ts b/src/plugins/unified_histogram/public/chart/hooks/use_stable_callback.ts similarity index 83% rename from src/plugins/unified_histogram/public/chart/use_stable_callback.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_stable_callback.ts index 9b81470c5ff5ce..2982ca02953b5d 100644 --- a/src/plugins/unified_histogram/public/chart/use_stable_callback.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_stable_callback.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { useCallback, useEffect, useRef } from 'react'; +import { useEffect, useRef } from 'react'; /** * Accepts a callback and returns a function with a stable identity @@ -19,5 +19,5 @@ export const useStableCallback = any>(fn: T | und ref.current = fn; }, [fn]); - return useCallback((...args: Parameters) => ref.current?.(...args), []); + return useRef((...args: Parameters) => ref.current?.(...args)).current; }; diff --git a/src/plugins/unified_histogram/public/chart/use_time_range.test.tsx b/src/plugins/unified_histogram/public/chart/hooks/use_time_range.test.tsx similarity index 99% rename from src/plugins/unified_histogram/public/chart/use_time_range.test.tsx rename to src/plugins/unified_histogram/public/chart/hooks/use_time_range.test.tsx index 26070db1c7e54c..35951d637315ca 100644 --- a/src/plugins/unified_histogram/public/chart/use_time_range.test.tsx +++ b/src/plugins/unified_histogram/public/chart/hooks/use_time_range.test.tsx @@ -9,7 +9,7 @@ import { uiSettingsServiceMock } from '@kbn/core-ui-settings-browser-mocks'; import { TimeRange } from '@kbn/data-plugin/common'; import { renderHook } from '@testing-library/react-hooks'; -import { UnifiedHistogramBucketInterval } from '../types'; +import { UnifiedHistogramBucketInterval } from '../../types'; import { useTimeRange } from './use_time_range'; jest.mock('@kbn/datemath', () => ({ diff --git a/src/plugins/unified_histogram/public/chart/use_time_range.tsx b/src/plugins/unified_histogram/public/chart/hooks/use_time_range.tsx similarity index 98% rename from src/plugins/unified_histogram/public/chart/use_time_range.tsx rename to src/plugins/unified_histogram/public/chart/hooks/use_time_range.tsx index 539f32251b8321..dbf563da175882 100644 --- a/src/plugins/unified_histogram/public/chart/use_time_range.tsx +++ b/src/plugins/unified_histogram/public/chart/hooks/use_time_range.tsx @@ -13,7 +13,7 @@ import { i18n } from '@kbn/i18n'; import React, { useCallback, useMemo } from 'react'; import dateMath from '@kbn/datemath'; import type { TimeRange } from '@kbn/data-plugin/common'; -import type { UnifiedHistogramBucketInterval } from '../types'; +import type { UnifiedHistogramBucketInterval } from '../../types'; export const useTimeRange = ({ uiSettings, diff --git a/src/plugins/unified_histogram/public/chart/use_total_hits.test.ts b/src/plugins/unified_histogram/public/chart/hooks/use_total_hits.test.ts similarity index 98% rename from src/plugins/unified_histogram/public/chart/use_total_hits.test.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_total_hits.test.ts index ea6ab4676e6813..fae169c41f2e76 100644 --- a/src/plugins/unified_histogram/public/chart/use_total_hits.test.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_total_hits.test.ts @@ -7,8 +7,8 @@ */ import { Filter } from '@kbn/es-query'; -import { UnifiedHistogramFetchStatus, UnifiedHistogramInput$ } from '../types'; -import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; +import { UnifiedHistogramFetchStatus, UnifiedHistogramInput$ } from '../../types'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; import { useTotalHits } from './use_total_hits'; import { useEffect as mockUseEffect } from 'react'; import { renderHook } from '@testing-library/react-hooks'; diff --git a/src/plugins/unified_histogram/public/chart/use_total_hits.ts b/src/plugins/unified_histogram/public/chart/hooks/use_total_hits.ts similarity index 99% rename from src/plugins/unified_histogram/public/chart/use_total_hits.ts rename to src/plugins/unified_histogram/public/chart/hooks/use_total_hits.ts index e7227edd76684f..95916c1f2bc022 100644 --- a/src/plugins/unified_histogram/public/chart/use_total_hits.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_total_hits.ts @@ -19,7 +19,7 @@ import { UnifiedHistogramInputMessage, UnifiedHistogramRequestContext, UnifiedHistogramServices, -} from '../types'; +} from '../../types'; import { useStableCallback } from './use_stable_callback'; export const useTotalHits = ({ diff --git a/src/plugins/unified_histogram/public/chart/build_bucket_interval.test.ts b/src/plugins/unified_histogram/public/chart/utils/build_bucket_interval.test.ts similarity index 97% rename from src/plugins/unified_histogram/public/chart/build_bucket_interval.test.ts rename to src/plugins/unified_histogram/public/chart/utils/build_bucket_interval.test.ts index 072f7a811babe5..058b403c9159a7 100644 --- a/src/plugins/unified_histogram/public/chart/build_bucket_interval.test.ts +++ b/src/plugins/unified_histogram/public/chart/utils/build_bucket_interval.test.ts @@ -7,7 +7,7 @@ */ import { dataPluginMock } from '@kbn/data-plugin/public/mocks'; -import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; import { calculateBounds } from '@kbn/data-plugin/public'; import { buildBucketInterval } from './build_bucket_interval'; diff --git a/src/plugins/unified_histogram/public/chart/build_bucket_interval.ts b/src/plugins/unified_histogram/public/chart/utils/build_bucket_interval.ts similarity index 91% rename from src/plugins/unified_histogram/public/chart/build_bucket_interval.ts rename to src/plugins/unified_histogram/public/chart/utils/build_bucket_interval.ts index b3c9671662dbc9..91dcd18d6f93b5 100644 --- a/src/plugins/unified_histogram/public/chart/build_bucket_interval.ts +++ b/src/plugins/unified_histogram/public/chart/utils/build_bucket_interval.ts @@ -10,12 +10,12 @@ import type { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; import { DataPublicPluginStart, search, tabifyAggResponse } from '@kbn/data-plugin/public'; import type { DataView } from '@kbn/data-views-plugin/common'; import type { TimeRange } from '@kbn/es-query'; -import type { UnifiedHistogramBucketInterval } from '../types'; +import type { UnifiedHistogramBucketInterval } from '../../types'; import { getChartAggConfigs } from './get_chart_agg_configs'; /** * Convert the response from the chart request into a format that can be used - * by the unified histogram chart. The returned object should be used to update + * by the Unified Histogram chart. The returned object should be used to update * time range interval of histogram. */ export const buildBucketInterval = ({ diff --git a/src/plugins/unified_histogram/public/chart/field_supports_breakdown.test.ts b/src/plugins/unified_histogram/public/chart/utils/field_supports_breakdown.test.ts similarity index 100% rename from src/plugins/unified_histogram/public/chart/field_supports_breakdown.test.ts rename to src/plugins/unified_histogram/public/chart/utils/field_supports_breakdown.test.ts diff --git a/src/plugins/unified_histogram/public/chart/field_supports_breakdown.ts b/src/plugins/unified_histogram/public/chart/utils/field_supports_breakdown.ts similarity index 100% rename from src/plugins/unified_histogram/public/chart/field_supports_breakdown.ts rename to src/plugins/unified_histogram/public/chart/utils/field_supports_breakdown.ts diff --git a/src/plugins/unified_histogram/public/chart/get_chart_agg_config.test.ts b/src/plugins/unified_histogram/public/chart/utils/get_chart_agg_config.test.ts similarity index 95% rename from src/plugins/unified_histogram/public/chart/get_chart_agg_config.test.ts rename to src/plugins/unified_histogram/public/chart/utils/get_chart_agg_config.test.ts index ef5ce1b6771531..bb6263f31586bf 100644 --- a/src/plugins/unified_histogram/public/chart/get_chart_agg_config.test.ts +++ b/src/plugins/unified_histogram/public/chart/utils/get_chart_agg_config.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; import { dataPluginMock } from '@kbn/data-plugin/public/mocks'; import { getChartAggConfigs } from './get_chart_agg_configs'; diff --git a/src/plugins/unified_histogram/public/chart/get_chart_agg_configs.ts b/src/plugins/unified_histogram/public/chart/utils/get_chart_agg_configs.ts similarity index 92% rename from src/plugins/unified_histogram/public/chart/get_chart_agg_configs.ts rename to src/plugins/unified_histogram/public/chart/utils/get_chart_agg_configs.ts index d68330a22a45df..6724514cbc546f 100644 --- a/src/plugins/unified_histogram/public/chart/get_chart_agg_configs.ts +++ b/src/plugins/unified_histogram/public/chart/utils/get_chart_agg_configs.ts @@ -11,7 +11,7 @@ import type { DataView } from '@kbn/data-views-plugin/common'; import type { TimeRange } from '@kbn/es-query'; /** - * Helper function to get the agg configs required for the unified histogram chart request + * Helper function to get the agg configs required for the Unified Histogram chart request */ export function getChartAggConfigs({ dataView, diff --git a/src/plugins/unified_histogram/public/chart/get_lens_attributes.test.ts b/src/plugins/unified_histogram/public/chart/utils/get_lens_attributes.test.ts similarity index 99% rename from src/plugins/unified_histogram/public/chart/get_lens_attributes.test.ts rename to src/plugins/unified_histogram/public/chart/utils/get_lens_attributes.test.ts index 3e0ac936a6573b..442e3d5fa4318d 100644 --- a/src/plugins/unified_histogram/public/chart/get_lens_attributes.test.ts +++ b/src/plugins/unified_histogram/public/chart/utils/get_lens_attributes.test.ts @@ -9,7 +9,7 @@ import { getLensAttributes } from './get_lens_attributes'; import { AggregateQuery, Filter, FilterStateStore, Query } from '@kbn/es-query'; import type { DataView, DataViewField } from '@kbn/data-views-plugin/public'; -import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; describe('getLensAttributes', () => { const dataView: DataView = dataViewWithTimefieldMock; diff --git a/src/plugins/unified_histogram/public/chart/get_lens_attributes.ts b/src/plugins/unified_histogram/public/chart/utils/get_lens_attributes.ts similarity index 100% rename from src/plugins/unified_histogram/public/chart/get_lens_attributes.ts rename to src/plugins/unified_histogram/public/chart/utils/get_lens_attributes.ts diff --git a/src/plugins/unified_histogram/public/container/container.test.tsx b/src/plugins/unified_histogram/public/container/container.test.tsx new file mode 100644 index 00000000000000..c9481c4ff4cbba --- /dev/null +++ b/src/plugins/unified_histogram/public/container/container.test.tsx @@ -0,0 +1,85 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { RequestAdapter } from '@kbn/inspector-plugin/common'; +import { mountWithIntl } from '@kbn/test-jest-helpers'; +import React from 'react'; +import { act } from 'react-dom/test-utils'; +import { UnifiedHistogramFetchStatus } from '../types'; +import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; +import { unifiedHistogramServicesMock } from '../__mocks__/services'; +import { UnifiedHistogramApi, UnifiedHistogramContainer } from './container'; +import type { UnifiedHistogramState } from './services/state_service'; + +describe('UnifiedHistogramContainer', () => { + const initialState: UnifiedHistogramState = { + breakdownField: 'bytes', + chartHidden: false, + dataView: dataViewWithTimefieldMock, + filters: [], + lensRequestAdapter: new RequestAdapter(), + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + timeInterval: 'auto', + timeRange: { from: 'now-15m', to: 'now' }, + topPanelHeight: 100, + totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, + totalHitsResult: undefined, + }; + + it('should set ref', () => { + let api: UnifiedHistogramApi | undefined; + const setApi = (ref: UnifiedHistogramApi) => { + api = ref; + }; + mountWithIntl(); + expect(api).toBeDefined(); + }); + + it('should return null if not initialized', async () => { + const component = mountWithIntl(); + await new Promise((resolve) => setTimeout(resolve, 0)); + expect(component.update().isEmptyRender()).toBe(true); + }); + + it('should not return null if initialized', async () => { + const setApi = (api: UnifiedHistogramApi | null) => { + if (!api || api.initialized) { + return; + } + api?.initialize({ + services: unifiedHistogramServicesMock, + initialState, + }); + }; + const component = mountWithIntl( + + ); + await new Promise((resolve) => setTimeout(resolve, 0)); + expect(component.update().isEmptyRender()).toBe(false); + }); + + it('should update initialized property when initialized', async () => { + let api: UnifiedHistogramApi | undefined; + const setApi = (ref: UnifiedHistogramApi) => { + api = ref; + }; + mountWithIntl(); + expect(api?.initialized).toBe(false); + act(() => { + if (!api?.initialized) { + api?.initialize({ + services: unifiedHistogramServicesMock, + initialState, + }); + } + }); + expect(api?.initialized).toBe(true); + }); +}); diff --git a/src/plugins/unified_histogram/public/container/container.tsx b/src/plugins/unified_histogram/public/container/container.tsx new file mode 100644 index 00000000000000..f079b38d179ff0 --- /dev/null +++ b/src/plugins/unified_histogram/public/container/container.tsx @@ -0,0 +1,172 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { forwardRef, useImperativeHandle, useMemo, useState } from 'react'; +import { Subject } from 'rxjs'; +import { pick } from 'lodash'; +import { UnifiedHistogramLayout, UnifiedHistogramLayoutProps } from '../layout'; +import type { UnifiedHistogramInputMessage } from '../types'; +import { + createStateService, + UnifiedHistogramStateOptions, + UnifiedHistogramStateService, +} from './services/state_service'; +import { useStateProps } from './hooks/use_state_props'; +import { useStateSelector } from './utils/use_state_selector'; +import { + dataViewSelector, + filtersSelector, + querySelector, + timeRangeSelector, + topPanelHeightSelector, +} from './utils/state_selectors'; + +type LayoutProps = Pick< + UnifiedHistogramLayoutProps, + | 'services' + | 'disableAutoFetching' + | 'disableTriggers' + | 'disabledActions' + | 'getRelativeTimeRange' +>; + +/** + * The props exposed by the container + */ +export type UnifiedHistogramContainerProps = Pick< + UnifiedHistogramLayoutProps, + 'className' | 'resizeRef' | 'appendHitsCounter' | 'children' +>; + +/** + * The options used to initialize the container + */ +export type UnifiedHistogramInitializeOptions = UnifiedHistogramStateOptions & + Omit; + +/** + * The uninitialized API exposed by the container + */ +export interface UnifiedHistogramUninitializedApi { + /** + * Whether the container has been initialized + */ + initialized: false; + /** + * Initialize the container + */ + initialize: (options: UnifiedHistogramInitializeOptions) => void; +} + +/** + * The initialized API exposed by the container + */ +export type UnifiedHistogramInitializedApi = { + /** + * Whether the container has been initialized + */ + initialized: true; + /** + * Manually trigger a refetch of the data + */ + refetch: () => void; +} & Pick< + UnifiedHistogramStateService, + | 'state$' + | 'setChartHidden' + | 'setTopPanelHeight' + | 'setBreakdownField' + | 'setTimeInterval' + | 'setRequestParams' + | 'setTotalHits' +>; + +/** + * The API exposed by the container + */ +export type UnifiedHistogramApi = UnifiedHistogramUninitializedApi | UnifiedHistogramInitializedApi; + +export const UnifiedHistogramContainer = forwardRef< + UnifiedHistogramApi, + UnifiedHistogramContainerProps +>((containerProps, ref) => { + const [initialized, setInitialized] = useState(false); + const [layoutProps, setLayoutProps] = useState(); + const [stateService, setStateService] = useState(); + const [input$] = useState(() => new Subject()); + const api = useMemo( + () => ({ + initialized, + initialize: (options: UnifiedHistogramInitializeOptions) => { + const { + services, + disableAutoFetching, + disableTriggers, + disabledActions, + getRelativeTimeRange, + } = options; + + setLayoutProps({ + services, + disableAutoFetching, + disableTriggers, + disabledActions, + getRelativeTimeRange, + }); + setStateService(createStateService(options)); + setInitialized(true); + }, + refetch: () => { + input$.next({ type: 'refetch' }); + }, + ...pick( + stateService!, + 'state$', + 'setChartHidden', + 'setTopPanelHeight', + 'setBreakdownField', + 'setTimeInterval', + 'setRequestParams', + 'setTotalHits' + ), + }), + [initialized, input$, stateService] + ); + + // Expose the API to the parent component + useImperativeHandle(ref, () => api, [api]); + + const stateProps = useStateProps(stateService); + const dataView = useStateSelector(stateService?.state$, dataViewSelector); + const query = useStateSelector(stateService?.state$, querySelector); + const filters = useStateSelector(stateService?.state$, filtersSelector); + const timeRange = useStateSelector(stateService?.state$, timeRangeSelector); + const topPanelHeight = useStateSelector(stateService?.state$, topPanelHeightSelector); + + // Don't render anything until the container is initialized + if (!layoutProps || !dataView) { + return null; + } + + return ( + + ); +}); + +// eslint-disable-next-line import/no-default-export +export default UnifiedHistogramContainer; diff --git a/src/plugins/unified_histogram/public/container/hooks/use_state_props.test.ts b/src/plugins/unified_histogram/public/container/hooks/use_state_props.test.ts new file mode 100644 index 00000000000000..c36e5239bfe29d --- /dev/null +++ b/src/plugins/unified_histogram/public/container/hooks/use_state_props.test.ts @@ -0,0 +1,265 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { DataView, DataViewField, DataViewType } from '@kbn/data-views-plugin/common'; +import { RequestAdapter } from '@kbn/inspector-plugin/common'; +import { renderHook } from '@testing-library/react-hooks'; +import { act } from 'react-test-renderer'; +import { UnifiedHistogramFetchStatus } from '../../types'; +import { dataViewMock } from '../../__mocks__/data_view'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; +import { unifiedHistogramServicesMock } from '../../__mocks__/services'; +import { + createStateService, + UnifiedHistogramState, + UnifiedHistogramStateOptions, +} from '../services/state_service'; +import { useStateProps } from './use_state_props'; + +describe('useStateProps', () => { + const initialState: UnifiedHistogramState = { + breakdownField: 'bytes', + chartHidden: false, + dataView: dataViewWithTimefieldMock, + filters: [], + lensRequestAdapter: new RequestAdapter(), + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + timeInterval: 'auto', + timeRange: { from: 'now-15m', to: 'now' }, + topPanelHeight: 100, + totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, + totalHitsResult: undefined, + }; + + const getStateService = (options: Omit) => { + const stateService = createStateService({ + ...options, + services: unifiedHistogramServicesMock, + }); + jest.spyOn(stateService, 'setChartHidden'); + jest.spyOn(stateService, 'setTopPanelHeight'); + jest.spyOn(stateService, 'setBreakdownField'); + jest.spyOn(stateService, 'setTimeInterval'); + jest.spyOn(stateService, 'setRequestParams'); + jest.spyOn(stateService, 'setLensRequestAdapter'); + jest.spyOn(stateService, 'setTotalHits'); + return stateService; + }; + + it('should return the correct props', () => { + const stateService = getStateService({ initialState }); + const { result } = renderHook(() => useStateProps(stateService)); + expect(result.current).toMatchInlineSnapshot(` + Object { + "breakdown": Object { + "field": Object { + "aggregatable": true, + "displayName": "bytes", + "filterable": true, + "name": "bytes", + "scripted": false, + "type": "number", + }, + }, + "chart": Object { + "hidden": false, + "timeInterval": "auto", + }, + "hits": Object { + "status": "uninitialized", + "total": undefined, + }, + "onBreakdownFieldChange": [Function], + "onChartHiddenChange": [Function], + "onChartLoad": [Function], + "onTimeIntervalChange": [Function], + "onTopPanelHeightChange": [Function], + "onTotalHitsChange": [Function], + "request": Object { + "adapter": RequestAdapter { + "_events": Object {}, + "_eventsCount": 0, + "_maxListeners": undefined, + "requests": Map {}, + Symbol(kCapture): false, + }, + "searchSessionId": "123", + }, + } + `); + }); + + it('should return the correct props when an SQL query is used', () => { + const stateService = getStateService({ + initialState: { ...initialState, query: { sql: 'SELECT * FROM index' } }, + }); + const { result } = renderHook(() => useStateProps(stateService)); + expect(result.current).toMatchInlineSnapshot(` + Object { + "breakdown": undefined, + "chart": undefined, + "hits": undefined, + "onBreakdownFieldChange": [Function], + "onChartHiddenChange": [Function], + "onChartLoad": [Function], + "onTimeIntervalChange": [Function], + "onTopPanelHeightChange": [Function], + "onTotalHitsChange": [Function], + "request": Object { + "adapter": RequestAdapter { + "_events": Object {}, + "_eventsCount": 0, + "_maxListeners": undefined, + "requests": Map {}, + Symbol(kCapture): false, + }, + "searchSessionId": "123", + }, + } + `); + }); + + it('should return the correct props when a rollup data view is used', () => { + const stateService = getStateService({ + initialState: { + ...initialState, + dataView: { + ...dataViewWithTimefieldMock, + type: DataViewType.ROLLUP, + } as DataView, + }, + }); + const { result } = renderHook(() => useStateProps(stateService)); + expect(result.current).toMatchInlineSnapshot(` + Object { + "breakdown": undefined, + "chart": undefined, + "hits": Object { + "status": "uninitialized", + "total": undefined, + }, + "onBreakdownFieldChange": [Function], + "onChartHiddenChange": [Function], + "onChartLoad": [Function], + "onTimeIntervalChange": [Function], + "onTopPanelHeightChange": [Function], + "onTotalHitsChange": [Function], + "request": Object { + "adapter": RequestAdapter { + "_events": Object {}, + "_eventsCount": 0, + "_maxListeners": undefined, + "requests": Map {}, + Symbol(kCapture): false, + }, + "searchSessionId": "123", + }, + } + `); + }); + + it('should return the correct props when a non time based data view is used', () => { + const stateService = getStateService({ + initialState: { ...initialState, dataView: dataViewMock }, + }); + const { result } = renderHook(() => useStateProps(stateService)); + expect(result.current).toMatchInlineSnapshot(` + Object { + "breakdown": undefined, + "chart": undefined, + "hits": Object { + "status": "uninitialized", + "total": undefined, + }, + "onBreakdownFieldChange": [Function], + "onChartHiddenChange": [Function], + "onChartLoad": [Function], + "onTimeIntervalChange": [Function], + "onTopPanelHeightChange": [Function], + "onTotalHitsChange": [Function], + "request": Object { + "adapter": RequestAdapter { + "_events": Object {}, + "_eventsCount": 0, + "_maxListeners": undefined, + "requests": Map {}, + Symbol(kCapture): false, + }, + "searchSessionId": "123", + }, + } + `); + }); + + it('should execute callbacks correctly', () => { + const stateService = getStateService({ initialState }); + const { result } = renderHook(() => useStateProps(stateService)); + const { + onTopPanelHeightChange, + onTimeIntervalChange, + onTotalHitsChange, + onChartHiddenChange, + onChartLoad, + onBreakdownFieldChange, + } = result.current; + act(() => { + onTopPanelHeightChange(200); + }); + expect(stateService.setTopPanelHeight).toHaveBeenLastCalledWith(200); + act(() => { + onTimeIntervalChange('1d'); + }); + expect(stateService.setTimeInterval).toHaveBeenLastCalledWith('1d'); + act(() => { + onTotalHitsChange(UnifiedHistogramFetchStatus.complete, 100); + }); + expect(stateService.setTotalHits).toHaveBeenLastCalledWith({ + totalHitsStatus: UnifiedHistogramFetchStatus.complete, + totalHitsResult: 100, + }); + act(() => { + onChartHiddenChange(true); + }); + expect(stateService.setChartHidden).toHaveBeenLastCalledWith(true); + const requests = new RequestAdapter(); + act(() => { + onChartLoad({ adapters: { requests } }); + }); + expect(stateService.setLensRequestAdapter).toHaveBeenLastCalledWith(requests); + act(() => { + onBreakdownFieldChange({ name: 'field' } as DataViewField); + }); + expect(stateService.setBreakdownField).toHaveBeenLastCalledWith('field'); + }); + + it('should clear lensRequestAdapter when chart is hidden', () => { + const stateService = getStateService({ initialState }); + const hook = renderHook(() => useStateProps(stateService)); + (stateService.setLensRequestAdapter as jest.Mock).mockClear(); + expect(stateService.setLensRequestAdapter).not.toHaveBeenCalled(); + act(() => { + stateService.setChartHidden(true); + }); + hook.rerender(); + expect(stateService.setLensRequestAdapter).toHaveBeenLastCalledWith(undefined); + }); + + it('should clear lensRequestAdapter when chart is undefined', () => { + const stateService = getStateService({ initialState }); + const hook = renderHook(() => useStateProps(stateService)); + (stateService.setLensRequestAdapter as jest.Mock).mockClear(); + expect(stateService.setLensRequestAdapter).not.toHaveBeenCalled(); + act(() => { + stateService.setRequestParams({ dataView: dataViewMock }); + }); + hook.rerender(); + expect(stateService.setLensRequestAdapter).toHaveBeenLastCalledWith(undefined); + }); +}); diff --git a/src/plugins/unified_histogram/public/container/hooks/use_state_props.ts b/src/plugins/unified_histogram/public/container/hooks/use_state_props.ts new file mode 100644 index 00000000000000..56b2da38ac2fa9 --- /dev/null +++ b/src/plugins/unified_histogram/public/container/hooks/use_state_props.ts @@ -0,0 +1,162 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { DataViewField, DataViewType } from '@kbn/data-views-plugin/common'; +import { getAggregateQueryMode, isOfAggregateQueryType } from '@kbn/es-query'; +import { useCallback, useEffect, useMemo } from 'react'; +import { UnifiedHistogramChartLoadEvent, UnifiedHistogramFetchStatus } from '../../types'; +import type { UnifiedHistogramStateService } from '../services/state_service'; +import { + breakdownFieldSelector, + chartHiddenSelector, + dataViewSelector, + querySelector, + requestAdapterSelector, + searchSessionIdSelector, + timeIntervalSelector, + totalHitsResultSelector, + totalHitsStatusSelector, +} from '../utils/state_selectors'; +import { useStateSelector } from '../utils/use_state_selector'; + +export const useStateProps = (stateService: UnifiedHistogramStateService | undefined) => { + const breakdownField = useStateSelector(stateService?.state$, breakdownFieldSelector); + const chartHidden = useStateSelector(stateService?.state$, chartHiddenSelector); + const dataView = useStateSelector(stateService?.state$, dataViewSelector); + const query = useStateSelector(stateService?.state$, querySelector); + const requestAdapter = useStateSelector(stateService?.state$, requestAdapterSelector); + const searchSessionId = useStateSelector(stateService?.state$, searchSessionIdSelector); + const timeInterval = useStateSelector(stateService?.state$, timeIntervalSelector); + const totalHitsResult = useStateSelector(stateService?.state$, totalHitsResultSelector); + const totalHitsStatus = useStateSelector(stateService?.state$, totalHitsStatusSelector); + + /** + * Contexts + */ + + const isPlainRecord = useMemo(() => { + return query && isOfAggregateQueryType(query) && getAggregateQueryMode(query) === 'sql'; + }, [query]); + + const isTimeBased = useMemo(() => { + return dataView && dataView.type !== DataViewType.ROLLUP && dataView.isTimeBased(); + }, [dataView]); + + const hits = useMemo(() => { + if (isPlainRecord || totalHitsResult instanceof Error) { + return undefined; + } + + return { + status: totalHitsStatus, + total: totalHitsResult, + }; + }, [isPlainRecord, totalHitsResult, totalHitsStatus]); + + const chart = useMemo(() => { + if (isPlainRecord || !isTimeBased) { + return undefined; + } + + return { + hidden: chartHidden, + timeInterval, + }; + }, [chartHidden, isPlainRecord, isTimeBased, timeInterval]); + + const breakdown = useMemo(() => { + if (isPlainRecord || !isTimeBased) { + return undefined; + } + + return { + field: breakdownField ? dataView?.getFieldByName(breakdownField) : undefined, + }; + }, [breakdownField, dataView, isPlainRecord, isTimeBased]); + + const request = useMemo(() => { + return { + searchSessionId, + adapter: requestAdapter, + }; + }, [requestAdapter, searchSessionId]); + + /** + * Callbacks + */ + + const onTopPanelHeightChange = useCallback( + (topPanelHeight: number | undefined) => { + stateService?.setTopPanelHeight(topPanelHeight); + }, + [stateService] + ); + + const onTimeIntervalChange = useCallback( + (newTimeInterval: string) => { + stateService?.setTimeInterval(newTimeInterval); + }, + [stateService] + ); + + const onTotalHitsChange = useCallback( + (newTotalHitsStatus: UnifiedHistogramFetchStatus, newTotalHitsResult?: number | Error) => { + stateService?.setTotalHits({ + totalHitsStatus: newTotalHitsStatus, + totalHitsResult: newTotalHitsResult, + }); + }, + [stateService] + ); + + const onChartHiddenChange = useCallback( + (newChartHidden: boolean) => { + stateService?.setChartHidden(newChartHidden); + }, + [stateService] + ); + + const onChartLoad = useCallback( + (event: UnifiedHistogramChartLoadEvent) => { + // We need to store the Lens request adapter in order to inspect its requests + stateService?.setLensRequestAdapter(event.adapters.requests); + }, + [stateService] + ); + + const onBreakdownFieldChange = useCallback( + (newBreakdownField: DataViewField | undefined) => { + stateService?.setBreakdownField(newBreakdownField?.name); + }, + [stateService] + ); + + /** + * Effects + */ + + // Clear the Lens request adapter when the chart is hidden + useEffect(() => { + if (chartHidden || !chart) { + stateService?.setLensRequestAdapter(undefined); + } + }, [chart, chartHidden, stateService]); + + return { + hits, + chart, + breakdown, + request, + onTopPanelHeightChange, + onTimeIntervalChange, + onTotalHitsChange, + onChartHiddenChange, + onChartLoad, + onBreakdownFieldChange, + }; +}; diff --git a/src/plugins/unified_histogram/public/container/index.tsx b/src/plugins/unified_histogram/public/container/index.tsx new file mode 100644 index 00000000000000..f692401c4fdbfb --- /dev/null +++ b/src/plugins/unified_histogram/public/container/index.tsx @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { EuiDelayRender, EuiFlexGroup, EuiLoadingSpinner } from '@elastic/eui'; +import { withSuspense } from '@kbn/shared-ux-utility'; +import React, { lazy } from 'react'; + +export type { + UnifiedHistogramUninitializedApi, + UnifiedHistogramInitializedApi, + UnifiedHistogramApi, + UnifiedHistogramContainerProps, + UnifiedHistogramInitializeOptions, +} from './container'; +export type { UnifiedHistogramState, UnifiedHistogramStateOptions } from './services/state_service'; +export { + getChartHidden, + getTopPanelHeight, + getBreakdownField, + setChartHidden, + setTopPanelHeight, + setBreakdownField, +} from './utils/local_storage_utils'; + +const LazyUnifiedHistogramContainer = lazy(() => import('./container')); + +/** + * A resizable layout component with two panels that renders a histogram with a hits + * counter in the top panel, and a main display (data table, etc.) in the bottom panel. + * If all context props are left undefined, the layout will render in a single panel + * mode including only the main display. + */ +export const UnifiedHistogramContainer = withSuspense( + LazyUnifiedHistogramContainer, + + + + + +); diff --git a/src/plugins/unified_histogram/public/container/services/state_service.test.ts b/src/plugins/unified_histogram/public/container/services/state_service.test.ts new file mode 100644 index 00000000000000..a663672fb8356c --- /dev/null +++ b/src/plugins/unified_histogram/public/container/services/state_service.test.ts @@ -0,0 +1,259 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { Filter } from '@kbn/es-query'; +import { RequestAdapter } from '@kbn/inspector-plugin/common'; +import { UnifiedHistogramFetchStatus } from '../..'; +import { dataViewMock } from '../../__mocks__/data_view'; +import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; +import { unifiedHistogramServicesMock } from '../../__mocks__/services'; +import { + getChartHidden, + getTopPanelHeight, + getBreakdownField, + setChartHidden, + setTopPanelHeight, + setBreakdownField, +} from '../utils/local_storage_utils'; +import { createStateService, UnifiedHistogramState } from './state_service'; + +jest.mock('../utils/local_storage_utils', () => { + const originalModule = jest.requireActual('../utils/local_storage_utils'); + return { + ...originalModule, + getChartHidden: jest.fn(originalModule.getChartHidden), + getTopPanelHeight: jest.fn(originalModule.getTopPanelHeight), + getBreakdownField: jest.fn(originalModule.getBreakdownField), + setChartHidden: jest.fn(originalModule.setChartHidden), + setTopPanelHeight: jest.fn(originalModule.setTopPanelHeight), + setBreakdownField: jest.fn(originalModule.setBreakdownField), + }; +}); + +describe('UnifiedHistogramStateService', () => { + beforeEach(() => { + (getChartHidden as jest.Mock).mockClear(); + (getTopPanelHeight as jest.Mock).mockClear(); + (getBreakdownField as jest.Mock).mockClear(); + (setChartHidden as jest.Mock).mockClear(); + (setTopPanelHeight as jest.Mock).mockClear(); + (setBreakdownField as jest.Mock).mockClear(); + }); + + const initialState: UnifiedHistogramState = { + breakdownField: 'bytes', + chartHidden: false, + dataView: dataViewWithTimefieldMock, + filters: [], + lensRequestAdapter: new RequestAdapter(), + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + timeInterval: 'auto', + timeRange: { from: 'now-15m', to: 'now' }, + topPanelHeight: 100, + totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, + totalHitsResult: undefined, + }; + + it('should initialize state with default values', () => { + const stateService = createStateService({ + services: unifiedHistogramServicesMock, + initialState: { + dataView: dataViewWithTimefieldMock, + }, + }); + let state: UnifiedHistogramState | undefined; + stateService.state$.subscribe((s) => (state = s)); + expect(state).toEqual({ + breakdownField: undefined, + chartHidden: false, + dataView: dataViewWithTimefieldMock, + filters: [], + lensRequestAdapter: undefined, + query: unifiedHistogramServicesMock.data.query.queryString.getDefaultQuery(), + requestAdapter: undefined, + searchSessionId: undefined, + timeInterval: 'auto', + timeRange: unifiedHistogramServicesMock.data.query.timefilter.timefilter.getTimeDefaults(), + topPanelHeight: undefined, + totalHitsResult: undefined, + totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, + }); + }); + + it('should initialize state with initial values', () => { + const stateService = createStateService({ + services: unifiedHistogramServicesMock, + initialState, + }); + let state: UnifiedHistogramState | undefined; + stateService.state$.subscribe((s) => (state = s)); + expect(state).toEqual(initialState); + }); + + it('should get values from storage if localStorageKeyPrefix is provided', () => { + const localStorageKeyPrefix = 'test'; + createStateService({ + services: unifiedHistogramServicesMock, + localStorageKeyPrefix, + initialState, + }); + expect(getChartHidden as jest.Mock).toHaveBeenCalledWith( + unifiedHistogramServicesMock.storage, + localStorageKeyPrefix + ); + expect(getTopPanelHeight as jest.Mock).toHaveBeenCalledWith( + unifiedHistogramServicesMock.storage, + localStorageKeyPrefix + ); + expect(getBreakdownField as jest.Mock).toHaveBeenCalledWith( + unifiedHistogramServicesMock.storage, + localStorageKeyPrefix + ); + }); + + it('should not get values from storage if localStorageKeyPrefix is not provided', () => { + createStateService({ + services: unifiedHistogramServicesMock, + initialState, + }); + expect(getChartHidden as jest.Mock).not.toHaveBeenCalled(); + expect(getTopPanelHeight as jest.Mock).not.toHaveBeenCalled(); + expect(getBreakdownField as jest.Mock).not.toHaveBeenCalled(); + }); + + it('should update state', () => { + const stateService = createStateService({ + services: unifiedHistogramServicesMock, + initialState, + }); + let state: UnifiedHistogramState | undefined; + let newState = initialState; + stateService.state$.subscribe((s) => (state = s)); + expect(state).toEqual(newState); + stateService.setChartHidden(true); + newState = { ...newState, chartHidden: true }; + expect(state).toEqual(newState); + stateService.setTopPanelHeight(200); + newState = { ...newState, topPanelHeight: 200 }; + expect(state).toEqual(newState); + stateService.setBreakdownField('test'); + newState = { ...newState, breakdownField: 'test' }; + expect(state).toEqual(newState); + stateService.setTimeInterval('test'); + newState = { ...newState, timeInterval: 'test' }; + expect(state).toEqual(newState); + const requestParams = { + dataView: dataViewMock, + filters: ['test'] as unknown as Filter[], + query: { language: 'kuery', query: 'test' }, + requestAdapter: undefined, + searchSessionId: '321', + timeRange: { from: 'now-30m', to: 'now' }, + }; + stateService.setRequestParams(requestParams); + newState = { ...newState, ...requestParams }; + expect(state).toEqual(newState); + stateService.setLensRequestAdapter(undefined); + newState = { ...newState, lensRequestAdapter: undefined }; + expect(state).toEqual(newState); + stateService.setTotalHits({ + totalHitsStatus: UnifiedHistogramFetchStatus.complete, + totalHitsResult: 100, + }); + newState = { + ...newState, + totalHitsStatus: UnifiedHistogramFetchStatus.complete, + totalHitsResult: 100, + }; + expect(state).toEqual(newState); + }); + + it('should update state and save it to storage if localStorageKeyPrefix is provided', () => { + const localStorageKeyPrefix = 'test'; + const stateService = createStateService({ + services: unifiedHistogramServicesMock, + localStorageKeyPrefix, + initialState, + }); + let state: UnifiedHistogramState | undefined; + stateService.state$.subscribe((s) => (state = s)); + expect(state).toEqual(initialState); + stateService.setChartHidden(true); + stateService.setTopPanelHeight(200); + stateService.setBreakdownField('test'); + expect(state).toEqual({ + ...initialState, + chartHidden: true, + topPanelHeight: 200, + breakdownField: 'test', + }); + expect(setChartHidden as jest.Mock).toHaveBeenCalledWith( + unifiedHistogramServicesMock.storage, + localStorageKeyPrefix, + true + ); + expect(setTopPanelHeight as jest.Mock).toHaveBeenCalledWith( + unifiedHistogramServicesMock.storage, + localStorageKeyPrefix, + 200 + ); + expect(setBreakdownField as jest.Mock).toHaveBeenCalledWith( + unifiedHistogramServicesMock.storage, + localStorageKeyPrefix, + 'test' + ); + }); + + it('should not save state to storage if localStorageKeyPrefix is not provided', () => { + const stateService = createStateService({ + services: unifiedHistogramServicesMock, + initialState, + }); + let state: UnifiedHistogramState | undefined; + stateService.state$.subscribe((s) => (state = s)); + expect(state).toEqual(initialState); + stateService.setChartHidden(true); + stateService.setTopPanelHeight(200); + stateService.setBreakdownField('test'); + expect(state).toEqual({ + ...initialState, + chartHidden: true, + topPanelHeight: 200, + breakdownField: 'test', + }); + expect(setChartHidden as jest.Mock).not.toHaveBeenCalled(); + expect(setTopPanelHeight as jest.Mock).not.toHaveBeenCalled(); + expect(setBreakdownField as jest.Mock).not.toHaveBeenCalled(); + }); + + it('should not update total hits to loading when the current status is partial', () => { + const stateService = createStateService({ + services: unifiedHistogramServicesMock, + initialState: { + ...initialState, + totalHitsStatus: UnifiedHistogramFetchStatus.partial, + }, + }); + let state: UnifiedHistogramState | undefined; + stateService.state$.subscribe((s) => (state = s)); + expect(state).toEqual({ + ...initialState, + totalHitsStatus: UnifiedHistogramFetchStatus.partial, + }); + stateService.setTotalHits({ + totalHitsStatus: UnifiedHistogramFetchStatus.loading, + totalHitsResult: 100, + }); + expect(state).toEqual({ + ...initialState, + totalHitsStatus: UnifiedHistogramFetchStatus.partial, + }); + }); +}); diff --git a/src/plugins/unified_histogram/public/container/services/state_service.ts b/src/plugins/unified_histogram/public/container/services/state_service.ts new file mode 100644 index 00000000000000..5e8ad3b8e8b663 --- /dev/null +++ b/src/plugins/unified_histogram/public/container/services/state_service.ts @@ -0,0 +1,248 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { DataView } from '@kbn/data-views-plugin/common'; +import type { AggregateQuery, Filter, Query, TimeRange } from '@kbn/es-query'; +import type { RequestAdapter } from '@kbn/inspector-plugin/common'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { UnifiedHistogramFetchStatus } from '../..'; +import type { UnifiedHistogramServices } from '../../types'; +import { + getBreakdownField, + getChartHidden, + getTopPanelHeight, + setBreakdownField, + setChartHidden, + setTopPanelHeight, +} from '../utils/local_storage_utils'; + +/** + * The current state of the container + */ +export interface UnifiedHistogramState { + /** + * The current field used for the breakdown + */ + breakdownField: string | undefined; + /** + * Whether or not the chart is hidden + */ + chartHidden: boolean; + /** + * The current data view + */ + dataView: DataView; + /** + * The current filters + */ + filters: Filter[]; + /** + * The current Lens request adapter + */ + lensRequestAdapter: RequestAdapter | undefined; + /** + * The current query + */ + query: Query | AggregateQuery; + /** + * The current request adapter used for non-Lens requests + */ + requestAdapter: RequestAdapter | undefined; + /** + * The current search session ID + */ + searchSessionId: string | undefined; + /** + * The current time interval of the chart + */ + timeInterval: string; + /** + * The current time range + */ + timeRange: TimeRange; + /** + * The current top panel height + */ + topPanelHeight: number | undefined; + /** + * The current fetch status of the hits count request + */ + totalHitsStatus: UnifiedHistogramFetchStatus; + /** + * The current result of the hits count request + */ + totalHitsResult: number | Error | undefined; +} + +/** + * The options used to initialize the comntainer state + */ +export interface UnifiedHistogramStateOptions { + /** + * The services required by the Unified Histogram components + */ + services: UnifiedHistogramServices; + /** + * The prefix for the keys used in local storage -- leave undefined to avoid using local storage + */ + localStorageKeyPrefix?: string; + /** + * The initial state of the container + */ + initialState: Partial & Pick; +} + +/** + * The service used to manage the state of the container + */ +export interface UnifiedHistogramStateService { + /** + * The current state of the container + */ + state$: Observable; + /** + * Sets the current chart hidden state + */ + setChartHidden: (chartHidden: boolean) => void; + /** + * Sets the current top panel height + */ + setTopPanelHeight: (topPanelHeight: number | undefined) => void; + /** + * Sets the current breakdown field + */ + setBreakdownField: (breakdownField: string | undefined) => void; + /** + * Sets the current time interval + */ + setTimeInterval: (timeInterval: string) => void; + /** + * Sets the current request parameters + */ + setRequestParams: (requestParams: { + dataView?: DataView; + filters?: Filter[]; + query?: Query | AggregateQuery; + requestAdapter?: RequestAdapter | undefined; + searchSessionId?: string | undefined; + timeRange?: TimeRange; + }) => void; + /** + * Sets the current Lens request adapter + */ + setLensRequestAdapter: (lensRequestAdapter: RequestAdapter | undefined) => void; + /** + * Sets the current total hits status and result + */ + setTotalHits: (totalHits: { + totalHitsStatus: UnifiedHistogramFetchStatus; + totalHitsResult: number | Error | undefined; + }) => void; +} + +export const createStateService = ( + options: UnifiedHistogramStateOptions +): UnifiedHistogramStateService => { + const { services, localStorageKeyPrefix, initialState } = options; + + let initialChartHidden = false; + let initialTopPanelHeight: number | undefined; + let initialBreakdownField: string | undefined; + + if (localStorageKeyPrefix) { + initialChartHidden = getChartHidden(services.storage, localStorageKeyPrefix) ?? false; + initialTopPanelHeight = getTopPanelHeight(services.storage, localStorageKeyPrefix); + initialBreakdownField = getBreakdownField(services.storage, localStorageKeyPrefix); + } + + const state$ = new BehaviorSubject({ + breakdownField: initialBreakdownField, + chartHidden: initialChartHidden, + filters: [], + lensRequestAdapter: undefined, + query: services.data.query.queryString.getDefaultQuery(), + requestAdapter: undefined, + searchSessionId: undefined, + timeInterval: 'auto', + timeRange: services.data.query.timefilter.timefilter.getTimeDefaults(), + topPanelHeight: initialTopPanelHeight, + totalHitsResult: undefined, + totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, + ...initialState, + }); + + const updateState = (stateUpdate: Partial) => { + state$.next({ + ...state$.getValue(), + ...stateUpdate, + }); + }; + + return { + state$, + + setChartHidden: (chartHidden: boolean) => { + if (localStorageKeyPrefix) { + setChartHidden(services.storage, localStorageKeyPrefix, chartHidden); + } + + updateState({ chartHidden }); + }, + + setTopPanelHeight: (topPanelHeight: number | undefined) => { + if (localStorageKeyPrefix) { + setTopPanelHeight(services.storage, localStorageKeyPrefix, topPanelHeight); + } + + updateState({ topPanelHeight }); + }, + + setBreakdownField: (breakdownField: string | undefined) => { + if (localStorageKeyPrefix) { + setBreakdownField(services.storage, localStorageKeyPrefix, breakdownField); + } + + updateState({ breakdownField }); + }, + + setTimeInterval: (timeInterval: string) => { + updateState({ timeInterval }); + }, + + setRequestParams: (requestParams: { + dataView?: DataView; + filters?: Filter[]; + query?: Query | AggregateQuery; + requestAdapter?: RequestAdapter | undefined; + searchSessionId?: string | undefined; + timeRange?: TimeRange; + }) => { + updateState(requestParams); + }, + + setLensRequestAdapter: (lensRequestAdapter: RequestAdapter | undefined) => { + updateState({ lensRequestAdapter }); + }, + + setTotalHits: (totalHits: { + totalHitsStatus: UnifiedHistogramFetchStatus; + totalHitsResult: number | Error | undefined; + }) => { + // If we have a partial result already, we don't + // want to update the total hits back to loading + if ( + state$.getValue().totalHitsStatus === UnifiedHistogramFetchStatus.partial && + totalHits.totalHitsStatus === UnifiedHistogramFetchStatus.loading + ) { + return; + } + + updateState(totalHits); + }, + }; +}; diff --git a/src/plugins/unified_histogram/public/container/utils/local_storage_utils.test.ts b/src/plugins/unified_histogram/public/container/utils/local_storage_utils.test.ts new file mode 100644 index 00000000000000..5b0c8a7363a0a8 --- /dev/null +++ b/src/plugins/unified_histogram/public/container/utils/local_storage_utils.test.ts @@ -0,0 +1,73 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { Storage } from '@kbn/kibana-utils-plugin/public'; +import { + CHART_HIDDEN_KEY, + getBreakdownField, + getChartHidden, + getTopPanelHeight, + HISTOGRAM_BREAKDOWN_FIELD_KEY, + HISTOGRAM_HEIGHT_KEY, + setBreakdownField, + setChartHidden, + setTopPanelHeight, +} from './local_storage_utils'; + +describe('local storage utils', () => { + const localStorageKeyPrefix = 'testPrefix'; + const mockStorage = { + get: jest.fn((key: string) => { + switch (key) { + case `${localStorageKeyPrefix}:${CHART_HIDDEN_KEY}`: + return true; + case `${localStorageKeyPrefix}:${HISTOGRAM_HEIGHT_KEY}`: + return 100; + case `${localStorageKeyPrefix}:${HISTOGRAM_BREAKDOWN_FIELD_KEY}`: + return 'testField'; + default: + return undefined; + } + }), + set: jest.fn(), + }; + const storage = mockStorage as unknown as Storage; + + it('should execute get functions correctly', () => { + expect(getChartHidden(storage, localStorageKeyPrefix)).toEqual(true); + expect(mockStorage.get).toHaveBeenLastCalledWith( + `${localStorageKeyPrefix}:${CHART_HIDDEN_KEY}` + ); + expect(getTopPanelHeight(storage, localStorageKeyPrefix)).toEqual(100); + expect(mockStorage.get).toHaveBeenLastCalledWith( + `${localStorageKeyPrefix}:${HISTOGRAM_HEIGHT_KEY}` + ); + expect(getBreakdownField(storage, localStorageKeyPrefix)).toEqual('testField'); + expect(mockStorage.get).toHaveBeenLastCalledWith( + `${localStorageKeyPrefix}:${HISTOGRAM_BREAKDOWN_FIELD_KEY}` + ); + }); + + it('should execute set functions correctly', () => { + setChartHidden(storage, localStorageKeyPrefix, false); + expect(mockStorage.set).toHaveBeenLastCalledWith( + `${localStorageKeyPrefix}:${CHART_HIDDEN_KEY}`, + false + ); + setTopPanelHeight(storage, localStorageKeyPrefix, 200); + expect(mockStorage.set).toHaveBeenLastCalledWith( + `${localStorageKeyPrefix}:${HISTOGRAM_HEIGHT_KEY}`, + 200 + ); + setBreakdownField(storage, localStorageKeyPrefix, 'testField2'); + expect(mockStorage.set).toHaveBeenLastCalledWith( + `${localStorageKeyPrefix}:${HISTOGRAM_BREAKDOWN_FIELD_KEY}`, + 'testField2' + ); + }); +}); diff --git a/src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts b/src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts new file mode 100644 index 00000000000000..3b5f89e7d057e9 --- /dev/null +++ b/src/plugins/unified_histogram/public/container/utils/local_storage_utils.ts @@ -0,0 +1,73 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { Storage } from '@kbn/kibana-utils-plugin/public'; + +export const CHART_HIDDEN_KEY = 'chartHidden'; +export const HISTOGRAM_HEIGHT_KEY = 'histogramHeight'; +export const HISTOGRAM_BREAKDOWN_FIELD_KEY = 'histogramBreakdownField'; + +const getLocalStorageKey = (prefix: string, key: string) => `${prefix}:${key}`; + +/** + * Get the chart hidden state from local storage + */ +export const getChartHidden = ( + storage: Storage, + localStorageKeyPrefix: string +): boolean | undefined => storage.get(getLocalStorageKey(localStorageKeyPrefix, CHART_HIDDEN_KEY)); + +/** + * Get the top panel height from local storage + */ +export const getTopPanelHeight = ( + storage: Storage, + localStorageKeyPrefix: string +): number | undefined => + storage.get(getLocalStorageKey(localStorageKeyPrefix, HISTOGRAM_HEIGHT_KEY)) ?? undefined; + +/** + * Get the breakdown field from local storage + */ +export const getBreakdownField = ( + storage: Storage, + localStorageKeyPrefix: string +): string | undefined => + storage.get(getLocalStorageKey(localStorageKeyPrefix, HISTOGRAM_BREAKDOWN_FIELD_KEY)) ?? + undefined; + +/** + * Set the chart hidden state in local storage + */ +export const setChartHidden = ( + storage: Storage, + localStorageKeyPrefix: string, + chartHidden: boolean | undefined +) => storage.set(getLocalStorageKey(localStorageKeyPrefix, CHART_HIDDEN_KEY), chartHidden); + +/** + * Set the top panel height in local storage + */ +export const setTopPanelHeight = ( + storage: Storage, + localStorageKeyPrefix: string, + topPanelHeight: number | undefined +) => storage.set(getLocalStorageKey(localStorageKeyPrefix, HISTOGRAM_HEIGHT_KEY), topPanelHeight); + +/** + * Set the breakdown field in local storage + */ +export const setBreakdownField = ( + storage: Storage, + localStorageKeyPrefix: string, + breakdownField: string | undefined +) => + storage.set( + getLocalStorageKey(localStorageKeyPrefix, HISTOGRAM_BREAKDOWN_FIELD_KEY), + breakdownField + ); diff --git a/src/plugins/unified_histogram/public/container/utils/state_selectors.ts b/src/plugins/unified_histogram/public/container/utils/state_selectors.ts new file mode 100644 index 00000000000000..87f425ae64b452 --- /dev/null +++ b/src/plugins/unified_histogram/public/container/utils/state_selectors.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { UnifiedHistogramState } from '../services/state_service'; + +export const breakdownFieldSelector = (state: UnifiedHistogramState) => state.breakdownField; +export const chartHiddenSelector = (state: UnifiedHistogramState) => state.chartHidden; +export const dataViewSelector = (state: UnifiedHistogramState) => state.dataView; +export const filtersSelector = (state: UnifiedHistogramState) => state.filters; +export const querySelector = (state: UnifiedHistogramState) => state.query; +export const requestAdapterSelector = (state: UnifiedHistogramState) => state.requestAdapter; +export const searchSessionIdSelector = (state: UnifiedHistogramState) => state.searchSessionId; +export const timeIntervalSelector = (state: UnifiedHistogramState) => state.timeInterval; +export const timeRangeSelector = (state: UnifiedHistogramState) => state.timeRange; +export const topPanelHeightSelector = (state: UnifiedHistogramState) => state.topPanelHeight; +export const totalHitsResultSelector = (state: UnifiedHistogramState) => state.totalHitsResult; +export const totalHitsStatusSelector = (state: UnifiedHistogramState) => state.totalHitsStatus; diff --git a/src/plugins/unified_histogram/public/container/utils/use_state_selector.ts b/src/plugins/unified_histogram/public/container/utils/use_state_selector.ts new file mode 100644 index 00000000000000..5920a34f90acb8 --- /dev/null +++ b/src/plugins/unified_histogram/public/container/utils/use_state_selector.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { Observable } from 'rxjs'; +import { distinctUntilChanged, map } from 'rxjs/operators'; +import { useEffect, useState } from 'react'; + +export const useStateSelector = ( + state$: Observable | undefined, + selector: (state: S) => R, + equalityFn?: (arg0: R, arg1: R) => boolean +) => { + const [state, setState] = useState(); + + useEffect(() => { + const subscription = state$ + ?.pipe(map(selector), distinctUntilChanged(equalityFn)) + .subscribe(setState); + + return () => { + subscription?.unsubscribe(); + }; + }, [equalityFn, selector, state$]); + + return state; +}; diff --git a/src/plugins/unified_histogram/public/index.ts b/src/plugins/unified_histogram/public/index.ts index 97cebb51fdc2f4..b183a5a1f8180a 100644 --- a/src/plugins/unified_histogram/public/index.ts +++ b/src/plugins/unified_histogram/public/index.ts @@ -8,19 +8,28 @@ import { UnifiedHistogramPublicPlugin } from './plugin'; -export type { UnifiedHistogramLayoutProps } from './layout'; -export { UnifiedHistogramLayout } from './layout'; +export type { + UnifiedHistogramUninitializedApi, + UnifiedHistogramInitializedApi, + UnifiedHistogramApi, + UnifiedHistogramContainerProps, + UnifiedHistogramInitializeOptions, + UnifiedHistogramState, + UnifiedHistogramStateOptions, +} from './container'; +export { + UnifiedHistogramContainer, + getChartHidden, + getTopPanelHeight, + getBreakdownField, + setChartHidden, + setTopPanelHeight, + setBreakdownField, +} from './container'; export type { UnifiedHistogramServices, - UnifiedHistogramRequestContext, - UnifiedHistogramHitsContext, - UnifiedHistogramChartContext, - UnifiedHistogramBreakdownContext, UnifiedHistogramChartLoadEvent, UnifiedHistogramAdapters, - UnifiedHistogramRefetchMessage, - UnifiedHistogramInputMessage, - UnifiedHistogramInput$, } from './types'; export { UnifiedHistogramFetchStatus } from './types'; diff --git a/src/plugins/unified_histogram/public/layout/index.ts b/src/plugins/unified_histogram/public/layout/index.ts new file mode 100644 index 00000000000000..560ea44483c201 --- /dev/null +++ b/src/plugins/unified_histogram/public/layout/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type { UnifiedHistogramLayoutProps } from './layout'; +export { UnifiedHistogramLayout } from './layout'; diff --git a/src/plugins/unified_histogram/public/layout/index.tsx b/src/plugins/unified_histogram/public/layout/index.tsx deleted file mode 100644 index a729bdff0871c9..00000000000000 --- a/src/plugins/unified_histogram/public/layout/index.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { EuiDelayRender, EuiFlexGroup, EuiLoadingSpinner } from '@elastic/eui'; -import { withSuspense } from '@kbn/shared-ux-utility'; -import React, { lazy } from 'react'; - -export type { UnifiedHistogramLayoutProps } from './layout'; - -const LazyUnifiedHistogramLayout = lazy(() => import('./layout')); - -/** - * A resizable layout component with two panels that renders a histogram with a hits - * counter in the top panel, and a main display (data table, etc.) in the bottom panel. - * If all context props are left undefined, the layout will render in a single panel - * mode including only the main display. - */ -export const UnifiedHistogramLayout = withSuspense( - LazyUnifiedHistogramLayout, - - - - - -); diff --git a/src/plugins/unified_histogram/public/layout/layout.tsx b/src/plugins/unified_histogram/public/layout/layout.tsx index db6a161a81b7e2..5167bbf63f8307 100644 --- a/src/plugins/unified_histogram/public/layout/layout.tsx +++ b/src/plugins/unified_histogram/public/layout/layout.tsx @@ -12,7 +12,7 @@ import React, { useMemo } from 'react'; import { createHtmlPortalNode, InPortal, OutPortal } from 'react-reverse-portal'; import { css } from '@emotion/css'; import type { DataView, DataViewField } from '@kbn/data-views-plugin/public'; -import type { LensEmbeddableInput, TypedLensByValueInput } from '@kbn/lens-plugin/public'; +import type { LensEmbeddableInput } from '@kbn/lens-plugin/public'; import type { AggregateQuery, Filter, Query, TimeRange } from '@kbn/es-query'; import { Chart } from '../chart'; import { Panels, PANELS_MODE } from '../panels'; @@ -53,7 +53,7 @@ export interface UnifiedHistogramLayoutProps extends PropsWithChildren */ timeRange?: TimeRange; /** - * Context object for requests made by unified histogram components -- optional + * Context object for requests made by Unified Histogram components -- optional */ request?: UnifiedHistogramRequestContext; /** @@ -97,13 +97,13 @@ export interface UnifiedHistogramLayoutProps extends PropsWithChildren */ input$?: UnifiedHistogramInput$; /** - * Callback to update the topPanelHeight prop when a resize is triggered + * Callback to get the relative time range, useful when passing an absolute time range (e.g. for edit visualization button) */ - onTopPanelHeightChange?: (topPanelHeight: number | undefined) => void; + getRelativeTimeRange?: () => TimeRange; /** - * Callback to invoke when the user clicks the edit visualization button -- leave undefined to hide the button + * Callback to update the topPanelHeight prop when a resize is triggered */ - onEditVisualization?: (lensAttributes: TypedLensByValueInput['attributes']) => void; + onTopPanelHeightChange?: (topPanelHeight: number | undefined) => void; /** * Callback to hide or show the chart -- should set {@link UnifiedHistogramChartContext.hidden} to chartHidden */ @@ -153,8 +153,8 @@ export const UnifiedHistogramLayout = ({ disableTriggers, disabledActions, input$, + getRelativeTimeRange, onTopPanelHeightChange, - onEditVisualization, onChartHiddenChange, onTimeIntervalChange, onBreakdownFieldChange, @@ -222,7 +222,7 @@ export const UnifiedHistogramLayout = ({ disableTriggers={disableTriggers} disabledActions={disabledActions} input$={input$} - onEditVisualization={onEditVisualization} + getRelativeTimeRange={getRelativeTimeRange} onResetChartHeight={onResetChartHeight} onChartHiddenChange={onChartHiddenChange} onTimeIntervalChange={onTimeIntervalChange} @@ -248,6 +248,3 @@ export const UnifiedHistogramLayout = ({ ); }; - -// eslint-disable-next-line import/no-default-export -export default UnifiedHistogramLayout; diff --git a/src/plugins/unified_histogram/public/mocks.ts b/src/plugins/unified_histogram/public/mocks.ts new file mode 100644 index 00000000000000..0258b9900bf97e --- /dev/null +++ b/src/plugins/unified_histogram/public/mocks.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { Observable } from 'rxjs'; +import type { UnifiedHistogramInitializedApi, UnifiedHistogramUninitializedApi } from './container'; + +export type MockUnifiedHistogramApi = Omit & + Omit & { initialized: boolean }; + +export const createMockUnifiedHistogramApi = ( + { initialized }: { initialized: boolean } = { initialized: false } +) => { + const api: MockUnifiedHistogramApi = { + initialized, + initialize: jest.fn(() => { + api.initialized = true; + }), + state$: new Observable(), + setChartHidden: jest.fn(), + setTopPanelHeight: jest.fn(), + setBreakdownField: jest.fn(), + setTimeInterval: jest.fn(), + setRequestParams: jest.fn(), + setTotalHits: jest.fn(), + refetch: jest.fn(), + }; + return api; +}; diff --git a/src/plugins/unified_histogram/public/types.ts b/src/plugins/unified_histogram/public/types.ts index f77bfa1bbdbeeb..d7eacdf9d5c446 100644 --- a/src/plugins/unified_histogram/public/types.ts +++ b/src/plugins/unified_histogram/public/types.ts @@ -15,9 +15,11 @@ import type { DataViewField } from '@kbn/data-views-plugin/public'; import type { RequestAdapter } from '@kbn/inspector-plugin/public'; import type { DefaultInspectorAdapters } from '@kbn/expressions-plugin/common'; import type { Subject } from 'rxjs'; +import type { UiActionsStart } from '@kbn/ui-actions-plugin/public'; +import type { Storage } from '@kbn/kibana-utils-plugin/public'; /** - * The fetch status of a unified histogram request + * The fetch status of a Unified Histogram request */ export enum UnifiedHistogramFetchStatus { uninitialized = 'uninitialized', @@ -28,14 +30,16 @@ export enum UnifiedHistogramFetchStatus { } /** - * The services required by the unified histogram components + * The services required by the Unified Histogram components */ export interface UnifiedHistogramServices { data: DataPublicPluginStart; theme: Theme; + uiActions: UiActionsStart; uiSettings: IUiSettingsClient; fieldFormats: FieldFormatsStart; lens: LensPublicStart; + storage: Storage; } /** @@ -47,6 +51,9 @@ export interface UnifiedHistogramBucketInterval { scale?: number; } +/** + * The adapters passed up from Lens + */ export type UnifiedHistogramAdapters = Partial; /** @@ -60,7 +67,7 @@ export interface UnifiedHistogramChartLoadEvent { } /** - * Context object for requests made by unified histogram components + * Context object for requests made by Unified Histogram components */ export interface UnifiedHistogramRequestContext { /** diff --git a/src/plugins/unified_histogram/tsconfig.json b/src/plugins/unified_histogram/tsconfig.json index eb7da12b70b29b..0e0f18ff9dd56a 100644 --- a/src/plugins/unified_histogram/tsconfig.json +++ b/src/plugins/unified_histogram/tsconfig.json @@ -22,6 +22,8 @@ "@kbn/datemath", "@kbn/core-ui-settings-browser-mocks", "@kbn/shared-ux-utility", + "@kbn/ui-actions-plugin", + "@kbn/kibana-utils-plugin", ], "exclude": [ "target/**/*", diff --git a/src/plugins/unified_search/kibana.json b/src/plugins/unified_search/kibana.json deleted file mode 100755 index d5db465b2b83dd..00000000000000 --- a/src/plugins/unified_search/kibana.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id": "unifiedSearch", - "version": "1.0.0", - "description": "Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience.", - "kibanaVersion": "kibana", - "owner": { - "name": "Visualizations", - "githubTeam": "kibana-visualizations" - }, - "server": true, - "ui": true, - "requiredPlugins": ["dataViews", "data", "uiActions", "screenshotMode"], - "requiredBundles": ["kibanaUtils", "kibanaReact", "data"], - "optionalPlugins": ["usageCollection"], - "serviceFolders": ["autocomplete"], - "configPath": ["unifiedSearch"] -} diff --git a/src/plugins/unified_search/kibana.jsonc b/src/plugins/unified_search/kibana.jsonc new file mode 100644 index 00000000000000..008b9d9fe03d2b --- /dev/null +++ b/src/plugins/unified_search/kibana.jsonc @@ -0,0 +1,31 @@ +{ + "type": "plugin", + "id": "@kbn/unified-search-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience.", + "serviceFolders": [ + "autocomplete" + ], + "plugin": { + "id": "unifiedSearch", + "server": true, + "browser": true, + "configPath": [ + "unifiedSearch" + ], + "requiredPlugins": [ + "dataViews", + "data", + "uiActions", + "screenshotMode" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact", + "data" + ] + } +} diff --git a/src/plugins/unified_search/public/filter_bar/filter_editor/phrase_value_input.tsx b/src/plugins/unified_search/public/filter_bar/filter_editor/phrase_value_input.tsx index ff5fbc97477ca2..ae87024bb61a9a 100644 --- a/src/plugins/unified_search/public/filter_bar/filter_editor/phrase_value_input.tsx +++ b/src/plugins/unified_search/public/filter_bar/filter_editor/phrase_value_input.tsx @@ -78,6 +78,10 @@ class PhraseValueInputUI extends PhraseSuggestorUI { id: 'unifiedSearch.filter.filterEditor.valueSelectPlaceholder', defaultMessage: 'Select a value', })} + aria-label={intl.formatMessage({ + id: 'unifiedSearch.filter.filterEditor.valueSelectPlaceholder', + defaultMessage: 'Select a value', + })} options={options} getLabel={(option) => option} selectedOptions={value ? [valueAsStr] : []} diff --git a/src/plugins/unified_search/public/filter_bar/filter_editor/phrases_values_input.tsx b/src/plugins/unified_search/public/filter_bar/filter_editor/phrases_values_input.tsx index c1cb11f8165356..336849c4ee65a1 100644 --- a/src/plugins/unified_search/public/filter_bar/filter_editor/phrases_values_input.tsx +++ b/src/plugins/unified_search/public/filter_bar/filter_editor/phrases_values_input.tsx @@ -54,6 +54,10 @@ class PhrasesValuesInputUI extends PhraseSuggestorUI { id: 'unifiedSearch.filter.filterEditor.valuesSelectPlaceholder', defaultMessage: 'Select values', })} + aria-label={intl.formatMessage({ + id: 'unifiedSearch.filter.filterEditor.valuesSelectPlaceholder', + defaultMessage: 'Select values', + })} delimiter="," isCaseSensitive={true} options={options} diff --git a/src/plugins/unified_search/public/filter_bar/filter_editor/value_input_type.tsx b/src/plugins/unified_search/public/filter_bar/filter_editor/value_input_type.tsx index fc53c0e4631f7f..f12c29897ff506 100644 --- a/src/plugins/unified_search/public/filter_bar/filter_editor/value_input_type.tsx +++ b/src/plugins/unified_search/public/filter_bar/filter_editor/value_input_type.tsx @@ -50,6 +50,7 @@ class ValueInputTypeUI extends Component { disabled={this.props.disabled} fullWidth={this.props.fullWidth} placeholder={this.props.placeholder} + aria-label={this.props.placeholder} value={value} onChange={this.onChange} isInvalid={!validateParams(value, this.props.field)} @@ -67,6 +68,7 @@ class ValueInputTypeUI extends Component { disabled={this.props.disabled} fullWidth={this.props.fullWidth} placeholder={this.props.placeholder} + aria-label={this.props.placeholder} value={this.getValueForNumberField(value)} onChange={this.onChange} controlOnly={this.props.controlOnly} @@ -83,6 +85,7 @@ class ValueInputTypeUI extends Component { disabled={this.props.disabled} fullWidth={this.props.fullWidth} placeholder={this.props.placeholder} + aria-label={this.props.placeholder} value={value} onChange={this.onChange} onBlur={this.onBlur} @@ -100,6 +103,7 @@ class ValueInputTypeUI extends Component { fullWidth={this.props.fullWidth} disabled={this.props.disabled} placeholder={this.props.placeholder} + aria-label={this.props.placeholder} value={value} onChange={this.onChange} isInvalid={!isEmpty(value) && !validateParams(value, this.props.field)} @@ -132,6 +136,7 @@ class ValueInputTypeUI extends Component { ]} value={value} onChange={this.onBoolChange} + aria-label={this.props.placeholder} className={this.props.className} fullWidth={this.props.fullWidth} compressed={this.props.compressed} diff --git a/src/plugins/unified_search/public/filters_builder/filter_item/field_input.tsx b/src/plugins/unified_search/public/filters_builder/filter_item/field_input.tsx index cbfe059b092635..7d2f3ac8cfa3da 100644 --- a/src/plugins/unified_search/public/filters_builder/filter_item/field_input.tsx +++ b/src/plugins/unified_search/public/filters_builder/filter_item/field_input.tsx @@ -84,6 +84,7 @@ export function FieldInput({ field, dataView, onHandleField }: FieldInputProps) placeholder={strings.getFieldSelectPlaceholderLabel()} sortMatchesBy="startsWith" singleSelection={{ asPlainText: true }} + aria-label={strings.getFieldSelectPlaceholderLabel()} isClearable={false} compressed fullWidth diff --git a/src/plugins/unified_search/public/filters_builder/filter_item/filter_item.tsx b/src/plugins/unified_search/public/filters_builder/filter_item/filter_item.tsx index b24429860d4160..ac8fefa26a99fb 100644 --- a/src/plugins/unified_search/public/filters_builder/filter_item/filter_item.tsx +++ b/src/plugins/unified_search/public/filters_builder/filter_item/filter_item.tsx @@ -240,6 +240,7 @@ export function FilterItem({ })} > ({ compressed isDisabled={!field || disabled} placeholder={strings.getOperatorSelectPlaceholderSelectLabel()} + aria-label={strings.getOperatorSelectPlaceholderSelectLabel()} options={operators} selectedOptions={operator ? [operator] : []} getLabel={({ message }) => message} diff --git a/src/plugins/unified_search/public/mocks/mocks.ts b/src/plugins/unified_search/public/mocks/mocks.ts index 8507de97984804..d6140fe0ccc99a 100644 --- a/src/plugins/unified_search/public/mocks/mocks.ts +++ b/src/plugins/unified_search/public/mocks/mocks.ts @@ -36,6 +36,7 @@ const createStartContract = (): Start => { IndexPatternSelect: jest.fn(), SearchBar: jest.fn().mockReturnValue(null), AggregateQuerySearchBar: jest.fn().mockReturnValue(null), + FiltersBuilderLazy: jest.fn(), }, }; }; diff --git a/src/plugins/unified_search/public/plugin.ts b/src/plugins/unified_search/public/plugin.ts index 9149030602866c..5aeef71e82d8bb 100755 --- a/src/plugins/unified_search/public/plugin.ts +++ b/src/plugins/unified_search/public/plugin.ts @@ -24,6 +24,7 @@ import type { import { createFilterAction } from './actions/apply_filter_action'; import { createUpdateFilterReferencesAction } from './actions/update_filter_references_action'; import { ACTION_GLOBAL_APPLY_FILTER, UPDATE_FILTER_REFERENCES_ACTION } from './actions'; +import { FiltersBuilderLazy } from './filters_builder'; import './index.scss'; @@ -92,6 +93,7 @@ export class UnifiedSearchPublicPlugin IndexPatternSelect: createIndexPatternSelect(dataViews), SearchBar, AggregateQuerySearchBar: SearchBar, + FiltersBuilderLazy, }, autocomplete: autocompleteStart, }; diff --git a/src/plugins/unified_search/public/types.ts b/src/plugins/unified_search/public/types.ts index 5142cd323c136e..557c31865a4175 100755 --- a/src/plugins/unified_search/public/types.ts +++ b/src/plugins/unified_search/public/types.ts @@ -18,6 +18,7 @@ import { CoreStart, DocLinksStart } from '@kbn/core/public'; import { IStorageWrapper } from '@kbn/kibana-utils-plugin/public'; import { AutocompleteSetup, AutocompleteStart } from './autocomplete'; import type { IndexPatternSelectProps, StatefulSearchBarProps } from '.'; +import type { FiltersBuilderProps } from './filters_builder/filters_builder'; export interface UnifiedSearchSetupDependencies { uiActions: UiActionsSetup; @@ -46,6 +47,7 @@ export interface UnifiedSearchPublicPluginStartUi { AggregateQuerySearchBar: ( props: StatefulSearchBarProps ) => React.ReactElement; + FiltersBuilderLazy: React.ComponentType; } /** diff --git a/src/plugins/url_forwarding/kibana.json b/src/plugins/url_forwarding/kibana.json deleted file mode 100644 index 12132c2a096669..00000000000000 --- a/src/plugins/url_forwarding/kibana.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "urlForwarding", - "version": "kibana", - "server": false, - "ui": true, - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - } -} diff --git a/src/plugins/url_forwarding/kibana.jsonc b/src/plugins/url_forwarding/kibana.jsonc new file mode 100644 index 00000000000000..3eede9eb9effc3 --- /dev/null +++ b/src/plugins/url_forwarding/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/url-forwarding-plugin", + "owner": "@elastic/kibana-visualizations", + "plugin": { + "id": "urlForwarding", + "server": false, + "browser": true + } +} diff --git a/src/plugins/usage_collection/kibana.json b/src/plugins/usage_collection/kibana.json deleted file mode 100644 index de7c28ef905570..00000000000000 --- a/src/plugins/usage_collection/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "usageCollection", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "configPath": ["usageCollection"], - "version": "kibana", - "server": true, - "ui": true, - "requiredBundles": [ - "kibanaUtils" - ] -} diff --git a/src/plugins/usage_collection/kibana.jsonc b/src/plugins/usage_collection/kibana.jsonc new file mode 100644 index 00000000000000..70e071c7aee67d --- /dev/null +++ b/src/plugins/usage_collection/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/usage-collection-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "usageCollection", + "server": true, + "browser": true, + "configPath": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils" + ] + } +} diff --git a/src/plugins/vis_default_editor/kibana.json b/src/plugins/vis_default_editor/kibana.json deleted file mode 100644 index e5385724cf4a36..00000000000000 --- a/src/plugins/vis_default_editor/kibana.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "visDefaultEditor", - "version": "kibana", - "ui": true, - "requiredPlugins": ["dataViews"], - "optionalPlugins": ["visualizations"], - "requiredBundles": [ - "unifiedSearch", - "kibanaUtils", - "kibanaReact", - "data", - "fieldFormats", - "discover", - "esUiShared", - "visualizations" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "The default editor used in most aggregation-based visualizations." -} diff --git a/src/plugins/vis_default_editor/kibana.jsonc b/src/plugins/vis_default_editor/kibana.jsonc new file mode 100644 index 00000000000000..66de46c25ac46f --- /dev/null +++ b/src/plugins/vis_default_editor/kibana.jsonc @@ -0,0 +1,27 @@ +{ + "type": "plugin", + "id": "@kbn/vis-default-editor-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "The default editor used in most aggregation-based visualizations.", + "plugin": { + "id": "visDefaultEditor", + "server": false, + "browser": true, + "requiredPlugins": [ + "dataViews" + ], + "optionalPlugins": [ + "visualizations" + ], + "requiredBundles": [ + "unifiedSearch", + "kibanaUtils", + "kibanaReact", + "data", + "fieldFormats", + "discover", + "esUiShared", + "visualizations" + ] + } +} diff --git a/src/plugins/vis_type_markdown/kibana.json b/src/plugins/vis_type_markdown/kibana.json deleted file mode 100644 index 49744ed1f74350..00000000000000 --- a/src/plugins/vis_type_markdown/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "visTypeMarkdown", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds a markdown visualization type", - "version": "kibana", - "ui": true, - "server": true, - "requiredPlugins": ["expressions", "visualizations"], - "requiredBundles": ["expressions", "kibanaReact", "visDefaultEditor", "visualizations"] -} diff --git a/src/plugins/vis_type_markdown/kibana.jsonc b/src/plugins/vis_type_markdown/kibana.jsonc new file mode 100644 index 00000000000000..476dcc0605ad40 --- /dev/null +++ b/src/plugins/vis_type_markdown/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-markdown-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds a markdown visualization type", + "plugin": { + "id": "visTypeMarkdown", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "visualizations" + ], + "requiredBundles": [ + "expressions", + "kibanaReact", + "visDefaultEditor", + "visualizations" + ] + } +} diff --git a/src/plugins/vis_types/gauge/kibana.json b/src/plugins/vis_types/gauge/kibana.json deleted file mode 100755 index 942fa032e1e0a2..00000000000000 --- a/src/plugins/vis_types/gauge/kibana.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "visTypeGauge", - "version": "1.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "charts", - "data", - "expressions", - "visualizations", - "dataViews" - ], - "requiredBundles": [ - "visDefaultEditor", - "kibanaUtils" - ], - "optionalPlugins": [ - "expressionGauge" - ], - "extraPublicDirs": [ - "common/index" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Contains the gauge chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting." -} \ No newline at end of file diff --git a/src/plugins/vis_types/gauge/kibana.jsonc b/src/plugins/vis_types/gauge/kibana.jsonc new file mode 100644 index 00000000000000..14347a2e62ce3c --- /dev/null +++ b/src/plugins/vis_types/gauge/kibana.jsonc @@ -0,0 +1,28 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-gauge-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Contains the gauge chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting.", + "plugin": { + "id": "visTypeGauge", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "data", + "expressions", + "visualizations", + "dataViews" + ], + "optionalPlugins": [ + "expressionGauge" + ], + "requiredBundles": [ + "visDefaultEditor", + "kibanaUtils" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/vis_types/heatmap/kibana.json b/src/plugins/vis_types/heatmap/kibana.json deleted file mode 100644 index 077e9015b00af5..00000000000000 --- a/src/plugins/vis_types/heatmap/kibana.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "visTypeHeatmap", - "version": "kibana", - "ui": true, - "server": true, - "requiredPlugins": [ - "charts", - "data", - "expressions", - "visualizations", - "usageCollection", - "fieldFormats", - "dataViews" - ], - "requiredBundles": [ - "visDefaultEditor", - "kibanaUtils" - ], - "extraPublicDirs": [ - "common/index" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Contains the heatmap implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy heatmap charts library advanced setting." -} \ No newline at end of file diff --git a/src/plugins/vis_types/heatmap/kibana.jsonc b/src/plugins/vis_types/heatmap/kibana.jsonc new file mode 100644 index 00000000000000..f658f744526dd3 --- /dev/null +++ b/src/plugins/vis_types/heatmap/kibana.jsonc @@ -0,0 +1,27 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-heatmap-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Contains the heatmap implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy heatmap charts library advanced setting.", + "plugin": { + "id": "visTypeHeatmap", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "data", + "expressions", + "visualizations", + "usageCollection", + "fieldFormats", + "dataViews" + ], + "requiredBundles": [ + "visDefaultEditor", + "kibanaUtils" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/vis_types/metric/kibana.json b/src/plugins/vis_types/metric/kibana.json deleted file mode 100644 index 07b3586b950e00..00000000000000 --- a/src/plugins/vis_types/metric/kibana.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "id": "visTypeMetric", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "data", - "visualizations", - "charts", - "expressions", - "dataViews" - ], - "requiredBundles": [ - "visDefaultEditor", - "kibanaUtils" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Registers the Metric aggregation-based visualization." -} \ No newline at end of file diff --git a/src/plugins/vis_types/metric/kibana.jsonc b/src/plugins/vis_types/metric/kibana.jsonc new file mode 100644 index 00000000000000..539e4318a93624 --- /dev/null +++ b/src/plugins/vis_types/metric/kibana.jsonc @@ -0,0 +1,22 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-metric-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Registers the Metric aggregation-based visualization.", + "plugin": { + "id": "visTypeMetric", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "visualizations", + "charts", + "expressions", + "dataViews" + ], + "requiredBundles": [ + "visDefaultEditor", + "kibanaUtils" + ] + } +} diff --git a/src/plugins/vis_types/pie/kibana.json b/src/plugins/vis_types/pie/kibana.json deleted file mode 100644 index 13bc61667dfd73..00000000000000 --- a/src/plugins/vis_types/pie/kibana.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "visTypePie", - "version": "kibana", - "ui": true, - "server": true, - "requiredPlugins": [ - "charts", - "data", - "expressions", - "visualizations", - "usageCollection", - "expressionPartitionVis", - "dataViews" - ], - "requiredBundles": [ - "visDefaultEditor", - "kibanaUtils" - ], - "extraPublicDirs": [ - "common/index" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Contains the pie chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting." -} \ No newline at end of file diff --git a/src/plugins/vis_types/pie/kibana.jsonc b/src/plugins/vis_types/pie/kibana.jsonc new file mode 100644 index 00000000000000..85364316fc19da --- /dev/null +++ b/src/plugins/vis_types/pie/kibana.jsonc @@ -0,0 +1,27 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-pie-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Contains the pie chart implementation using the elastic-charts library. The goal is to eventually deprecate the old implementation and keep only this. Until then, the library used is defined by the Legacy charts library advanced setting.", + "plugin": { + "id": "visTypePie", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "data", + "expressions", + "visualizations", + "usageCollection", + "expressionPartitionVis", + "dataViews" + ], + "requiredBundles": [ + "visDefaultEditor", + "kibanaUtils" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/vis_types/table/kibana.json b/src/plugins/vis_types/table/kibana.json deleted file mode 100644 index ba8b90e7df337f..00000000000000 --- a/src/plugins/vis_types/table/kibana.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "id": "visTypeTable", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "expressions", - "visualizations", - "fieldFormats", - "dataViews", - "usageCollection" - ], - "requiredBundles": [ - "data", - "kibanaUtils", - "kibanaReact", - "share", - "visDefaultEditor" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Registers the datatable aggregation-based visualization." -} diff --git a/src/plugins/vis_types/table/kibana.jsonc b/src/plugins/vis_types/table/kibana.jsonc new file mode 100644 index 00000000000000..de4712484d07d2 --- /dev/null +++ b/src/plugins/vis_types/table/kibana.jsonc @@ -0,0 +1,25 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-table-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Registers the datatable aggregation-based visualization.", + "plugin": { + "id": "visTypeTable", + "server": true, + "browser": true, + "requiredPlugins": [ + "expressions", + "visualizations", + "fieldFormats", + "dataViews", + "usageCollection" + ], + "requiredBundles": [ + "data", + "kibanaUtils", + "kibanaReact", + "share", + "visDefaultEditor" + ] + } +} diff --git a/src/plugins/vis_types/tagcloud/kibana.json b/src/plugins/vis_types/tagcloud/kibana.json deleted file mode 100644 index 53e6141b9fb0da..00000000000000 --- a/src/plugins/vis_types/tagcloud/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "visTypeTagcloud", - "version": "kibana", - "ui": true, - "server": true, - "requiredPlugins": ["data", "expressions", "visualizations", "charts"], - "requiredBundles": ["kibanaReact", "visDefaultEditor"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Registers the tagcloud visualization. It is based on elastic-charts wordcloud." - -} diff --git a/src/plugins/vis_types/tagcloud/kibana.jsonc b/src/plugins/vis_types/tagcloud/kibana.jsonc new file mode 100644 index 00000000000000..755ca5fb5a384a --- /dev/null +++ b/src/plugins/vis_types/tagcloud/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-tagcloud-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Registers the tagcloud visualization. It is based on elastic-charts wordcloud.", + "plugin": { + "id": "visTypeTagcloud", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "expressions", + "visualizations", + "charts" + ], + "requiredBundles": [ + "kibanaReact", + "visDefaultEditor" + ] + } +} diff --git a/src/plugins/vis_types/timelion/kibana.json b/src/plugins/vis_types/timelion/kibana.json deleted file mode 100644 index 584593d69a546f..00000000000000 --- a/src/plugins/vis_types/timelion/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "visTypeTimelion", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["visualizations", "data", "expressions", "charts", "dataViews", "fieldFormats"], - "requiredBundles": ["kibanaUtils", "kibanaReact", "visDefaultEditor"], - "optionalPlugins": ["usageCollection"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Registers the timelion visualization. Also contains the backend for both timelion app and timelion visualization." -} diff --git a/src/plugins/vis_types/timelion/kibana.jsonc b/src/plugins/vis_types/timelion/kibana.jsonc new file mode 100644 index 00000000000000..aa11b92e588741 --- /dev/null +++ b/src/plugins/vis_types/timelion/kibana.jsonc @@ -0,0 +1,27 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-timelion-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Registers the timelion visualization. Also contains the backend for both timelion app and timelion visualization.", + "plugin": { + "id": "visTypeTimelion", + "server": true, + "browser": true, + "requiredPlugins": [ + "visualizations", + "data", + "expressions", + "charts", + "dataViews", + "fieldFormats" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact", + "visDefaultEditor" + ] + } +} diff --git a/src/plugins/vis_types/timeseries/kibana.json b/src/plugins/vis_types/timeseries/kibana.json deleted file mode 100644 index 9ce16f65ec7538..00000000000000 --- a/src/plugins/vis_types/timeseries/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "visTypeTimeseries", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["charts", "data", "expressions", "visualizations", "inspector", "dataViews", "fieldFormats", "usageCollection", "unifiedSearch"], - "optionalPlugins": ["home"], - "requiredBundles": ["unifiedSearch", "kibanaUtils", "kibanaReact", "fieldFormats"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Registers the TSVB visualization. TSVB has its one editor, works with index patterns and index strings and contains 6 types of charts: timeseries, topN, table. markdown, metric and gauge." -} diff --git a/src/plugins/vis_types/timeseries/kibana.jsonc b/src/plugins/vis_types/timeseries/kibana.jsonc new file mode 100644 index 00000000000000..9ba099aef63210 --- /dev/null +++ b/src/plugins/vis_types/timeseries/kibana.jsonc @@ -0,0 +1,31 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-timeseries-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Registers the TSVB visualization. TSVB has its one editor, works with index patterns and index strings and contains 6 types of charts: timeseries, topN, table. markdown, metric and gauge.", + "plugin": { + "id": "visTypeTimeseries", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "data", + "expressions", + "visualizations", + "inspector", + "dataViews", + "fieldFormats", + "usageCollection", + "unifiedSearch" + ], + "optionalPlugins": [ + "home" + ], + "requiredBundles": [ + "unifiedSearch", + "kibanaUtils", + "kibanaReact", + "fieldFormats" + ] + } +} diff --git a/src/plugins/vis_types/timeseries/public/application/components/lib/replace_vars.ts b/src/plugins/vis_types/timeseries/public/application/components/lib/replace_vars.ts index 77ac817d53d287..9ae2c6d9c30643 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/lib/replace_vars.ts +++ b/src/plugins/vis_types/timeseries/public/application/components/lib/replace_vars.ts @@ -7,7 +7,7 @@ */ import { encode } from '@kbn/rison'; -import Handlebars, { ExtendedCompileOptions, compileFnName } from '@kbn/handlebars'; +import Handlebars, { type ExtendedCompileOptions, compileFnName } from '@kbn/handlebars'; import { i18n } from '@kbn/i18n'; import { emptyLabel } from '../../../../common/empty_label'; diff --git a/src/plugins/vis_types/vega/kibana.json b/src/plugins/vis_types/vega/kibana.json deleted file mode 100644 index da5e8c40714020..00000000000000 --- a/src/plugins/vis_types/vega/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "visTypeVega", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["data", "visualizations", "mapsEms", "expressions", "inspector", "dataViews", "usageCollection"], - "optionalPlugins": ["home"], - "requiredBundles": ["kibanaUtils", "kibanaReact", "visDefaultEditor"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Registers the vega visualization. Is the elastic version of vega and vega-lite libraries." -} diff --git a/src/plugins/vis_types/vega/kibana.jsonc b/src/plugins/vis_types/vega/kibana.jsonc new file mode 100644 index 00000000000000..b3a2c28afa698a --- /dev/null +++ b/src/plugins/vis_types/vega/kibana.jsonc @@ -0,0 +1,28 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-vega-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Registers the vega visualization. Is the elastic version of vega and vega-lite libraries.", + "plugin": { + "id": "visTypeVega", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "visualizations", + "mapsEms", + "expressions", + "inspector", + "dataViews", + "usageCollection" + ], + "optionalPlugins": [ + "home" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact", + "visDefaultEditor" + ] + } +} diff --git a/src/plugins/vis_types/vislib/kibana.json b/src/plugins/vis_types/vislib/kibana.json deleted file mode 100644 index 1e31c498abc580..00000000000000 --- a/src/plugins/vis_types/vislib/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "visTypeVislib", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["charts", "data", "expressions", "visualizations", "fieldFormats"], - "optionalPlugins": ["usageCollection"], - "requiredBundles": ["kibanaUtils", "visTypeHeatmap", "visTypeGauge", "kibanaReact"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Contains the vislib visualizations. These are the classical area/line/bar, gauge/goal and heatmap charts. We want to replace them with elastic-charts." -} diff --git a/src/plugins/vis_types/vislib/kibana.jsonc b/src/plugins/vis_types/vislib/kibana.jsonc new file mode 100644 index 00000000000000..1f805a33a5c980 --- /dev/null +++ b/src/plugins/vis_types/vislib/kibana.jsonc @@ -0,0 +1,27 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-vislib-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Contains the vislib visualizations. These are the classical area/line/bar, gauge/goal and heatmap charts. We want to replace them with elastic-charts.", + "plugin": { + "id": "visTypeVislib", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "data", + "expressions", + "visualizations", + "fieldFormats" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "visTypeHeatmap", + "visTypeGauge", + "kibanaReact" + ] + } +} diff --git a/src/plugins/vis_types/xy/kibana.json b/src/plugins/vis_types/xy/kibana.json deleted file mode 100644 index 567c56fbcf9db9..00000000000000 --- a/src/plugins/vis_types/xy/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "visTypeXy", - "version": "kibana", - "ui": true, - "server": true, - "requiredPlugins": ["charts", "visualizations", "data", "expressions", "dataViews"], - "requiredBundles": ["kibanaUtils", "visDefaultEditor"], - "extraPublicDirs": ["common/index"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Contains the new xy-axis chart using the elastic-charts library, which will eventually replace the vislib xy-axis charts including bar, area, and line." -} diff --git a/src/plugins/vis_types/xy/kibana.jsonc b/src/plugins/vis_types/xy/kibana.jsonc new file mode 100644 index 00000000000000..bc0f162537fd56 --- /dev/null +++ b/src/plugins/vis_types/xy/kibana.jsonc @@ -0,0 +1,25 @@ +{ + "type": "plugin", + "id": "@kbn/vis-type-xy-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Contains the new xy-axis chart using the elastic-charts library, which will eventually replace the vislib xy-axis charts including bar, area, and line.", + "plugin": { + "id": "visTypeXy", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "visualizations", + "data", + "expressions", + "dataViews" + ], + "requiredBundles": [ + "kibanaUtils", + "visDefaultEditor" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/src/plugins/visualizations/kibana.json b/src/plugins/visualizations/kibana.json deleted file mode 100644 index d9f5e5a58e9c25..00000000000000 --- a/src/plugins/visualizations/kibana.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "id": "visualizations", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "data", - "charts", - "expressions", - "fieldFormats", - "uiActions", - "urlForwarding", - "navigation", - "embeddable", - "inspector", - "savedObjects", - "screenshotMode", - "presentationUtil", - "dataViews", - "dataViewEditor", - "unifiedSearch", - "usageCollection" - ], - "optionalPlugins": ["home", "share", "spaces", "savedObjectsTaggingOss"], - "requiredBundles": ["kibanaUtils", "savedSearch", "kibanaReact", "charts"], - "extraPublicDirs": ["common/constants", "common/utils", "common/expression_functions", "common/convert_to_lens"], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Contains the shared architecture among all the legacy visualizations, e.g. the visualization type registry or the visualization embeddable." -} diff --git a/src/plugins/visualizations/kibana.jsonc b/src/plugins/visualizations/kibana.jsonc new file mode 100644 index 00000000000000..7b79606d083d37 --- /dev/null +++ b/src/plugins/visualizations/kibana.jsonc @@ -0,0 +1,47 @@ +{ + "type": "plugin", + "id": "@kbn/visualizations-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Contains the shared architecture among all the legacy visualizations, e.g. the visualization type registry or the visualization embeddable.", + "plugin": { + "id": "visualizations", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "charts", + "expressions", + "fieldFormats", + "uiActions", + "urlForwarding", + "navigation", + "embeddable", + "inspector", + "savedObjects", + "screenshotMode", + "presentationUtil", + "dataViews", + "dataViewEditor", + "unifiedSearch", + "usageCollection" + ], + "optionalPlugins": [ + "home", + "share", + "spaces", + "savedObjectsTaggingOss" + ], + "requiredBundles": [ + "kibanaUtils", + "savedSearch", + "kibanaReact", + "charts" + ], + "extraPublicDirs": [ + "common/constants", + "common/utils", + "common/expression_functions", + "common/convert_to_lens" + ] + } +} diff --git a/src/plugins/visualizations/public/vis.test.ts b/src/plugins/visualizations/public/vis.test.ts index 9aae534f8e7c08..a58dd59485e0e2 100644 --- a/src/plugins/visualizations/public/vis.test.ts +++ b/src/plugins/visualizations/public/vis.test.ts @@ -23,10 +23,10 @@ jest.mock('./services', () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const { BaseVisType } = require('./vis_types/base_vis_type'); - // eslint-disable-next-line @typescript-eslint/no-var-requires,@kbn/imports/uniform_imports - const { SearchSource } = require('../../data/common/search/search_source'); - // eslint-disable-next-line @typescript-eslint/no-var-requires,@kbn/imports/uniform_imports - const stubIndexPattern = require('../../data/common/stubs'); + // eslint-disable-next-line @typescript-eslint/no-var-requires + const { SearchSource } = require('@kbn/data-plugin/common/search/search_source'); + // eslint-disable-next-line @typescript-eslint/no-var-requires + const stubIndexPattern = require('@kbn/data-plugin/common/stubs'); const visType = new BaseVisType({ name: 'pie', title: 'pie', diff --git a/test/analytics/plugins/analytics_ftr_helpers/kibana.json b/test/analytics/plugins/analytics_ftr_helpers/kibana.json deleted file mode 100644 index 353ec45cdd991b..00000000000000 --- a/test/analytics/plugins/analytics_ftr_helpers/kibana.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "analyticsFtrHelpers", - "owner": { "name": "Core", "githubTeam": "kibana-core" }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "server": true, - "ui": true -} diff --git a/test/analytics/plugins/analytics_ftr_helpers/kibana.jsonc b/test/analytics/plugins/analytics_ftr_helpers/kibana.jsonc new file mode 100644 index 00000000000000..c2cb0d5753d34c --- /dev/null +++ b/test/analytics/plugins/analytics_ftr_helpers/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/analytics-ftr-helpers-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "analyticsFtrHelpers", + "server": true, + "browser": true + } +} diff --git a/test/analytics/plugins/analytics_ftr_helpers/package.json b/test/analytics/plugins/analytics_ftr_helpers/package.json index b6becffce86add..43294b9ee6efc1 100644 --- a/test/analytics/plugins/analytics_ftr_helpers/package.json +++ b/test/analytics/plugins/analytics_ftr_helpers/package.json @@ -1,5 +1,5 @@ { - "name": "analytics_ftr_helpers", + "name": "@kbn/analytics-ftr-helpers-plugin", "version": "1.0.0", "kibana": { "version": "kibana", @@ -7,7 +7,7 @@ }, "license": "SSPL-1.0 OR Elastic License 2.0", "scripts": { - "kbn": "node ../../../../../scripts/kbn.js", - "build": "rm -rf './target' && ../../../../../node_modules/.bin/tsc" + "kbn": "node ../../../../scripts/kbn.js", + "build": "rm -rf './target' && ../../../../node_modules/.bin/tsc" } } \ No newline at end of file diff --git a/test/analytics/plugins/analytics_plugin_a/kibana.json b/test/analytics/plugins/analytics_plugin_a/kibana.json deleted file mode 100644 index f666a05a64b42c..00000000000000 --- a/test/analytics/plugins/analytics_plugin_a/kibana.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "analyticsPluginA", - "owner": { "name": "Core", "githubTeam": "kibana-core" }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "server": true, - "ui": true -} diff --git a/test/analytics/plugins/analytics_plugin_a/kibana.jsonc b/test/analytics/plugins/analytics_plugin_a/kibana.jsonc new file mode 100644 index 00000000000000..f8fac3f1ce393e --- /dev/null +++ b/test/analytics/plugins/analytics_plugin_a/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/analytics-plugin-a-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "analyticsPluginA", + "server": true, + "browser": true + } +} diff --git a/test/analytics/plugins/analytics_plugin_a/package.json b/test/analytics/plugins/analytics_plugin_a/package.json index dc0467ed0452bb..05e29604ad510e 100644 --- a/test/analytics/plugins/analytics_plugin_a/package.json +++ b/test/analytics/plugins/analytics_plugin_a/package.json @@ -1,5 +1,5 @@ { - "name": "analytics_plugin_a", + "name": "@kbn/analytics-plugin-a-plugin", "version": "1.0.0", "kibana": { "version": "kibana", diff --git a/test/api_integration/apis/console/autocomplete_entities.ts b/test/api_integration/apis/console/autocomplete_entities.ts index 6bd899c979a2b6..6e13b2fb2856bf 100644 --- a/test/api_integration/apis/console/autocomplete_entities.ts +++ b/test/api_integration/apis/console/autocomplete_entities.ts @@ -128,7 +128,7 @@ export default ({ getService }: FtrProviderContext) => { return await supertest.get('/api/console/autocomplete_entities').query(query); }; - describe('/api/console/autocomplete_entities', () => { + describe('/api/console/autocomplete_entities', function () { const indexName = 'test-index-1'; const aliasName = 'test-alias-1'; const indexTemplateName = 'test-index-template-1'; @@ -238,9 +238,17 @@ export default ({ getService }: FtrProviderContext) => { expect(body.mappings).to.eql({}); }); - it('should return mappings with fields setting is set to true', async () => { + it('should not return mappings with fields setting is set to true without the list of indices is provided', async () => { const response = await sendRequest({ fields: true }); + const { body, status } = response; + expect(status).to.be(200); + expect(Object.keys(body.mappings)).to.not.contain(indexName); + }); + + it('should return mappings with fields setting is set to true and the list of indices is provided', async () => { + const response = await sendRequest({ fields: true, fieldsIndices: indexName }); + const { body, status } = response; expect(status).to.be(200); expect(Object.keys(body.mappings)).to.contain(indexName); diff --git a/test/api_integration/apis/custom_integration/integrations.ts b/test/api_integration/apis/custom_integration/integrations.ts index c1b6518f6684a9..a924b416f30c83 100644 --- a/test/api_integration/apis/custom_integration/integrations.ts +++ b/test/api_integration/apis/custom_integration/integrations.ts @@ -22,7 +22,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.body).to.be.an('array'); - expect(resp.body.length).to.be(43); + expect(resp.body.length).to.be(49); // Test for sample data card expect(resp.body.findIndex((c: { id: string }) => c.id === 'sample_data_all')).to.be.above( diff --git a/test/common/config.js b/test/common/config.js index b0a7072930b5c8..297890aa5869b9 100644 --- a/test/common/config.js +++ b/test/common/config.js @@ -43,7 +43,6 @@ export default function () { // Needed for async search functional tests to introduce a delay `--data.search.aggs.shardDelay.enabled=true`, `--security.showInsecureClusterWarning=false`, - '--csp.disableUnsafeEval=true', '--telemetry.banner=false', '--telemetry.optIn=false', // These are *very* important to have them pointing to staging diff --git a/test/common/plugins/newsfeed/kibana.json b/test/common/plugins/newsfeed/kibana.json deleted file mode 100644 index ebd736f027ab60..00000000000000 --- a/test/common/plugins/newsfeed/kibana.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "newsfeedTestPlugin", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "kibana", - "server": true, - "ui": false -} diff --git a/test/common/plugins/newsfeed/kibana.jsonc b/test/common/plugins/newsfeed/kibana.jsonc new file mode 100644 index 00000000000000..a084853f72c81a --- /dev/null +++ b/test/common/plugins/newsfeed/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/newsfeed-test-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "newsfeedTestPlugin", + "server": true, + "browser": false + } +} diff --git a/test/common/plugins/otel_metrics/kibana.json b/test/common/plugins/otel_metrics/kibana.json deleted file mode 100644 index f9cc773c1fe0af..00000000000000 --- a/test/common/plugins/otel_metrics/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "openTelemetryInstrumentedPlugin", - "owner": { - "name": "Stack Monitoring", - "githubTeam": "stack-monitoring-ui" - }, - "version": "1.0.0", - "kibanaVersion": "kibana", - "requiredPlugins": [ - "monitoringCollection" - ], - "optionalPlugins": [], - "server": true, - "ui": false -} \ No newline at end of file diff --git a/test/common/plugins/otel_metrics/kibana.jsonc b/test/common/plugins/otel_metrics/kibana.jsonc new file mode 100644 index 00000000000000..0b25b57d06a536 --- /dev/null +++ b/test/common/plugins/otel_metrics/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/open-telemetry-instrumented-plugin", + "owner": "@elastic/infra-monitoring-ui", + "plugin": { + "id": "openTelemetryInstrumentedPlugin", + "server": true, + "browser": false, + "requiredPlugins": [ + "monitoringCollection" + ] + } +} diff --git a/test/examples/config.js b/test/examples/config.js index 75ac7c44a54f42..fc57b610941d2d 100644 --- a/test/examples/config.js +++ b/test/examples/config.js @@ -7,19 +7,13 @@ */ import { resolve } from 'path'; -import { services } from '../plugin_functional/services'; -import fs from 'fs'; import { REPO_ROOT } from '@kbn/repo-info'; +import { findTestPluginPaths } from '@kbn/test'; +import { services } from '../plugin_functional/services'; export default async function ({ readConfigFile }) { const functionalConfig = await readConfigFile(require.resolve('../functional/config.base.js')); - // Find all folders in /examples and /x-pack/examples since we treat all them as plugin folder - const examplesFiles = fs.readdirSync(resolve(REPO_ROOT, 'examples')); - const examples = examplesFiles.filter((file) => - fs.statSync(resolve(REPO_ROOT, 'examples', file)).isDirectory() - ); - return { rootTags: ['runOutsideOfCiGroups'], testFiles: [ @@ -63,9 +57,7 @@ export default async function ({ readConfigFile }) { // Required to load new platform plugins via `--plugin-path` flag. '--env.name=development', '--telemetry.optIn=false', - ...examples.map( - (exampleDir) => `--plugin-path=${resolve(REPO_ROOT, 'examples', exampleDir)}` - ), + ...findTestPluginPaths(resolve(REPO_ROOT, 'examples')), ], }, }; diff --git a/test/functional/apps/dashboard/group1/embeddable_rendering.ts b/test/functional/apps/dashboard/group1/embeddable_rendering.ts index c0d5a47dbeb279..d2da02ff1459d6 100644 --- a/test/functional/apps/dashboard/group1/embeddable_rendering.ts +++ b/test/functional/apps/dashboard/group1/embeddable_rendering.ts @@ -27,6 +27,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const security = getService('security'); const dashboardExpect = getService('dashboardExpect'); const dashboardAddPanel = getService('dashboardAddPanel'); + const queryBar = getService('queryBar'); const PageObjects = getPageObjects([ 'common', 'dashboard', @@ -129,8 +130,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('adding visualizations', async () => { - await elasticChart.setNewChartUiDebugFlag(true); - visNames = await dashboardAddPanel.addEveryVisualization('"Rendering Test"'); expect(visNames.length).to.be.equal(24); await dashboardExpect.visualizationsArePresent(visNames); @@ -161,7 +160,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('initial render test', async () => { await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.dashboard.waitForRenderComplete(); - await elasticChart.setNewChartUiDebugFlag(); await expectAllDataRenders(); }); @@ -180,8 +178,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const alert = await browser.getAlert(); await alert?.accept(); + // setNewChartUiDebugFlag required because window._echDebugStateFlag flag is reset after refresh + await elasticChart.setNewChartUiDebugFlag(true); + await PageObjects.header.waitUntilLoadingHasFinished(); - await elasticChart.setNewChartUiDebugFlag(); + await PageObjects.dashboard.waitForRenderComplete(); + + // call query refresh to guarantee all panels are rendered after window._echDebugStateFlag is set + await queryBar.clickQuerySubmitButton(); await PageObjects.dashboard.waitForRenderComplete(); await expectAllDataRenders(); }); diff --git a/test/functional/apps/dashboard_elements/controls/options_list/index.ts b/test/functional/apps/dashboard_elements/controls/options_list/index.ts index 9d4cb7d18d525d..d2c80da466c53c 100644 --- a/test/functional/apps/dashboard_elements/controls/options_list/index.ts +++ b/test/functional/apps/dashboard_elements/controls/options_list/index.ts @@ -14,16 +14,12 @@ export default function ({ loadTestFile, getService, getPageObjects }: FtrProvid const elasticChart = getService('elasticChart'); const security = getService('security'); - const { timePicker, dashboard } = getPageObjects([ - 'dashboardControls', - 'timePicker', - 'dashboard', - 'common', - ]); - - async function setup() { + const { timePicker, dashboard, common } = getPageObjects(['timePicker', 'dashboard', 'common']); + + const setup = async () => { await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader', 'animals']); + await common.navigateToApp('dashboard'); await dashboard.gotoDashboardLandingPage(); await dashboard.clickNewDashboard(); await timePicker.setDefaultDataRange(); @@ -32,13 +28,13 @@ export default function ({ loadTestFile, getService, getPageObjects }: FtrProvid exitFromEditMode: false, storeTimeWithDashboard: true, }); - } + }; - async function teardown() { + const teardown = async () => { await security.testUser.restoreDefaults(); - } + }; - describe('Options list control', function () { + describe('Options list control', async () => { before(setup); after(teardown); @@ -46,5 +42,7 @@ export default function ({ loadTestFile, getService, getPageObjects }: FtrProvid loadTestFile(require.resolve('./options_list_dashboard_interaction')); loadTestFile(require.resolve('./options_list_suggestions')); loadTestFile(require.resolve('./options_list_validation')); + + loadTestFile(require.resolve('./options_list_allow_expensive_queries_off.ts')); }); } diff --git a/test/functional/apps/dashboard_elements/controls/options_list/options_list_allow_expensive_queries_off.ts b/test/functional/apps/dashboard_elements/controls/options_list/options_list_allow_expensive_queries_off.ts new file mode 100644 index 00000000000000..84af82f349713e --- /dev/null +++ b/test/functional/apps/dashboard_elements/controls/options_list/options_list_allow_expensive_queries_off.ts @@ -0,0 +1,96 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { OPTIONS_LIST_CONTROL } from '@kbn/controls-plugin/common'; +import expect from '@kbn/expect'; + +import { OPTIONS_LIST_ANIMAL_SOUND_SUGGESTIONS } from '../../../../page_objects/dashboard_page_controls'; +import { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const browser = getService('browser'); + + const { dashboardControls, timePicker, console, common, dashboard, header } = getPageObjects([ + 'dashboardControls', + 'timePicker', + 'dashboard', + 'console', + 'common', + 'header', + ]); + + const setAllowExpensiveQueries = async (value: boolean) => { + await common.navigateToApp('console'); + await console.closeHelpIfExists(); + await console.clearTextArea(); + await console.enterRequest( + '\nPUT _cluster/settings\n{"transient": {"search.allow_expensive_queries": ' + value + '}}' + ); + await console.clickPlay(); + await header.waitUntilLoadingHasFinished(); + await browser.refresh(); + }; + + describe('Allow expensive queries setting is off', () => { + let controlId: string; + + before(async () => { + await setAllowExpensiveQueries(false); + + await common.navigateToApp('dashboard'); + await dashboard.clickNewDashboard(); + await dashboard.ensureDashboardIsInEditMode(); + await timePicker.setDefaultDataRange(); + await header.waitUntilLoadingHasFinished(); + + await dashboardControls.createControl({ + controlType: OPTIONS_LIST_CONTROL, + dataViewTitle: 'animals-*', + fieldName: 'sound.keyword', + }); + controlId = (await dashboardControls.getAllControlIds())[0]; + }); + + after(async () => { + await dashboard.gotoDashboardLandingPage(); + await dashboard.clickUnsavedChangesDiscard(`discard-unsaved-New-Dashboard`); + await setAllowExpensiveQueries(true); + }); + + it('Shows available options in options list', async () => { + await dashboardControls.ensureAvailableOptionsEqual(controlId, { + suggestions: OPTIONS_LIST_ANIMAL_SOUND_SUGGESTIONS, + invalidSelections: [], + }); + }); + + it('Can search options list for available options', async () => { + await dashboardControls.optionsListOpenPopover(controlId); + await dashboardControls.optionsListPopoverSearchForOption('meo'); + await dashboardControls.ensureAvailableOptionsEqual( + controlId, + { + suggestions: { meow: OPTIONS_LIST_ANIMAL_SOUND_SUGGESTIONS.meow }, + invalidSelections: [], + }, + true + ); + await dashboardControls.optionsListPopoverClearSearch(); + await dashboardControls.optionsListEnsurePopoverIsClosed(controlId); + }); + + it('Can search options list for available options - case sensitive', async () => { + await dashboardControls.optionsListOpenPopover(controlId); + await dashboardControls.optionsListPopoverSearchForOption('MEO'); + const cardinality = await dashboardControls.optionsListPopoverGetAvailableOptionsCount(); + expect(cardinality).to.be(0); + await dashboardControls.optionsListPopoverClearSearch(); + await dashboardControls.optionsListEnsurePopoverIsClosed(controlId); + }); + }); +} diff --git a/test/functional/apps/management/_index_pattern_create_delete.ts b/test/functional/apps/management/_index_pattern_create_delete.ts index 8447610d60aa89..f89013eac43fae 100644 --- a/test/functional/apps/management/_index_pattern_create_delete.ts +++ b/test/functional/apps/management/_index_pattern_create_delete.ts @@ -22,11 +22,20 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('creating and deleting default index', function describeIndexTests() { before(async function () { await esArchiver.emptyKibanaIndex(); + await esArchiver.loadIfNeeded( + 'test/functional/fixtures/es_archiver/kibana_sample_data_flights_index_pattern' + ); await kibanaServer.uiSettings.replace({}); await PageObjects.settings.navigateTo(); await PageObjects.settings.clickKibanaIndexPatterns(); }); + after(async function () { + await esArchiver.unload( + 'test/functional/fixtures/es_archiver/kibana_sample_data_flights_index_pattern' + ); + }); + describe('can open and close editor', function () { it('without creating index pattern', async function () { await PageObjects.settings.clickKibanaIndexPatterns(); @@ -157,6 +166,28 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); + describe('index pattern edit', function () { + it('should update field list', async function () { + await PageObjects.settings.editIndexPattern( + 'kibana_sample_data_flights', + 'timestamp', + undefined, + true + ); + + await retry.try(async () => { + // verify initial field list + expect(await testSubjects.exists('field-name-AvgTicketPrice')).to.be(true); + }); + + await PageObjects.settings.editIndexPattern('logstash-*', '@timestamp', undefined, true); + await retry.try(async () => { + // verify updated field list + expect(await testSubjects.exists('field-name-agent')).to.be(true); + }); + }); + }); + describe('index pattern deletion', function indexDelete() { before(function () { const expectedAlertText = 'Delete data view'; diff --git a/test/functional/apps/visualize/group6/_vega_chart.ts b/test/functional/apps/visualize/group6/_vega_chart.ts index 33e21dbcb46e2c..d7e17a6a08e914 100644 --- a/test/functional/apps/visualize/group6/_vega_chart.ts +++ b/test/functional/apps/visualize/group6/_vega_chart.ts @@ -224,6 +224,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { if (filtersCount > 0) { await filterBar.removeAllFilters(); } + await PageObjects.visChart.waitForVisualizationRenderingStabilized(); }); const fillSpecAndGo = async (newSpec: string) => { diff --git a/test/functional/page_objects/dashboard_page_controls.ts b/test/functional/page_objects/dashboard_page_controls.ts index 85908bce3d35cd..c3160e650c2a83 100644 --- a/test/functional/page_objects/dashboard_page_controls.ts +++ b/test/functional/page_objects/dashboard_page_controls.ts @@ -428,9 +428,22 @@ export class DashboardPageControls extends FtrService { await this.retry.try(async () => { expect(await this.optionsListPopoverGetAvailableOptions()).to.eql(expectation); }); + if (await this.testSubjects.exists('optionsList-cardinality-label')) { + expect(await this.optionsListGetCardinalityValue()).to.be( + Object.keys(expectation.suggestions).length.toLocaleString() + ); + } if (!skipOpen) await this.optionsListEnsurePopoverIsClosed(controlId); } + public async optionsListGetCardinalityValue() { + this.log.debug(`getting the value of the cardinality badge`); + const cardinalityLabel = await ( + await this.testSubjects.find('optionsList-cardinality-label') + ).getVisibleText(); + return cardinalityLabel.split(' ')[0]; + } + public async optionsListPopoverSearchForOption(search: string) { this.log.debug(`searching for ${search} in options list`); await this.optionsListPopoverAssertOpen(); diff --git a/test/functional/page_objects/discover_page.ts b/test/functional/page_objects/discover_page.ts index 0854bfe9b9c694..b33f6401db98fe 100644 --- a/test/functional/page_objects/discover_page.ts +++ b/test/functional/page_objects/discover_page.ts @@ -406,7 +406,9 @@ export class DiscoverPageObject extends FtrService { public async removeField(field: string) { await this.clickFieldListItem(field); await this.testSubjects.click(`discoverFieldListPanelDelete-${field}`); - await this.testSubjects.existOrFail('runtimeFieldDeleteConfirmModal'); + await this.retry.waitFor('modal to open', async () => { + return await this.testSubjects.exists('runtimeFieldDeleteConfirmModal'); + }); await this.fieldEditor.confirmDelete(); } diff --git a/test/functional/page_objects/time_picker.ts b/test/functional/page_objects/time_picker.ts index 44aec2e3fb187a..51d2f21290431b 100644 --- a/test/functional/page_objects/time_picker.ts +++ b/test/functional/page_objects/time_picker.ts @@ -47,6 +47,10 @@ export class TimePickerPageObject extends FtrService { await this.setAbsoluteRange(this.defaultStartTime, this.defaultEndTime); } + async waitForNoDataPopover() { + await this.testSubjects.find('noDataPopoverDismissButton'); + } + async ensureHiddenNoDataPopover() { const isVisible = await this.testSubjects.exists('noDataPopoverDismissButton', { timeout: 100, diff --git a/test/functional/services/visualizations/elastic_chart.ts b/test/functional/services/visualizations/elastic_chart.ts index a78af785792bc8..d87a7a0d3d0613 100644 --- a/test/functional/services/visualizations/elastic_chart.ts +++ b/test/functional/services/visualizations/elastic_chart.ts @@ -111,17 +111,33 @@ export class ElasticChartService extends FtrService { dataTestSubj?: string, match: number = 0, timeout: number | undefined = undefined - ): Promise { + ): Promise { const chart = await this.getChart(dataTestSubj, timeout, match); - try { - const visContainer = await chart.findByCssSelector('.echChartStatus'); - const debugDataString: string | undefined = await visContainer.getAttribute( - 'data-ech-debug-state' + return await this.getChartDebugDataFromChart(chart); + } + + /** + * used to get chart data from `@elastic/charts` + * requires `window._echDebugStateFlag` to be true + */ + public async getChartDebugDataFromChart(chart: WebElementWrapper): Promise { + const visContainer = await chart.findByCssSelector('.echChartStatus'); + const debugDataString: string | undefined = await visContainer.getAttribute( + 'data-ech-debug-state' + ); + this.log.debug('data-ech-debug-state: ', debugDataString); + + if (debugDataString === undefined) { + throw Error( + `Elastic charts debugState not found, ensure 'setNewChartUiDebugFlag' is called before DOM rendering starts.` ); - return debugDataString ? JSON.parse(debugDataString) : null; + } + + try { + return JSON.parse(debugDataString); } catch (error) { - throw Error('Elastic charts debugState not found'); + throw Error('Unable to parse Elastic charts debugState'); } } diff --git a/test/functional/services/visualizations/pie_chart.ts b/test/functional/services/visualizations/pie_chart.ts index 462b892b294445..7dbac7f6a2e5cd 100644 --- a/test/functional/services/visualizations/pie_chart.ts +++ b/test/functional/services/visualizations/pie_chart.ts @@ -8,6 +8,7 @@ import expect from '@kbn/expect'; import { isNil } from 'lodash'; +import { DebugState } from '@elastic/charts'; import { FtrService } from '../../ftr_provider_context'; const partitionVisChartSelector = 'partitionVisChart'; @@ -20,6 +21,7 @@ export class PieChartService extends FtrService { private readonly testSubjects = this.ctx.getService('testSubjects'); private readonly find = this.ctx.getService('find'); private readonly panelActions = this.ctx.getService('dashboardPanelActions'); + private readonly elasticChart = this.ctx.getService('elasticChart'); private readonly defaultFindTimeout = this.config.get('timeouts.find'); private readonly visChart = this.ctx.getPageObject('visChart'); @@ -28,9 +30,9 @@ export class PieChartService extends FtrService { async clickOnPieSlice(name?: string) { this.log.debug(`PieChart.clickOnPieSlice(${name})`); if (await this.visChart.isNewLibraryChart(partitionVisChartSelector)) { - const slices = - (await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0] - ?.partitions ?? []; + const slices = this.getSlices( + await this.visChart.getEsChartDebugState(partitionVisChartSelector) + ); let sliceLabel = name || slices[0].name; if (name === 'Other') { sliceLabel = '__other__'; @@ -89,9 +91,9 @@ export class PieChartService extends FtrService { async getPieSliceStyle(name: string) { this.log.debug(`VisualizePage.getPieSliceStyle(${name})`); if (await this.visChart.isNewLibraryChart(partitionVisChartSelector)) { - const slices = - (await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0] - ?.partitions ?? []; + const slices = this.getSlices( + await this.visChart.getEsChartDebugState(partitionVisChartSelector) + ); const selectedSlice = slices.filter((slice) => { return slice.name.toString() === name.replace(',', ''); }); @@ -103,9 +105,9 @@ export class PieChartService extends FtrService { async getAllPieSlicesColors() { const slicesColors = []; - const slices = - (await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0] - ?.partitions ?? []; + const slices = this.getSlices( + await this.visChart.getEsChartDebugState(partitionVisChartSelector) + ); for (const slice of slices) { slicesColors.push(slice.color); } @@ -115,9 +117,9 @@ export class PieChartService extends FtrService { async getAllPieSliceColor(name: string) { this.log.debug(`VisualizePage.getAllPieSliceColor(${name})`); if (await this.visChart.isNewLibraryChart(partitionVisChartSelector)) { - const slices = - (await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0] - ?.partitions ?? []; + const slices = this.getSlices( + await this.visChart.getEsChartDebugState(partitionVisChartSelector) + ); const selectedSlice = slices.filter((slice) => { return slice.name.toString() === name.replace(',', ''); }); @@ -155,9 +157,9 @@ export class PieChartService extends FtrService { async getPieChartLabels(isNewLibrary: boolean = true) { if (isNewLibrary) { - const slices = - (await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0] - ?.partitions ?? []; + const slices = this.getSlices( + await this.visChart.getEsChartDebugState(partitionVisChartSelector) + ); return slices.map((slice) => { if (slice.name === '__missing__') { return 'Missing'; @@ -181,9 +183,9 @@ export class PieChartService extends FtrService { async getPieChartValues(isNewLibrary: boolean = true) { this.log.debug('PieChart.getPieChartValues'); if (isNewLibrary) { - const slices = - (await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0] - ?.partitions ?? []; + const slices = this.getSlices( + await this.visChart.getEsChartDebugState(partitionVisChartSelector) + ); return slices.map((slice) => { return slice.value; }); @@ -197,9 +199,9 @@ export class PieChartService extends FtrService { async getPieSliceCount(isNewLibrary: boolean = true) { this.log.debug('PieChart.getPieSliceCount'); if (isNewLibrary) { - const slices = - (await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0] - ?.partitions ?? []; + const slices = this.getSlices( + await this.visChart.getEsChartDebugState(partitionVisChartSelector) + ); return slices?.length; } const slices = await this.find.allByCssSelector('svg > g > g.arcs > path.slice'); @@ -214,23 +216,21 @@ export class PieChartService extends FtrService { this.log.debug(`Found ${charts.length} charts`); for (const chart of charts) { await chart.moveMouseTo(); - const visContainer = await chart.findByCssSelector('.echChartStatus'); - const debugDataString: string | undefined = await visContainer.getAttribute( - 'data-ech-debug-state' - ); - if (debugDataString) { - const parsedData = JSON.parse(debugDataString); - const partition = parsedData?.partition?.[0] ?? []; - pieSlices += partition.partitions.length; - } + const pieChartData = await this.elasticChart.getChartDebugDataFromChart(chart); + const slices = this.getSlices(pieChartData); + pieSlices += slices.length; } return pieSlices; } + getSlices(pieChartData: DebugState) { + return pieChartData?.partition?.[0]?.partitions ?? []; + } + async expectPieSliceCountEsCharts(expectedCount: number) { - const slices = - (await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0] - ?.partitions ?? []; + const slices = this.getSlices( + await this.visChart.getEsChartDebugState(partitionVisChartSelector) + ); expect(slices.length).to.be(expectedCount); } diff --git a/test/health_gateway/plugins/status/kibana.json b/test/health_gateway/plugins/status/kibana.json deleted file mode 100644 index 63ef1ca26c355b..00000000000000 --- a/test/health_gateway/plugins/status/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "kbnHealthGatewayStatus", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.1.0", - "kibanaVersion": "kibana", - "requiredPlugins": [], - "server": true, - "requiredBundles": [] -} diff --git a/test/health_gateway/plugins/status/kibana.jsonc b/test/health_gateway/plugins/status/kibana.jsonc new file mode 100644 index 00000000000000..7d4da3dfe5d87e --- /dev/null +++ b/test/health_gateway/plugins/status/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/kbn-health-gateway-status-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "kbnHealthGatewayStatus", + "server": true, + "browser": false + } +} diff --git a/test/health_gateway/plugins/status/package.json b/test/health_gateway/plugins/status/package.json index 5cc8b7201b18c2..1a7727cfe925ad 100644 --- a/test/health_gateway/plugins/status/package.json +++ b/test/health_gateway/plugins/status/package.json @@ -1,6 +1,6 @@ { - "name": "kbn_health_gateway_status", - "version": "0.1.0", + "name": "@kbn/kbn-health-gateway-status-plugin", + "version": "1.0.0", "main": "target/test/health_gateway/plugins/status", "kibana": { "version": "kibana", diff --git a/test/interactive_setup_api_integration/plugins/test_endpoints/kibana.json b/test/interactive_setup_api_integration/plugins/test_endpoints/kibana.json deleted file mode 100644 index f9969966456a28..00000000000000 --- a/test/interactive_setup_api_integration/plugins/test_endpoints/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "interactiveSetupTestEndpoints", - "owner": { - "name": "Platform Security", - "githubTeam": "kibana-security" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "type": "preboot", - "server": true, - "ui": false -} diff --git a/test/interactive_setup_api_integration/plugins/test_endpoints/kibana.jsonc b/test/interactive_setup_api_integration/plugins/test_endpoints/kibana.jsonc new file mode 100644 index 00000000000000..44a2975d4c731c --- /dev/null +++ b/test/interactive_setup_api_integration/plugins/test_endpoints/kibana.jsonc @@ -0,0 +1,11 @@ +{ + "type": "plugin", + "id": "@kbn/interactive-setup-test-endpoints-plugin", + "owner": "@elastic/kibana-security", + "plugin": { + "id": "interactiveSetupTestEndpoints", + "type": "preboot", + "server": true, + "browser": false + } +} diff --git a/test/interpreter_functional/config.ts b/test/interpreter_functional/config.ts index 0f81089433b337..bbc9d46a7835d8 100644 --- a/test/interpreter_functional/config.ts +++ b/test/interpreter_functional/config.ts @@ -7,18 +7,11 @@ */ import path from 'path'; -import fs from 'fs'; -import { FtrConfigProviderContext } from '@kbn/test'; +import { FtrConfigProviderContext, findTestPluginPaths } from '@kbn/test'; export default async function ({ readConfigFile }: FtrConfigProviderContext) { const functionalConfig = await readConfigFile(require.resolve('../functional/config.base.js')); - // Find all folders in ./plugins since we treat all them as plugin folder - const allFiles = fs.readdirSync(path.resolve(__dirname, 'plugins')); - const plugins = allFiles.filter((file) => - fs.statSync(path.resolve(__dirname, 'plugins', file)).isDirectory() - ); - return { rootTags: ['runOutsideOfCiGroups'], testFiles: [require.resolve('./test_suites/run_pipeline')], @@ -40,9 +33,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { // Required to load new platform plugins via `--plugin-path` flag. '--env.name=development', - ...plugins.map( - (pluginDir) => `--plugin-path=${path.resolve(__dirname, 'plugins', pluginDir)}` - ), + ...findTestPluginPaths(path.resolve(__dirname, 'plugins')), ], }, }; diff --git a/test/interpreter_functional/plugins/kbn_tp_run_pipeline/kibana.json b/test/interpreter_functional/plugins/kbn_tp_run_pipeline/kibana.json deleted file mode 100644 index e78f294cde7c96..00000000000000 --- a/test/interpreter_functional/plugins/kbn_tp_run_pipeline/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "kbnTpRunPipeline", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "requiredPlugins": ["data", "savedObjects", "kibanaUtils", "expressions"], - "server": true, - "ui": true, - "requiredBundles": [] -} diff --git a/test/interpreter_functional/plugins/kbn_tp_run_pipeline/kibana.jsonc b/test/interpreter_functional/plugins/kbn_tp_run_pipeline/kibana.jsonc new file mode 100644 index 00000000000000..3bae7db25d9559 --- /dev/null +++ b/test/interpreter_functional/plugins/kbn_tp_run_pipeline/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/kbn-tp-run-pipeline-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "kbnTpRunPipeline", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "savedObjects", + "kibanaUtils", + "expressions" + ] + } +} diff --git a/test/interpreter_functional/plugins/kbn_tp_run_pipeline/package.json b/test/interpreter_functional/plugins/kbn_tp_run_pipeline/package.json index 19bffef737e333..8fc5e45b3a2f4f 100644 --- a/test/interpreter_functional/plugins/kbn_tp_run_pipeline/package.json +++ b/test/interpreter_functional/plugins/kbn_tp_run_pipeline/package.json @@ -1,5 +1,5 @@ { - "name": "kbn_tp_run_pipeline", + "name": "@kbn/kbn-tp-run-pipeline-plugin", "version": "1.0.0", "main": "target/test/interpreter_functional/plugins/kbn_tp_run_pipeline", "kibana": { diff --git a/test/node_roles_functional/plugins/core_plugin_initializer_context/kibana.json b/test/node_roles_functional/plugins/core_plugin_initializer_context/kibana.json deleted file mode 100644 index dd78b47dbb9a3d..00000000000000 --- a/test/node_roles_functional/plugins/core_plugin_initializer_context/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "corePluginInitializerContext", - "version": "0.0.1", - "kibanaVersion": "kibana", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "configPath": ["core_plugin_initializer_context"], - "server": true, - "ui": false -} diff --git a/test/node_roles_functional/plugins/core_plugin_initializer_context/kibana.jsonc b/test/node_roles_functional/plugins/core_plugin_initializer_context/kibana.jsonc new file mode 100644 index 00000000000000..01f4a8e066bffe --- /dev/null +++ b/test/node_roles_functional/plugins/core_plugin_initializer_context/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-initializer-context-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginInitializerContext", + "server": true, + "browser": false, + "configPath": [ + "core_plugin_initializer_context" + ] + } +} diff --git a/test/node_roles_functional/plugins/core_plugin_initializer_context/package.json b/test/node_roles_functional/plugins/core_plugin_initializer_context/package.json index 5deaa2c637f01b..a687793cc40a55 100644 --- a/test/node_roles_functional/plugins/core_plugin_initializer_context/package.json +++ b/test/node_roles_functional/plugins/core_plugin_initializer_context/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_initializer_context", + "name": "@kbn/core-plugin-initializer-context-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_initializer_context", "kibana": { diff --git a/test/plugin_functional/config.ts b/test/plugin_functional/config.ts index f4d81c864727b8..4ee09b45e6bdf6 100644 --- a/test/plugin_functional/config.ts +++ b/test/plugin_functional/config.ts @@ -6,19 +6,12 @@ * Side Public License, v 1. */ -import { FtrConfigProviderContext } from '@kbn/test'; +import { FtrConfigProviderContext, findTestPluginPaths } from '@kbn/test'; import path from 'path'; -import fs from 'fs'; export default async function ({ readConfigFile }: FtrConfigProviderContext) { const functionalConfig = await readConfigFile(require.resolve('../functional/config.base.js')); - // Find all folders in ./plugins since we treat all them as plugin folder - const allFiles = fs.readdirSync(path.resolve(__dirname, 'plugins')); - const plugins = allFiles.filter((file) => - fs.statSync(path.resolve(__dirname, 'plugins', file)).isDirectory() - ); - return { rootTags: ['runOutsideOfCiGroups'], testFiles: [ @@ -70,9 +63,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { '--xpack.cloud_integrations.full_story.org_id=a_string', '--xpack.cloud_integrations.gain_sight.enabled=true', '--xpack.cloud_integrations.gain_sight.org_id=a_string', - ...plugins.map( - (pluginDir) => `--plugin-path=${path.resolve(__dirname, 'plugins', pluginDir)}` - ), + ...findTestPluginPaths(path.resolve(__dirname, 'plugins')), ], }, }; diff --git a/test/plugin_functional/plugins/app_link_test/kibana.json b/test/plugin_functional/plugins/app_link_test/kibana.json deleted file mode 100644 index 3e6d8c120a10b9..00000000000000 --- a/test/plugin_functional/plugins/app_link_test/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "appLinkTest", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "server": false, - "ui": true, - "requiredBundles": ["kibanaReact"] -} diff --git a/test/plugin_functional/plugins/app_link_test/kibana.jsonc b/test/plugin_functional/plugins/app_link_test/kibana.jsonc new file mode 100644 index 00000000000000..26aaff93331d11 --- /dev/null +++ b/test/plugin_functional/plugins/app_link_test/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/app-link-test-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "appLinkTest", + "server": false, + "browser": true, + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/test/plugin_functional/plugins/app_link_test/package.json b/test/plugin_functional/plugins/app_link_test/package.json index 70b4562370f4cd..2888a7438d4fb7 100644 --- a/test/plugin_functional/plugins/app_link_test/package.json +++ b/test/plugin_functional/plugins/app_link_test/package.json @@ -1,5 +1,5 @@ { - "name": "app_link_test", + "name": "@kbn/app-link-test-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/app_link_test", "kibana": { diff --git a/test/plugin_functional/plugins/core_app_status/kibana.json b/test/plugin_functional/plugins/core_app_status/kibana.json deleted file mode 100644 index 0c81e8169348a1..00000000000000 --- a/test/plugin_functional/plugins/core_app_status/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "coreAppStatus", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["core_app_status"], - "server": false, - "ui": true -} diff --git a/test/plugin_functional/plugins/core_app_status/kibana.jsonc b/test/plugin_functional/plugins/core_app_status/kibana.jsonc new file mode 100644 index 00000000000000..777b77ddbece7b --- /dev/null +++ b/test/plugin_functional/plugins/core_app_status/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-app-status-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "coreAppStatus", + "server": false, + "browser": true, + "configPath": [ + "core_app_status" + ] + } +} diff --git a/test/plugin_functional/plugins/core_app_status/package.json b/test/plugin_functional/plugins/core_app_status/package.json index 4913d251eb2b77..740cbf085f6c56 100644 --- a/test/plugin_functional/plugins/core_app_status/package.json +++ b/test/plugin_functional/plugins/core_app_status/package.json @@ -1,5 +1,5 @@ { - "name": "core_app_status", + "name": "@kbn/core-app-status-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_app_status", "kibana": { diff --git a/test/plugin_functional/plugins/core_history_block/kibana.json b/test/plugin_functional/plugins/core_history_block/kibana.json deleted file mode 100644 index 189c79b1a76a05..00000000000000 --- a/test/plugin_functional/plugins/core_history_block/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "coreHistoryBlock", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "server": false, - "ui": true, - "requiredBundles": ["kibanaReact"] -} diff --git a/test/plugin_functional/plugins/core_history_block/kibana.jsonc b/test/plugin_functional/plugins/core_history_block/kibana.jsonc new file mode 100644 index 00000000000000..f64a37a2f6456c --- /dev/null +++ b/test/plugin_functional/plugins/core_history_block/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-history-block-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "coreHistoryBlock", + "server": false, + "browser": true, + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/test/plugin_functional/plugins/core_history_block/package.json b/test/plugin_functional/plugins/core_history_block/package.json index f5590e33e6ac01..8fb9bbbff293c6 100644 --- a/test/plugin_functional/plugins/core_history_block/package.json +++ b/test/plugin_functional/plugins/core_history_block/package.json @@ -1,5 +1,5 @@ { - "name": "core_history_block", + "name": "@kbn/core-history-block-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_history_block", "kibana": { diff --git a/test/plugin_functional/plugins/core_http/kibana.json b/test/plugin_functional/plugins/core_http/kibana.json deleted file mode 100644 index 6d0042d33f5ab1..00000000000000 --- a/test/plugin_functional/plugins/core_http/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "coreHttp", - "version": "0.0.1", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "kibanaVersion": "kibana", - "configPath": ["core_http"], - "server": true, - "ui": true -} diff --git a/test/plugin_functional/plugins/core_http/kibana.jsonc b/test/plugin_functional/plugins/core_http/kibana.jsonc new file mode 100644 index 00000000000000..0dda1a9c26e0e4 --- /dev/null +++ b/test/plugin_functional/plugins/core_http/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-http-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "coreHttp", + "server": true, + "browser": true, + "configPath": [ + "core_http" + ] + } +} diff --git a/test/plugin_functional/plugins/core_http/package.json b/test/plugin_functional/plugins/core_http/package.json index fd0e80d3c18228..7b079d9bd513e8 100644 --- a/test/plugin_functional/plugins/core_http/package.json +++ b/test/plugin_functional/plugins/core_http/package.json @@ -1,5 +1,5 @@ { - "name": "core_http", + "name": "@kbn/core-http-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_http", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_a/kibana.json b/test/plugin_functional/plugins/core_plugin_a/kibana.json deleted file mode 100644 index 7914f0cc616cc1..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_a/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "corePluginA", - "version": "0.0.1", - "kibanaVersion": "kibana", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "configPath": ["core_plugin_a"], - "server": true, - "ui": true -} diff --git a/test/plugin_functional/plugins/core_plugin_a/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_a/kibana.jsonc new file mode 100644 index 00000000000000..6881ba0e068016 --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_a/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-a-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginA", + "server": true, + "browser": true, + "configPath": [ + "core_plugin_a" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_a/package.json b/test/plugin_functional/plugins/core_plugin_a/package.json index 41f12a8a9e7852..306e8ac483e1c7 100644 --- a/test/plugin_functional/plugins/core_plugin_a/package.json +++ b/test/plugin_functional/plugins/core_plugin_a/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_a", + "name": "@kbn/core-plugin-a-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_a", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_appleave/kibana.json b/test/plugin_functional/plugins/core_plugin_appleave/kibana.json deleted file mode 100644 index f51343e87ae339..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_appleave/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "corePluginAppleave", - "version": "0.0.1", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "kibanaVersion": "kibana", - "configPath": ["core_plugin_appleave"], - "server": false, - "ui": true -} diff --git a/test/plugin_functional/plugins/core_plugin_appleave/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_appleave/kibana.jsonc new file mode 100644 index 00000000000000..ac53436cfd4e78 --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_appleave/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-appleave-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginAppleave", + "server": false, + "browser": true, + "configPath": [ + "core_plugin_appleave" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_appleave/package.json b/test/plugin_functional/plugins/core_plugin_appleave/package.json index faa82703dfcdd0..661596fcd5e60a 100644 --- a/test/plugin_functional/plugins/core_plugin_appleave/package.json +++ b/test/plugin_functional/plugins/core_plugin_appleave/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_appleave", + "name": "@kbn/core-plugin-appleave-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_appleave", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_b/kibana.json b/test/plugin_functional/plugins/core_plugin_b/kibana.json deleted file mode 100644 index bdcbb2660ed372..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_b/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "corePluginB", - "version": "0.0.1", - "kibanaVersion": "kibana", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "configPath": ["core_plugin_b"], - "server": true, - "ui": true, - "requiredPlugins": ["corePluginA"], - "optionalPlugins": ["corePluginC"] -} diff --git a/test/plugin_functional/plugins/core_plugin_b/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_b/kibana.jsonc new file mode 100644 index 00000000000000..2bd5a2183f33d9 --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_b/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-b-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginB", + "server": true, + "browser": true, + "configPath": [ + "core_plugin_b" + ], + "requiredPlugins": [ + "corePluginA" + ], + "optionalPlugins": [ + "corePluginC" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_b/package.json b/test/plugin_functional/plugins/core_plugin_b/package.json index 6b351c0e06db8b..761a8a85383c7b 100644 --- a/test/plugin_functional/plugins/core_plugin_b/package.json +++ b/test/plugin_functional/plugins/core_plugin_b/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_b", + "name": "@kbn/core-plugin-b-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_b", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_chromeless/kibana.json b/test/plugin_functional/plugins/core_plugin_chromeless/kibana.json deleted file mode 100644 index 9c538a2a4bf27f..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_chromeless/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "corePluginChromeless", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["core_plugin_chromeless"], - "server": false, - "ui": true -} diff --git a/test/plugin_functional/plugins/core_plugin_chromeless/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_chromeless/kibana.jsonc new file mode 100644 index 00000000000000..ae8e4745ebd07f --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_chromeless/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-chromeless-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginChromeless", + "server": false, + "browser": true, + "configPath": [ + "core_plugin_chromeless" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_chromeless/package.json b/test/plugin_functional/plugins/core_plugin_chromeless/package.json index 9f7e58db22e1d5..05ba5ef64c9af4 100644 --- a/test/plugin_functional/plugins/core_plugin_chromeless/package.json +++ b/test/plugin_functional/plugins/core_plugin_chromeless/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_chromeless", + "name": "@kbn/core-plugin-chromeless-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_chromeless", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_deep_links/kibana.json b/test/plugin_functional/plugins/core_plugin_deep_links/kibana.json deleted file mode 100644 index 8d7e15710d7f10..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_deep_links/kibana.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "corePluginDeepLinks", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["core_plugin_deep_links"], - "ui": true -} diff --git a/test/plugin_functional/plugins/core_plugin_deep_links/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_deep_links/kibana.jsonc new file mode 100644 index 00000000000000..02041c71dbe109 --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_deep_links/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-deep-links-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginDeepLinks", + "server": false, + "browser": true, + "configPath": [ + "core_plugin_deep_links" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_deep_links/package.json b/test/plugin_functional/plugins/core_plugin_deep_links/package.json index 3fe16ddee53214..7cf090608d99ac 100644 --- a/test/plugin_functional/plugins/core_plugin_deep_links/package.json +++ b/test/plugin_functional/plugins/core_plugin_deep_links/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_deep_links", + "name": "@kbn/core-plugin-deep-links-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_deep_links", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_deprecations/kibana.json b/test/plugin_functional/plugins/core_plugin_deprecations/kibana.json deleted file mode 100644 index ace107cdc6a84a..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_deprecations/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "corePluginDeprecations", - "version": "0.0.1", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "kibanaVersion": "kibana", - "configPath": ["corePluginDeprecations"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/core_plugin_deprecations/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_deprecations/kibana.jsonc new file mode 100644 index 00000000000000..c8e7b54f1ee9ca --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_deprecations/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-deprecations-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginDeprecations", + "server": true, + "browser": false, + "configPath": [ + "corePluginDeprecations" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_deprecations/package.json b/test/plugin_functional/plugins/core_plugin_deprecations/package.json index f14ec933f59b2b..2e44ab1d197aef 100644 --- a/test/plugin_functional/plugins/core_plugin_deprecations/package.json +++ b/test/plugin_functional/plugins/core_plugin_deprecations/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_deprecations", + "name": "@kbn/core-plugin-deprecations-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_deprecations", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_execution_context/kibana.json b/test/plugin_functional/plugins/core_plugin_execution_context/kibana.json deleted file mode 100644 index e6d7ed04d25b30..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_execution_context/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "corePluginExecutionContext", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["core_plugin_execution_context"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/core_plugin_execution_context/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_execution_context/kibana.jsonc new file mode 100644 index 00000000000000..c5eefb0118d0d8 --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_execution_context/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-execution-context-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginExecutionContext", + "server": true, + "browser": false, + "configPath": [ + "core_plugin_execution_context" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_execution_context/package.json b/test/plugin_functional/plugins/core_plugin_execution_context/package.json index 4b932850cfa044..bdb8fa5471ced4 100644 --- a/test/plugin_functional/plugins/core_plugin_execution_context/package.json +++ b/test/plugin_functional/plugins/core_plugin_execution_context/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_execution_context", + "name": "@kbn/core-plugin-execution-context-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_execution_context", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_helpmenu/kibana.json b/test/plugin_functional/plugins/core_plugin_helpmenu/kibana.json deleted file mode 100644 index 84378c0b16a1bb..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_helpmenu/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "corePluginHelpmenu", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["core_plugin_helpmenu"], - "server": false, - "ui": true -} diff --git a/test/plugin_functional/plugins/core_plugin_helpmenu/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_helpmenu/kibana.jsonc new file mode 100644 index 00000000000000..bb895aea016882 --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_helpmenu/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-helpmenu-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginHelpmenu", + "server": false, + "browser": true, + "configPath": [ + "core_plugin_helpmenu" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_helpmenu/package.json b/test/plugin_functional/plugins/core_plugin_helpmenu/package.json index cd919e3c2f45c7..b0c1a92642be24 100644 --- a/test/plugin_functional/plugins/core_plugin_helpmenu/package.json +++ b/test/plugin_functional/plugins/core_plugin_helpmenu/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_helpmenu", + "name": "@kbn/core-plugin-helpmenu-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_helpmenu", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_route_timeouts/kibana.json b/test/plugin_functional/plugins/core_plugin_route_timeouts/kibana.json deleted file mode 100644 index 935db895e49348..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_route_timeouts/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "corePluginRouteTimeouts", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["core_plugin_route_timeouts"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/core_plugin_route_timeouts/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_route_timeouts/kibana.jsonc new file mode 100644 index 00000000000000..ab211c36bddc9b --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_route_timeouts/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-route-timeouts-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginRouteTimeouts", + "server": true, + "browser": false, + "configPath": [ + "core_plugin_route_timeouts" + ] + } +} diff --git a/test/plugin_functional/plugins/core_plugin_route_timeouts/package.json b/test/plugin_functional/plugins/core_plugin_route_timeouts/package.json index fe356e6e013f9a..a1ab4dd5196f7c 100644 --- a/test/plugin_functional/plugins/core_plugin_route_timeouts/package.json +++ b/test/plugin_functional/plugins/core_plugin_route_timeouts/package.json @@ -1,5 +1,5 @@ { - "name": "core_plugin_route_timeouts", + "name": "@kbn/core-plugin-route-timeouts-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_route_timeouts", "kibana": { diff --git a/test/plugin_functional/plugins/core_plugin_static_assets/kibana.json b/test/plugin_functional/plugins/core_plugin_static_assets/kibana.json deleted file mode 100644 index 0aeefda84030b9..00000000000000 --- a/test/plugin_functional/plugins/core_plugin_static_assets/kibana.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "corePluginStaticAssets", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "server": false, - "ui": true -} diff --git a/test/plugin_functional/plugins/core_plugin_static_assets/kibana.jsonc b/test/plugin_functional/plugins/core_plugin_static_assets/kibana.jsonc new file mode 100644 index 00000000000000..f6dfa6537dd1f6 --- /dev/null +++ b/test/plugin_functional/plugins/core_plugin_static_assets/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/core-plugin-static-assets-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "corePluginStaticAssets", + "server": false, + "browser": true + } +} diff --git a/test/plugin_functional/plugins/core_plugin_static_assets/package.json b/test/plugin_functional/plugins/core_plugin_static_assets/package.json index 5fc2faf60be476..adf058f65beb92 100644 --- a/test/plugin_functional/plugins/core_plugin_static_assets/package.json +++ b/test/plugin_functional/plugins/core_plugin_static_assets/package.json @@ -1,5 +1,5 @@ { - "name": "corePluginStaticAssets", + "name": "@kbn/core-plugin-static-assets-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_plugin_static_assets", "kibana": { diff --git a/test/plugin_functional/plugins/core_provider_plugin/kibana.json b/test/plugin_functional/plugins/core_provider_plugin/kibana.json deleted file mode 100644 index c5bfdfb6e1deb7..00000000000000 --- a/test/plugin_functional/plugins/core_provider_plugin/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "coreProviderPlugin", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "optionalPlugins": ["corePluginA", "corePluginB", "coreHttp", "licensing", "globalSearchTest"], - "server": false, - "ui": true -} diff --git a/test/plugin_functional/plugins/core_provider_plugin/kibana.jsonc b/test/plugin_functional/plugins/core_provider_plugin/kibana.jsonc new file mode 100644 index 00000000000000..17d2fa354659a1 --- /dev/null +++ b/test/plugin_functional/plugins/core_provider_plugin/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/core-provider-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "coreProviderPlugin", + "server": false, + "browser": true, + "optionalPlugins": [ + "corePluginA", + "corePluginB", + "coreHttp", + "licensing", + "globalSearchTest" + ] + } +} diff --git a/test/plugin_functional/plugins/core_provider_plugin/package.json b/test/plugin_functional/plugins/core_provider_plugin/package.json index 5083bbf33063ae..7c1b606d7facac 100644 --- a/test/plugin_functional/plugins/core_provider_plugin/package.json +++ b/test/plugin_functional/plugins/core_provider_plugin/package.json @@ -1,5 +1,5 @@ { - "name": "core_provider_plugin", + "name": "@kbn/core-provider-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/core_provider_plugin", "kibana": { diff --git a/test/plugin_functional/plugins/data_search/kibana.json b/test/plugin_functional/plugins/data_search/kibana.json deleted file mode 100644 index eadc4b71f3203a..00000000000000 --- a/test/plugin_functional/plugins/data_search/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "dataSearchPlugin", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["data_search_test_plugin"], - "server": true, - "ui": false, - "requiredPlugins": ["data"] -} diff --git a/test/plugin_functional/plugins/data_search/kibana.jsonc b/test/plugin_functional/plugins/data_search/kibana.jsonc new file mode 100644 index 00000000000000..4c19f3d22e5299 --- /dev/null +++ b/test/plugin_functional/plugins/data_search/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/data-search-plugin", + "owner": "@elastic/kibana-app-services", + "plugin": { + "id": "dataSearchPlugin", + "server": true, + "browser": false, + "configPath": [ + "data_search_test_plugin" + ], + "requiredPlugins": [ + "data" + ] + } +} diff --git a/test/plugin_functional/plugins/data_search/package.json b/test/plugin_functional/plugins/data_search/package.json index 6806e5b7a70bbe..ac1290363ede00 100644 --- a/test/plugin_functional/plugins/data_search/package.json +++ b/test/plugin_functional/plugins/data_search/package.json @@ -1,5 +1,5 @@ { - "name": "data_search_plugin", + "name": "@kbn/data-search-plugin", "version": "1.0.0", "kibana": { "version": "kibana" diff --git a/test/plugin_functional/plugins/elasticsearch_client_plugin/kibana.json b/test/plugin_functional/plugins/elasticsearch_client_plugin/kibana.json deleted file mode 100644 index cecc84a848ecc9..00000000000000 --- a/test/plugin_functional/plugins/elasticsearch_client_plugin/kibana.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "elasticsearchClientPlugin", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/elasticsearch_client_plugin/kibana.jsonc b/test/plugin_functional/plugins/elasticsearch_client_plugin/kibana.jsonc new file mode 100644 index 00000000000000..678837b4274a1e --- /dev/null +++ b/test/plugin_functional/plugins/elasticsearch_client_plugin/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/elasticsearch-client-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "elasticsearchClientPlugin", + "server": true, + "browser": false + } +} diff --git a/test/plugin_functional/plugins/elasticsearch_client_plugin/package.json b/test/plugin_functional/plugins/elasticsearch_client_plugin/package.json index 808b6cbdb6a299..2fe29c34cee9e0 100644 --- a/test/plugin_functional/plugins/elasticsearch_client_plugin/package.json +++ b/test/plugin_functional/plugins/elasticsearch_client_plugin/package.json @@ -1,5 +1,5 @@ { - "name": "elasticsearch_client_plugin", + "name": "@kbn/elasticsearch-client-plugin", "version": "1.0.0", "kibana": { "version": "kibana" diff --git a/test/plugin_functional/plugins/index_patterns/kibana.json b/test/plugin_functional/plugins/index_patterns/kibana.json deleted file mode 100644 index 290240ff6a768c..00000000000000 --- a/test/plugin_functional/plugins/index_patterns/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "indexPatternsTestPlugin", - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["index_patterns_test_plugin"], - "server": true, - "ui": false, - "requiredPlugins": ["data"], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Index pattern test plugin" -} diff --git a/test/plugin_functional/plugins/index_patterns/kibana.jsonc b/test/plugin_functional/plugins/index_patterns/kibana.jsonc new file mode 100644 index 00000000000000..15f6f27c03a374 --- /dev/null +++ b/test/plugin_functional/plugins/index_patterns/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/index-patterns-test-plugin", + "owner": "@elastic/kibana-app-services", + "description": "Index pattern test plugin", + "plugin": { + "id": "indexPatternsTestPlugin", + "server": true, + "browser": false, + "configPath": [ + "index_patterns_test_plugin" + ], + "requiredPlugins": [ + "data" + ] + } +} diff --git a/test/plugin_functional/plugins/index_patterns/package.json b/test/plugin_functional/plugins/index_patterns/package.json index b8c0e7100f0d31..82190aeb6765b3 100644 --- a/test/plugin_functional/plugins/index_patterns/package.json +++ b/test/plugin_functional/plugins/index_patterns/package.json @@ -1,5 +1,5 @@ { - "name": "index_patterns_test_plugin", + "name": "@kbn/index-patterns-test-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/index_patterns_test_plugin", "kibana": { diff --git a/test/plugin_functional/plugins/kbn_sample_panel_action/kibana.json b/test/plugin_functional/plugins/kbn_sample_panel_action/kibana.json deleted file mode 100644 index 2cd9105764d50c..00000000000000 --- a/test/plugin_functional/plugins/kbn_sample_panel_action/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "kbnSamplePanelAction", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["kbn_sample_panel_action"], - "server": false, - "ui": true, - "requiredPlugins": ["uiActions", "embeddable"], - "requiredBundles": ["kibanaReact"] -} diff --git a/test/plugin_functional/plugins/kbn_sample_panel_action/kibana.jsonc b/test/plugin_functional/plugins/kbn_sample_panel_action/kibana.jsonc new file mode 100644 index 00000000000000..dab05c5f932d37 --- /dev/null +++ b/test/plugin_functional/plugins/kbn_sample_panel_action/kibana.jsonc @@ -0,0 +1,20 @@ +{ + "type": "plugin", + "id": "@kbn/kbn-sample-panel-action-plugin", + "owner": "@elastic/kibana-app-services", + "plugin": { + "id": "kbnSamplePanelAction", + "server": false, + "browser": true, + "configPath": [ + "kbn_sample_panel_action" + ], + "requiredPlugins": [ + "uiActions", + "embeddable" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/test/plugin_functional/plugins/kbn_sample_panel_action/package.json b/test/plugin_functional/plugins/kbn_sample_panel_action/package.json index 2cdef067f2caa9..5a6d9071cc08f0 100644 --- a/test/plugin_functional/plugins/kbn_sample_panel_action/package.json +++ b/test/plugin_functional/plugins/kbn_sample_panel_action/package.json @@ -1,5 +1,5 @@ { - "name": "kbn_sample_panel_action", + "name": "@kbn/kbn-sample-panel-action-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/kbn_sample_panel_action", "kibana": { diff --git a/test/plugin_functional/plugins/kbn_top_nav/kibana.json b/test/plugin_functional/plugins/kbn_top_nav/kibana.json deleted file mode 100644 index f7cf378d1fce30..00000000000000 --- a/test/plugin_functional/plugins/kbn_top_nav/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "kbnTopNav", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["kbn_top_nav"], - "server": false, - "ui": true, - "requiredPlugins": ["navigation"] -} diff --git a/test/plugin_functional/plugins/kbn_top_nav/kibana.jsonc b/test/plugin_functional/plugins/kbn_top_nav/kibana.jsonc new file mode 100644 index 00000000000000..02986b2196910a --- /dev/null +++ b/test/plugin_functional/plugins/kbn_top_nav/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/kbn-top-nav-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "kbnTopNav", + "server": false, + "browser": true, + "configPath": [ + "kbn_top_nav" + ], + "requiredPlugins": [ + "navigation" + ] + } +} diff --git a/test/plugin_functional/plugins/kbn_top_nav/package.json b/test/plugin_functional/plugins/kbn_top_nav/package.json index 7076afc1b22d2f..8ed11f1273dd2c 100644 --- a/test/plugin_functional/plugins/kbn_top_nav/package.json +++ b/test/plugin_functional/plugins/kbn_top_nav/package.json @@ -1,5 +1,5 @@ { - "name": "kbn_top_nav", + "name": "@kbn/kbn-top-nav-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/kbn_top_nav", "kibana": { diff --git a/test/plugin_functional/plugins/kbn_tp_custom_visualizations/kibana.json b/test/plugin_functional/plugins/kbn_tp_custom_visualizations/kibana.json deleted file mode 100644 index 25be1386e52321..00000000000000 --- a/test/plugin_functional/plugins/kbn_tp_custom_visualizations/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "kbnTpCustomVisualizations", - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "requiredPlugins": ["expressions", "visualizations"], - "server": false, - "ui": true -} diff --git a/test/plugin_functional/plugins/kbn_tp_custom_visualizations/kibana.jsonc b/test/plugin_functional/plugins/kbn_tp_custom_visualizations/kibana.jsonc new file mode 100644 index 00000000000000..3451f6137d64b5 --- /dev/null +++ b/test/plugin_functional/plugins/kbn_tp_custom_visualizations/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/kbn-tp-custom-visualizations-plugin", + "owner": "@elastic/kibana-visualizations", + "plugin": { + "id": "kbnTpCustomVisualizations", + "server": false, + "browser": true, + "requiredPlugins": [ + "expressions", + "visualizations" + ] + } +} diff --git a/test/plugin_functional/plugins/kbn_tp_custom_visualizations/package.json b/test/plugin_functional/plugins/kbn_tp_custom_visualizations/package.json index b900925e2019a2..e76540d84ca775 100644 --- a/test/plugin_functional/plugins/kbn_tp_custom_visualizations/package.json +++ b/test/plugin_functional/plugins/kbn_tp_custom_visualizations/package.json @@ -1,5 +1,5 @@ { - "name": "kbn_tp_custom_visualizations", + "name": "@kbn/kbn-tp-custom-visualizations-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/kbn_tp_custom_visualizations", "kibana": { diff --git a/test/plugin_functional/plugins/management_test_plugin/kibana.json b/test/plugin_functional/plugins/management_test_plugin/kibana.json deleted file mode 100644 index 61cc1bae2fce71..00000000000000 --- a/test/plugin_functional/plugins/management_test_plugin/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "managementTestPlugin", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["management_test_plugin"], - "server": false, - "ui": true, - "requiredPlugins": ["management"] -} diff --git a/test/plugin_functional/plugins/management_test_plugin/kibana.jsonc b/test/plugin_functional/plugins/management_test_plugin/kibana.jsonc new file mode 100644 index 00000000000000..a0a27c19ad0aa3 --- /dev/null +++ b/test/plugin_functional/plugins/management_test_plugin/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/management-test-plugin", + "owner": "@elastic/kibana-app-services", + "plugin": { + "id": "managementTestPlugin", + "server": false, + "browser": true, + "configPath": [ + "management_test_plugin" + ], + "requiredPlugins": [ + "management" + ] + } +} diff --git a/test/plugin_functional/plugins/management_test_plugin/package.json b/test/plugin_functional/plugins/management_test_plugin/package.json index c37c15f11c06a4..287b73388a3a6d 100644 --- a/test/plugin_functional/plugins/management_test_plugin/package.json +++ b/test/plugin_functional/plugins/management_test_plugin/package.json @@ -1,5 +1,5 @@ { - "name": "management_test_plugin", + "name": "@kbn/management-test-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/management_test_plugin", "kibana": { diff --git a/test/plugin_functional/plugins/rendering_plugin/kibana.json b/test/plugin_functional/plugins/rendering_plugin/kibana.json deleted file mode 100644 index f3f5989cf530d3..00000000000000 --- a/test/plugin_functional/plugins/rendering_plugin/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "renderingPlugin", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["rendering_plugin"], - "server": true, - "ui": true -} diff --git a/test/plugin_functional/plugins/rendering_plugin/kibana.jsonc b/test/plugin_functional/plugins/rendering_plugin/kibana.jsonc new file mode 100644 index 00000000000000..345eb95d5163c1 --- /dev/null +++ b/test/plugin_functional/plugins/rendering_plugin/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/rendering-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "renderingPlugin", + "server": true, + "browser": true, + "configPath": [ + "rendering_plugin" + ] + } +} diff --git a/test/plugin_functional/plugins/rendering_plugin/package.json b/test/plugin_functional/plugins/rendering_plugin/package.json index 9aefa0759b4b1f..af04d1821bfc3c 100644 --- a/test/plugin_functional/plugins/rendering_plugin/package.json +++ b/test/plugin_functional/plugins/rendering_plugin/package.json @@ -1,5 +1,5 @@ { - "name": "rendering_plugin", + "name": "@kbn/rendering-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/rendering_plugin", "kibana": { diff --git a/test/plugin_functional/plugins/saved_object_export_transforms/kibana.json b/test/plugin_functional/plugins/saved_object_export_transforms/kibana.json deleted file mode 100644 index b4a6594f8736f6..00000000000000 --- a/test/plugin_functional/plugins/saved_object_export_transforms/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "savedObjectExportTransforms", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["saved_object_export_transforms"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/saved_object_export_transforms/kibana.jsonc b/test/plugin_functional/plugins/saved_object_export_transforms/kibana.jsonc new file mode 100644 index 00000000000000..7b2f04affb0b0f --- /dev/null +++ b/test/plugin_functional/plugins/saved_object_export_transforms/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/saved-object-export-transforms-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "savedObjectExportTransforms", + "server": true, + "browser": false, + "configPath": [ + "saved_object_export_transforms" + ] + } +} diff --git a/test/plugin_functional/plugins/saved_object_export_transforms/package.json b/test/plugin_functional/plugins/saved_object_export_transforms/package.json index 0ced0a3b212882..543c65abdb7edc 100644 --- a/test/plugin_functional/plugins/saved_object_export_transforms/package.json +++ b/test/plugin_functional/plugins/saved_object_export_transforms/package.json @@ -1,12 +1,12 @@ { - "name": "saved_object_export_transforms", + "name": "@kbn/saved-object-export-transforms-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/saved_object_export_transforms", "kibana": { "version": "kibana", "templateVersion": "1.0.0" }, - "license": "Apache-2.0", + "license": "SSPL-1.0 OR Elastic License 2.0", "scripts": { "kbn": "node ../../../../scripts/kbn.js", "build": "rm -rf './target' && ../../../../node_modules/.bin/tsc" diff --git a/test/plugin_functional/plugins/saved_object_import_warnings/kibana.json b/test/plugin_functional/plugins/saved_object_import_warnings/kibana.json deleted file mode 100644 index 1449c8437b57b6..00000000000000 --- a/test/plugin_functional/plugins/saved_object_import_warnings/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "savedObjectImportWarnings", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["saved_object_import_warnings"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/saved_object_import_warnings/kibana.jsonc b/test/plugin_functional/plugins/saved_object_import_warnings/kibana.jsonc new file mode 100644 index 00000000000000..1a5eb40eff359f --- /dev/null +++ b/test/plugin_functional/plugins/saved_object_import_warnings/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/saved-object-import-warnings-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "savedObjectImportWarnings", + "server": true, + "browser": false, + "configPath": [ + "saved_object_import_warnings" + ] + } +} diff --git a/test/plugin_functional/plugins/saved_object_import_warnings/package.json b/test/plugin_functional/plugins/saved_object_import_warnings/package.json index 0c3cb50bd0b180..6dbbf31b21801a 100644 --- a/test/plugin_functional/plugins/saved_object_import_warnings/package.json +++ b/test/plugin_functional/plugins/saved_object_import_warnings/package.json @@ -1,12 +1,12 @@ { - "name": "saved_object_import_warnings", + "name": "@kbn/saved-object-import-warnings-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/saved_object_import_warnings", "kibana": { "version": "kibana", "templateVersion": "1.0.0" }, - "license": "Apache-2.0", + "license": "SSPL-1.0 OR Elastic License 2.0", "scripts": { "kbn": "node ../../../../scripts/kbn.js", "build": "rm -rf './target' && ../../../../node_modules/.bin/tsc" diff --git a/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/kibana.json b/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/kibana.json deleted file mode 100644 index 43ec012e720abf..00000000000000 --- a/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "savedObjectsHiddenFromHttpApisType", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["saved_objects_hidden_from_http_apis_type"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/kibana.jsonc b/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/kibana.jsonc new file mode 100644 index 00000000000000..b4efcd30db0206 --- /dev/null +++ b/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/saved-objects-hidden-from-http-apis-type-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "savedObjectsHiddenFromHttpApisType", + "server": true, + "browser": false, + "configPath": [ + "saved_objects_hidden_from_http_apis_type" + ] + } +} diff --git a/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/package.json b/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/package.json index 098e70c85d7ba8..deb91203ce1850 100644 --- a/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/package.json +++ b/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type/package.json @@ -1,12 +1,12 @@ { - "name": "saved_objects_hidden_from_http_apis_type", + "name": "@kbn/saved-objects-hidden-from-http-apis-type-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type", "kibana": { "version": "kibana", "templateVersion": "1.0.0" }, - "license": "Apache-2.0", + "license": "SSPL-1.0 OR Elastic License 2.0", "scripts": { "kbn": "node ../../../../scripts/kbn.js", "build": "rm -rf './target' && ../../../../node_modules/.bin/tsc" diff --git a/test/plugin_functional/plugins/saved_objects_hidden_type/kibana.json b/test/plugin_functional/plugins/saved_objects_hidden_type/kibana.json deleted file mode 100644 index 9efabf2f54fcb1..00000000000000 --- a/test/plugin_functional/plugins/saved_objects_hidden_type/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "savedObjectsHiddenType", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["saved_objects_hidden_type"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/saved_objects_hidden_type/kibana.jsonc b/test/plugin_functional/plugins/saved_objects_hidden_type/kibana.jsonc new file mode 100644 index 00000000000000..ad2ef85a946f9a --- /dev/null +++ b/test/plugin_functional/plugins/saved_objects_hidden_type/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/saved-objects-hidden-type-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "savedObjectsHiddenType", + "server": true, + "browser": false, + "configPath": [ + "saved_objects_hidden_type" + ] + } +} diff --git a/test/plugin_functional/plugins/saved_objects_hidden_type/package.json b/test/plugin_functional/plugins/saved_objects_hidden_type/package.json index af5212209d574a..6341f13b33b46b 100644 --- a/test/plugin_functional/plugins/saved_objects_hidden_type/package.json +++ b/test/plugin_functional/plugins/saved_objects_hidden_type/package.json @@ -1,12 +1,12 @@ { - "name": "saved_objects_hidden_type", + "name": "@kbn/saved-objects-hidden-type-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/saved_objects_hidden_type", "kibana": { "version": "kibana", "templateVersion": "1.0.0" }, - "license": "Apache-2.0", + "license": "SSPL-1.0 OR Elastic License 2.0", "scripts": { "kbn": "node ../../../../scripts/kbn.js", "build": "rm -rf './target' && ../../../../node_modules/.bin/tsc" diff --git a/test/plugin_functional/plugins/session_notifications/kibana.json b/test/plugin_functional/plugins/session_notifications/kibana.json deleted file mode 100644 index cab17564957ddb..00000000000000 --- a/test/plugin_functional/plugins/session_notifications/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "sessionNotifications", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["session_notifications"], - "server": false, - "ui": true, - "requiredPlugins": ["data", "navigation"] -} diff --git a/test/plugin_functional/plugins/session_notifications/kibana.jsonc b/test/plugin_functional/plugins/session_notifications/kibana.jsonc new file mode 100644 index 00000000000000..c52aeed8da8cf9 --- /dev/null +++ b/test/plugin_functional/plugins/session_notifications/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/session-notifications-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "sessionNotifications", + "server": false, + "browser": true, + "configPath": [ + "session_notifications" + ], + "requiredPlugins": [ + "data", + "navigation" + ] + } +} diff --git a/test/plugin_functional/plugins/session_notifications/package.json b/test/plugin_functional/plugins/session_notifications/package.json index 5c29ea9e7e1e57..371b706dc1cb39 100644 --- a/test/plugin_functional/plugins/session_notifications/package.json +++ b/test/plugin_functional/plugins/session_notifications/package.json @@ -1,5 +1,5 @@ { - "name": "session_notifications", + "name": "@kbn/session-notifications-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/session_notifications", "kibana": { diff --git a/test/plugin_functional/plugins/telemetry/kibana.json b/test/plugin_functional/plugins/telemetry/kibana.json deleted file mode 100644 index 90d802a272e2a4..00000000000000 --- a/test/plugin_functional/plugins/telemetry/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "telemetryTestPlugin", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["telemetryTestPlugin"], - "requiredPlugins": ["telemetry"], - "server": false, - "ui": true -} diff --git a/test/plugin_functional/plugins/telemetry/kibana.jsonc b/test/plugin_functional/plugins/telemetry/kibana.jsonc new file mode 100644 index 00000000000000..cb9d500afac196 --- /dev/null +++ b/test/plugin_functional/plugins/telemetry/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/telemetry-test-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "telemetryTestPlugin", + "server": false, + "browser": true, + "configPath": [ + "telemetryTestPlugin" + ], + "requiredPlugins": [ + "telemetry" + ] + } +} diff --git a/test/plugin_functional/plugins/telemetry/package.json b/test/plugin_functional/plugins/telemetry/package.json index 8e850fb582fec4..3aaf6ab2ee5cf1 100644 --- a/test/plugin_functional/plugins/telemetry/package.json +++ b/test/plugin_functional/plugins/telemetry/package.json @@ -1,5 +1,5 @@ { - "name": "telemetry_test_plugin", + "name": "@kbn/telemetry-test-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/telemetry", "kibana": { diff --git a/test/plugin_functional/plugins/ui_settings_plugin/kibana.json b/test/plugin_functional/plugins/ui_settings_plugin/kibana.json deleted file mode 100644 index 92eff06eaaf365..00000000000000 --- a/test/plugin_functional/plugins/ui_settings_plugin/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "uiSettingsPlugin", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["ui_settings_plugin"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/ui_settings_plugin/kibana.jsonc b/test/plugin_functional/plugins/ui_settings_plugin/kibana.jsonc new file mode 100644 index 00000000000000..7cb2f9d61402d7 --- /dev/null +++ b/test/plugin_functional/plugins/ui_settings_plugin/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/ui-settings-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "uiSettingsPlugin", + "server": true, + "browser": false, + "configPath": [ + "ui_settings_plugin" + ] + } +} diff --git a/test/plugin_functional/plugins/ui_settings_plugin/package.json b/test/plugin_functional/plugins/ui_settings_plugin/package.json index a8a4db31ba86f4..125f9dd1f5ae59 100644 --- a/test/plugin_functional/plugins/ui_settings_plugin/package.json +++ b/test/plugin_functional/plugins/ui_settings_plugin/package.json @@ -1,5 +1,5 @@ { - "name": "ui_settings_plugin", + "name": "@kbn/ui-settings-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/ui_settings_plugin", "kibana": { diff --git a/test/plugin_functional/plugins/usage_collection/kibana.json b/test/plugin_functional/plugins/usage_collection/kibana.json deleted file mode 100644 index 34e6ba9afb1770..00000000000000 --- a/test/plugin_functional/plugins/usage_collection/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "usageCollectionTestPlugin", - "owner": { - "name": "Core", - "githubTeam": "kibana-core" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["usageCollectionTestPlugin"], - "requiredPlugins": ["usageCollection"], - "server": true, - "ui": false -} diff --git a/test/plugin_functional/plugins/usage_collection/kibana.jsonc b/test/plugin_functional/plugins/usage_collection/kibana.jsonc new file mode 100644 index 00000000000000..1d6b2ed62e2f03 --- /dev/null +++ b/test/plugin_functional/plugins/usage_collection/kibana.jsonc @@ -0,0 +1,16 @@ +{ + "type": "plugin", + "id": "@kbn/usage-collection-test-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "usageCollectionTestPlugin", + "server": true, + "browser": false, + "configPath": [ + "usageCollectionTestPlugin" + ], + "requiredPlugins": [ + "usageCollection" + ] + } +} diff --git a/test/plugin_functional/plugins/usage_collection/package.json b/test/plugin_functional/plugins/usage_collection/package.json index 33289bd8d727f1..6c2898db54dd89 100644 --- a/test/plugin_functional/plugins/usage_collection/package.json +++ b/test/plugin_functional/plugins/usage_collection/package.json @@ -1,5 +1,5 @@ { - "name": "usage_collection_test_plugin", + "name": "@kbn/usage-collection-test-plugin", "version": "1.0.0", "main": "target/test/plugin_functional/plugins/usage_collection", "kibana": { diff --git a/test/scripts/checks/plugins_with_circular_deps.sh b/test/scripts/checks/plugins_with_circular_deps.sh deleted file mode 100755 index 12e362e9193ee3..00000000000000 --- a/test/scripts/checks/plugins_with_circular_deps.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -source src/dev/ci_setup/setup_env.sh - -node scripts/find_plugins_with_circular_deps diff --git a/test/server_integration/http/platform/config.status.ts b/test/server_integration/http/platform/config.status.ts index f4d4b6a39e0166..456756aa79262f 100644 --- a/test/server_integration/http/platform/config.status.ts +++ b/test/server_integration/http/platform/config.status.ts @@ -6,9 +6,8 @@ * Side Public License, v 1. */ -import fs from 'fs'; import path from 'path'; -import { FtrConfigProviderContext } from '@kbn/test'; +import { FtrConfigProviderContext, findTestPluginPaths } from '@kbn/test'; /* * These tests exist in a separate configuration because: @@ -22,10 +21,6 @@ import { FtrConfigProviderContext } from '@kbn/test'; export default async function ({ readConfigFile }: FtrConfigProviderContext) { const httpConfig = await readConfigFile(require.resolve('../../config.base.js')); - // Find all folders in plugins since we treat all them as plugin folder - const pluginDir = path.resolve(__dirname, '../../plugins'); - const pluginsDirs = fs.readdirSync(pluginDir).map((name) => path.resolve(pluginDir, name)); - return { testFiles: [ // Status test should be first to resolve manually created "unavailable" plugin @@ -41,7 +36,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { ...httpConfig.get('kbnTestServer'), serverArgs: [ ...httpConfig.get('kbnTestServer.serverArgs'), - ...pluginsDirs.map((p) => `--plugin-path=${p}`), + ...findTestPluginPaths(path.resolve(__dirname, '../../plugins')), ], runOptions: { ...httpConfig.get('kbnTestServer.runOptions'), diff --git a/test/server_integration/plugins/status_plugin_a/kibana.json b/test/server_integration/plugins/status_plugin_a/kibana.json deleted file mode 100644 index 181ca0d8dc5e5a..00000000000000 --- a/test/server_integration/plugins/status_plugin_a/kibana.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "statusPluginA", - "owner": { "name": "Core", "githubTeam": "kibana-core" }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "server": true, - "ui": false -} diff --git a/test/server_integration/plugins/status_plugin_a/kibana.jsonc b/test/server_integration/plugins/status_plugin_a/kibana.jsonc new file mode 100644 index 00000000000000..e0a2c7d7496bc8 --- /dev/null +++ b/test/server_integration/plugins/status_plugin_a/kibana.jsonc @@ -0,0 +1,10 @@ +{ + "type": "plugin", + "id": "@kbn/status-plugin-a-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "statusPluginA", + "server": true, + "browser": false + } +} diff --git a/test/server_integration/plugins/status_plugin_a/package.json b/test/server_integration/plugins/status_plugin_a/package.json index 69e66bb56ecb2d..fd98c6d5012923 100644 --- a/test/server_integration/plugins/status_plugin_a/package.json +++ b/test/server_integration/plugins/status_plugin_a/package.json @@ -1,5 +1,5 @@ { - "name": "status_plugin_a", + "name": "@kbn/status-plugin-a-plugin", "version": "1.0.0", "kibana": { "version": "kibana", diff --git a/test/server_integration/plugins/status_plugin_b/kibana.json b/test/server_integration/plugins/status_plugin_b/kibana.json deleted file mode 100644 index 30b9060f9212ec..00000000000000 --- a/test/server_integration/plugins/status_plugin_b/kibana.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "statusPluginB", - "owner": { "name": "Core", "githubTeam": "kibana-core" }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "server": true, - "ui": false, - "requiredPlugins": ["statusPluginA"] -} diff --git a/test/server_integration/plugins/status_plugin_b/kibana.jsonc b/test/server_integration/plugins/status_plugin_b/kibana.jsonc new file mode 100644 index 00000000000000..9bb243250073ea --- /dev/null +++ b/test/server_integration/plugins/status_plugin_b/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/status-plugin-b-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "statusPluginB", + "server": true, + "browser": false, + "requiredPlugins": [ + "statusPluginA" + ] + } +} diff --git a/test/server_integration/plugins/status_plugin_b/package.json b/test/server_integration/plugins/status_plugin_b/package.json index e918489464f4e1..b5ad9504d063e7 100644 --- a/test/server_integration/plugins/status_plugin_b/package.json +++ b/test/server_integration/plugins/status_plugin_b/package.json @@ -1,5 +1,5 @@ { - "name": "status_plugin_b", + "name": "@kbn/status-plugin-b-plugin", "version": "1.0.0", "kibana": { "version": "kibana", diff --git a/test/tsconfig.json b/test/tsconfig.json index b0eeea8d730a7f..acdb09e2161716 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -21,6 +21,7 @@ "exclude": [ "target/**/*", "*/plugins/**/*", + "plugins/**/*", ], "kbn_references": [ "@kbn/core", diff --git a/tsconfig.base.json b/tsconfig.base.json index 4d408e4cfdd2a5..6b4a26c43479a6 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -4,10 +4,14 @@ "rootDir": ".", "paths": { // START AUTOMATED PACKAGE LISTING + "@kbn/aad-fixtures-plugin": ["x-pack/test/alerting_api_integration/common/plugins/aad"], + "@kbn/aad-fixtures-plugin/*": ["x-pack/test/alerting_api_integration/common/plugins/aad/*"], "@kbn/ace": ["packages/kbn-ace"], "@kbn/ace/*": ["packages/kbn-ace/*"], "@kbn/actions-plugin": ["x-pack/plugins/actions"], "@kbn/actions-plugin/*": ["x-pack/plugins/actions/*"], + "@kbn/actions-simulators-plugin": ["x-pack/test/alerting_api_integration/common/plugins/actions_simulators"], + "@kbn/actions-simulators-plugin/*": ["x-pack/test/alerting_api_integration/common/plugins/actions_simulators/*"], "@kbn/advanced-settings-plugin": ["src/plugins/advanced_settings"], "@kbn/advanced-settings-plugin/*": ["src/plugins/advanced_settings/*"], "@kbn/aiops-components": ["x-pack/packages/ml/aiops_components"], @@ -18,6 +22,8 @@ "@kbn/aiops-utils/*": ["x-pack/packages/ml/aiops_utils/*"], "@kbn/alerting-api-integration-helpers": ["x-pack/test/alerting_api_integration/packages/helpers"], "@kbn/alerting-api-integration-helpers/*": ["x-pack/test/alerting_api_integration/packages/helpers/*"], + "@kbn/alerting-api-integration-test-plugin": ["x-pack/test/alerting_api_integration/common/plugins/alerts"], + "@kbn/alerting-api-integration-test-plugin/*": ["x-pack/test/alerting_api_integration/common/plugins/alerts/*"], "@kbn/alerting-example-plugin": ["x-pack/examples/alerting_example"], "@kbn/alerting-example-plugin/*": ["x-pack/examples/alerting_example/*"], "@kbn/alerting-fixture-plugin": ["x-pack/test/functional_with_es_ssl/plugins/alerts"], @@ -26,6 +32,10 @@ "@kbn/alerting-plugin/*": ["x-pack/plugins/alerting/*"], "@kbn/alerts": ["packages/kbn-alerts"], "@kbn/alerts/*": ["packages/kbn-alerts/*"], + "@kbn/alerts-restricted-fixtures-plugin": ["x-pack/test/alerting_api_integration/common/plugins/alerts_restricted"], + "@kbn/alerts-restricted-fixtures-plugin/*": ["x-pack/test/alerting_api_integration/common/plugins/alerts_restricted/*"], + "@kbn/alerts-ui-shared": ["packages/kbn-alerts-ui-shared"], + "@kbn/alerts-ui-shared/*": ["packages/kbn-alerts-ui-shared/*"], "@kbn/ambient-common-types": ["packages/kbn-ambient-common-types"], "@kbn/ambient-common-types/*": ["packages/kbn-ambient-common-types/*"], "@kbn/ambient-ftr-types": ["packages/kbn-ambient-ftr-types"], @@ -66,10 +76,10 @@ "@kbn/app-link-test-plugin/*": ["test/plugin_functional/plugins/app_link_test/*"], "@kbn/application-usage-test-plugin": ["x-pack/test/usage_collection/plugins/application_usage_test"], "@kbn/application-usage-test-plugin/*": ["x-pack/test/usage_collection/plugins/application_usage_test/*"], + "@kbn/audit-log-plugin": ["x-pack/test/security_api_integration/plugins/audit_log"], + "@kbn/audit-log-plugin/*": ["x-pack/test/security_api_integration/plugins/audit_log/*"], "@kbn/axe-config": ["packages/kbn-axe-config"], "@kbn/axe-config/*": ["packages/kbn-axe-config/*"], - "@kbn/babel-plugin-package-imports": ["packages/kbn-babel-plugin-package-imports"], - "@kbn/babel-plugin-package-imports/*": ["packages/kbn-babel-plugin-package-imports/*"], "@kbn/babel-preset": ["packages/kbn-babel-preset"], "@kbn/babel-preset/*": ["packages/kbn-babel-preset/*"], "@kbn/babel-register": ["packages/kbn-babel-register"], @@ -86,10 +96,10 @@ "@kbn/bfetch-plugin/*": ["src/plugins/bfetch/*"], "@kbn/canvas-plugin": ["x-pack/plugins/canvas"], "@kbn/canvas-plugin/*": ["x-pack/plugins/canvas/*"], + "@kbn/cases-api-integration-test-plugin": ["x-pack/test/cases_api_integration/common/plugins/cases"], + "@kbn/cases-api-integration-test-plugin/*": ["x-pack/test/cases_api_integration/common/plugins/cases/*"], "@kbn/cases-components": ["packages/kbn-cases-components"], "@kbn/cases-components/*": ["packages/kbn-cases-components/*"], - "@kbn/cases-fixture-plugin": ["x-pack/test/functional_with_es_ssl/plugins/cases"], - "@kbn/cases-fixture-plugin/*": ["x-pack/test/functional_with_es_ssl/plugins/cases/*"], "@kbn/cases-plugin": ["x-pack/plugins/cases"], "@kbn/cases-plugin/*": ["x-pack/plugins/cases/*"], "@kbn/cell-actions": ["packages/kbn-cell-actions"], @@ -122,6 +132,8 @@ "@kbn/cloud-full-story-plugin/*": ["x-pack/plugins/cloud_integrations/cloud_full_story/*"], "@kbn/cloud-gainsight-plugin": ["x-pack/plugins/cloud_integrations/cloud_gain_sight"], "@kbn/cloud-gainsight-plugin/*": ["x-pack/plugins/cloud_integrations/cloud_gain_sight/*"], + "@kbn/cloud-integration-saml-provider-plugin": ["x-pack/test/cloud_integration/plugins/saml_provider"], + "@kbn/cloud-integration-saml-provider-plugin/*": ["x-pack/test/cloud_integration/plugins/saml_provider/*"], "@kbn/cloud-links-plugin": ["x-pack/plugins/cloud_integrations/cloud_links"], "@kbn/cloud-links-plugin/*": ["x-pack/plugins/cloud_integrations/cloud_links/*"], "@kbn/cloud-plugin": ["x-pack/plugins/cloud"], @@ -420,6 +432,8 @@ "@kbn/core-plugin-execution-context-plugin/*": ["test/plugin_functional/plugins/core_plugin_execution_context/*"], "@kbn/core-plugin-helpmenu-plugin": ["test/plugin_functional/plugins/core_plugin_helpmenu"], "@kbn/core-plugin-helpmenu-plugin/*": ["test/plugin_functional/plugins/core_plugin_helpmenu/*"], + "@kbn/core-plugin-initializer-context-plugin": ["test/node_roles_functional/plugins/core_plugin_initializer_context"], + "@kbn/core-plugin-initializer-context-plugin/*": ["test/node_roles_functional/plugins/core_plugin_initializer_context/*"], "@kbn/core-plugin-route-timeouts-plugin": ["test/plugin_functional/plugins/core_plugin_route_timeouts"], "@kbn/core-plugin-route-timeouts-plugin/*": ["test/plugin_functional/plugins/core_plugin_route_timeouts/*"], "@kbn/core-plugin-static-assets-plugin": ["test/plugin_functional/plugins/core_plugin_static_assets"], @@ -602,6 +616,10 @@ "@kbn/ebt-tools/*": ["packages/kbn-ebt-tools/*"], "@kbn/ecs": ["packages/kbn-ecs"], "@kbn/ecs/*": ["packages/kbn-ecs/*"], + "@kbn/ecs-data-quality-dashboard": ["x-pack/packages/kbn-ecs-data-quality-dashboard"], + "@kbn/ecs-data-quality-dashboard/*": ["x-pack/packages/kbn-ecs-data-quality-dashboard/*"], + "@kbn/ecs-data-quality-dashboard-plugin": ["x-pack/plugins/ecs_data_quality_dashboard"], + "@kbn/ecs-data-quality-dashboard-plugin/*": ["x-pack/plugins/ecs_data_quality_dashboard/*"], "@kbn/elasticsearch-client-plugin": ["test/plugin_functional/plugins/elasticsearch_client_plugin"], "@kbn/elasticsearch-client-plugin/*": ["test/plugin_functional/plugins/elasticsearch_client_plugin/*"], "@kbn/elasticsearch-client-xpack-plugin": ["x-pack/test/plugin_api_integration/plugins/elasticsearch_client"], @@ -640,6 +658,8 @@ "@kbn/eslint-plugin-eslint/*": ["packages/kbn-eslint-plugin-eslint/*"], "@kbn/eslint-plugin-imports": ["packages/kbn-eslint-plugin-imports"], "@kbn/eslint-plugin-imports/*": ["packages/kbn-eslint-plugin-imports/*"], + "@kbn/eso-plugin": ["x-pack/test/encrypted_saved_objects_api_integration/plugins/api_consumer_plugin"], + "@kbn/eso-plugin/*": ["x-pack/test/encrypted_saved_objects_api_integration/plugins/api_consumer_plugin/*"], "@kbn/event-annotation-plugin": ["src/plugins/event_annotation"], "@kbn/event-annotation-plugin/*": ["src/plugins/event_annotation/*"], "@kbn/event-log-fixture-plugin": ["x-pack/test/plugin_api_integration/plugins/event_log"], @@ -686,6 +706,8 @@ "@kbn/feature-usage-test-plugin/*": ["x-pack/test/plugin_api_integration/plugins/feature_usage_test/*"], "@kbn/features-plugin": ["x-pack/plugins/features"], "@kbn/features-plugin/*": ["x-pack/plugins/features/*"], + "@kbn/fec-alerts-test-plugin": ["x-pack/test/functional_execution_context/plugins/alerts"], + "@kbn/fec-alerts-test-plugin/*": ["x-pack/test/functional_execution_context/plugins/alerts/*"], "@kbn/field-formats-example-plugin": ["examples/field_formats_example"], "@kbn/field-formats-example-plugin/*": ["examples/field_formats_example/*"], "@kbn/field-formats-plugin": ["src/plugins/field_formats"], @@ -706,12 +728,16 @@ "@kbn/fleet-plugin/*": ["x-pack/plugins/fleet/*"], "@kbn/flot-charts": ["packages/kbn-flot-charts"], "@kbn/flot-charts/*": ["packages/kbn-flot-charts/*"], + "@kbn/foo-plugin": ["x-pack/test/ui_capabilities/common/plugins/foo_plugin"], + "@kbn/foo-plugin/*": ["x-pack/test/ui_capabilities/common/plugins/foo_plugin/*"], "@kbn/ftr-apis-plugin": ["src/plugins/ftr_apis"], "@kbn/ftr-apis-plugin/*": ["src/plugins/ftr_apis/*"], "@kbn/ftr-common-functional-services": ["packages/kbn-ftr-common-functional-services"], "@kbn/ftr-common-functional-services/*": ["packages/kbn-ftr-common-functional-services/*"], "@kbn/ftr-screenshot-filename": ["packages/kbn-ftr-screenshot-filename"], "@kbn/ftr-screenshot-filename/*": ["packages/kbn-ftr-screenshot-filename/*"], + "@kbn/functional-with-es-ssl-cases-test-plugin": ["x-pack/test/functional_with_es_ssl/plugins/cases"], + "@kbn/functional-with-es-ssl-cases-test-plugin/*": ["x-pack/test/functional_with_es_ssl/plugins/cases/*"], "@kbn/generate": ["packages/kbn-generate"], "@kbn/generate/*": ["packages/kbn-generate/*"], "@kbn/get-repo-files": ["packages/kbn-get-repo-files"], @@ -754,6 +780,8 @@ "@kbn/i18n/*": ["packages/kbn-i18n/*"], "@kbn/i18n-react": ["packages/kbn-i18n-react"], "@kbn/i18n-react/*": ["packages/kbn-i18n-react/*"], + "@kbn/iframe-embedded-plugin": ["x-pack/test/functional_embedded/plugins/iframe_embedded"], + "@kbn/iframe-embedded-plugin/*": ["x-pack/test/functional_embedded/plugins/iframe_embedded/*"], "@kbn/image-embeddable-plugin": ["src/plugins/image_embeddable"], "@kbn/image-embeddable-plugin/*": ["src/plugins/image_embeddable/*"], "@kbn/import-locator": ["packages/kbn-import-locator"], @@ -776,6 +804,8 @@ "@kbn/inspector-plugin/*": ["src/plugins/inspector/*"], "@kbn/interactive-setup-plugin": ["src/plugins/interactive_setup"], "@kbn/interactive-setup-plugin/*": ["src/plugins/interactive_setup/*"], + "@kbn/interactive-setup-test-endpoints-plugin": ["test/interactive_setup_api_integration/plugins/test_endpoints"], + "@kbn/interactive-setup-test-endpoints-plugin/*": ["test/interactive_setup_api_integration/plugins/test_endpoints/*"], "@kbn/interpreter": ["packages/kbn-interpreter"], "@kbn/interpreter/*": ["packages/kbn-interpreter/*"], "@kbn/io-ts-utils": ["packages/kbn-io-ts-utils"], @@ -796,6 +826,8 @@ "@kbn/kbn-tp-custom-visualizations-plugin/*": ["test/plugin_functional/plugins/kbn_tp_custom_visualizations/*"], "@kbn/kbn-tp-run-pipeline-plugin": ["test/interpreter_functional/plugins/kbn_tp_run_pipeline"], "@kbn/kbn-tp-run-pipeline-plugin/*": ["test/interpreter_functional/plugins/kbn_tp_run_pipeline/*"], + "@kbn/kibana-cors-test-plugin": ["x-pack/test/functional_cors/plugins/kibana_cors_test"], + "@kbn/kibana-cors-test-plugin/*": ["x-pack/test/functional_cors/plugins/kibana_cors_test/*"], "@kbn/kibana-manifest-schema": ["packages/kbn-kibana-manifest-schema"], "@kbn/kibana-manifest-schema/*": ["packages/kbn-kibana-manifest-schema/*"], "@kbn/kibana-overview-plugin": ["src/plugins/kibana_overview"], @@ -884,8 +916,12 @@ "@kbn/newsfeed-test-plugin/*": ["test/common/plugins/newsfeed/*"], "@kbn/notifications-plugin": ["x-pack/plugins/notifications"], "@kbn/notifications-plugin/*": ["x-pack/plugins/notifications/*"], + "@kbn/observability-fixtures-plugin": ["x-pack/test/cases_api_integration/common/plugins/observability"], + "@kbn/observability-fixtures-plugin/*": ["x-pack/test/cases_api_integration/common/plugins/observability/*"], "@kbn/observability-plugin": ["x-pack/plugins/observability"], "@kbn/observability-plugin/*": ["x-pack/plugins/observability/*"], + "@kbn/oidc-provider-plugin": ["x-pack/test/security_api_integration/plugins/oidc_provider"], + "@kbn/oidc-provider-plugin/*": ["x-pack/test/security_api_integration/plugins/oidc_provider/*"], "@kbn/open-telemetry-instrumented-plugin": ["test/common/plugins/otel_metrics"], "@kbn/open-telemetry-instrumented-plugin/*": ["test/common/plugins/otel_metrics/*"], "@kbn/optimizer": ["packages/kbn-optimizer"], @@ -908,8 +944,6 @@ "@kbn/performance-testing-dataset-extractor/*": ["packages/kbn-performance-testing-dataset-extractor/*"], "@kbn/picomatcher": ["packages/kbn-picomatcher"], "@kbn/picomatcher/*": ["packages/kbn-picomatcher/*"], - "@kbn/plugin-discovery": ["packages/kbn-plugin-discovery"], - "@kbn/plugin-discovery/*": ["packages/kbn-plugin-discovery/*"], "@kbn/plugin-generator": ["packages/kbn-plugin-generator"], "@kbn/plugin-generator/*": ["packages/kbn-plugin-generator/*"], "@kbn/plugin-helpers": ["packages/kbn-plugin-helpers"], @@ -962,12 +996,16 @@ "@kbn/runtime-fields-plugin/*": ["x-pack/plugins/runtime_fields/*"], "@kbn/safer-lodash-set": ["packages/kbn-safer-lodash-set"], "@kbn/safer-lodash-set/*": ["packages/kbn-safer-lodash-set/*"], + "@kbn/saml-provider-plugin": ["x-pack/test/security_api_integration/plugins/saml_provider"], + "@kbn/saml-provider-plugin/*": ["x-pack/test/security_api_integration/plugins/saml_provider/*"], "@kbn/sample-task-plugin": ["x-pack/test/plugin_api_integration/plugins/sample_task_plugin"], "@kbn/sample-task-plugin/*": ["x-pack/test/plugin_api_integration/plugins/sample_task_plugin/*"], "@kbn/saved-object-export-transforms-plugin": ["test/plugin_functional/plugins/saved_object_export_transforms"], "@kbn/saved-object-export-transforms-plugin/*": ["test/plugin_functional/plugins/saved_object_export_transforms/*"], "@kbn/saved-object-import-warnings-plugin": ["test/plugin_functional/plugins/saved_object_import_warnings"], "@kbn/saved-object-import-warnings-plugin/*": ["test/plugin_functional/plugins/saved_object_import_warnings/*"], + "@kbn/saved-object-test-plugin": ["x-pack/test/saved_object_api_integration/common/plugins/saved_object_test_plugin"], + "@kbn/saved-object-test-plugin/*": ["x-pack/test/saved_object_api_integration/common/plugins/saved_object_test_plugin/*"], "@kbn/saved-objects-finder-plugin": ["src/plugins/saved_objects_finder"], "@kbn/saved-objects-finder-plugin/*": ["src/plugins/saved_objects_finder/*"], "@kbn/saved-objects-hidden-from-http-apis-type-plugin": ["test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type"], @@ -996,8 +1034,12 @@ "@kbn/search-examples-plugin/*": ["examples/search_examples/*"], "@kbn/searchprofiler-plugin": ["x-pack/plugins/searchprofiler"], "@kbn/searchprofiler-plugin/*": ["x-pack/plugins/searchprofiler/*"], + "@kbn/security-api-integration-helpers": ["x-pack/test/security_api_integration/packages/helpers"], + "@kbn/security-api-integration-helpers/*": ["x-pack/test/security_api_integration/packages/helpers/*"], "@kbn/security-plugin": ["x-pack/plugins/security"], "@kbn/security-plugin/*": ["x-pack/plugins/security/*"], + "@kbn/security-solution-fixtures-plugin": ["x-pack/test/cases_api_integration/common/plugins/security_solution"], + "@kbn/security-solution-fixtures-plugin/*": ["x-pack/test/cases_api_integration/common/plugins/security_solution/*"], "@kbn/security-solution-plugin": ["x-pack/plugins/security_solution"], "@kbn/security-solution-plugin/*": ["x-pack/plugins/security_solution/*"], "@kbn/security-test-endpoints-plugin": ["x-pack/test/security_functional/plugins/test_endpoints"], @@ -1158,6 +1200,8 @@ "@kbn/sort-package-json/*": ["packages/kbn-sort-package-json/*"], "@kbn/spaces-plugin": ["x-pack/plugins/spaces"], "@kbn/spaces-plugin/*": ["x-pack/plugins/spaces/*"], + "@kbn/spaces-test-plugin": ["x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin"], + "@kbn/spaces-test-plugin/*": ["x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin/*"], "@kbn/spec-to-console": ["packages/kbn-spec-to-console"], "@kbn/spec-to-console/*": ["packages/kbn-spec-to-console/*"], "@kbn/stack-alerts-plugin": ["x-pack/plugins/stack_alerts"], @@ -1180,6 +1224,8 @@ "@kbn/storybook/*": ["packages/kbn-storybook/*"], "@kbn/synthetics-plugin": ["x-pack/plugins/synthetics"], "@kbn/synthetics-plugin/*": ["x-pack/plugins/synthetics/*"], + "@kbn/task-manager-fixture-plugin": ["x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture"], + "@kbn/task-manager-fixture-plugin/*": ["x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture/*"], "@kbn/task-manager-performance-plugin": ["x-pack/test/plugin_api_perf/plugins/task_manager_performance"], "@kbn/task-manager-performance-plugin/*": ["x-pack/test/plugin_api_perf/plugins/task_manager_performance/*"], "@kbn/task-manager-plugin": ["x-pack/plugins/task_manager"], @@ -1276,6 +1322,8 @@ "@kbn/user-profile-components/*": ["packages/kbn-user-profile-components/*"], "@kbn/user-profile-examples-plugin": ["examples/user_profile_examples"], "@kbn/user-profile-examples-plugin/*": ["examples/user_profile_examples/*"], + "@kbn/user-profiles-consumer-plugin": ["x-pack/test/security_api_integration/plugins/user_profiles_consumer"], + "@kbn/user-profiles-consumer-plugin/*": ["x-pack/test/security_api_integration/plugins/user_profiles_consumer/*"], "@kbn/utility-types": ["packages/kbn-utility-types"], "@kbn/utility-types/*": ["packages/kbn-utility-types/*"], "@kbn/utility-types-jest": ["packages/kbn-utility-types-jest"], diff --git a/versions.json b/versions.json index 00dd9ac949eeb1..91bf9e9b16fc4d 100644 --- a/versions.json +++ b/versions.json @@ -2,11 +2,17 @@ "notice": "This file is not maintained outside of the main branch and should only be used for tooling.", "versions": [ { - "version": "8.7.0", + "version": "8.8.0", "branch": "main", "currentMajor": true, "currentMinor": true }, + { + "version": "8.7.0", + "branch": "8.7", + "currentMajor": true, + "previousMinor": true + }, { "version": "8.6.2", "branch": "8.6", diff --git a/x-pack/.i18nrc.json b/x-pack/.i18nrc.json index e0cb6b15760fba..fbde4b1e73c7e3 100644 --- a/x-pack/.i18nrc.json +++ b/x-pack/.i18nrc.json @@ -77,8 +77,8 @@ }, "exclude": ["examples"], "translations": [ - "plugins/translations/translations/zh-CN.json", - "plugins/translations/translations/ja-JP.json", - "plugins/translations/translations/fr-FR.json" + "@kbn/translations-plugin/translations/zh-CN.json", + "@kbn/translations-plugin/translations/ja-JP.json", + "@kbn/translations-plugin/translations/fr-FR.json" ] } diff --git a/x-pack/examples/alerting_example/jest.config.js b/x-pack/examples/alerting_example/jest.config.js new file mode 100644 index 00000000000000..eb7daf136078e2 --- /dev/null +++ b/x-pack/examples/alerting_example/jest.config.js @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../..', + roots: ['/x-pack/examples/alerting_example'], + coverageDirectory: '/target/kibana-coverage/jest/x-pack/examples/alerting_example', + coverageReporters: ['text', 'html'], + collectCoverageFrom: [ + '/x-pack/examples/alerting_example/{common,public,server}/**/*.{ts,tsx}', + ], +}; diff --git a/x-pack/examples/alerting_example/kibana.json b/x-pack/examples/alerting_example/kibana.json deleted file mode 100644 index dabf932b5e68de..00000000000000 --- a/x-pack/examples/alerting_example/kibana.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "id": "alertingExample", - "version": "0.0.1", - "kibanaVersion": "kibana", - "owner": { - "name": "Response Ops", - "githubTeam": "response-ops" - }, - "server": true, - "ui": true, - "requiredPlugins": [ - "triggersActionsUi", - "charts", - "data", - "alerting", - "actions", - "kibanaReact", - "features", - "developerExamples" - ], - "optionalPlugins": [], - "requiredBundles": ["kibanaReact"] -} diff --git a/x-pack/examples/alerting_example/kibana.jsonc b/x-pack/examples/alerting_example/kibana.jsonc new file mode 100644 index 00000000000000..b46106477a6680 --- /dev/null +++ b/x-pack/examples/alerting_example/kibana.jsonc @@ -0,0 +1,23 @@ +{ + "type": "plugin", + "id": "@kbn/alerting-example-plugin", + "owner": "@elastic/response-ops", + "plugin": { + "id": "alertingExample", + "server": true, + "browser": true, + "requiredPlugins": [ + "triggersActionsUi", + "charts", + "data", + "alerting", + "actions", + "kibanaReact", + "features", + "developerExamples" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/x-pack/examples/alerting_example/server/alert_types/pattern.md b/x-pack/examples/alerting_example/server/alert_types/pattern.md new file mode 100644 index 00000000000000..68eb53327b28c0 --- /dev/null +++ b/x-pack/examples/alerting_example/server/alert_types/pattern.md @@ -0,0 +1,70 @@ +# rule type `example.pattern` + +This rule type will generate alerts on a pattern. The rule parameter +is `patterns`, and should be an `Record` where the +key is the instance name, and the value is a string of tokens, either +`a` or `-`, used to indicate if the alert should be active or not. + +The patterns progress through each step, and then cycle around to the +beginning when they get to the end. + +For example, the parameter below will generate alerts on the following +runs, with the cycle repeating at run 7. + + { + patterns: { + instA: ' a - a ', + instB: ' - a ', + }, + } + +| run | instA | instB | +| ---- | ------ | ------ | +| 1 | active | | +| 2 | | active | +| 3 | active | | +| 4 | active | active | +| 5 | | | +| 6 | active | active | +| 7 | active | | + +The context variables available are: + +- `patternIndex` - index of the pattern being run +- `action` - either 'a' or '-' for the current pattern action, so 'a' :-) +- `pattern` - the entire pattern, as an array of 'a' and '-' chars +- `runs` - total number of runs of the rule + +There is no UX for this (yet), so you'll need to use `curl` to create/update +the rule. The following also uses [`jq`](https://stedolan.github.io/jq/) +to create a connector and capture it's id to use with the rule. + +```console +SERVER_LOG_ID=`curl $KBN_URL/api/actions/connector -H "kbn-xsrf: foo" -H "content-type: application/json" -d '{ + "connector_type_id": ".server-log", + "name": "server log", + "config": {}, + "secrets": {} +}' | jq -r '.id'` + + +curl $KBN_URL/api/alerting/rule/ -H "kbn-xsrf: foo" -H "content-type: application/json" -d "{ + \"rule_type_id\": \"example.pattern\", + \"name\": \"pattern\", + \"schedule\": { + \"interval\": \"5s\" + }, + \"actions\": [ + { \"group\": \"default\", \"id\": \"$SERVER_LOG_ID\", \"params\": { \"message\": \"{{alert.id}} active on run {{context.runs}} step {{context.patternIndex}}\"}} + ], + \"consumer\": \"alerts\", + \"tags\": [], + \"notify_when\": \"onActiveAlert\", + \"params\": { + \"patterns\": { + \"instA\": \" a - a \", + \"instB\": \" - a \" + } + } +}" +``` diff --git a/x-pack/examples/alerting_example/server/alert_types/pattern.test.ts b/x-pack/examples/alerting_example/server/alert_types/pattern.test.ts new file mode 100644 index 00000000000000..a9e48cdc7925e1 --- /dev/null +++ b/x-pack/examples/alerting_example/server/alert_types/pattern.test.ts @@ -0,0 +1,202 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { loggingSystemMock } from '@kbn/core/server/mocks'; +import { alertType } from './pattern'; + +const logger = loggingSystemMock.create().get(); + +describe('pattern rule type', () => { + test('throws on bad patterns', async () => { + const params = { + patterns: { + instA: ' a nope - ', + instB: ' hallo! ', + }, + }; + const state = {}; + const options = { + params, + state, + }; + try { + await alertType.executor(options as any); + } catch (err) { + expect(err.message).toMatchInlineSnapshot( + `"errors in patterns: pattern for instA contains invalid string: \\"nope\\", pattern for instB contains invalid string: \\"hallo!\\""` + ); + } + }); + + test('works as expected', async () => { + const params = { + patterns: { + instA: ' a - a ', + instB: ' - a ', + }, + }; + const state = {}; + const services = getServices(); + const options = { + logger, + params, + state, + services, + }; + + let result: any; + for (let i = 0; i < 6; i++) { + result = await alertType.executor(options as any); + options.state = result.state; + } + + expect(services.scheduledActions).toMatchInlineSnapshot(` + Array [ + Array [ + "instA", + "default", + Object { + "action": "a", + "pattern": Array [ + "a", + "-", + "a", + ], + "patternIndex": 0, + "runs": 1, + }, + ], + Array [ + "instB", + "default", + Object { + "action": "a", + "pattern": Array [ + "-", + "a", + ], + "patternIndex": 1, + "runs": 2, + }, + ], + Array [ + "instA", + "default", + Object { + "action": "a", + "pattern": Array [ + "a", + "-", + "a", + ], + "patternIndex": 2, + "runs": 3, + }, + ], + Array [ + "instA", + "default", + Object { + "action": "a", + "pattern": Array [ + "a", + "-", + "a", + ], + "patternIndex": 0, + "runs": 4, + }, + ], + Array [ + "instB", + "default", + Object { + "action": "a", + "pattern": Array [ + "-", + "a", + ], + "patternIndex": 1, + "runs": 4, + }, + ], + Array [ + "instA", + "default", + Object { + "action": "a", + "pattern": Array [ + "a", + "-", + "a", + ], + "patternIndex": 2, + "runs": 6, + }, + ], + Array [ + "instB", + "default", + Object { + "action": "a", + "pattern": Array [ + "-", + "a", + ], + "patternIndex": 1, + "runs": 6, + }, + ], + ] + `); + + expect(result.state).toMatchInlineSnapshot(` + Object { + "patternParamJSON": "{\\"instA\\":\\" a - a \\",\\"instB\\":\\" - a \\"}", + "patterns": Array [ + Object { + "instance": "instA", + "pattern": Array [ + "a", + "-", + "a", + ], + "patternIndex": 0, + }, + Object { + "instance": "instB", + "pattern": Array [ + "-", + "a", + ], + "patternIndex": 0, + }, + ], + "runs": 6, + } + `); + }); +}); + +// services.alertFactory.create(instance).scheduleActions('default', context); +type ScheduledAction = [string, string, any]; +function getServices() { + const scheduledActions: ScheduledAction[] = []; + + return { + scheduledActions, + alertFactory: { + create(instance: string) { + return { + scheduleActions(actionGroup: string, context: any) { + scheduledActions.push([instance, actionGroup, context]); + }, + }; + }, + }, + }; +} diff --git a/x-pack/examples/alerting_example/server/alert_types/pattern.ts b/x-pack/examples/alerting_example/server/alert_types/pattern.ts new file mode 100644 index 00000000000000..1cebdf7f3f5f54 --- /dev/null +++ b/x-pack/examples/alerting_example/server/alert_types/pattern.ts @@ -0,0 +1,150 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { schema, TypeOf } from '@kbn/config-schema'; +import { + RuleType as BaseRuleType, + RuleTypeState, + RuleExecutorOptions as BaseRuleExecutorOptions, +} from '@kbn/alerting-plugin/server'; + +type Params = TypeOf; +const Params = schema.object( + { + patterns: schema.recordOf(schema.string(), schema.string()), + }, + { + validate({ patterns }) { + try { + buildPatterns(patterns); + } catch (err) { + return err.message; + } + }, + } +); + +type Action = 'a' | '-'; // active, error, not active +interface InstancePattern { + instance: string; + patternIndex: number; + pattern: Action[]; +} + +interface State extends RuleTypeState { + patternParamJSON?: string; + patterns?: InstancePattern[]; + runs?: number; +} + +type RuleExecutorOptions = BaseRuleExecutorOptions; + +type RuleType = BaseRuleType; +export const alertType: RuleType = getPatternRuleType(); + +function getPatternRuleType(): RuleType { + return { + id: 'example.pattern', + name: 'Example: Creates alerts on a pattern, for testing', + actionGroups: [{ id: 'default', name: 'Default' }], + producer: 'alertsFixture', + defaultActionGroupId: 'default', + minimumLicenseRequired: 'basic', + isExportable: true, + executor, + validate: { + params: Params, + }, + }; +} + +async function executor(options: RuleExecutorOptions): Promise<{ state: State }> { + const { services, state, params } = options; + + if (state.runs == null) { + state.runs = 0; + } + state.runs++; + + // rebuild our patterns in state if the params change + const patternParamJSON = JSON.stringify(params.patterns); + if (state.patternParamJSON !== patternParamJSON) { + state.patterns = undefined; + } + + if (state.patterns == null) { + state.patternParamJSON = patternParamJSON; + state.patterns = buildPatterns(params.patterns); + } + + const { patterns, runs } = state; + + for (const element of patterns) { + const { instance, pattern, patternIndex } = element; + const action = pattern[patternIndex]; + + element.patternIndex++; + if (element.patternIndex >= element.pattern.length) { + element.patternIndex = 0; + } + + switch (action) { + case 'a': + const context = { patternIndex, action, pattern, runs }; + services.alertFactory.create(instance).scheduleActions('default', context); + break; + case '-': + break; + default: + options.logger.error(`invalid action "${action}" from instance ${instance}`); + } + } + + return { + state: { + patterns, + patternParamJSON, + runs, + }, + }; +} + +function buildPatterns(stringPatterns: Record): InstancePattern[] { + const result: InstancePattern[] = []; + const errors: string[] = []; + + for (const [instance, stringPattern] of Object.entries(stringPatterns)) { + const pattern = getPatternFromString(instance, stringPattern, errors); + result.push({ instance, pattern, patternIndex: 0 }); + } + + if (errors.length) { + throw new Error(`errors in patterns: ${errors.join(', ')}`); + } + + return result; +} + +function getPatternFromString(instance: string, stringPattern: string, errors: string[]): Action[] { + const result: Action[] = []; + + const runs = stringPattern.trim().split(/\s+/g); + for (const run of runs) { + switch (run) { + case 'a': + result.push('a'); + break; + case '-': + result.push('-'); + break; + default: + errors.push(`pattern for ${instance} contains invalid string: "${run}"`); + } + } + + return result; +} diff --git a/x-pack/examples/alerting_example/server/plugin.ts b/x-pack/examples/alerting_example/server/plugin.ts index 06e3e9bc772f49..32a55020ed524a 100644 --- a/x-pack/examples/alerting_example/server/plugin.ts +++ b/x-pack/examples/alerting_example/server/plugin.ts @@ -14,6 +14,7 @@ import { PluginSetupContract as FeaturesPluginSetup } from '@kbn/features-plugin import { alertType as alwaysFiringAlert } from './alert_types/always_firing'; import { alertType as peopleInSpaceAlert } from './alert_types/astros'; +import { alertType as patternAlert } from './alert_types/pattern'; // can't import static code from another plugin to support examples functional test const INDEX_THRESHOLD_ID = '.index-threshold'; import { ALERTING_EXAMPLE_APP_ID } from '../common/constants'; @@ -28,6 +29,7 @@ export class AlertingExamplePlugin implements Plugin { - const [isOpen, setIsOpen] = useState(false); - const [isLoading, setIsLoading] = useState(false); - + const RulesListNotifyBadge = triggersActionsUi.getRulesListNotifyBadge; return (
    - {triggersActionsUi.getRulesListNotifyBadge({ - rule: mockRule, - isOpen, - isLoading, - onClick: () => setIsOpen(!isOpen), - onClose: () => setIsOpen(false), - onLoading: setIsLoading, - onRuleChanged: () => Promise.resolve(), - snoozeRule: () => Promise.resolve(), - unsnoozeRule: () => Promise.resolve(), - })} + Promise.resolve()} + />
    ); }; diff --git a/x-pack/examples/ui_actions_enhanced_examples/kibana.json b/x-pack/examples/ui_actions_enhanced_examples/kibana.json deleted file mode 100644 index 90b517c94a4df0..00000000000000 --- a/x-pack/examples/ui_actions_enhanced_examples/kibana.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "id": "uiActionsEnhancedExamples", - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["ui_actions_enhanced_examples"], - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "requiredPlugins": [ - "uiActions", - "uiActionsEnhanced", - "data", - "discover", - "dashboard", - "dashboardEnhanced", - "developerExamples", - "unifiedSearch" - ], - "optionalPlugins": [], - "requiredBundles": ["dashboardEnhanced", "embeddable", "kibanaUtils", "kibanaReact"] -} diff --git a/x-pack/examples/ui_actions_enhanced_examples/kibana.jsonc b/x-pack/examples/ui_actions_enhanced_examples/kibana.jsonc new file mode 100644 index 00000000000000..33412d3529b478 --- /dev/null +++ b/x-pack/examples/ui_actions_enhanced_examples/kibana.jsonc @@ -0,0 +1,29 @@ +{ + "type": "plugin", + "id": "@kbn/ui-actions-enhanced-examples-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "uiActionsEnhancedExamples", + "server": false, + "browser": true, + "configPath": [ + "ui_actions_enhanced_examples" + ], + "requiredPlugins": [ + "uiActions", + "uiActionsEnhanced", + "data", + "discover", + "dashboard", + "dashboardEnhanced", + "developerExamples", + "unifiedSearch" + ], + "requiredBundles": [ + "dashboardEnhanced", + "embeddable", + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/x-pack/package.json b/x-pack/package.json index 9dc04d2f20c6be..a296abae2111e9 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -1,6 +1,6 @@ { "name": "x-pack", - "version": "8.7.0", + "version": "8.8.0", "author": "Elastic", "private": true, "license": "Elastic-License", diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/README.md b/x-pack/packages/kbn-ecs-data-quality-dashboard/README.md new file mode 100644 index 00000000000000..9f62c82051f72c --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/README.md @@ -0,0 +1,12 @@ +# @kbn/ecs-data-quality-dashboard + +This package exports the `DataQualityPanel` React component. + +The `DataQualityPanel` renders the content of the _Data Quality_ dashboard. + +- The Data Quality dashboard checks the mappings and values in indices for [ECS](https://github.com/elastic/ecs) compliance +- Results are added to a new case, or exported as markdown + +## Maintainers + +Maintained by the Security Solution _Threat Hunting Investigations_ team diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/ecs_allowed_values/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/ecs_allowed_values/index.tsx new file mode 100644 index 00000000000000..aab085fe7fda4a --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/ecs_allowed_values/index.tsx @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiCode, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import React from 'react'; +import styled from 'styled-components'; + +import { EMPTY_PLACEHOLDER } from '../helpers'; +import { CodeSuccess } from '../../styles'; +import type { AllowedValue } from '../../types'; + +const EcsAllowedValueFlexItem = styled(EuiFlexItem)` + margin-bottom: ${({ theme }) => theme.eui.euiSizeXS}; +`; + +interface Props { + allowedValues: AllowedValue[] | undefined; +} + +const EcsAllowedValuesComponent: React.FC = ({ allowedValues }) => + allowedValues == null ? ( + {EMPTY_PLACEHOLDER} + ) : ( + + {allowedValues.map((x, i) => ( + + {x.name} + + ))} + + ); + +EcsAllowedValuesComponent.displayName = 'EcsAllowedValuesComponent'; + +export const EcsAllowedValues = React.memo(EcsAllowedValuesComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/helpers.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/helpers.tsx new file mode 100644 index 00000000000000..0de9a8d83c61e0 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/helpers.tsx @@ -0,0 +1,214 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { EuiTableFieldDataColumnType } from '@elastic/eui'; +import { EuiCode } from '@elastic/eui'; +import React from 'react'; + +import { EcsAllowedValues } from './ecs_allowed_values'; +import { IndexInvalidValues } from './index_invalid_values'; +import { CodeDanger, CodeSuccess } from '../styles'; +import * as i18n from './translations'; +import type { AllowedValue, EnrichedFieldMetadata, UnallowedValueCount } from '../types'; + +export const EMPTY_PLACEHOLDER = '--'; + +export const getCommonTableColumns = (): Array< + EuiTableFieldDataColumnType +> => [ + { + field: 'indexFieldName', + name: i18n.FIELD, + sortable: true, + truncateText: false, + width: '20%', + }, + { + field: 'type', + name: i18n.ECS_MAPPING_TYPE_EXPECTED, + render: (type: string) => {type != null ? type : EMPTY_PLACEHOLDER}, + sortable: true, + truncateText: false, + width: '15%', + }, + { + field: 'indexFieldType', + name: i18n.INDEX_MAPPING_TYPE_ACTUAL, + render: (_, x) => + x.type != null && x.indexFieldType !== x.type ? ( + {x.indexFieldType} + ) : ( + {x.indexFieldType} + ), + sortable: true, + truncateText: false, + width: '15%', + }, + { + field: 'allowed_values', + name: i18n.ECS_VALUES_EXPECTED, + render: (allowedValues: AllowedValue[] | undefined) => ( + + ), + sortable: false, + truncateText: false, + width: '15%', + }, + { + field: 'indexInvalidValues', + name: i18n.DOCUMENT_VALUES_ACTUAL, + render: (indexInvalidValues: UnallowedValueCount[]) => ( + + ), + sortable: false, + truncateText: false, + width: '15%', + }, + { + field: 'description', + name: i18n.ECS_DESCRIPTION, + render: (description: string) => + description != null ? description : {EMPTY_PLACEHOLDER}, + sortable: false, + truncateText: false, + width: '20%', + }, +]; + +export const getCustomTableColumns = (): Array< + EuiTableFieldDataColumnType +> => [ + { + field: 'indexFieldName', + name: i18n.FIELD, + sortable: true, + truncateText: false, + width: '50%', + }, + { + field: 'indexFieldType', + name: i18n.INDEX_MAPPING_TYPE, + render: (indexFieldType: string) => {indexFieldType}, + sortable: true, + truncateText: false, + width: '50%', + }, +]; + +export const getEcsCompliantTableColumns = (): Array< + EuiTableFieldDataColumnType +> => [ + { + field: 'indexFieldName', + name: i18n.FIELD, + sortable: true, + truncateText: false, + width: '25%', + }, + { + field: 'type', + name: i18n.ECS_MAPPING_TYPE, + render: (type: string) => + type != null ? {type} : {EMPTY_PLACEHOLDER}, + sortable: true, + truncateText: false, + width: '25%', + }, + { + field: 'allowed_values', + name: i18n.ECS_VALUES, + render: (allowedValues: AllowedValue[] | undefined) => ( + + ), + sortable: false, + truncateText: false, + width: '25%', + }, + { + field: 'description', + name: i18n.ECS_DESCRIPTION, + render: (description: string) => + description != null ? description : {EMPTY_PLACEHOLDER}, + sortable: false, + truncateText: false, + width: '25%', + }, +]; + +export const getIncompatibleMappingsTableColumns = (): Array< + EuiTableFieldDataColumnType +> => [ + { + field: 'indexFieldName', + name: i18n.FIELD, + sortable: true, + truncateText: false, + width: '25%', + }, + { + field: 'type', + name: i18n.ECS_MAPPING_TYPE_EXPECTED, + render: (type: string) => {type != null ? type : EMPTY_PLACEHOLDER}, + sortable: true, + truncateText: false, + width: '25%', + }, + { + field: 'indexFieldType', + name: i18n.INDEX_MAPPING_TYPE_ACTUAL, + render: (indexFieldType: string) => {indexFieldType}, + sortable: true, + truncateText: false, + width: '25%', + }, + { + field: 'description', + name: i18n.ECS_DESCRIPTION, + sortable: false, + truncateText: false, + width: '25%', + }, +]; + +export const getIncompatibleValuesTableColumns = (): Array< + EuiTableFieldDataColumnType +> => [ + { + field: 'indexFieldName', + name: i18n.FIELD, + sortable: true, + truncateText: false, + width: '25%', + }, + { + field: 'allowed_values', + name: i18n.ECS_VALUES_EXPECTED, + render: (allowedValues: AllowedValue[] | undefined) => ( + + ), + sortable: false, + truncateText: false, + width: '25%', + }, + { + field: 'indexInvalidValues', + name: i18n.DOCUMENT_VALUES_ACTUAL, + render: (indexInvalidValues: UnallowedValueCount[]) => ( + + ), + sortable: false, + truncateText: false, + width: '25%', + }, + { + field: 'description', + name: i18n.ECS_DESCRIPTION, + sortable: false, + truncateText: false, + width: '25%', + }, +]; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/index.tsx new file mode 100644 index 00000000000000..2efc9355c710f5 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/index.tsx @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { EuiTableFieldDataColumnType, Search } from '@elastic/eui'; +import { EuiInMemoryTable, EuiTitle, EuiSpacer } from '@elastic/eui'; +import React, { useMemo } from 'react'; + +import * as i18n from './translations'; +import type { EnrichedFieldMetadata } from '../types'; + +const search: Search = { + box: { + incremental: true, + placeholder: i18n.SEARCH_FIELDS, + schema: true, + }, +}; + +interface Props { + enrichedFieldMetadata: EnrichedFieldMetadata[]; + getTableColumns: () => Array>; + title: string; +} + +const CompareFieldsTableComponent: React.FC = ({ + enrichedFieldMetadata, + getTableColumns, + title, +}) => { + const columns = useMemo(() => getTableColumns(), [getTableColumns]); + + return ( + <> + + <>{title} + + + + + ); +}; + +CompareFieldsTableComponent.displayName = 'CompareFieldsTableComponent'; + +export const CompareFieldsTable = React.memo(CompareFieldsTableComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/index_invalid_values/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/index_invalid_values/index.tsx new file mode 100644 index 00000000000000..4987528b96831b --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/index_invalid_values/index.tsx @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiCode, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import React from 'react'; +import styled from 'styled-components'; + +import { EMPTY_PLACEHOLDER } from '../helpers'; +import { CodeDanger } from '../../styles'; +import type { UnallowedValueCount } from '../../types'; + +const IndexInvalidValueFlexItem = styled(EuiFlexItem)` + margin-bottom: ${({ theme }) => theme.eui.euiSizeXS}; +`; + +interface Props { + indexInvalidValues: UnallowedValueCount[]; +} + +const IndexInvalidValuesComponent: React.FC = ({ indexInvalidValues }) => + indexInvalidValues.length === 0 ? ( + {EMPTY_PLACEHOLDER} + ) : ( + + {indexInvalidValues.map(({ fieldName, count }, i) => ( + +
    + {fieldName}{' '} + + {'('} + {count} + {')'} + +
    +
    + ))} +
    + ); + +IndexInvalidValuesComponent.displayName = 'IndexInvalidValuesComponent'; + +export const IndexInvalidValues = React.memo(IndexInvalidValuesComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/translations.ts new file mode 100644 index 00000000000000..98d3e72676cdf3 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/compare_fields_table/translations.ts @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const ECS_VALUES = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.ecsValuesColumn', + { + defaultMessage: 'ECS values', + } +); + +export const ECS_VALUES_EXPECTED = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.ecsValuesExpectedColumn', + { + defaultMessage: 'ECS values (expected)', + } +); + +export const ECS_DESCRIPTION = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.ecsDescriptionColumn', + { + defaultMessage: 'ECS description', + } +); + +export const ECS_MAPPING_TYPE = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.ecsMappingTypeColumn', + { + defaultMessage: 'ECS mapping type', + } +); + +export const ECS_MAPPING_TYPE_EXPECTED = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.ecsMappingTypeExpectedColumn', + { + defaultMessage: 'ECS mapping type (expected)', + } +); + +export const DOCUMENT_VALUES_ACTUAL = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.documentValuesActualColumn', + { + defaultMessage: 'Document values (actual)', + } +); + +export const INDEX_MAPPING_TYPE = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.indexMappingTypeColumn', + { + defaultMessage: 'Index mapping type', + } +); + +export const INDEX_MAPPING_TYPE_ACTUAL = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.indexMappingTypeActualColumn', + { + defaultMessage: 'Index mapping type (actual)', + } +); + +export const FIELD = i18n.translate('ecsDataQualityDashboard.compareFieldsTable.fieldColumn', { + defaultMessage: 'Field', +}); + +export const SEARCH_FIELDS = i18n.translate( + 'ecsDataQualityDashboard.compareFieldsTable.searchFieldsPlaceholder', + { + defaultMessage: 'Search fields', + } +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.tsx new file mode 100644 index 00000000000000..707e83fd0df529 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.tsx @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { EcsMetadata, UnallowedValueRequestItem } from '../../types'; + +export const hasAllowedValues = ({ + ecsMetadata, + fieldName, +}: { + ecsMetadata: Record | null; + fieldName: string; +}): boolean => + ecsMetadata != null ? (ecsMetadata[fieldName]?.allowed_values?.length ?? 0) > 0 : false; + +export const getValidValues = (field: EcsMetadata | undefined): string[] => + field?.allowed_values?.flatMap(({ name }) => (name != null ? name : [])) ?? []; + +export const getUnallowedValueRequestItems = ({ + ecsMetadata, + indexName, +}: { + ecsMetadata: Record | null; + indexName: string; +}): UnallowedValueRequestItem[] => + ecsMetadata != null + ? Object.keys(ecsMetadata).reduce( + (acc, fieldName) => + hasAllowedValues({ ecsMetadata, fieldName }) + ? [ + ...acc, + { + indexName, + indexFieldName: fieldName, + allowedValues: getValidValues(ecsMetadata[fieldName]), + }, + ] + : acc, + [] + ) + : []; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/body/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/body/index.tsx new file mode 100644 index 00000000000000..c01b37a3c090c4 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/body/index.tsx @@ -0,0 +1,125 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + FlameElementEvent, + HeatmapElementEvent, + MetricElementEvent, + PartitionElementEvent, + Theme, + WordCloudElementEvent, + XYChartElementEvent, +} from '@elastic/charts'; +import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; +import React from 'react'; + +import { DataQualitySummary } from '../data_quality_summary'; +import { Pattern } from '../pattern'; +import { useResultsRollup } from '../../use_results_rollup'; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + canUserCreateAndReadCases: () => boolean; + defaultNumberFormat: string; + getGroupByFieldsOnClick: ( + elements: Array< + | FlameElementEvent + | HeatmapElementEvent + | MetricElementEvent + | PartitionElementEvent + | WordCloudElementEvent + | XYChartElementEvent + > + ) => { + groupByField0: string; + groupByField1: string; + }; + ilmPhases: string[]; + lastChecked: string; + openCreateCaseFlyout: ({ + comments, + headerContent, + }: { + comments: string[]; + headerContent?: React.ReactNode; + }) => void; + patterns: string[]; + setLastChecked: (lastChecked: string) => void; + theme: Theme; +} + +const BodyComponent: React.FC = ({ + addSuccessToast, + canUserCreateAndReadCases, + defaultNumberFormat, + getGroupByFieldsOnClick, + ilmPhases, + lastChecked, + openCreateCaseFlyout, + patterns, + setLastChecked, + theme, +}) => { + const { + onCheckCompleted, + patternIndexNames, + patternRollups, + totalDocsCount, + totalIncompatible, + totalIndices, + totalIndicesChecked, + updatePatternIndexNames, + updatePatternRollup, + } = useResultsRollup({ ilmPhases, patterns }); + + return ( + + + + + + + {patterns.map((pattern, i) => ( + + + {i !== patterns.length - 1 ? : null} + + ))} + + ); +}; + +export const Body = React.memo(BodyComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/check_status/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/check_status/index.tsx new file mode 100644 index 00000000000000..3ff69274ba06ed --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/check_status/index.tsx @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem, EuiProgress, EuiSpacer, EuiText } from '@elastic/eui'; +import React, { useEffect, useState } from 'react'; +import moment from 'moment'; + +import { ErrorsPopover } from '../errors_popover'; +import * as i18n from '../../../translations'; +import type { ErrorSummary, IndexToCheck } from '../../../types'; + +export const EMPTY_LAST_CHECKED_DATE = '--'; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + checkAllIndiciesChecked: number; + checkAllTotalIndiciesToCheck: number; + errorSummary: ErrorSummary[]; + indexToCheck: IndexToCheck | null; + lastChecked: string; + setLastChecked: (lastChecked: string) => void; +} + +const CheckStatusComponent: React.FC = ({ + addSuccessToast, + checkAllIndiciesChecked, + checkAllTotalIndiciesToCheck, + errorSummary, + indexToCheck, + lastChecked, + setLastChecked, +}) => { + const [formattedDate, setFormattedDate] = useState(EMPTY_LAST_CHECKED_DATE); + + useEffect(() => { + // update the lastCheckedDate whenever the next to check is updated + if (indexToCheck != null) { + setLastChecked(new Date().toISOString()); + } + }, [indexToCheck, setLastChecked]); + + useEffect(() => { + // immediately update the formatted date when lastCheckedDate is updated + if (moment(lastChecked).isValid()) { + setFormattedDate(moment(lastChecked).fromNow()); + } + + // periodically update the formatted date as time passes + const intervalId = setInterval(() => { + if (moment(lastChecked).isValid()) { + setFormattedDate(moment(lastChecked).fromNow()); + } + }, 10000); + + return () => clearInterval(intervalId); + }, [lastChecked]); + + return ( + + {indexToCheck != null && ( + <> + + + + + + + + + {i18n.CHECKING(indexToCheck.indexName)} + + + + )} + + + {indexToCheck == null && ( + + {i18n.LAST_CHECKED} + {': '} + {formattedDate} + + )} + + {errorSummary.length > 0 && ( +
    + +
    + )} +
    +
    + ); +}; + +CheckStatusComponent.displayName = 'CheckStatusComponent'; + +export const CheckStatus = React.memo(CheckStatusComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_popover/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_popover/index.tsx new file mode 100644 index 00000000000000..b24c7e6cd598c5 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_popover/index.tsx @@ -0,0 +1,113 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + copyToClipboard, + EuiButtonEmpty, + EuiCallOut, + EuiCode, + EuiPopover, + EuiSpacer, +} from '@elastic/eui'; +import React, { useCallback, useMemo, useState } from 'react'; +import styled from 'styled-components'; + +import { ErrorsViewer } from '../errors_viewer'; +import { ERRORS_CONTAINER_MAX_WIDTH } from '../errors_viewer/helpers'; +import { + getErrorsMarkdownTable, + getErrorsMarkdownTableRows, +} from '../../index_properties/markdown/helpers'; +import * as i18n from './translations'; +import type { ErrorSummary } from '../../../types'; +import { ERROR, INDEX, PATTERN } from '../errors_viewer/translations'; + +const CallOut = styled(EuiCallOut)` + max-width: ${ERRORS_CONTAINER_MAX_WIDTH}px; +`; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + errorSummary: ErrorSummary[]; +} + +const ErrorsPopoverComponent: React.FC = ({ addSuccessToast, errorSummary }) => { + const [isPopoverOpen, setIsPopoverOpen] = useState(false); + const onClick = useCallback(() => setIsPopoverOpen((isOpen) => !isOpen), []); + const closePopover = useCallback(() => setIsPopoverOpen(false), []); + + const onCopy = useCallback(() => { + const markdown = getErrorsMarkdownTable({ + errorSummary, + getMarkdownTableRows: getErrorsMarkdownTableRows, + headerNames: [PATTERN, INDEX, ERROR], + title: i18n.ERRORS, + }); + copyToClipboard(markdown); + + closePopover(); + + addSuccessToast({ + title: i18n.COPIED_ERRORS_TOAST_TITLE, + }); + }, [addSuccessToast, closePopover, errorSummary]); + + const button = useMemo( + () => ( + + {i18n.VIEW_ERRORS} + + ), + [errorSummary.length, onClick] + ); + + return ( + + +

    {i18n.ERRORS_CALLOUT_SUMMARY}

    + +

    {i18n.ERRORS_MAY_OCCUR}

    + + {i18n.THE_FOLLOWING_PRIVILEGES_ARE_REQUIRED} +
      +
    • + {i18n.MONITOR} {i18n.OR} {i18n.MANAGE} +
    • +
    • + {i18n.VIEW_INDEX_METADATA} +
    • +
    • + {i18n.READ} {i18n.OR} {i18n.READ_CROSS_CLUSTER} +
    • +
    + + + {i18n.COPY_TO_CLIPBOARD} + +
    + + + + +
    + ); +}; + +ErrorsPopoverComponent.displayName = 'ErrorsPopoverComponent'; + +export const ErrorsPopover = React.memo(ErrorsPopoverComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_popover/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_popover/translations.ts new file mode 100644 index 00000000000000..e6c9459d308e9d --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_popover/translations.ts @@ -0,0 +1,85 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const COPIED_ERRORS_TOAST_TITLE = i18n.translate( + 'ecsDataQualityDashboard.toasts.copiedErrorsToastTitle', + { + defaultMessage: 'Copied errors to the clipboard', + } +); + +export const COPY_TO_CLIPBOARD = i18n.translate( + 'ecsDataQualityDashboard.errorsPopover.copyToClipboardButton', + { + defaultMessage: 'Copy to clipboard', + } +); + +export const ERRORS = i18n.translate('ecsDataQualityDashboard.errorsPopover.errorsTitle', { + defaultMessage: 'Errors', +}); + +export const ERRORS_CALLOUT_SUMMARY = i18n.translate( + 'ecsDataQualityDashboard.errorsPopover.errorsCalloutSummary', + { + defaultMessage: 'Some indices were not checked for Data Quality', + } +); + +export const ERRORS_MAY_OCCUR = i18n.translate( + 'ecsDataQualityDashboard.errors.errorMayOccurLabel', + { + defaultMessage: + "Errors may occur when pattern or index metadata is temporarily unavailable, or because you don't have the privileges required for access", + } +); + +export const MANAGE = i18n.translate('ecsDataQualityDashboard.errors.manage', { + defaultMessage: 'manage', +}); + +export const MONITOR = i18n.translate('ecsDataQualityDashboard.errors.monitor', { + defaultMessage: 'monitor', +}); + +export const OR = i18n.translate('ecsDataQualityDashboard.errors.or', { + defaultMessage: 'or', +}); + +export const READ = i18n.translate('ecsDataQualityDashboard.errors.read', { + defaultMessage: 'read', +}); + +export const READ_CROSS_CLUSTER = i18n.translate( + 'ecsDataQualityDashboard.errors.readCrossCluster', + { + defaultMessage: 'read_cross_cluster', + } +); + +export const THE_FOLLOWING_PRIVILEGES_ARE_REQUIRED = i18n.translate( + 'ecsDataQualityDashboard.errors.theFollowingPrivilegesLabel', + { + defaultMessage: 'The following privileges are required to check an index:', + } +); + +export const VIEW_ERRORS = i18n.translate( + 'ecsDataQualityDashboard.errorsPopover.viewErrorsButton', + { + defaultMessage: 'View errors', + } +); + +export const VIEW_INDEX_METADATA = i18n.translate( + 'ecsDataQualityDashboard.errors.viewIndexMetadata', + { + defaultMessage: 'view_index_metadata', + } +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/helpers.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/helpers.tsx new file mode 100644 index 00000000000000..caac710cf8d13d --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/helpers.tsx @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { EuiTableFieldDataColumnType } from '@elastic/eui'; +import { EuiCode } from '@elastic/eui'; +import React from 'react'; + +import * as i18n from './translations'; +import type { ErrorSummary } from '../../../types'; + +export const EMPTY_PLACEHOLDER = '--'; + +export const ERRORS_CONTAINER_MAX_WIDTH = 600; // px +export const ERRORS_CONTAINER_MIN_WIDTH = 450; // px + +export const getErrorsViewerTableColumns = (): Array> => [ + { + field: 'pattern', + name: i18n.PATTERN, + sortable: true, + truncateText: false, + width: '25%', + }, + { + field: 'indexName', + name: i18n.INDEX, + render: (indexName) => (indexName != null && indexName !== '' ? indexName : EMPTY_PLACEHOLDER), + sortable: false, + truncateText: false, + width: '25%', + }, + { + field: 'error', + name: i18n.ERROR, + render: (errorText) => {errorText}, + sortable: false, + truncateText: false, + width: '50%', + }, +]; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/index.tsx new file mode 100644 index 00000000000000..a40094c96b3991 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/index.tsx @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiInMemoryTable } from '@elastic/eui'; +import React, { useMemo } from 'react'; +import styled from 'styled-components'; + +import { + ERRORS_CONTAINER_MAX_WIDTH, + ERRORS_CONTAINER_MIN_WIDTH, + getErrorsViewerTableColumns, +} from './helpers'; +import type { ErrorSummary } from '../../../types'; + +const ErrorsViewerContainer = styled.div` + max-width: ${ERRORS_CONTAINER_MAX_WIDTH}px; + min-width: ${ERRORS_CONTAINER_MIN_WIDTH}px; +`; + +interface Props { + errorSummary: ErrorSummary[]; +} + +const ErrorsViewerComponent: React.FC = ({ errorSummary }) => { + const columns = useMemo(() => getErrorsViewerTableColumns(), []); + + return ( + + + + ); +}; + +ErrorsViewerComponent.displayName = 'ErrorsViewerComponent'; + +export const ErrorsViewer = React.memo(ErrorsViewerComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/translations.ts new file mode 100644 index 00000000000000..b8c9bff6448036 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/errors_viewer/translations.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const ERROR = i18n.translate('ecsDataQualityDashboard.errorsViewerTable.errorColumn', { + defaultMessage: 'Error', +}); + +export const INDEX = i18n.translate('ecsDataQualityDashboard.errorsViewerTable.indexColumn', { + defaultMessage: 'Index', +}); + +export const PATTERN = i18n.translate('ecsDataQualityDashboard.errorsViewerTable.patternColumn', { + defaultMessage: 'Pattern', +}); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/index.tsx new file mode 100644 index 00000000000000..c6874d861ddb80 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/index.tsx @@ -0,0 +1,131 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiSpacer } from '@elastic/eui'; +import React, { useCallback, useMemo, useState } from 'react'; +import styled from 'styled-components'; + +import { CheckStatus } from './check_status'; +import { StatsRollup } from '../pattern/pattern_summary/stats_rollup'; +import { SummaryActions } from './summary_actions'; +import type { IndexToCheck, OnCheckCompleted, PatternRollup } from '../../types'; +import { getErrorSummaries } from '../../helpers'; + +const MAX_SUMMARY_ACTIONS_CONTAINER_WIDTH = 400; +const MIN_SUMMARY_ACTIONS_CONTAINER_WIDTH = 235; + +const SummaryActionsContainerFlexItem = styled(EuiFlexItem)` + max-width: ${MAX_SUMMARY_ACTIONS_CONTAINER_WIDTH}px; + min-width: ${MIN_SUMMARY_ACTIONS_CONTAINER_WIDTH}px; + padding-right: ${({ theme }) => theme.eui.euiSizeXL}; +`; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + canUserCreateAndReadCases: () => boolean; + defaultNumberFormat: string; + ilmPhases: string[]; + lastChecked: string; + openCreateCaseFlyout: ({ + comments, + headerContent, + }: { + comments: string[]; + headerContent?: React.ReactNode; + }) => void; + patternIndexNames: Record; + patternRollups: Record; + patterns: string[]; + setLastChecked: (lastChecked: string) => void; + totalDocsCount: number | undefined; + totalIncompatible: number | undefined; + totalIndices: number | undefined; + totalIndicesChecked: number | undefined; + onCheckCompleted: OnCheckCompleted; +} + +const DataQualitySummaryComponent: React.FC = ({ + addSuccessToast, + canUserCreateAndReadCases, + defaultNumberFormat, + ilmPhases, + lastChecked, + openCreateCaseFlyout, + patternIndexNames, + patternRollups, + patterns, + setLastChecked, + totalDocsCount, + totalIncompatible, + totalIndices, + totalIndicesChecked, + onCheckCompleted, +}) => { + const [indexToCheck, setIndexToCheck] = useState(null); + + const [checkAllIndiciesChecked, setCheckAllIndiciesChecked] = useState(0); + const [checkAllTotalIndiciesToCheck, setCheckAllTotalIndiciesToCheck] = useState(0); + + const incrementCheckAllIndiciesChecked = useCallback(() => { + setCheckAllIndiciesChecked((current) => current + 1); + }, []); + + const errorSummary = useMemo(() => getErrorSummaries(patternRollups), [patternRollups]); + + return ( + + + + + + + + + + + + + + + + ); +}; + +export const DataQualitySummary = React.memo(DataQualitySummaryComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/check_index.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/check_index.ts new file mode 100644 index 00000000000000..cd1ce0940b391b --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/check_index.ts @@ -0,0 +1,99 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getUnallowedValueRequestItems } from '../../../allowed_values/helpers'; +import { + getMappingsProperties, + getSortedPartitionedFieldMetadata, +} from '../../../index_properties/helpers'; +import * as i18n from './translations'; +import type { EcsMetadata, OnCheckCompleted, PartitionedFieldMetadata } from '../../../../types'; +import { fetchMappings } from '../../../../use_mappings/helpers'; +import { fetchUnallowedValues, getUnallowedValues } from '../../../../use_unallowed_values/helpers'; + +const EMPTY_PARTITIONED_FIELD_METADATA: PartitionedFieldMetadata = { + all: [], + custom: [], + ecsCompliant: [], + incompatible: [], +}; + +export async function checkIndex({ + abortController, + ecsMetadata, + formatNumber, + indexName, + onCheckCompleted, + pattern, + version, +}: { + abortController: AbortController; + ecsMetadata: Record | null; + formatNumber: (value: number | undefined) => string; + indexName: string; + onCheckCompleted: OnCheckCompleted; + pattern: string; + version: string; +}) { + try { + const indexes = await fetchMappings({ abortController, patternOrIndexName: indexName }); + + const requestItems = getUnallowedValueRequestItems({ + ecsMetadata, + indexName, + }); + + const searchResults = await fetchUnallowedValues({ + abortController, + indexName, + requestItems, + }); + + const unallowedValues = getUnallowedValues({ + requestItems, + searchResults, + }); + + const mappingsProperties = getMappingsProperties({ + indexes, + indexName, + }); + + const partitionedFieldMetadata = + getSortedPartitionedFieldMetadata({ + ecsMetadata, + loadingMappings: false, + mappingsProperties, + unallowedValues, + }) ?? EMPTY_PARTITIONED_FIELD_METADATA; + + if (!abortController.signal.aborted) { + onCheckCompleted({ + error: null, + formatNumber, + indexName, + partitionedFieldMetadata, + pattern, + version, + }); + } + } catch (error) { + if (!abortController.signal.aborted) { + onCheckCompleted({ + error: + error.toString() != null + ? error.toString() + : i18n.AN_ERROR_OCCURRED_CHECKING_INDEX(indexName), + formatNumber, + indexName, + partitionedFieldMetadata: null, + pattern, + version, + }); + } + } +} diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/helpers.ts new file mode 100644 index 00000000000000..4d07d4826f5214 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/helpers.ts @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { IndicesStatsIndicesStats } from '@elastic/elasticsearch/lib/api/types'; +import { sortBy } from 'lodash/fp'; + +import { getDocsCount } from '../../../../helpers'; +import type { IndexToCheck, PatternRollup } from '../../../../types'; + +export const getIndexToCheck = ({ + indexName, + pattern, +}: { + indexName: string; + pattern: string; +}): IndexToCheck => { + return { + pattern, + indexName, + }; +}; + +export const getAllIndicesToCheck = ( + patternIndexNames: Record +): IndexToCheck[] => { + const allPatterns: string[] = Object.keys(patternIndexNames); + + // sort the patterns A-Z: + const sortedPatterns = [...allPatterns].sort((a, b) => { + return a.localeCompare(b); + }); + + // return all `IndexToCheck` sorted first by pattern A-Z, and then by `docsCount` within the pattern + return sortedPatterns.reduce((acc, pattern) => { + const indexNames = patternIndexNames[pattern] ?? []; + const indicesToCheck = indexNames.map((indexName) => + getIndexToCheck({ indexName, pattern }) + ); + + const sortedIndicesToCheck = sortBy('indexName', indicesToCheck).reverse(); + + return [...acc, ...sortedIndicesToCheck]; + }, []); +}; + +export const getIndexDocsCountFromRollup = ({ + indexName, + patternRollup, +}: { + indexName: string; + patternRollup: PatternRollup; +}): number => { + const stats: Record | null = patternRollup?.stats ?? null; + + return getDocsCount({ + indexName, + stats, + }); +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/index.tsx new file mode 100644 index 00000000000000..ab5de8d7ccdcbc --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/index.tsx @@ -0,0 +1,155 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EcsFlat, EcsVersion } from '@kbn/ecs'; + +import { EuiButton } from '@elastic/eui'; +import numeral from '@elastic/numeral'; +import React, { useCallback, useEffect, useRef, useState } from 'react'; + +import { checkIndex } from './check_index'; +import { EMPTY_STAT } from '../../../../helpers'; +import { getAllIndicesToCheck } from './helpers'; +import * as i18n from '../../../../translations'; +import type { EcsMetadata, IndexToCheck, OnCheckCompleted } from '../../../../types'; + +async function wait(ms: number) { + const delay = () => + new Promise((resolve) => + setTimeout(() => { + resolve(''); + }, ms) + ); + + return delay(); +} + +interface Props { + defaultNumberFormat: string; + ilmPhases: string[]; + incrementCheckAllIndiciesChecked: () => void; + onCheckCompleted: OnCheckCompleted; + patternIndexNames: Record; + patterns: string[]; + setCheckAllIndiciesChecked: (checkAllIndiciesChecked: number) => void; + setCheckAllTotalIndiciesToCheck: (checkAllTotalIndiciesToCheck: number) => void; + setIndexToCheck: (indexToCheck: IndexToCheck | null) => void; +} + +const DELAY_AFTER_EVERY_CHECK_COMPLETES = 3000; // ms + +const CheckAllComponent: React.FC = ({ + defaultNumberFormat, + ilmPhases, + incrementCheckAllIndiciesChecked, + onCheckCompleted, + patternIndexNames, + patterns, + setCheckAllIndiciesChecked, + setCheckAllTotalIndiciesToCheck, + setIndexToCheck, +}) => { + const abortController = useRef(new AbortController()); + const [isRunning, setIsRunning] = useState(false); + const formatNumber = useCallback( + (value: number | undefined): string => + value != null ? numeral(value).format(defaultNumberFormat) : EMPTY_STAT, + [defaultNumberFormat] + ); + + const cancelIfRunning = useCallback(() => { + if (isRunning) { + if (!abortController.current.signal.aborted) { + setIndexToCheck(null); + setIsRunning(false); + setCheckAllIndiciesChecked(0); + setCheckAllTotalIndiciesToCheck(0); + abortController.current.abort(); + } + } + }, [isRunning, setCheckAllIndiciesChecked, setCheckAllTotalIndiciesToCheck, setIndexToCheck]); + + const onClick = useCallback(() => { + async function beginCheck() { + const allIndicesToCheck = getAllIndicesToCheck(patternIndexNames); + setCheckAllIndiciesChecked(0); + setCheckAllTotalIndiciesToCheck(allIndicesToCheck.length); + + for (const { indexName, pattern } of allIndicesToCheck) { + if (!abortController.current.signal.aborted) { + setIndexToCheck({ + indexName, + pattern, + }); + + await checkIndex({ + abortController: abortController.current, + ecsMetadata: EcsFlat as unknown as Record, + formatNumber, + indexName, + onCheckCompleted, + pattern, + version: EcsVersion, + }); + + if (!abortController.current.signal.aborted) { + await wait(DELAY_AFTER_EVERY_CHECK_COMPLETES); + incrementCheckAllIndiciesChecked(); + } + } + } + + if (!abortController.current.signal.aborted) { + setIndexToCheck(null); + setIsRunning(false); + } + } + + if (isRunning) { + cancelIfRunning(); + } else { + abortController.current = new AbortController(); + setIsRunning(true); + beginCheck(); + } + }, [ + cancelIfRunning, + formatNumber, + incrementCheckAllIndiciesChecked, + isRunning, + onCheckCompleted, + patternIndexNames, + setCheckAllIndiciesChecked, + setCheckAllTotalIndiciesToCheck, + setIndexToCheck, + ]); + + useEffect(() => { + return () => { + // cancel any checks in progress when the patterns or ilm phases change + cancelIfRunning(); + }; + }, [cancelIfRunning, ilmPhases, patterns]); + + useEffect(() => { + return () => { + abortController.current.abort(); + }; + }, [abortController]); + + return ( + + {isRunning ? i18n.CANCEL : i18n.CHECK_ALL} + + ); +}; + +export const CheckAll = React.memo(CheckAllComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/translations.ts new file mode 100644 index 00000000000000..d63acdb418a17d --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/translations.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const AN_ERROR_OCCURRED_CHECKING_INDEX = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.checkAllErrorCheckingIndexMessage', { + values: { indexName }, + defaultMessage: 'An error occurred checking index {indexName}', + }); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/index.tsx new file mode 100644 index 00000000000000..d659d81d93199e --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/index.tsx @@ -0,0 +1,240 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import numeral from '@elastic/numeral'; +import { sortBy } from 'lodash/fp'; +import React, { useCallback } from 'react'; +import styled from 'styled-components'; + +import { CheckAll } from './check_all'; +import { ERROR, INDEX, PATTERN } from '../errors_viewer/translations'; +import { ERRORS } from '../errors_popover/translations'; +import { EMPTY_STAT } from '../../../helpers'; +import { + getDataQualitySummaryMarkdownComment, + getErrorsMarkdownTable, + getErrorsMarkdownTableRows, + getPatternSummaryMarkdownComment, + getSummaryTableMarkdownHeader, + getSummaryTableMarkdownRow, +} from '../../index_properties/markdown/helpers'; +import { getSummaryTableItems } from '../../pattern/helpers'; +import { TakeActionMenu } from './take_action_menu'; +import type { + DataQualityCheckResult, + ErrorSummary, + IndexToCheck, + OnCheckCompleted, + PatternRollup, +} from '../../../types'; + +const SummaryActionsFlexGroup = styled(EuiFlexGroup)` + gap: ${({ theme }) => theme.eui.euiSizeS}; +`; + +export const getResultsSortedByDocsCount = ( + results: Record | undefined +): DataQualityCheckResult[] => + results != null ? sortBy('docsCount', Object.values(results)).reverse() : []; + +export const getAllMarkdownCommentsFromResults = ({ + formatNumber, + patternIndexNames, + patternRollup, +}: { + formatNumber: (value: number | undefined) => string; + patternIndexNames: Record; + patternRollup: PatternRollup; +}): string[] => { + const results = patternRollup.results; + const sortedResults = getResultsSortedByDocsCount(results); + + const summaryTableItems = getSummaryTableItems({ + ilmExplain: patternRollup.ilmExplain, + indexNames: patternIndexNames[patternRollup.pattern] ?? [], + pattern: patternRollup.pattern, + patternDocsCount: patternRollup.docsCount ?? 0, + results: patternRollup.results, + stats: patternRollup.stats, + }); + + const summaryTableMarkdownRows: string[] = summaryTableItems.map((item) => { + const result: DataQualityCheckResult | undefined = + patternRollup.results != null ? patternRollup.results[item.indexName] : undefined; + + return getSummaryTableMarkdownRow({ + docsCount: item.docsCount, + formatNumber, + ilmPhase: item.ilmPhase, + indexName: item.indexName, + incompatible: result?.incompatible, + patternDocsCount: patternRollup.docsCount ?? 0, + }).trim(); + }); + + const initialComments: string[] = + summaryTableMarkdownRows.length > 0 + ? [getSummaryTableMarkdownHeader(), ...summaryTableMarkdownRows] + : []; + + return sortedResults.reduce( + (acc, result) => [...acc, ...result.markdownComments], + initialComments + ); +}; + +export const getAllMarkdownComments = ({ + formatNumber, + patternIndexNames, + patternRollups, +}: { + formatNumber: (value: number | undefined) => string; + patternIndexNames: Record; + patternRollups: Record; +}): string[] => { + const allPatterns: string[] = Object.keys(patternRollups); + + // sort the patterns A-Z: + const sortedPatterns = [...allPatterns].sort((a, b) => { + return a.localeCompare(b); + }); + + return sortedPatterns.reduce( + (acc, pattern) => [ + ...acc, + getPatternSummaryMarkdownComment({ + formatNumber, + patternRollup: patternRollups[pattern], + }), + ...getAllMarkdownCommentsFromResults({ + formatNumber, + patternRollup: patternRollups[pattern], + patternIndexNames, + }), + ], + [] + ); +}; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + canUserCreateAndReadCases: () => boolean; + defaultNumberFormat: string; + errorSummary: ErrorSummary[]; + ilmPhases: string[]; + incrementCheckAllIndiciesChecked: () => void; + onCheckCompleted: OnCheckCompleted; + openCreateCaseFlyout: ({ + comments, + headerContent, + }: { + comments: string[]; + headerContent?: React.ReactNode; + }) => void; + patternIndexNames: Record; + patternRollups: Record; + patterns: string[]; + setCheckAllIndiciesChecked: (checkAllIndiciesChecked: number) => void; + setCheckAllTotalIndiciesToCheck: (checkAllTotalIndiciesToCheck: number) => void; + setIndexToCheck: (indexToCheck: IndexToCheck | null) => void; + totalDocsCount: number | undefined; + totalIncompatible: number | undefined; + totalIndices: number | undefined; + totalIndicesChecked: number | undefined; +} + +const SummaryActionsComponent: React.FC = ({ + addSuccessToast, + canUserCreateAndReadCases, + defaultNumberFormat, + errorSummary, + ilmPhases, + incrementCheckAllIndiciesChecked, + onCheckCompleted, + openCreateCaseFlyout, + patternIndexNames, + patternRollups, + patterns, + totalDocsCount, + setCheckAllIndiciesChecked, + setCheckAllTotalIndiciesToCheck, + setIndexToCheck, + totalIncompatible, + totalIndices, + totalIndicesChecked, +}) => { + const formatNumber = useCallback( + (value: number | undefined): string => + value != null ? numeral(value).format(defaultNumberFormat) : EMPTY_STAT, + [defaultNumberFormat] + ); + + const getMarkdownComments = useCallback( + (): string[] => [ + getDataQualitySummaryMarkdownComment({ + formatNumber, + totalDocsCount, + totalIncompatible, + totalIndices, + totalIndicesChecked, + }), + ...getAllMarkdownComments({ + formatNumber, + patternIndexNames, + patternRollups, + }), + getErrorsMarkdownTable({ + errorSummary, + getMarkdownTableRows: getErrorsMarkdownTableRows, + headerNames: [PATTERN, INDEX, ERROR], + title: ERRORS, + }), + ], + [ + errorSummary, + formatNumber, + patternIndexNames, + patternRollups, + totalDocsCount, + totalIncompatible, + totalIndices, + totalIndicesChecked, + ] + ); + + return ( + + + + + + + + + + ); +}; + +SummaryActionsComponent.displayName = 'SummaryActionsComponent'; + +export const SummaryActions = React.memo(SummaryActionsComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/take_action_menu/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/take_action_menu/index.tsx new file mode 100644 index 00000000000000..4683a96a769874 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/take_action_menu/index.tsx @@ -0,0 +1,125 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + copyToClipboard, + EuiButtonEmpty, + EuiContextMenuItem, + EuiContextMenuPanel, + EuiPopover, +} from '@elastic/eui'; +import React, { useCallback, useMemo, useState } from 'react'; + +import { + ADD_TO_NEW_CASE, + COPIED_RESULTS_TOAST_TITLE, + COPY_TO_CLIPBOARD, +} from '../../../../translations'; +import * as i18n from './translations'; +import { useAddToNewCase } from '../../../../use_add_to_new_case'; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + canUserCreateAndReadCases: () => boolean; + getMarkdownComments: () => string[]; + openCreateCaseFlyout: ({ + comments, + headerContent, + }: { + comments: string[]; + headerContent?: React.ReactNode; + }) => void; +} + +const TakeActionMenuComponent: React.FC = ({ + addSuccessToast, + canUserCreateAndReadCases, + getMarkdownComments, + openCreateCaseFlyout, +}) => { + const [isPopoverOpen, setIsPopoverOpen] = useState(false); + const closePopover = useCallback(() => { + setIsPopoverOpen(false); + }, []); + const onButtonClick = useCallback(() => { + setIsPopoverOpen((current) => !current); + }, []); + + const takeActionButton = useMemo( + () => ( + + {i18n.TAKE_ACTION} + + ), + [onButtonClick] + ); + + const { disabled: addToNewCaseDisabled, onAddToNewCase } = useAddToNewCase({ + canUserCreateAndReadCases, + openCreateCaseFlyout, + }); + + const onClickAddToCase = useCallback( + () => onAddToNewCase([getMarkdownComments().join('\n')]), + [getMarkdownComments, onAddToNewCase] + ); + + const onCopy = useCallback(() => { + const markdown = getMarkdownComments().join('\n'); + copyToClipboard(markdown); + + closePopover(); + + addSuccessToast({ + title: COPIED_RESULTS_TOAST_TITLE, + }); + }, [addSuccessToast, closePopover, getMarkdownComments]); + + const addToNewCaseContextMenuOnClick = useCallback(() => { + closePopover(); + onClickAddToCase(); + }, [closePopover, onClickAddToCase]); + + const items = useMemo( + () => [ + + {ADD_TO_NEW_CASE} + , + + + {COPY_TO_CLIPBOARD} + , + ], + [addToNewCaseContextMenuOnClick, addToNewCaseDisabled, onCopy] + ); + + return ( + + + + ); +}; + +TakeActionMenuComponent.displayName = 'TakeActionMenuComponent'; + +export const TakeActionMenu = React.memo(TakeActionMenuComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/take_action_menu/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/take_action_menu/translations.ts new file mode 100644 index 00000000000000..b5f77c455c1a25 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/data_quality_summary/summary_actions/take_action_menu/translations.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const TAKE_ACTION = i18n.translate( + 'ecsDataQualityDashboard.takeActionMenu.takeActionButton', + { + defaultMessage: 'Take action', + } +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/error_empty_prompt/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/error_empty_prompt/index.tsx new file mode 100644 index 00000000000000..9a81fcd9ad7e69 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/error_empty_prompt/index.tsx @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiCallOut, EuiCode } from '@elastic/eui'; +import React from 'react'; + +import * as i18n from '../data_quality_summary/errors_popover/translations'; + +interface Props { + title: string; +} + +const ErrorEmptyPromptComponent: React.FC = ({ title }) => ( + +

    {i18n.ERRORS_MAY_OCCUR}

    + + {i18n.THE_FOLLOWING_PRIVILEGES_ARE_REQUIRED} +
      +
    • + {i18n.MONITOR} {i18n.OR} {i18n.MANAGE} +
    • +
    • + {i18n.VIEW_INDEX_METADATA} +
    • +
    • + {i18n.READ} {i18n.OR} {i18n.READ_CROSS_CLUSTER} +
    • +
    +
    +); + +export const ErrorEmptyPrompt = React.memo(ErrorEmptyPromptComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/ilm_phase_counts/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/ilm_phase_counts/index.tsx new file mode 100644 index 00000000000000..3aa738d4cb7888 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/ilm_phase_counts/index.tsx @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui'; +import React from 'react'; +import styled from 'styled-components'; + +import { getPatternIlmPhaseDescription } from '../../helpers'; +import type { IlmExplainPhaseCounts, IlmPhase } from '../../types'; + +const PhaseCountsFlexGroup = styled(EuiFlexGroup)` + display: inline-flex; + gap: ${({ theme }) => theme.eui.euiSizeS}; +`; + +export const phases: IlmPhase[] = ['hot', 'unmanaged', 'warm', 'cold', 'frozen']; + +interface Props { + ilmExplainPhaseCounts: IlmExplainPhaseCounts; + pattern: string; +} + +const IlmPhaseCountsComponent: React.FC = ({ ilmExplainPhaseCounts, pattern }) => ( + + {phases.map((phase) => + ilmExplainPhaseCounts[phase] != null && ilmExplainPhaseCounts[phase] > 0 ? ( + + + {`${phase} (${ilmExplainPhaseCounts[phase]})`} + + + ) : null + )} + +); + +IlmPhaseCountsComponent.displayName = 'IlmPhaseCountsComponent'; + +export const IlmPhaseCounts = React.memo(IlmPhaseCountsComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/empty_prompt_body.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/empty_prompt_body.tsx new file mode 100644 index 00000000000000..80c9151eaa050c --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/empty_prompt_body.tsx @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +interface Props { + body: string; +} + +const EmptyPromptBodyComponent: React.FC = ({ body }) =>

    {body}

    ; + +EmptyPromptBodyComponent.displayName = 'EmptyPromptBodyComponent'; + +export const EmptyPromptBody = React.memo(EmptyPromptBodyComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/empty_prompt_title.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/empty_prompt_title.tsx new file mode 100644 index 00000000000000..a9d2e1f6a74d9f --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/empty_prompt_title.tsx @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +interface Props { + title: string; +} + +const EmptyPromptTitleComponent: React.FC = ({ title }) =>

    {title}

    ; + +EmptyPromptTitleComponent.displayName = 'EmptyPromptTitleComponent'; + +export const EmptyPromptTitle = React.memo(EmptyPromptTitleComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/helpers.ts new file mode 100644 index 00000000000000..e38a87ee30a65d --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/helpers.ts @@ -0,0 +1,91 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + IndicesGetMappingIndexMappingRecord, + MappingProperty, +} from '@elastic/elasticsearch/lib/api/types'; +import { sortBy } from 'lodash/fp'; + +import { + getEnrichedFieldMetadata, + getFieldTypes, + getMissingTimestampFieldMetadata, + getPartitionedFieldMetadata, +} from '../../helpers'; +import type { EcsMetadata, PartitionedFieldMetadata, UnallowedValueCount } from '../../types'; + +export const ALL_TAB_ID = 'allTab'; +export const ECS_COMPLIANT_TAB_ID = 'ecsCompliantTab'; +export const CUSTOM_TAB_ID = 'customTab'; +export const INCOMPATIBLE_TAB_ID = 'incompatibleTab'; +export const SUMMARY_TAB_ID = 'summaryTab'; + +export const EMPTY_METADATA: PartitionedFieldMetadata = { + all: [], + ecsCompliant: [], + custom: [], + incompatible: [], +}; + +export const getSortedPartitionedFieldMetadata = ({ + ecsMetadata, + loadingMappings, + mappingsProperties, + unallowedValues, +}: { + ecsMetadata: Record | null; + loadingMappings: boolean; + mappingsProperties: Record | null | undefined; + unallowedValues: Record | null; +}): PartitionedFieldMetadata | null => { + if (loadingMappings || ecsMetadata == null || unallowedValues == null) { + return null; + } + + if (mappingsProperties == null) { + return { + ...EMPTY_METADATA, + incompatible: [getMissingTimestampFieldMetadata()], + }; + } + + const fieldTypes = getFieldTypes(mappingsProperties); + + const enrichedFieldMetadata = sortBy( + 'indexFieldName', + fieldTypes.map((fieldMetadata) => + getEnrichedFieldMetadata({ ecsMetadata, fieldMetadata, unallowedValues }) + ) + ); + + const partitionedFieldMetadata = getPartitionedFieldMetadata(enrichedFieldMetadata); + + return partitionedFieldMetadata; +}; + +export const getMappingsProperties = ({ + indexes, + indexName, +}: { + indexes: Record | null; + indexName: string; +}): Record | null => { + if (indexes != null && indexes[indexName] != null) { + return indexes[indexName].mappings.properties ?? null; + } + + return null; +}; + +export const hasAllDataFetchingCompleted = ({ + loadingMappings, + loadingUnallowedValues, +}: { + loadingMappings: boolean; + loadingUnallowedValues: boolean; +}): boolean => loadingMappings === false && loadingUnallowedValues === false; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/index.tsx new file mode 100644 index 00000000000000..34fac241a2d82d --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/index.tsx @@ -0,0 +1,276 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EcsFlat } from '@kbn/ecs'; +import type { + FlameElementEvent, + HeatmapElementEvent, + MetricElementEvent, + PartitionElementEvent, + Theme, + WordCloudElementEvent, + XYChartElementEvent, +} from '@elastic/charts'; +import { EuiSpacer, EuiTab, EuiTabs } from '@elastic/eui'; +import numeral from '@elastic/numeral'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; + +import { getUnallowedValueRequestItems } from '../allowed_values/helpers'; +import { ErrorEmptyPrompt } from '../error_empty_prompt'; +import { + EMPTY_METADATA, + getMappingsProperties, + getSortedPartitionedFieldMetadata, + hasAllDataFetchingCompleted, + INCOMPATIBLE_TAB_ID, +} from './helpers'; +import { EMPTY_STAT } from '../../helpers'; +import { LoadingEmptyPrompt } from '../loading_empty_prompt'; +import { getTabs } from '../tabs/helpers'; +import { getAllIncompatibleMarkdownComments } from '../tabs/incompatible_tab/helpers'; +import * as i18n from './translations'; +import type { EcsMetadata, IlmPhase, PartitionedFieldMetadata, PatternRollup } from '../../types'; +import { useAddToNewCase } from '../../use_add_to_new_case'; +import { useMappings } from '../../use_mappings'; +import { useUnallowedValues } from '../../use_unallowed_values'; + +const EMPTY_MARKDOWN_COMMENTS: string[] = []; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + canUserCreateAndReadCases: () => boolean; + defaultNumberFormat: string; + docsCount: number; + getGroupByFieldsOnClick: ( + elements: Array< + | FlameElementEvent + | HeatmapElementEvent + | MetricElementEvent + | PartitionElementEvent + | WordCloudElementEvent + | XYChartElementEvent + > + ) => { + groupByField0: string; + groupByField1: string; + }; + ilmPhase: IlmPhase | undefined; + indexName: string; + openCreateCaseFlyout: ({ + comments, + headerContent, + }: { + comments: string[]; + headerContent?: React.ReactNode; + }) => void; + pattern: string; + patternRollup: PatternRollup | undefined; + theme: Theme; + updatePatternRollup: (patternRollup: PatternRollup) => void; +} + +const IndexPropertiesComponent: React.FC = ({ + addSuccessToast, + canUserCreateAndReadCases, + defaultNumberFormat, + docsCount, + getGroupByFieldsOnClick, + ilmPhase, + indexName, + openCreateCaseFlyout, + pattern, + patternRollup, + theme, + updatePatternRollup, +}) => { + const formatNumber = useCallback( + (value: number | undefined): string => + value != null ? numeral(value).format(defaultNumberFormat) : EMPTY_STAT, + [defaultNumberFormat] + ); + const { error: mappingsError, indexes, loading: loadingMappings } = useMappings(indexName); + + const requestItems = useMemo( + () => + getUnallowedValueRequestItems({ + ecsMetadata: EcsFlat as unknown as Record, + indexName, + }), + [indexName] + ); + + const { + error: unallowedValuesError, + loading: loadingUnallowedValues, + unallowedValues, + } = useUnallowedValues({ indexName, requestItems }); + + const mappingsProperties = useMemo( + () => + getMappingsProperties({ + indexes, + indexName, + }), + [indexName, indexes] + ); + + const partitionedFieldMetadata: PartitionedFieldMetadata | null = useMemo( + () => + getSortedPartitionedFieldMetadata({ + ecsMetadata: EcsFlat as unknown as Record, + loadingMappings, + mappingsProperties, + unallowedValues, + }), + [loadingMappings, mappingsProperties, unallowedValues] + ); + + const { disabled: addToNewCaseDisabled, onAddToNewCase } = useAddToNewCase({ + canUserCreateAndReadCases, + indexName, + openCreateCaseFlyout, + }); + + const [selectedTabId, setSelectedTabId] = useState(INCOMPATIBLE_TAB_ID); + + const tabs = useMemo( + () => + getTabs({ + addSuccessToast, + addToNewCaseDisabled, + defaultNumberFormat, + docsCount, + getGroupByFieldsOnClick, + ilmPhase, + indexName, + onAddToNewCase, + partitionedFieldMetadata: partitionedFieldMetadata ?? EMPTY_METADATA, + pattern, + patternDocsCount: patternRollup?.docsCount ?? 0, + setSelectedTabId, + theme, + }), + [ + addSuccessToast, + addToNewCaseDisabled, + defaultNumberFormat, + docsCount, + getGroupByFieldsOnClick, + ilmPhase, + indexName, + onAddToNewCase, + partitionedFieldMetadata, + pattern, + patternRollup?.docsCount, + theme, + ] + ); + + const onSelectedTabChanged = useCallback((id: string) => { + setSelectedTabId(id); + }, []); + + const selectedTabContent = useMemo( + () => ( + <> + + {tabs.find((obj) => obj.id === selectedTabId)?.content} + + ), + [selectedTabId, tabs] + ); + + const renderTabs = useCallback( + () => + tabs.map((tab, index) => ( + onSelectedTabChanged(tab.id)} + > + {tab.name} + + )), + [onSelectedTabChanged, selectedTabId, tabs] + ); + + useEffect(() => { + if (hasAllDataFetchingCompleted({ loadingMappings, loadingUnallowedValues })) { + const error: string | null = mappingsError ?? unallowedValuesError; + const indexIncompatible: number | undefined = + error == null && partitionedFieldMetadata != null + ? partitionedFieldMetadata.incompatible.length + : undefined; + + if (patternRollup != null) { + const markdownComments = + partitionedFieldMetadata != null + ? getAllIncompatibleMarkdownComments({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount: patternRollup.docsCount ?? 0, + }) + : EMPTY_MARKDOWN_COMMENTS; + + updatePatternRollup({ + ...patternRollup, + results: { + ...patternRollup.results, + [indexName]: { + docsCount, + error, + ilmPhase, + incompatible: indexIncompatible, + indexName, + markdownComments, + pattern, + }, + }, + }); + } + } + }, [ + docsCount, + formatNumber, + ilmPhase, + indexName, + loadingMappings, + loadingUnallowedValues, + mappingsError, + partitionedFieldMetadata, + pattern, + patternRollup, + unallowedValuesError, + updatePatternRollup, + ]); + + if (mappingsError != null) { + return ; + } else if (unallowedValuesError != null) { + return ; + } + + if (loadingMappings) { + return ; + } else if (loadingUnallowedValues) { + return ; + } + + return indexes != null ? ( + <> + {renderTabs()} + {selectedTabContent} + + ) : null; +}; +IndexPropertiesComponent.displayName = 'IndexPropertiesComponent'; + +export const IndexProperties = React.memo(IndexPropertiesComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/markdown/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/markdown/helpers.ts new file mode 100644 index 00000000000000..a4df52d02ca588 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/markdown/helpers.ts @@ -0,0 +1,379 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { repeat } from 'lodash/fp'; + +import { + ERRORS_MAY_OCCUR, + ERRORS_CALLOUT_SUMMARY, + MANAGE, + MONITOR, + OR, + READ, + READ_CROSS_CLUSTER, + THE_FOLLOWING_PRIVILEGES_ARE_REQUIRED, + VIEW_INDEX_METADATA, +} from '../../data_quality_summary/errors_popover/translations'; +import { + EMPTY_STAT, + getTotalPatternIncompatible, + getTotalPatternIndicesChecked, +} from '../../../helpers'; +import { HOT, WARM, COLD, FROZEN, UNMANAGED } from '../../../ilm_phases_empty_prompt/translations'; +import * as i18n from '../translations'; +import type { + AllowedValue, + EnrichedFieldMetadata, + ErrorSummary, + IlmExplainPhaseCounts, + IlmPhase, + PartitionedFieldMetadata, + PatternRollup, + UnallowedValueCount, +} from '../../../types'; +import { getDocsCountPercent } from '../../summary_table/helpers'; +import { + DOCS, + ILM_PHASE, + INCOMPATIBLE_FIELDS, + INDEX, + INDICES, + INDICES_CHECKED, + RESULT, +} from '../../summary_table/translations'; +import { DATA_QUALITY_TITLE } from '../../../translations'; + +export const EMPTY_PLACEHOLDER = '--'; + +export const TRIPLE_BACKTICKS = '```'; + +export const ECS_FIELD_REFERENCE_URL = + 'https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html'; + +/** The documentation link shown in the `Data Quality` dashboard */ +export const ECS_REFERENCE_URL = 'https://www.elastic.co/guide/en/ecs/current/ecs-reference.html'; +export const MAPPING_URL = + 'https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html'; + +export const escape = (content: string | undefined): string | undefined => + content != null ? content.replaceAll('\n', ' ').replaceAll('|', '\\|') : content; + +export const escapePreserveNewlines = (content: string | undefined): string | undefined => + content != null ? content.replaceAll('|', '\\|') : content; + +export const getHeaderSeparator = (headerLength: number): string => repeat(headerLength + 2, '-'); + +export const getMarkdownTableHeader = (headerNames: string[]) => ` +| ${headerNames.map((name) => `${escape(name)} | `).join('')} +|${headerNames.map((name) => `${getHeaderSeparator(name.length)}|`).join('')}`; + +export const getCodeFormattedValue = (value: string | undefined) => + `\`${escape(value ?? EMPTY_PLACEHOLDER)}\``; + +export const getAllowedValues = (allowedValues: AllowedValue[] | undefined): string => + allowedValues == null + ? getCodeFormattedValue(undefined) + : allowedValues.map((x) => getCodeFormattedValue(x.name)).join(', '); + +export const getIndexInvalidValues = (indexInvalidValues: UnallowedValueCount[]): string => + indexInvalidValues.length === 0 + ? getCodeFormattedValue(undefined) + : indexInvalidValues + .map(({ fieldName, count }) => `${getCodeFormattedValue(escape(fieldName))} (${count})`) + .join(',\n'); + +export const getCommonMarkdownTableRows = ( + enrichedFieldMetadata: EnrichedFieldMetadata[] +): string => + enrichedFieldMetadata + .map( + (x) => + `| ${escape(x.indexFieldName)} | ${getCodeFormattedValue(x.type)} | ${getCodeFormattedValue( + x.indexFieldType + )} | ${getAllowedValues(x.allowed_values)} | ${getIndexInvalidValues( + x.indexInvalidValues + )} | ${escape(x.description ?? EMPTY_PLACEHOLDER)} |` + ) + .join('\n'); + +export const getCustomMarkdownTableRows = ( + enrichedFieldMetadata: EnrichedFieldMetadata[] +): string => + enrichedFieldMetadata + .map( + (x) => + `| ${escape(x.indexFieldName)} | ${getCodeFormattedValue( + x.indexFieldType + )} | ${getAllowedValues(x.allowed_values)} |` + ) + .join('\n'); + +export const getIncompatibleMappingsMarkdownTableRows = ( + incompatibleMappings: EnrichedFieldMetadata[] +): string => + incompatibleMappings + .map( + (x) => + `| ${escape(x.indexFieldName)} | ${getCodeFormattedValue(x.type)} | ${getCodeFormattedValue( + x.indexFieldType + )} |` + ) + .join('\n'); + +export const getIncompatibleValuesMarkdownTableRows = ( + incompatibleValues: EnrichedFieldMetadata[] +): string => + incompatibleValues + .map( + (x) => + `| ${escape(x.indexFieldName)} | ${getAllowedValues( + x.allowed_values + )} | ${getIndexInvalidValues(x.indexInvalidValues)} |` + ) + .join('\n'); + +export const getMarkdownComment = ({ + suggestedAction, + title, +}: { + suggestedAction: string; + title: string; +}): string => + `#### ${escape(title)} + +${escapePreserveNewlines(suggestedAction)}`; + +export const getErrorsMarkdownTableRows = (errorSummary: ErrorSummary[]): string => + errorSummary + .map( + ({ pattern, indexName, error }) => + `| ${escape(pattern)} | ${escape(indexName ?? EMPTY_PLACEHOLDER)} | ${getCodeFormattedValue( + error + )} |` + ) + .join('\n'); + +export const getErrorsMarkdownTable = ({ + errorSummary, + getMarkdownTableRows, + headerNames, + title, +}: { + errorSummary: ErrorSummary[]; + getMarkdownTableRows: (errorSummary: ErrorSummary[]) => string; + headerNames: string[]; + title: string; +}): string => + errorSummary.length > 0 + ? `## ${escape(title)} + +${ERRORS_CALLOUT_SUMMARY} + +${ERRORS_MAY_OCCUR} + +${THE_FOLLOWING_PRIVILEGES_ARE_REQUIRED} +- \`${MONITOR}\` ${OR} \`${MANAGE}\` +- \`${VIEW_INDEX_METADATA}\` +- \`${READ}\` ${OR} \`${READ_CROSS_CLUSTER}\` + +${getMarkdownTableHeader(headerNames)} +${getMarkdownTableRows(errorSummary)} +` + : ''; + +export const getMarkdownTable = ({ + enrichedFieldMetadata, + getMarkdownTableRows, + headerNames, + title, +}: { + enrichedFieldMetadata: EnrichedFieldMetadata[]; + getMarkdownTableRows: (enrichedFieldMetadata: EnrichedFieldMetadata[]) => string; + headerNames: string[]; + title: string; +}): string => + enrichedFieldMetadata.length > 0 + ? `#### ${escape(title)} + +${getMarkdownTableHeader(headerNames)} +${getMarkdownTableRows(enrichedFieldMetadata)} +` + : ''; + +export const getSummaryMarkdownComment = ({ + ecsFieldReferenceUrl, + ecsReferenceUrl, + incompatible, + indexName, + mappingUrl, +}: { + ecsFieldReferenceUrl: string; + ecsReferenceUrl: string; + incompatible: number | undefined; + indexName: string; + mappingUrl: string; +}): string => + `### ${escape(indexName)} +`; + +export const getTabCountsMarkdownComment = ( + partitionedFieldMetadata: PartitionedFieldMetadata +): string => + `### **${i18n.INCOMPATIBLE_FIELDS}** ${getCodeFormattedValue( + `${partitionedFieldMetadata.incompatible.length}` + )} **${i18n.CUSTOM_FIELDS}** ${getCodeFormattedValue( + `${partitionedFieldMetadata.custom.length}` + )} **${i18n.ECS_COMPLIANT_FIELDS}** ${getCodeFormattedValue( + `${partitionedFieldMetadata.ecsCompliant.length}` + )} **${i18n.ALL_FIELDS}** ${getCodeFormattedValue(`${partitionedFieldMetadata.all.length}`)} +`; + +export const getResultEmoji = (incompatible: number | undefined): string => { + if (incompatible == null) { + return EMPTY_PLACEHOLDER; + } else { + return incompatible === 0 ? '✅' : '❌'; + } +}; + +export const getSummaryTableMarkdownHeader = (): string => + `| ${RESULT} | ${INDEX} | ${DOCS} | ${INCOMPATIBLE_FIELDS} | ${ILM_PHASE} | +|--------|-------|------|---------------------|-----------|`; + +export const getSummaryTableMarkdownRow = ({ + docsCount, + formatNumber, + ilmPhase, + incompatible, + indexName, + patternDocsCount, +}: { + docsCount: number; + formatNumber: (value: number | undefined) => string; + ilmPhase: IlmPhase | undefined; + incompatible: number | undefined; + indexName: string; + patternDocsCount: number; +}): string => + `| ${getResultEmoji(incompatible)} | ${escape(indexName)} | ${formatNumber( + docsCount + )} (${getDocsCountPercent({ + docsCount, + patternDocsCount, + })}) | ${incompatible ?? EMPTY_PLACEHOLDER} | ${ + ilmPhase != null ? getCodeFormattedValue(ilmPhase) : '' + } | +`; + +export const getSummaryTableMarkdownComment = ({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, +}: { + docsCount: number; + formatNumber: (value: number | undefined) => string; + ilmPhase: IlmPhase | undefined; + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata; + patternDocsCount: number; +}): string => + `${getSummaryTableMarkdownHeader()} +${getSummaryTableMarkdownRow({ + docsCount, + formatNumber, + ilmPhase, + indexName, + incompatible: partitionedFieldMetadata.incompatible.length, + patternDocsCount, +})} +`; + +export const getStatsRollupMarkdownComment = ({ + docsCount, + formatNumber, + incompatible, + indices, + indicesChecked, +}: { + docsCount: number; + formatNumber: (value: number | undefined) => string; + incompatible: number | undefined; + indices: number | undefined; + indicesChecked: number | undefined; +}): string => + `| ${INCOMPATIBLE_FIELDS} | ${INDICES_CHECKED} | ${INDICES} | ${DOCS} | +|---------------------|-----------------|---------|------| +| ${incompatible ?? EMPTY_STAT} | ${indicesChecked ?? EMPTY_STAT} | ${ + indices ?? EMPTY_STAT + } | ${formatNumber(docsCount)} | +`; + +export const getDataQualitySummaryMarkdownComment = ({ + formatNumber, + totalDocsCount, + totalIncompatible, + totalIndices, + totalIndicesChecked, +}: { + formatNumber: (value: number | undefined) => string; + totalDocsCount: number | undefined; + totalIncompatible: number | undefined; + totalIndices: number | undefined; + totalIndicesChecked: number | undefined; +}): string => + `# ${DATA_QUALITY_TITLE} + +${getStatsRollupMarkdownComment({ + docsCount: totalDocsCount ?? 0, + formatNumber, + incompatible: totalIncompatible, + indices: totalIndices, + indicesChecked: totalIndicesChecked, +})} +`; + +export const getIlmExplainPhaseCountsMarkdownComment = ({ + hot, + warm, + unmanaged, + cold, + frozen, +}: IlmExplainPhaseCounts): string => + [ + hot > 0 ? getCodeFormattedValue(`${HOT}(${hot})`) : '', + warm > 0 ? getCodeFormattedValue(`${WARM}(${warm})`) : '', + unmanaged > 0 ? getCodeFormattedValue(`${UNMANAGED}(${unmanaged})`) : '', + cold > 0 ? getCodeFormattedValue(`${COLD}(${cold})`) : '', + frozen > 0 ? getCodeFormattedValue(`${FROZEN}(${frozen})`) : '', + ].join(' '); + +export const getPatternSummaryMarkdownComment = ({ + formatNumber, + patternRollup, + patternRollup: { docsCount, indices, ilmExplainPhaseCounts, pattern, results }, +}: { + formatNumber: (value: number | undefined) => string; + patternRollup: PatternRollup; +}): string => + `## ${escape(pattern)} +${ + ilmExplainPhaseCounts != null + ? getIlmExplainPhaseCountsMarkdownComment(ilmExplainPhaseCounts) + : '' +} + +${getStatsRollupMarkdownComment({ + docsCount: docsCount ?? 0, + formatNumber, + incompatible: getTotalPatternIncompatible(results), + indices, + indicesChecked: getTotalPatternIndicesChecked(patternRollup), +})} +`; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/translations.ts new file mode 100644 index 00000000000000..d7e90c9e480f90 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/index_properties/translations.ts @@ -0,0 +1,383 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const ADD_TO_NEW_CASE = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.addToNewCaseButton', + { + defaultMessage: 'Add to new case', + } +); + +export const ALL_FIELDS = i18n.translate('ecsDataQualityDashboard.indexProperties.allFieldsLabel', { + defaultMessage: 'All fields', +}); + +export const ALL_CALLOUT = (version: string) => + i18n.translate('ecsDataQualityDashboard.indexProperties.allCallout', { + values: { version }, + defaultMessage: + "All mappings for the fields in this index, including fields that comply with the Elastic Common Schema (ECS), version {version}, and fields that don't", + }); + +export const ALL_CALLOUT_TITLE = (fieldCount: number) => + i18n.translate('ecsDataQualityDashboard.indexProperties.allCalloutTitle', { + values: { fieldCount }, + defaultMessage: + 'All {fieldCount} {fieldCount, plural, =1 {field mapping} other {field mappings}}', + }); + +export const ALL_EMPTY = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.allCalloutEmptyContent', + { + defaultMessage: 'This index does not contain any mappings', + } +); + +export const ALL_EMPTY_TITLE = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.allCalloutEmptyTitle', + { + defaultMessage: 'No mappings', + } +); + +export const ALL_FIELDS_TABLE_TITLE = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.allTab.allFieldsTableTitle', { + values: { indexName }, + defaultMessage: 'All fields - {indexName}', + }); + +export const SUMMARY_MARKDOWN_TITLE = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.summaryMarkdownTitle', + { + defaultMessage: 'Data quality', + } +); + +export const SUMMARY_MARKDOWN_DESCRIPTION = ({ + ecsFieldReferenceUrl, + ecsReferenceUrl, + indexName, + mappingUrl, + version, +}: { + ecsFieldReferenceUrl: string; + ecsReferenceUrl: string; + indexName: string; + mappingUrl: string; + version: string; +}) => + i18n.translate('ecsDataQualityDashboard.indexProperties.summaryMarkdownDescription', { + values: { ecsFieldReferenceUrl, ecsReferenceUrl, indexName, mappingUrl, version }, + defaultMessage: + 'The `{indexName}` index has [mappings]({mappingUrl}) or field values that are different than the [Elastic Common Schema]({ecsReferenceUrl}) (ECS), version `{version}` [definitions]({ecsFieldReferenceUrl}).', + }); + +export const COPY_TO_CLIPBOARD = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.copyToClipboardButton', + { + defaultMessage: 'Copy to clipboard', + } +); + +export const CUSTOM_FIELDS_TABLE_TITLE = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.customTab.customFieldsTableTitle', { + values: { indexName }, + defaultMessage: 'Custom fields - {indexName}', + }); + +export const CUSTOM_DETECTION_ENGINE_RULES_WORK = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.custonDetectionEngineRulesWorkMessage', + { + defaultMessage: '✅ Custom detection engine rules work', + } +); + +export const DOCS = i18n.translate('ecsDataQualityDashboard.indexProperties.docsLabel', { + defaultMessage: 'Docs', +}); + +export const ECS_COMPLIANT_FIELDS = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.ecsCompliantFieldsLabel', + { + defaultMessage: 'ECS compliant fields', + } +); + +export const ECS_COMPLIANT_CALLOUT = ({ + fieldCount, + version, +}: { + fieldCount: number; + version: string; +}) => + i18n.translate('ecsDataQualityDashboard.indexProperties.ecsCompliantCallout', { + values: { fieldCount, version }, + defaultMessage: + 'The {fieldCount, plural, =1 {index mapping type and document values for this field comply} other {index mapping types and document values of these fields comply}} with the Elastic Common Schema (ECS), version {version}', + }); + +export const ECS_COMPLIANT_CALLOUT_TITLE = (fieldCount: number) => + i18n.translate('ecsDataQualityDashboard.indexProperties.ecsCompliantCalloutTitle', { + values: { fieldCount }, + defaultMessage: '{fieldCount} ECS compliant {fieldCount, plural, =1 {field} other {fields}}', + }); + +export const ECS_COMPLIANT_EMPTY = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.ecsCompliantEmptyContent', + { + defaultMessage: + 'None of the field mappings in this index comply with the Elastic Common Schema (ECS). The index must (at least) contain an @timestamp date field.', + } +); + +export const ECS_VERSION_MARKDOWN_COMMENT = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.ecsVersionMarkdownComment', + { + defaultMessage: 'Elastic Common Schema (ECS) version', + } +); + +export const INDEX = i18n.translate('ecsDataQualityDashboard.indexProperties.indexMarkdown', { + defaultMessage: 'Index', +}); + +export const ECS_COMPLIANT_EMPTY_TITLE = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.ecsCompliantEmptyTitle', + { + defaultMessage: 'No ECS compliant Mappings', + } +); + +export const ECS_COMPLIANT_MAPPINGS_ARE_FULLY_SUPPORTED = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.ecsCompliantMappingsAreFullySupportedMessage', + { + defaultMessage: '✅ ECS compliant mappings and field values are fully supported', + } +); + +export const ERROR_LOADING_MAPPINGS_TITLE = i18n.translate( + 'ecsDataQualityDashboard.emptyErrorPrompt.errorLoadingMappingsTitle', + { + defaultMessage: 'Unable to load index mappings', + } +); + +export const ERROR_LOADING_MAPPINGS_BODY = (error: string) => + i18n.translate('ecsDataQualityDashboard.emptyErrorPrompt.errorLoadingMappingsBody', { + values: { error }, + defaultMessage: 'There was a problem loading mappings: {error}', + }); + +export const ERROR_LOADING_UNALLOWED_VALUES_BODY = (error: string) => + i18n.translate('ecsDataQualityDashboard.emptyErrorPrompt.errorLoadingUnallowedValuesBody', { + values: { error }, + defaultMessage: 'There was a problem loading unallowed values: {error}', + }); + +export const ERROR_LOADING_UNALLOWED_VALUES_TITLE = i18n.translate( + 'ecsDataQualityDashboard.emptyErrorPrompt.errorLoadingUnallowedValuesTitle', + { + defaultMessage: 'Unable to load unallowed values', + } +); + +export const ECS_COMPLIANT_FIELDS_TABLE_TITLE = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.customTab.ecsComplaintFieldsTableTitle', { + values: { indexName }, + defaultMessage: 'ECS complaint fields - {indexName}', + }); + +export const LOADING_MAPPINGS = i18n.translate( + 'ecsDataQualityDashboard.emptyLoadingPrompt.loadingMappingsPrompt', + { + defaultMessage: 'Loading mappings', + } +); + +export const LOADING_UNALLOWED_VALUES = i18n.translate( + 'ecsDataQualityDashboard.emptyLoadingPrompt.loadingUnallowedValuesPrompt', + { + defaultMessage: 'Loading unallowed values', + } +); + +export const SUMMARY = i18n.translate('ecsDataQualityDashboard.indexProperties.summaryTab', { + defaultMessage: 'Summary', +}); + +export const MISSING_TIMESTAMP_CALLOUT = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.missingTimestampCallout', + { + defaultMessage: + 'Consider adding an @timestamp (date) field mapping to this index, as required by the Elastic Common Schema (ECS), because:', + } +); + +export const MISSING_TIMESTAMP_CALLOUT_TITLE = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.missingTimestampCalloutTitle', + { + defaultMessage: 'Missing an @timestamp (date) field mapping for this index', + } +); + +export const CUSTOM_FIELDS = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.customFieldsLabel', + { + defaultMessage: 'Custom fields', + } +); + +export const CUSTOM_CALLOUT = ({ fieldCount, version }: { fieldCount: number; version: string }) => + i18n.translate('ecsDataQualityDashboard.indexProperties.customCallout', { + values: { fieldCount, version }, + defaultMessage: + '{fieldCount, plural, =1 {This field is not} other {These fields are not}} defined by the Elastic Common Schema (ECS), version {version}. An index may contain custom fields, however:', + }); + +export const CUSTOM_CALLOUT_TITLE = (fieldCount: number) => + i18n.translate('ecsDataQualityDashboard.indexProperties.customCalloutTitle', { + values: { fieldCount }, + defaultMessage: + '{fieldCount} Custom {fieldCount, plural, =1 {field mapping} other {field mappings}}', + }); + +export const CUSTOM_EMPTY = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.customEmptyContent', + { + defaultMessage: 'All the field mappings in this index are defined by the Elastic Common Schema', + } +); + +export const CUSTOM_EMPTY_TITLE = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.customEmptyTitle', + { + defaultMessage: 'All field mappings defined by ECS', + } +); + +export const INCOMPATIBLE_FIELDS = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.incompatibleFieldsTab', + { + defaultMessage: 'Incompatible fields', + } +); + +export const INCOMPATIBLE_CALLOUT = ({ + fieldCount, + version, +}: { + fieldCount: number; + version: string; +}) => + i18n.translate('ecsDataQualityDashboard.indexProperties.incompatibleCallout', { + values: { version }, + defaultMessage: + "Fields are incompatible with ECS when index mappings, or the values of the fields in the index, don't conform to the Elastic Common Schema (ECS), version {version}.", + }); + +export const INCOMPATIBLE_CALLOUT_TITLE = (fieldCount: number) => + i18n.translate('ecsDataQualityDashboard.indexProperties.incompatibleCalloutTitle', { + values: { fieldCount }, + defaultMessage: '{fieldCount} incompatible {fieldCount, plural, =1 {field} other {fields}}', + }); + +export const INCOMPATIBLE_EMPTY = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.incompatibleEmptyContent', + { + defaultMessage: + 'All of the field mappings and document values in this index are compliant with the Elastic Common Schema (ECS).', + } +); + +export const INCOMPATIBLE_EMPTY_TITLE = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.incompatibleEmptyTitle', + { + defaultMessage: 'All field mappings and values are ECS compliant', + } +); + +export const DETECTION_ENGINE_RULES_WILL_WORK = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.detectionEngineRulesWillWorkMessage', + { + defaultMessage: '✅ Detection engine rules will work for these fields', + } +); + +export const DETECTION_ENGINE_RULES_WONT_WORK = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.detectionEngineRulesWontWorkMessage', + { + defaultMessage: + '❌ Detection engine rules referencing these fields may not match them correctly', + } +); + +export const OTHER_APP_CAPABILITIES_WORK_PROPERLY = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.otherAppCapabilitiesWorkProperlyMessage', + { + defaultMessage: '✅ Other app capabilities work properly', + } +); + +export const PAGES_DISPLAY_EVENTS = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.pagesDisplayEventsMessage', + { + defaultMessage: '✅ Pages display events and fields correctly', + } +); + +export const PAGES_MAY_NOT_DISPLAY_FIELDS = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.pagesMayNotDisplayFieldsMessage', + { + defaultMessage: '🌕 Some pages and features may not display these fields', + } +); + +export const PAGES_WONT_DISPLAY_EVENTS = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.pagesWontDisplayEventsMessage', + { + defaultMessage: + '❌ Pages may not display some events or fields due to unexpected field mappings or values', + } +); + +export const PRE_BUILT_DETECTION_ENGINE_RULES_WORK = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.preBuiltDetectionEngineRulesWorkMessage', + { + defaultMessage: '✅ Pre-built detection engine rules work', + } +); + +export const PRE_BUILT_DETECTION_ENGINE_RULES_WONT_WORK = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.preBuiltDetectionEngineRulesWontWorkMessage', + { + defaultMessage: "🌕 Pre-built detection engine rules won't match these fields", + } +); + +export const SOMETIMES_INDICES_CREATED_BY_OLDER = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.sometimesIndicesCreatedByOlderDescription', + { + defaultMessage: + 'Sometimes, indices created by older integrations will have mappings or values that were, but are no longer compliant.', + } +); + +export const MAPPINGS_THAT_CONFLICT_WITH_ECS = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.mappingThatConflictWithEcsMessage', + { + defaultMessage: "❌ Mappings or field values that don't comply with ECS are not supported", + } +); + +export const UNKNOWN = i18n.translate( + 'ecsDataQualityDashboard.indexProperties.unknownCategoryLabel', + { + defaultMessage: 'Unknown', + } +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/loading_empty_prompt/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/loading_empty_prompt/index.tsx new file mode 100644 index 00000000000000..84e701c0aa2446 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/loading_empty_prompt/index.tsx @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiEmptyPrompt, EuiLoadingSpinner } from '@elastic/eui'; +import React, { useMemo } from 'react'; + +interface Props { + loading: string; +} + +const LoadingEmptyPromptComponent: React.FC = ({ loading }) => { + const icon = useMemo(() => , []); + + return {loading}} />; +}; + +LoadingEmptyPromptComponent.displayName = 'LoadingEmptyPromptComponent'; + +export const LoadingEmptyPrompt = React.memo(LoadingEmptyPromptComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/panel_subtitle/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/panel_subtitle/index.tsx new file mode 100644 index 00000000000000..10e460d9c24f59 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/panel_subtitle/index.tsx @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiCode, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import React from 'react'; + +import * as i18n from '../../translations'; + +interface Props { + error: string | null; + loading: boolean; + version: string | null; + versionLoading: boolean; +} + +const PanelSubtitleComponent: React.FC = ({ error, loading, version, versionLoading }) => { + const allDataLoaded = !loading && !versionLoading && error == null && version != null; + + return allDataLoaded ? ( + + + + {i18n.SELECT_AN_INDEX} {version} + + + + ) : null; +}; + +export const PanelSubtitle = React.memo(PanelSubtitleComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/helpers.ts new file mode 100644 index 00000000000000..efa9dbfa69d5e5 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/helpers.ts @@ -0,0 +1,235 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + IlmExplainLifecycleLifecycleExplain, + IndicesStatsIndicesStats, +} from '@elastic/elasticsearch/lib/api/types'; +import { sortBy } from 'lodash/fp'; + +import type { IndexSummaryTableItem } from '../summary_table/helpers'; +import type { + IlmPhase, + IlmExplainPhaseCounts, + DataQualityCheckResult, + PatternRollup, +} from '../../types'; +import { getDocsCount } from '../../helpers'; + +export const isManaged = ( + ilmExplainRecord: IlmExplainLifecycleLifecycleExplain | undefined +): boolean => ilmExplainRecord?.managed === true; + +export const getPhaseCount = ({ + ilmExplain, + ilmPhase, + indexName, +}: { + ilmExplain: Record | null; + ilmPhase: IlmPhase; + indexName: string; +}): number => { + const ilmExplainRecord = ilmExplain != null ? ilmExplain[indexName] : undefined; + + if (ilmPhase === 'unmanaged') { + return isManaged(ilmExplainRecord) ? 0 : 1; + } else if (ilmExplainRecord != null && 'phase' in ilmExplainRecord) { + return ilmExplainRecord.phase === ilmPhase ? 1 : 0; + } + + return 0; +}; + +export const getIlmPhase = ( + ilmExplainRecord: IlmExplainLifecycleLifecycleExplain | undefined +): IlmPhase | undefined => { + if (ilmExplainRecord == null) { + return undefined; + } + + if ('phase' in ilmExplainRecord) { + const phase = ilmExplainRecord.phase; + + switch (phase) { + case 'hot': + return 'hot'; + case 'warm': + return 'warm'; + case 'cold': + return 'cold'; + case 'frozen': + return 'frozen'; + default: + return undefined; + } + } else { + return 'unmanaged'; + } +}; + +export const getIlmExplainPhaseCounts = ( + ilmExplain: Record | null +): IlmExplainPhaseCounts => { + const indexNames = ilmExplain != null ? Object.keys(ilmExplain) : []; + + return indexNames.reduce( + (acc, indexName) => ({ + hot: + acc.hot + + getPhaseCount({ + ilmExplain, + ilmPhase: 'hot', + indexName, + }), + warm: + acc.warm + + getPhaseCount({ + ilmExplain, + ilmPhase: 'warm', + indexName, + }), + cold: + acc.cold + + getPhaseCount({ + ilmExplain, + ilmPhase: 'cold', + indexName, + }), + frozen: + acc.frozen + + getPhaseCount({ + ilmExplain, + ilmPhase: 'frozen', + indexName, + }), + unmanaged: + acc.unmanaged + + getPhaseCount({ + ilmExplain, + ilmPhase: 'unmanaged', + indexName, + }), + }), + { + hot: 0, + warm: 0, + cold: 0, + frozen: 0, + unmanaged: 0, + } + ); +}; + +export const getIndexIncompatible = ({ + indexName, + results, +}: { + indexName: string; + results: Record | undefined; +}): number | undefined => { + if (results == null || results[indexName] == null) { + return undefined; + } + + return results[indexName].incompatible; +}; + +export const getSummaryTableItems = ({ + ilmExplain, + indexNames, + pattern, + patternDocsCount, + results, + stats, +}: { + ilmExplain: Record | null; + indexNames: string[]; + pattern: string; + patternDocsCount: number; + results: Record | undefined; + stats: Record | null; +}): IndexSummaryTableItem[] => { + const summaryTableItems = indexNames.map((indexName) => ({ + docsCount: getDocsCount({ stats, indexName }), + incompatible: getIndexIncompatible({ indexName, results }), + indexName, + ilmPhase: ilmExplain != null ? getIlmPhase(ilmExplain[indexName]) : undefined, + pattern, + patternDocsCount, + })); + + return sortBy('docsCount', summaryTableItems).reverse(); +}; + +export const getDefaultIndexIncompatibleCounts = ( + indexNames: string[] +): Record => + indexNames.reduce>( + (acc, indexName) => ({ + ...acc, + [indexName]: undefined, + }), + {} + ); + +export const createPatternIncompatibleEntries = ({ + indexNames, + patternIncompatible, +}: { + indexNames: string[]; + patternIncompatible: Record; +}): Record => + indexNames.reduce>( + (acc, indexName) => + indexName in patternIncompatible + ? { ...acc, [indexName]: patternIncompatible[indexName] } + : { ...acc, [indexName]: undefined }, + {} + ); + +export const getIncompatible = ( + patternIncompatible: Record +): number | undefined => { + const allIndexes = Object.values(patternIncompatible); + const allIndexesHaveValues = allIndexes.every((incompatible) => Number.isInteger(incompatible)); + + // only return a number when all indexes have an `incompatible` count: + return allIndexesHaveValues + ? allIndexes.reduce((acc, incompatible) => acc + Number(incompatible), 0) + : undefined; +}; + +export const shouldCreateIndexNames = ({ + ilmExplain, + indexNames, + stats, +}: { + ilmExplain: Record | null; + indexNames: string[] | undefined; + stats: Record | null; +}): boolean => indexNames == null && stats != null && ilmExplain != null; + +export const shouldCreatePatternRollup = ({ + error, + ilmExplain, + patternRollup, + stats, +}: { + error: string | null; + ilmExplain: Record | null; + patternRollup: PatternRollup | undefined; + stats: Record | null; +}): boolean => { + if (patternRollup != null) { + return false; // the rollup already exists + } + + const allDataLoaded: boolean = stats != null && ilmExplain != null; + const errorOccurred: boolean = error != null; + + return allDataLoaded || errorOccurred; +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/index.tsx new file mode 100644 index 00000000000000..d6a73f1fd2cfb8 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/index.tsx @@ -0,0 +1,252 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + FlameElementEvent, + HeatmapElementEvent, + MetricElementEvent, + PartitionElementEvent, + Theme, + WordCloudElementEvent, + XYChartElementEvent, +} from '@elastic/charts'; +import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiSpacer } from '@elastic/eui'; +import { euiThemeVars } from '@kbn/ui-theme'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import styled from 'styled-components'; + +import { ErrorEmptyPrompt } from '../error_empty_prompt'; +import { + getIlmExplainPhaseCounts, + getIlmPhase, + getSummaryTableItems, + shouldCreateIndexNames, + shouldCreatePatternRollup, +} from './helpers'; +import { + getDocsCount, + getIndexNames, + getTotalDocsCount, + getTotalPatternIncompatible, + getTotalPatternIndicesChecked, +} from '../../helpers'; +import { IndexProperties } from '../index_properties'; +import { LoadingEmptyPrompt } from '../loading_empty_prompt'; +import { PatternSummary } from './pattern_summary'; +import { SummaryTable } from '../summary_table'; +import { getSummaryTableColumns } from '../summary_table/helpers'; +import * as i18n from './translations'; +import type { PatternRollup } from '../../types'; +import { useIlmExplain } from '../../use_ilm_explain'; +import { useStats } from '../../use_stats'; + +const IndexPropertiesContainer = styled.div` + margin-bottom: ${euiThemeVars.euiSizeS}; + width: 100%; +`; + +const EMPTY_INDEX_NAMES: string[] = []; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + canUserCreateAndReadCases: () => boolean; + defaultNumberFormat: string; + getGroupByFieldsOnClick: ( + elements: Array< + | FlameElementEvent + | HeatmapElementEvent + | MetricElementEvent + | PartitionElementEvent + | WordCloudElementEvent + | XYChartElementEvent + > + ) => { + groupByField0: string; + groupByField1: string; + }; + ilmPhases: string[]; + indexNames: string[] | undefined; + openCreateCaseFlyout: ({ + comments, + headerContent, + }: { + comments: string[]; + headerContent?: React.ReactNode; + }) => void; + pattern: string; + patternRollup: PatternRollup | undefined; + theme: Theme; + updatePatternIndexNames: ({ + indexNames, + pattern, + }: { + indexNames: string[]; + pattern: string; + }) => void; + updatePatternRollup: (patternRollup: PatternRollup) => void; +} + +const PatternComponent: React.FC = ({ + addSuccessToast, + canUserCreateAndReadCases, + defaultNumberFormat, + getGroupByFieldsOnClick, + indexNames, + ilmPhases, + openCreateCaseFlyout, + pattern, + patternRollup, + theme, + updatePatternIndexNames, + updatePatternRollup, +}) => { + const { error: statsError, loading: loadingStats, stats } = useStats(pattern); + const { error: ilmExplainError, loading: loadingIlmExplain, ilmExplain } = useIlmExplain(pattern); + + const loading = useMemo( + () => loadingStats || loadingIlmExplain, + [loadingIlmExplain, loadingStats] + ); + const error = useMemo(() => statsError ?? ilmExplainError, [ilmExplainError, statsError]); + + const [itemIdToExpandedRowMap, setItemIdToExpandedRowMap] = useState< + Record + >({}); + + const toggleExpanded = useCallback( + (indexName: string) => { + if (itemIdToExpandedRowMap[indexName]) { + setItemIdToExpandedRowMap({}); + } else { + setItemIdToExpandedRowMap({ + [indexName]: ( + + + + ), + }); + } + }, + [ + addSuccessToast, + canUserCreateAndReadCases, + defaultNumberFormat, + getGroupByFieldsOnClick, + ilmExplain, + itemIdToExpandedRowMap, + openCreateCaseFlyout, + pattern, + patternRollup, + stats, + theme, + updatePatternRollup, + ] + ); + + const ilmExplainPhaseCounts = useMemo(() => getIlmExplainPhaseCounts(ilmExplain), [ilmExplain]); + + const items = useMemo( + () => + getSummaryTableItems({ + ilmExplain, + indexNames: indexNames ?? EMPTY_INDEX_NAMES, + pattern, + patternDocsCount: patternRollup?.docsCount ?? 0, + results: patternRollup?.results, + stats, + }), + [ilmExplain, indexNames, pattern, patternRollup, stats] + ); + + useEffect(() => { + if (shouldCreateIndexNames({ indexNames, stats, ilmExplain })) { + updatePatternIndexNames({ + indexNames: getIndexNames({ stats, ilmExplain, ilmPhases }), + pattern, + }); + } + + if (shouldCreatePatternRollup({ error, patternRollup, stats, ilmExplain })) { + updatePatternRollup({ + docsCount: getTotalDocsCount({ + indexNames: getIndexNames({ stats, ilmExplain, ilmPhases }), + stats, + }), + error, + ilmExplain, + ilmExplainPhaseCounts, + indices: getIndexNames({ stats, ilmExplain, ilmPhases }).length, + pattern, + results: undefined, + stats, + }); + } + }, [ + error, + ilmExplain, + ilmExplainPhaseCounts, + ilmPhases, + indexNames, + pattern, + patternRollup, + stats, + updatePatternIndexNames, + updatePatternRollup, + ]); + + return ( + + + + + + + + {!loading && error != null && ( + + )} + + {loading && } + + {!loading && error == null && ( + + )} + + + ); +}; + +PatternComponent.displayName = 'PatternComponent'; + +export const Pattern = React.memo(PatternComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/index.tsx new file mode 100644 index 00000000000000..a8ae7a673b92e4 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/index.tsx @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import React from 'react'; + +import type { IlmExplainPhaseCounts } from '../../../types'; +import { PatternLabel } from './pattern_label'; +import { StatsRollup } from './stats_rollup'; + +interface Props { + defaultNumberFormat: string; + ilmExplainPhaseCounts: IlmExplainPhaseCounts; + incompatible: number | undefined; + indices: number | undefined; + indicesChecked: number | undefined; + pattern: string; + patternDocsCount: number; +} + +const PatternSummaryComponent: React.FC = ({ + defaultNumberFormat, + ilmExplainPhaseCounts, + incompatible, + indices, + indicesChecked, + pattern, + patternDocsCount, +}) => ( + + + + + + + + + +); + +export const PatternSummary = React.memo(PatternSummaryComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/helpers.ts new file mode 100644 index 00000000000000..8b3ad21adcbfd3 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/helpers.ts @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import * as i18n from './translations'; + +export const getResultToolTip = (incompatible: number | undefined): string => { + if (incompatible == null) { + return i18n.SOME_UNCHECKED; + } else if (incompatible === 0) { + return i18n.ALL_PASSED; + } else { + return i18n.SOME_FAILED; + } +}; + +export const showResult = ({ + incompatible, + indices, + indicesChecked, +}: { + incompatible: number | undefined; + indices: number | undefined; + indicesChecked: number | undefined; +}): boolean => + incompatible != null && indices != null && indicesChecked != null && indices === indicesChecked; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/index.tsx new file mode 100644 index 00000000000000..f421da8d2bf354 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/index.tsx @@ -0,0 +1,72 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiTitle, EuiToolTip, EuiIcon } from '@elastic/eui'; +import React from 'react'; +import styled from 'styled-components'; + +import { getResultToolTip, showResult } from './helpers'; +import { IlmPhaseCounts } from '../../../ilm_phase_counts'; +import { getResultIcon, getResultIconColor } from '../../../summary_table/helpers'; +import * as i18n from '../translations'; +import type { IlmExplainPhaseCounts } from '../../../../types'; + +const ResultContainer = styled.div` + margin-right: ${({ theme }) => theme.eui.euiSizeS}; +`; + +interface Props { + incompatible: number | undefined; + indices: number | undefined; + indicesChecked: number | undefined; + ilmExplainPhaseCounts: IlmExplainPhaseCounts; + pattern: string; +} + +const PatternLabelComponent: React.FC = ({ + ilmExplainPhaseCounts, + incompatible, + indices, + indicesChecked, + pattern, +}) => ( + <> + + + + {showResult({ + incompatible, + indices, + indicesChecked, + }) && ( + + + + )} + + + + + + +

    {pattern}

    +
    +
    +
    +
    + + + + +); + +PatternLabelComponent.displayName = 'PatternLabelComponent'; + +export const PatternLabel = React.memo(PatternLabelComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/translations.ts new file mode 100644 index 00000000000000..cdd9c897ed326b --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/pattern_label/translations.ts @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const ALL_PASSED = i18n.translate('ecsDataQualityDashboard.patternLabel.allPassedTooltip', { + defaultMessage: 'All indices matching this pattern passed the data quality checks', +}); + +export const SOME_FAILED = i18n.translate( + 'ecsDataQualityDashboard.patternLabel.someFailedTooltip', + { + defaultMessage: 'Some indices matching this pattern failed the data quality checks', + } +); + +export const SOME_UNCHECKED = i18n.translate( + 'ecsDataQualityDashboard.patternLabel.someUncheckedTooltip', + { + defaultMessage: 'Some indices matching this pattern have not been checked for data quality', + } +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/stats_rollup/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/stats_rollup/index.tsx new file mode 100644 index 00000000000000..dcf28487a091c9 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/stats_rollup/index.tsx @@ -0,0 +1,143 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem, EuiStat, EuiToolTip } from '@elastic/eui'; +import numeral from '@elastic/numeral'; +import React, { useMemo } from 'react'; +import styled from 'styled-components'; + +import { EMPTY_STAT, getIncompatibleStatColor } from '../../../../helpers'; +import { StatLabel } from '../../../stat_label'; +import * as i18n from '../../../stat_label/translations'; + +const StatsFlexGroup = styled(EuiFlexGroup)` + gap: ${({ theme }) => theme.eui.euiSizeS}; +`; + +const IndicesStatContainer = styled.div` + min-width: 100px; +`; + +const DocsContainer = styled.div` + min-width: 155px; +`; + +const STAT_TITLE_SIZE = 's'; + +interface Props { + defaultNumberFormat: string; + docsCount: number | undefined; + incompatible: number | undefined; + indices: number | undefined; + indicesChecked: number | undefined; + pattern?: string; +} + +const StatsRollupComponent: React.FC = ({ + defaultNumberFormat, + docsCount, + incompatible, + indices, + indicesChecked, + pattern, +}) => { + const incompatibleDescription = useMemo( + () => , + [] + ); + const indicesCheckedDescription = useMemo( + () => , + [] + ); + const docsDescription = useMemo(() => , []); + const indicesDescription = useMemo(() => , []); + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +StatsRollupComponent.displayName = 'StatsRollupComponent'; + +export const StatsRollup = React.memo(StatsRollupComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/translations.ts new file mode 100644 index 00000000000000..54098d624e0f90 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/pattern_summary/translations.ts @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const DOCS = i18n.translate('ecsDataQualityDashboard.patternSummary.docsLabel', { + defaultMessage: 'Docs', +}); + +export const INDICES = i18n.translate('ecsDataQualityDashboard.patternSummary.indicesLabel', { + defaultMessage: 'Indices', +}); + +export const PATTERN_OR_INDEX_TOOLTIP = i18n.translate( + 'ecsDataQualityDashboard.patternSummary.patternOrIndexTooltip', + { + defaultMessage: 'A pattern or specific index', + } +); + +export const PATTERN_DOCS_COUNT_TOOLTIP = (pattern: string) => + i18n.translate('ecsDataQualityDashboard.patternDocsCountTooltip', { + values: { pattern }, + defaultMessage: 'The total count from all indices matching: {pattern}', + }); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/translations.ts new file mode 100644 index 00000000000000..776ceef7761728 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/pattern/translations.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const ERROR_LOADING_METADATA_TITLE = (pattern: string) => + i18n.translate('ecsDataQualityDashboard.emptyErrorPrompt.errorLoadingMetadataTitle', { + values: { pattern }, + defaultMessage: "Indices matching the {pattern} pattern won't checked", + }); + +export const ERROR_LOADING_METADATA_BODY = ({ + error, + pattern, +}: { + error: string; + pattern: string; +}) => + i18n.translate('ecsDataQualityDashboard.emptyErrorPrompt.errorLoadingMetadataBody', { + values: { error, pattern }, + defaultMessage: + "Indices matching the {pattern} pattern won't be checked, because an error occurred: {error}", + }); + +export const LOADING_STATS = i18n.translate( + 'ecsDataQualityDashboard.emptyLoadingPrompt.loadingStatsPrompt', + { + defaultMessage: 'Loading stats', + } +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/stat_label/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/stat_label/index.tsx new file mode 100644 index 00000000000000..31b4620fbb5f0f --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/stat_label/index.tsx @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import styled from 'styled-components'; + +const Line1 = styled.span` + display: block; +`; + +const Line2 = styled.span` + display: inline-block; +`; + +const EMPTY = ' '; + +interface Props { + color?: string; + line1?: string; + line2?: string; +} + +export const StatLabel: React.FC = ({ color, line1 = EMPTY, line2 = EMPTY }) => ( + <> + {line1} + {line2} + +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/stat_label/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/stat_label/translations.ts new file mode 100644 index 00000000000000..afaad5d08ed6e0 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/stat_label/translations.ts @@ -0,0 +1,114 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const CHECKED = i18n.translate('ecsDataQualityDashboard.statLabels.checkedLabel', { + defaultMessage: 'checked', +}); + +export const CUSTOM = i18n.translate('ecsDataQualityDashboard.statLabels.customLabel', { + defaultMessage: 'Custom', +}); + +export const CUSTOM_INDEX_TOOL_TIP = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.statLabels.customIndexToolTip', { + values: { indexName }, + defaultMessage: 'A count of the custom field mappings in the {indexName} index', + }); + +export const CUSTOM_PATTERN_TOOL_TIP = (pattern: string) => + i18n.translate('ecsDataQualityDashboard.statLabels.customPatternToolTip', { + values: { pattern }, + defaultMessage: + 'The total count of custom field mappings, in indices matching the {pattern} pattern', + }); + +export const DOCS = i18n.translate('ecsDataQualityDashboard.statLabels.docsLabel', { + defaultMessage: 'Docs', +}); + +export const FIELDS = i18n.translate('ecsDataQualityDashboard.statLabels.fieldsLabel', { + defaultMessage: 'fields', +}); + +export const INCOMPATIBLE = i18n.translate('ecsDataQualityDashboard.statLabels.incompatibleLabel', { + defaultMessage: 'Incompatible', +}); + +export const INCOMPATIBLE_INDEX_TOOL_TIP = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.statLabels.incompatibleIndexToolTip', { + values: { indexName }, + defaultMessage: 'Mappings and values incompatible with ECS, in the {indexName} index', + }); + +export const INCOMPATIBLE_PATTERN_TOOL_TIP = (pattern: string) => + i18n.translate('ecsDataQualityDashboard.statLabels.incompatiblePatternToolTip', { + values: { pattern }, + defaultMessage: + 'The total count of fields incompatible with ECS, in indices matching the {pattern} pattern', + }); + +export const INDEX_DOCS_COUNT_TOOL_TIP = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.statLabels.indexDocsCountToolTip', { + values: { indexName }, + defaultMessage: 'A count of the docs in the {indexName} index', + }); + +export const INDEX_DOCS_PATTERN_TOOL_TIP = (pattern: string) => + i18n.translate('ecsDataQualityDashboard.statLabels.indexDocsPatternToolTip', { + values: { pattern }, + defaultMessage: 'The total count of docs, in indices matching the {pattern} pattern', + }); + +export const INDICES = i18n.translate('ecsDataQualityDashboard.statLabels.indicesLabel', { + defaultMessage: 'Indices', +}); + +export const TOTAL_COUNT_OF_INDICES_CHECKED_MATCHING_PATTERN_TOOL_TIP = (pattern: string) => + i18n.translate( + 'ecsDataQualityDashboard.statLabels.totalCountOfIndicesCheckedMatchingPatternToolTip', + { + values: { pattern }, + defaultMessage: 'The total count of indices checked that match the {pattern} pattern', + } + ); + +export const TOTAL_COUNT_OF_INDICES_MATCHING_PATTERN_TOOL_TIP = (pattern: string) => + i18n.translate('ecsDataQualityDashboard.statLabels.totalCountOfIndicesMatchingPatternToolTip', { + values: { pattern }, + defaultMessage: 'The total count of indices matching the {pattern} pattern', + }); + +export const TOTAL_DOCS_TOOL_TIP = i18n.translate( + 'ecsDataQualityDashboard.statLabels.totalDocsToolTip', + { + defaultMessage: 'The total count of docs, in all indices', + } +); + +export const TOTAL_INCOMPATIBLE_TOOL_TIP = i18n.translate( + 'ecsDataQualityDashboard.statLabels.totalIncompatibleToolTip', + { + defaultMessage: + 'The total count of fields incompatible with ECS, in all indices that were checked', + } +); + +export const TOTAL_INDICES_CHECKED_TOOL_TIP = i18n.translate( + 'ecsDataQualityDashboard.statLabels.totalIndicesCheckedToolTip', + { + defaultMessage: 'The total count of all indices checked', + } +); + +export const TOTAL_INDICES_TOOL_TIP = i18n.translate( + 'ecsDataQualityDashboard.statLabels.totalIndicesToolTip', + { + defaultMessage: 'The total count of all indices', + } +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.tsx new file mode 100644 index 00000000000000..e3789fce0bb5b8 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.tsx @@ -0,0 +1,195 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { EuiBasicTableColumn } from '@elastic/eui'; +import { + EuiBadge, + EuiButtonIcon, + EuiIcon, + EuiProgress, + EuiScreenReaderOnly, + EuiStat, + EuiToolTip, + RIGHT_ALIGNMENT, +} from '@elastic/eui'; +import React from 'react'; +import styled from 'styled-components'; + +import { EMPTY_STAT, getIlmPhaseDescription, getIncompatibleStatColor } from '../../helpers'; +import { INCOMPATIBLE_INDEX_TOOL_TIP } from '../stat_label/translations'; +import * as i18n from './translations'; +import type { IlmPhase } from '../../types'; + +const STAT_TITLE_SIZE = 'xxs'; + +const EMPTY_DESCRIPTION = ' '; + +const ProgressContainer = styled.div` + width: 150px; +`; + +export interface IndexSummaryTableItem { + docsCount: number; + incompatible: number | undefined; + indexName: string; + ilmPhase: IlmPhase | undefined; + pattern: string; + patternDocsCount: number; +} + +export const getResultToolTip = (incompatible: number | undefined): string => { + if (incompatible == null) { + return i18n.THIS_INDEX_HAS_NOT_BEEN_CHECKED; + } else if (incompatible === 0) { + return i18n.PASSED; + } else { + return i18n.FAILED; + } +}; + +export const getResultIconColor = ( + incompatible: number | undefined +): 'success' | 'danger' | 'ghost' => { + if (incompatible == null) { + return 'ghost'; + } else if (incompatible === 0) { + return 'success'; + } else { + return 'danger'; + } +}; + +export const getResultIcon = (incompatible: number | undefined): 'check' | 'cross' => + incompatible === 0 ? 'check' : 'cross'; + +export const getDocsCountPercent = ({ + docsCount, + locales, + patternDocsCount, +}: { + docsCount: number; + locales?: string | string[]; + patternDocsCount: number; +}): string => + patternDocsCount !== 0 + ? Number(docsCount / patternDocsCount).toLocaleString(locales, { + style: 'percent', + maximumFractionDigits: 1, + minimumFractionDigits: 1, + }) + : ''; + +export const getSummaryTableColumns = ({ + formatNumber, + itemIdToExpandedRowMap, + toggleExpanded, +}: { + formatNumber: (value: number | undefined) => string; + itemIdToExpandedRowMap: Record; + toggleExpanded: (indexName: string) => void; +}): Array> => [ + { + align: RIGHT_ALIGNMENT, + isExpander: true, + name: ( + + {i18n.EXPAND_ROWS} + + ), + render: ({ indexName }: IndexSummaryTableItem) => ( + toggleExpanded(indexName)} + iconType={itemIdToExpandedRowMap[indexName] ? 'arrowDown' : 'arrowRight'} + /> + ), + width: '40px', + }, + { + field: 'incompatible', + name: i18n.RESULT, + render: (_, { incompatible }) => + incompatible != null ? ( + + + + ) : ( + + {EMPTY_STAT} + + ), + sortable: true, + truncateText: false, + width: '50px', + }, + { + field: 'indexName', + name: i18n.INDEX, + render: (_, { indexName, pattern }) => ( + + {indexName} + + ), + sortable: true, + truncateText: false, + width: '300px', + }, + { + field: 'docsCount', + name: i18n.DOCS, + render: (_, { docsCount, patternDocsCount }) => ( + + + + ), + sortable: true, + truncateText: false, + }, + { + field: 'incompatible', + name: i18n.INCOMPATIBLE_FIELDS, + render: (_, { incompatible, indexName }) => ( + + + + ), + sortable: false, + truncateText: false, + }, + { + field: 'ilmPhase', + name: i18n.ILM_PHASE, + render: (_, { ilmPhase }) => + ilmPhase != null ? ( + + {ilmPhase} + + ) : null, + sortable: false, + truncateText: false, + }, +]; + +export const getShowPagination = ({ + minPageSize, + totalItemCount, +}: { + minPageSize: number; + totalItemCount: number; +}): boolean => totalItemCount > minPageSize; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/index.tsx new file mode 100644 index 00000000000000..7b02add1518031 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/index.tsx @@ -0,0 +1,114 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + CriteriaWithPagination, + Direction, + EuiBasicTableColumn, + Pagination, +} from '@elastic/eui'; +import { EuiInMemoryTable } from '@elastic/eui'; +import numeral from '@elastic/numeral'; +import React, { useCallback, useMemo, useState } from 'react'; + +import { EMPTY_STAT } from '../../helpers'; +import type { IndexSummaryTableItem } from './helpers'; +import { getShowPagination } from './helpers'; + +const MIN_PAGE_SIZE = 10; + +interface SortConfig { + sort: { + direction: Direction; + field: string; + }; +} + +const defaultSort: SortConfig = { + sort: { + direction: 'desc', + field: 'docsCount', + }, +}; + +interface Props { + defaultNumberFormat: string; + getTableColumns: ({ + formatNumber, + itemIdToExpandedRowMap, + toggleExpanded, + }: { + formatNumber: (value: number | undefined) => string; + itemIdToExpandedRowMap: Record; + toggleExpanded: (indexName: string) => void; + }) => Array>; + itemIdToExpandedRowMap: Record; + items: IndexSummaryTableItem[]; + toggleExpanded: (indexName: string) => void; +} + +const SummaryTableComponent: React.FC = ({ + defaultNumberFormat, + getTableColumns, + itemIdToExpandedRowMap, + items, + toggleExpanded, +}) => { + const [sorting, setSorting] = useState(defaultSort); + const formatNumber = useCallback( + (value: number | undefined): string => + value != null ? numeral(value).format(defaultNumberFormat) : EMPTY_STAT, + [defaultNumberFormat] + ); + const [pageIndex, setPageIndex] = useState(0); + const [pageSize, setPageSize] = useState(MIN_PAGE_SIZE); + const columns = useMemo( + () => getTableColumns({ formatNumber, itemIdToExpandedRowMap, toggleExpanded }), + [formatNumber, getTableColumns, itemIdToExpandedRowMap, toggleExpanded] + ); + const getItemId = useCallback((item: IndexSummaryTableItem) => item.indexName, []); + + const onChange = useCallback(({ page, sort }: CriteriaWithPagination) => { + setSorting({ sort: sort ?? defaultSort.sort }); + + setPageIndex(page.index); + setPageSize(page.size); + }, []); + + const pagination: Pagination = useMemo( + () => ({ + pageIndex, + pageSize, + showPerPageOptions: true, + totalItemCount: items.length, + }), + [items, pageIndex, pageSize] + ); + + return ( + + ); +}; + +SummaryTableComponent.displayName = 'SummaryTableComponent'; + +export const SummaryTable = React.memo(SummaryTableComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/translations.ts new file mode 100644 index 00000000000000..d9334a24e5ea85 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/summary_table/translations.ts @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const COLLAPSE = i18n.translate('ecsDataQualityDashboard.summaryTable.collapseLabel', { + defaultMessage: 'Collapse', +}); + +export const DOCS = i18n.translate('ecsDataQualityDashboard.summaryTable.docsColumn', { + defaultMessage: 'Docs', +}); + +export const EXPAND = i18n.translate('ecsDataQualityDashboard.summaryTable.expandLabel', { + defaultMessage: 'Expand', +}); + +export const EXPAND_ROWS = i18n.translate('ecsDataQualityDashboard.summaryTable.expandRowsColumn', { + defaultMessage: 'Expand rows', +}); + +export const FAILED = i18n.translate('ecsDataQualityDashboard.summaryTable.failedTooltip', { + defaultMessage: 'Failed', +}); + +export const ILM_PHASE = i18n.translate('ecsDataQualityDashboard.summaryTable.ilmPhaseColumn', { + defaultMessage: 'ILM Phase', +}); + +export const INCOMPATIBLE_FIELDS = i18n.translate( + 'ecsDataQualityDashboard.summaryTable.incompatibleFieldsColumn', + { + defaultMessage: 'Incompatible fields', + } +); + +export const INDICES = i18n.translate('ecsDataQualityDashboard.summaryTable.indicesColumn', { + defaultMessage: 'Indices', +}); + +export const INDICES_CHECKED = i18n.translate( + 'ecsDataQualityDashboard.summaryTable.indicesCheckedColumn', + { + defaultMessage: 'Indices checked', + } +); + +export const INDEX = i18n.translate('ecsDataQualityDashboard.summaryTable.indexColumn', { + defaultMessage: 'Index', +}); + +export const INDEX_NAME_LABEL = i18n.translate( + 'ecsDataQualityDashboard.summaryTable.indexesNameLabel', + { + defaultMessage: 'Index name', + } +); + +export const INDEX_TOOL_TIP = (pattern: string) => + i18n.translate('ecsDataQualityDashboard.summaryTable.indexToolTip', { + values: { pattern }, + defaultMessage: 'This index matches the pattern or index name: {pattern}', + }); + +export const PASSED = i18n.translate('ecsDataQualityDashboard.summaryTable.passedTooltip', { + defaultMessage: 'Passed', +}); + +export const RESULT = i18n.translate('ecsDataQualityDashboard.summaryTable.resultColumn', { + defaultMessage: 'Result', +}); + +export const THIS_INDEX_HAS_NOT_BEEN_CHECKED = i18n.translate( + 'ecsDataQualityDashboard.summaryTable.thisIndexHasNotBeenCheckedTooltip', + { + defaultMessage: 'This index has not been checked', + } +); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/all_tab/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/all_tab/index.tsx new file mode 100644 index 00000000000000..46c1cec0d88e7a --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/all_tab/index.tsx @@ -0,0 +1,57 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EcsVersion } from '@kbn/ecs'; +import { EuiCallOut, EuiEmptyPrompt, EuiSpacer } from '@elastic/eui'; +import React, { useMemo } from 'react'; + +import { CompareFieldsTable } from '../../../compare_fields_table'; +import { getCommonTableColumns } from '../../../compare_fields_table/helpers'; +import { EmptyPromptBody } from '../../index_properties/empty_prompt_body'; +import { EmptyPromptTitle } from '../../index_properties/empty_prompt_title'; +import * as i18n from '../../index_properties/translations'; +import type { PartitionedFieldMetadata } from '../../../types'; + +interface Props { + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata; +} + +const AllTabComponent: React.FC = ({ indexName, partitionedFieldMetadata }) => { + const body = useMemo(() => , []); + const title = useMemo(() => , []); + + return ( + <> + {partitionedFieldMetadata.all.length > 0 ? ( + <> + +

    {i18n.ALL_CALLOUT(EcsVersion)}

    +
    + + + + ) : ( + + )} + + ); +}; + +AllTabComponent.displayName = 'AllTabComponent'; + +export const AllTab = React.memo(AllTabComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/custom_callout/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/custom_callout/index.tsx new file mode 100644 index 00000000000000..5294d3d77a23c4 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/custom_callout/index.tsx @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EcsVersion } from '@kbn/ecs'; + +import { EuiCallOut, EuiSpacer } from '@elastic/eui'; +import React from 'react'; +import type { EnrichedFieldMetadata } from '../../../../types'; + +import * as i18n from '../../../index_properties/translations'; +import { CalloutItem } from '../../styles'; + +interface Props { + children?: React.ReactNode; + enrichedFieldMetadata: EnrichedFieldMetadata[]; +} + +const CustomCalloutComponent: React.FC = ({ children, enrichedFieldMetadata }) => ( + +
    + {i18n.CUSTOM_CALLOUT({ fieldCount: enrichedFieldMetadata.length, version: EcsVersion })} +
    + + {i18n.PRE_BUILT_DETECTION_ENGINE_RULES_WONT_WORK} + {i18n.PAGES_MAY_NOT_DISPLAY_FIELDS} + {i18n.CUSTOM_DETECTION_ENGINE_RULES_WORK} + + {children} +
    +); + +CustomCalloutComponent.displayName = 'CustomCalloutComponent'; + +export const CustomCallout = React.memo(CustomCalloutComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/incompatible_callout/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/incompatible_callout/index.tsx new file mode 100644 index 00000000000000..4ab38e07013691 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/incompatible_callout/index.tsx @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EcsVersion } from '@kbn/ecs'; + +import { EuiCallOut, EuiSpacer } from '@elastic/eui'; +import React from 'react'; +import type { EnrichedFieldMetadata } from '../../../../types'; + +import * as i18n from '../../../index_properties/translations'; +import { CalloutItem } from '../../styles'; + +interface Props { + children?: React.ReactNode; + enrichedFieldMetadata: EnrichedFieldMetadata[]; +} + +const IncompatibleCalloutComponent: React.FC = ({ children, enrichedFieldMetadata }) => ( + +
    + {i18n.INCOMPATIBLE_CALLOUT({ + fieldCount: enrichedFieldMetadata.length, + version: EcsVersion, + })} +
    + + {i18n.DETECTION_ENGINE_RULES_WONT_WORK} + {i18n.PAGES_WONT_DISPLAY_EVENTS} + {i18n.MAPPINGS_THAT_CONFLICT_WITH_ECS} + + {children} +
    +); + +IncompatibleCalloutComponent.displayName = 'IncompatibleCalloutComponent'; + +export const IncompatibleCallout = React.memo(IncompatibleCalloutComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/missing_timestamp_callout/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/missing_timestamp_callout/index.tsx new file mode 100644 index 00000000000000..73a54e72499e34 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/callouts/missing_timestamp_callout/index.tsx @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiCallOut, EuiSpacer } from '@elastic/eui'; +import React from 'react'; + +import * as i18n from '../../../index_properties/translations'; +import { CalloutItem } from '../../styles'; + +interface Props { + children?: React.ReactNode; +} + +const MissingTimestampCalloutComponent: React.FC = ({ children }) => ( + +
    {i18n.MISSING_TIMESTAMP_CALLOUT}
    + + {i18n.DETECTION_ENGINE_RULES_WONT_WORK} + {i18n.PAGES_WONT_DISPLAY_EVENTS} + + {children} +
    +); + +MissingTimestampCalloutComponent.displayName = 'MissingTimestampCalloutComponent'; + +export const MissingTimestampCallout = React.memo(MissingTimestampCalloutComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/custom_tab/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/custom_tab/helpers.ts new file mode 100644 index 00000000000000..52f8cb2d9ae850 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/custom_tab/helpers.ts @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EcsVersion } from '@kbn/ecs'; +import { euiThemeVars } from '@kbn/ui-theme'; + +import { FIELD, INDEX_MAPPING_TYPE } from '../../../compare_fields_table/translations'; +import { + ECS_FIELD_REFERENCE_URL, + ECS_REFERENCE_URL, + getSummaryMarkdownComment, + getCustomMarkdownTableRows, + getMarkdownComment, + getMarkdownTable, + getTabCountsMarkdownComment, + MAPPING_URL, + getSummaryTableMarkdownComment, +} from '../../index_properties/markdown/helpers'; +import * as i18n from '../../index_properties/translations'; +import { getFillColor } from '../summary_tab/helpers'; +import type { EnrichedFieldMetadata, IlmPhase, PartitionedFieldMetadata } from '../../../types'; + +export const getCustomMarkdownComment = ({ + enrichedFieldMetadata, +}: { + enrichedFieldMetadata: EnrichedFieldMetadata[]; +}): string => + getMarkdownComment({ + suggestedAction: `${i18n.CUSTOM_CALLOUT({ + fieldCount: enrichedFieldMetadata.length, + version: EcsVersion, + })} + +${i18n.PRE_BUILT_DETECTION_ENGINE_RULES_WONT_WORK} +${i18n.PAGES_MAY_NOT_DISPLAY_FIELDS} +${i18n.CUSTOM_DETECTION_ENGINE_RULES_WORK} +`, + title: i18n.CUSTOM_CALLOUT_TITLE(enrichedFieldMetadata.length), + }); + +export const showCustomCallout = (enrichedFieldMetadata: EnrichedFieldMetadata[]): boolean => + enrichedFieldMetadata.length > 0; + +export const getCustomColor = (partitionedFieldMetadata: PartitionedFieldMetadata): string => + showCustomCallout(partitionedFieldMetadata.custom) + ? getFillColor('custom') + : euiThemeVars.euiTextColor; + +export const getAllCustomMarkdownComments = ({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, +}: { + docsCount: number; + formatNumber: (value: number | undefined) => string; + ilmPhase: IlmPhase | undefined; + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata; + patternDocsCount: number; +}): string[] => [ + getSummaryMarkdownComment({ + ecsFieldReferenceUrl: ECS_FIELD_REFERENCE_URL, + ecsReferenceUrl: ECS_REFERENCE_URL, + incompatible: partitionedFieldMetadata.incompatible.length, + indexName, + mappingUrl: MAPPING_URL, + }), + getSummaryTableMarkdownComment({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, + }), + getTabCountsMarkdownComment(partitionedFieldMetadata), + getCustomMarkdownComment({ + enrichedFieldMetadata: partitionedFieldMetadata.custom, + }), + getMarkdownTable({ + enrichedFieldMetadata: partitionedFieldMetadata.custom, + getMarkdownTableRows: getCustomMarkdownTableRows, + headerNames: [FIELD, INDEX_MAPPING_TYPE], + title: i18n.CUSTOM_FIELDS_TABLE_TITLE(indexName), + }), +]; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/custom_tab/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/custom_tab/index.tsx new file mode 100644 index 00000000000000..26b4ac87a8db5b --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/custom_tab/index.tsx @@ -0,0 +1,109 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + copyToClipboard, + EuiFlexGroup, + EuiFlexItem, + EuiEmptyPrompt, + EuiSpacer, +} from '@elastic/eui'; +import numeral from '@elastic/numeral'; +import React, { useCallback, useMemo } from 'react'; + +import { CustomCallout } from '../callouts/custom_callout'; +import { CompareFieldsTable } from '../../../compare_fields_table'; +import { getCustomTableColumns } from '../../../compare_fields_table/helpers'; +import { EMPTY_STAT } from '../../../helpers'; +import { EmptyPromptBody } from '../../index_properties/empty_prompt_body'; +import { EmptyPromptTitle } from '../../index_properties/empty_prompt_title'; +import { getAllCustomMarkdownComments, showCustomCallout } from './helpers'; +import { CopyToClipboardButton } from '../styles'; +import * as i18n from '../../index_properties/translations'; +import { COPIED_RESULTS_TOAST_TITLE } from '../../../translations'; +import type { IlmPhase, PartitionedFieldMetadata } from '../../../types'; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + defaultNumberFormat: string; + docsCount: number; + ilmPhase: IlmPhase | undefined; + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata; + patternDocsCount: number; +} + +const CustomTabComponent: React.FC = ({ + addSuccessToast, + defaultNumberFormat, + docsCount, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, +}) => { + const formatNumber = useCallback( + (value: number | undefined): string => + value != null ? numeral(value).format(defaultNumberFormat) : EMPTY_STAT, + [defaultNumberFormat] + ); + const markdownComments: string[] = useMemo( + () => + getAllCustomMarkdownComments({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, + }), + [docsCount, formatNumber, ilmPhase, indexName, partitionedFieldMetadata, patternDocsCount] + ); + + const body = useMemo(() => , []); + const title = useMemo(() => , []); + + const onCopy = useCallback(() => { + copyToClipboard(markdownComments.join('\n')); + + addSuccessToast({ + title: COPIED_RESULTS_TOAST_TITLE, + }); + }, [addSuccessToast, markdownComments]); + + return ( + <> + {showCustomCallout(partitionedFieldMetadata.custom) ? ( + <> + + + + + {i18n.COPY_TO_CLIPBOARD} + + + + + + + + + + ) : ( + + )} + + ); +}; + +CustomTabComponent.displayName = 'CustomTabComponent'; + +export const CustomTab = React.memo(CustomTabComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/ecs_compliant_tab/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/ecs_compliant_tab/index.tsx new file mode 100644 index 00000000000000..d8d2bce25bc83b --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/ecs_compliant_tab/index.tsx @@ -0,0 +1,85 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EcsVersion } from '@kbn/ecs'; + +import { EuiCallOut, EuiEmptyPrompt, EuiSpacer } from '@elastic/eui'; +import React, { useMemo } from 'react'; +import styled from 'styled-components'; + +import { CompareFieldsTable } from '../../../compare_fields_table'; +import { getEcsCompliantTableColumns } from '../../../compare_fields_table/helpers'; +import { EmptyPromptBody } from '../../index_properties/empty_prompt_body'; +import { EmptyPromptTitle } from '../../index_properties/empty_prompt_title'; +import { showMissingTimestampCallout } from '../helpers'; +import { CalloutItem } from '../styles'; +import * as i18n from '../../index_properties/translations'; +import type { PartitionedFieldMetadata } from '../../../types'; + +const EmptyPromptContainer = styled.div` + width: 100%; +`; + +interface Props { + indexName: string; + onAddToNewCase: (markdownComments: string[]) => void; + partitionedFieldMetadata: PartitionedFieldMetadata; +} + +const EcsCompliantTabComponent: React.FC = ({ + indexName, + onAddToNewCase, + partitionedFieldMetadata, +}) => { + const emptyPromptBody = useMemo(() => , []); + const title = useMemo(() => , []); + + return ( + <> + {!showMissingTimestampCallout(partitionedFieldMetadata.ecsCompliant) ? ( + <> + +

    + {i18n.ECS_COMPLIANT_CALLOUT({ + fieldCount: partitionedFieldMetadata.ecsCompliant.length, + version: EcsVersion, + })} +

    + {i18n.PRE_BUILT_DETECTION_ENGINE_RULES_WORK} + {i18n.CUSTOM_DETECTION_ENGINE_RULES_WORK} + {i18n.PAGES_DISPLAY_EVENTS} + {i18n.OTHER_APP_CAPABILITIES_WORK_PROPERLY} + {i18n.ECS_COMPLIANT_MAPPINGS_ARE_FULLY_SUPPORTED} +
    + + + + ) : ( + + + + )} + + ); +}; + +EcsCompliantTabComponent.displayName = 'EcsCompliantTabComponent'; + +export const EcsCompliantTab = React.memo(EcsCompliantTabComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/helpers.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/helpers.tsx new file mode 100644 index 00000000000000..0697528b957bab --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/helpers.tsx @@ -0,0 +1,188 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + FlameElementEvent, + HeatmapElementEvent, + MetricElementEvent, + PartitionElementEvent, + Theme, + WordCloudElementEvent, + XYChartElementEvent, +} from '@elastic/charts'; +import { EuiBadge } from '@elastic/eui'; +import { euiThemeVars } from '@kbn/ui-theme'; +import React from 'react'; + +import { AllTab } from './all_tab'; +import { CustomTab } from './custom_tab'; +import { getCustomColor } from './custom_tab/helpers'; +import { EcsCompliantTab } from './ecs_compliant_tab'; +import { IncompatibleTab } from './incompatible_tab'; +import { getIncompatibleColor } from './incompatible_tab/helpers'; +import { + ALL_TAB_ID, + ECS_COMPLIANT_TAB_ID, + INCOMPATIBLE_TAB_ID, + SUMMARY_TAB_ID, +} from '../index_properties/helpers'; +import { getMarkdownComment } from '../index_properties/markdown/helpers'; +import { getFillColor } from './summary_tab/helpers'; +import * as i18n from '../index_properties/translations'; +import { SummaryTab } from './summary_tab'; +import type { EnrichedFieldMetadata, IlmPhase, PartitionedFieldMetadata } from '../../types'; + +export const getMissingTimestampComment = (): string => + getMarkdownComment({ + suggestedAction: `${i18n.MISSING_TIMESTAMP_CALLOUT} + +${i18n.DETECTION_ENGINE_RULES_WONT_WORK} +${i18n.PAGES_WONT_DISPLAY_EVENTS} +`, + title: i18n.MISSING_TIMESTAMP_CALLOUT_TITLE, + }); + +export const showMissingTimestampCallout = ( + enrichedFieldMetadata: EnrichedFieldMetadata[] +): boolean => enrichedFieldMetadata.length === 0; + +export const getEcsCompliantColor = (partitionedFieldMetadata: PartitionedFieldMetadata): string => + showMissingTimestampCallout(partitionedFieldMetadata.ecsCompliant) + ? euiThemeVars.euiColorDanger + : getFillColor('ecs-compliant'); + +export const getTabs = ({ + addSuccessToast, + addToNewCaseDisabled, + defaultNumberFormat, + docsCount, + getGroupByFieldsOnClick, + ilmPhase, + indexName, + onAddToNewCase, + partitionedFieldMetadata, + pattern, + patternDocsCount, + setSelectedTabId, + theme, +}: { + addSuccessToast: (toast: { title: string }) => void; + addToNewCaseDisabled: boolean; + defaultNumberFormat: string; + docsCount: number; + getGroupByFieldsOnClick: ( + elements: Array< + | FlameElementEvent + | HeatmapElementEvent + | MetricElementEvent + | PartitionElementEvent + | WordCloudElementEvent + | XYChartElementEvent + > + ) => { + groupByField0: string; + groupByField1: string; + }; + ilmPhase: IlmPhase | undefined; + indexName: string; + onAddToNewCase: (markdownComments: string[]) => void; + partitionedFieldMetadata: PartitionedFieldMetadata; + pattern: string; + patternDocsCount: number; + setSelectedTabId: (tabId: string) => void; + theme: Theme; +}) => [ + { + content: ( + + ), + id: SUMMARY_TAB_ID, + name: i18n.SUMMARY, + }, + { + append: ( + + {partitionedFieldMetadata.incompatible.length} + + ), + content: ( + + ), + id: INCOMPATIBLE_TAB_ID, + name: i18n.INCOMPATIBLE_FIELDS, + }, + { + append: ( + + {partitionedFieldMetadata.custom.length} + + ), + content: ( + + ), + id: 'customTab', + name: i18n.CUSTOM_FIELDS, + }, + { + append: ( + + {partitionedFieldMetadata.ecsCompliant.length} + + ), + content: ( + + ), + id: ECS_COMPLIANT_TAB_ID, + name: i18n.ECS_COMPLIANT_FIELDS, + }, + { + append: ( + + {partitionedFieldMetadata.all.length} + + ), + content: , + id: ALL_TAB_ID, + name: i18n.ALL_FIELDS, + }, +]; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/helpers.ts new file mode 100644 index 00000000000000..cc8d2f317d26dd --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/helpers.ts @@ -0,0 +1,149 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EcsVersion } from '@kbn/ecs'; + +import { + ECS_FIELD_REFERENCE_URL, + ECS_REFERENCE_URL, + getSummaryMarkdownComment, + getIncompatibleMappingsMarkdownTableRows, + getIncompatibleValuesMarkdownTableRows, + getMarkdownComment, + getMarkdownTable, + getSummaryTableMarkdownComment, + getTabCountsMarkdownComment, + MAPPING_URL, +} from '../../index_properties/markdown/helpers'; +import { getFillColor } from '../summary_tab/helpers'; +import * as i18n from '../../index_properties/translations'; +import type { EnrichedFieldMetadata, IlmPhase, PartitionedFieldMetadata } from '../../../types'; +import { + INCOMPATIBLE_FIELD_MAPPINGS_TABLE_TITLE, + INCOMPATIBLE_FIELD_VALUES_TABLE_TITLE, +} from './translations'; +import { + FIELD, + ECS_MAPPING_TYPE_EXPECTED, + INDEX_MAPPING_TYPE_ACTUAL, + DOCUMENT_VALUES_ACTUAL, + ECS_VALUES_EXPECTED, +} from '../../../compare_fields_table/translations'; + +export const getIncompatibleFieldsMarkdownComment = ({ + incompatible, +}: { + incompatible: number; +}): string => + getMarkdownComment({ + suggestedAction: `${i18n.INCOMPATIBLE_CALLOUT({ + fieldCount: incompatible, + version: EcsVersion, + })} + +${i18n.DETECTION_ENGINE_RULES_WONT_WORK} +${i18n.PAGES_WONT_DISPLAY_EVENTS} +${i18n.MAPPINGS_THAT_CONFLICT_WITH_ECS} +`, + title: i18n.INCOMPATIBLE_CALLOUT_TITLE(incompatible), + }); + +export const showInvalidCallout = (enrichedFieldMetadata: EnrichedFieldMetadata[]): boolean => + enrichedFieldMetadata.length > 0; + +export const getIncompatibleColor = (): string => getFillColor('incompatible'); + +export const getIncompatibleMappings = ( + enrichedFieldMetadata: EnrichedFieldMetadata[] +): EnrichedFieldMetadata[] => + enrichedFieldMetadata.filter((x) => !x.isEcsCompliant && x.type !== x.indexFieldType); + +export const getIncompatibleValues = ( + enrichedFieldMetadata: EnrichedFieldMetadata[] +): EnrichedFieldMetadata[] => + enrichedFieldMetadata.filter((x) => !x.isEcsCompliant && x.indexInvalidValues.length > 0); + +export const getIncompatibleFieldsMarkdownTablesComment = ({ + incompatibleMappings, + incompatibleValues, + indexName, +}: { + incompatibleMappings: EnrichedFieldMetadata[]; + incompatibleValues: EnrichedFieldMetadata[]; + indexName: string; +}): string => ` +${ + incompatibleMappings.length > 0 + ? getMarkdownTable({ + enrichedFieldMetadata: incompatibleMappings, + getMarkdownTableRows: getIncompatibleMappingsMarkdownTableRows, + headerNames: [FIELD, ECS_MAPPING_TYPE_EXPECTED, INDEX_MAPPING_TYPE_ACTUAL], + title: INCOMPATIBLE_FIELD_MAPPINGS_TABLE_TITLE(indexName), + }) + : '' +} +${ + incompatibleValues.length > 0 + ? getMarkdownTable({ + enrichedFieldMetadata: incompatibleValues, + getMarkdownTableRows: getIncompatibleValuesMarkdownTableRows, + headerNames: [FIELD, ECS_VALUES_EXPECTED, DOCUMENT_VALUES_ACTUAL], + title: INCOMPATIBLE_FIELD_VALUES_TABLE_TITLE(indexName), + }) + : '' +} +`; + +export const getAllIncompatibleMarkdownComments = ({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, +}: { + docsCount: number; + formatNumber: (value: number | undefined) => string; + ilmPhase: IlmPhase | undefined; + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata; + patternDocsCount: number; +}): string[] => { + const incompatibleMappings = getIncompatibleMappings(partitionedFieldMetadata.incompatible); + const incompatibleValues = getIncompatibleValues(partitionedFieldMetadata.incompatible); + const incompatibleFieldsMarkdownComment = + partitionedFieldMetadata.incompatible.length > 0 + ? getIncompatibleFieldsMarkdownComment({ + incompatible: partitionedFieldMetadata.incompatible.length, + }) + : ''; + + return [ + getSummaryMarkdownComment({ + ecsFieldReferenceUrl: ECS_FIELD_REFERENCE_URL, + ecsReferenceUrl: ECS_REFERENCE_URL, + incompatible: partitionedFieldMetadata.incompatible.length, + indexName, + mappingUrl: MAPPING_URL, + }), + getSummaryTableMarkdownComment({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, + }), + getTabCountsMarkdownComment(partitionedFieldMetadata), + incompatibleFieldsMarkdownComment, + getIncompatibleFieldsMarkdownTablesComment({ + incompatibleMappings, + incompatibleValues, + indexName, + }), + ].filter((x) => x !== ''); +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/index.tsx new file mode 100644 index 00000000000000..a285a397cdd7ba --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/index.tsx @@ -0,0 +1,172 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + copyToClipboard, + EuiButton, + EuiFlexGroup, + EuiFlexItem, + EuiEmptyPrompt, + EuiSpacer, +} from '@elastic/eui'; +import numeral from '@elastic/numeral'; +import React, { useCallback, useMemo } from 'react'; + +import { IncompatibleCallout } from '../callouts/incompatible_callout'; +import { CompareFieldsTable } from '../../../compare_fields_table'; +import { + getIncompatibleMappingsTableColumns, + getIncompatibleValuesTableColumns, +} from '../../../compare_fields_table/helpers'; +import { EMPTY_STAT } from '../../../helpers'; +import { EmptyPromptBody } from '../../index_properties/empty_prompt_body'; +import { EmptyPromptTitle } from '../../index_properties/empty_prompt_title'; +import { + getAllIncompatibleMarkdownComments, + getIncompatibleMappings, + getIncompatibleValues, + showInvalidCallout, +} from './helpers'; +import * as i18n from '../../index_properties/translations'; +import { CopyToClipboardButton } from '../styles'; +import { + INCOMPATIBLE_FIELD_MAPPINGS_TABLE_TITLE, + INCOMPATIBLE_FIELD_VALUES_TABLE_TITLE, +} from './translations'; +import { COPIED_RESULTS_TOAST_TITLE } from '../../../translations'; +import type { IlmPhase, PartitionedFieldMetadata } from '../../../types'; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + addToNewCaseDisabled: boolean; + defaultNumberFormat: string; + docsCount: number; + ilmPhase: IlmPhase | undefined; + indexName: string; + onAddToNewCase: (markdownComments: string[]) => void; + partitionedFieldMetadata: PartitionedFieldMetadata; + patternDocsCount: number; +} + +const IncompatibleTabComponent: React.FC = ({ + addSuccessToast, + addToNewCaseDisabled, + defaultNumberFormat, + docsCount, + ilmPhase, + indexName, + onAddToNewCase, + partitionedFieldMetadata, + patternDocsCount, +}) => { + const formatNumber = useCallback( + (value: number | undefined): string => + value != null ? numeral(value).format(defaultNumberFormat) : EMPTY_STAT, + [defaultNumberFormat] + ); + const body = useMemo(() => , []); + const title = useMemo(() => , []); + const incompatibleMappings = useMemo( + () => getIncompatibleMappings(partitionedFieldMetadata.incompatible), + [partitionedFieldMetadata.incompatible] + ); + const incompatibleValues = useMemo( + () => getIncompatibleValues(partitionedFieldMetadata.incompatible), + [partitionedFieldMetadata.incompatible] + ); + const markdownComments: string[] = useMemo( + () => + getAllIncompatibleMarkdownComments({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, + }), + [docsCount, formatNumber, ilmPhase, indexName, partitionedFieldMetadata, patternDocsCount] + ); + const onClickAddToCase = useCallback( + () => onAddToNewCase([markdownComments.join('\n')]), + [markdownComments, onAddToNewCase] + ); + const onCopy = useCallback(() => { + copyToClipboard(markdownComments.join('\n')); + + addSuccessToast({ + title: COPIED_RESULTS_TOAST_TITLE, + }); + }, [addSuccessToast, markdownComments]); + + return ( + <> + {showInvalidCallout(partitionedFieldMetadata.incompatible) ? ( + <> + + + + + {i18n.ADD_TO_NEW_CASE} + + + + + + {i18n.COPY_TO_CLIPBOARD} + + + + + + <> + {incompatibleMappings.length > 0 && ( + <> + + + + + )} + + + <> + {incompatibleValues.length > 0 && ( + <> + + + + + )} + + + ) : ( + + )} + + ); +}; + +IncompatibleTabComponent.displayName = 'IncompatibleTabComponent'; + +export const IncompatibleTab = React.memo(IncompatibleTabComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/translations.ts new file mode 100644 index 00000000000000..829aa228e06b45 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/incompatible_tab/translations.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const INCOMPATIBLE_FIELD_MAPPINGS_TABLE_TITLE = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.incompatibleTab.incompatibleFieldMappingsTableTitle', { + values: { indexName }, + defaultMessage: 'Incompatible field mappings - {indexName}', + }); + +export const INCOMPATIBLE_FIELD_VALUES_TABLE_TITLE = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.incompatibleTab.incompatibleFieldValuesTableTitle', { + values: { indexName }, + defaultMessage: 'Incompatible field values - {indexName}', + }); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/styles.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/styles.tsx new file mode 100644 index 00000000000000..cf83cf96d28122 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/styles.tsx @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiButtonEmpty } from '@elastic/eui'; +import styled from 'styled-components'; + +export const CalloutItem = styled.div` + margin-left: ${({ theme }) => theme.eui.euiSizeS}; +`; + +export const CopyToClipboardButton = styled(EuiButtonEmpty)` + margin-left: ${({ theme }) => theme.eui.euiSizeXS}; +`; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/callout_summary/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/callout_summary/index.tsx new file mode 100644 index 00000000000000..054ac5e003326b --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/callout_summary/index.tsx @@ -0,0 +1,135 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { copyToClipboard, EuiButton, EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; +import numeral from '@elastic/numeral'; +import React, { useCallback, useMemo } from 'react'; + +import { MissingTimestampCallout } from '../../callouts/missing_timestamp_callout'; +import { IncompatibleCallout } from '../../callouts/incompatible_callout'; +import { showMissingTimestampCallout } from '../../helpers'; +import { getMarkdownComments } from '../helpers'; +import { EMPTY_STAT } from '../../../../helpers'; +import { showInvalidCallout } from '../../incompatible_tab/helpers'; +import { CopyToClipboardButton } from '../../styles'; +import * as i18n from '../../../index_properties/translations'; +import { COPIED_RESULTS_TOAST_TITLE } from '../../../../translations'; +import type { IlmPhase, PartitionedFieldMetadata } from '../../../../types'; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + addToNewCaseDisabled: boolean; + defaultNumberFormat: string; + docsCount: number; + ilmPhase: IlmPhase | undefined; + indexName: string; + onAddToNewCase: (markdownComment: string[]) => void; + partitionedFieldMetadata: PartitionedFieldMetadata; + pattern: string; + patternDocsCount: number; +} + +const CalloutSummaryComponent: React.FC = ({ + addSuccessToast, + addToNewCaseDisabled, + defaultNumberFormat, + docsCount, + ilmPhase, + indexName, + onAddToNewCase, + partitionedFieldMetadata, + pattern, + patternDocsCount, +}) => { + const formatNumber = useCallback( + (value: number | undefined): string => + value != null ? numeral(value).format(defaultNumberFormat) : EMPTY_STAT, + [defaultNumberFormat] + ); + const markdownComments: string[] = useMemo( + () => + getMarkdownComments({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + pattern, + patternDocsCount, + }), + [ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + pattern, + patternDocsCount, + ] + ); + + const onClickAddToCase = useCallback( + () => onAddToNewCase([markdownComments.join('\n')]), + [markdownComments, onAddToNewCase] + ); + + const onCopy = useCallback(() => { + copyToClipboard(markdownComments.join('\n')); + + addSuccessToast({ + title: COPIED_RESULTS_TOAST_TITLE, + }); + }, [addSuccessToast, markdownComments]); + + const showActions = + showInvalidCallout(partitionedFieldMetadata.incompatible) || + showMissingTimestampCallout(partitionedFieldMetadata.ecsCompliant); + + return ( + <> + {showInvalidCallout(partitionedFieldMetadata.incompatible) && ( + <> + + + + )} + {showMissingTimestampCallout(partitionedFieldMetadata.ecsCompliant) && ( + <> + + + + )} + {showActions && ( + <> + + + + {i18n.ADD_TO_NEW_CASE} + + + + + + {i18n.COPY_TO_CLIPBOARD} + + + + + + + )} + + ); +}; + +CalloutSummaryComponent.displayName = 'CalloutSummaryComponent'; + +export const CalloutSummary = React.memo(CalloutSummaryComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/helpers.ts new file mode 100644 index 00000000000000..63d2106c8cbb0d --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/helpers.ts @@ -0,0 +1,114 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { euiThemeVars } from '@kbn/ui-theme'; + +import { getMissingTimestampComment, showMissingTimestampCallout } from '../helpers'; +import { + ALL_TAB_ID, + ECS_COMPLIANT_TAB_ID, + CUSTOM_TAB_ID, + INCOMPATIBLE_TAB_ID, +} from '../../index_properties/helpers'; +import { + getAllIncompatibleMarkdownComments, + showInvalidCallout, +} from '../incompatible_tab/helpers'; +import * as i18n from '../../index_properties/translations'; +import type { IlmPhase, PartitionedFieldMetadata } from '../../../types'; + +export type CategoryId = 'incompatible' | 'custom' | 'ecs-compliant'; + +interface SummaryData { + categoryId: CategoryId; + mappings: number; +} + +export const getSummaryData = ( + partitionedFieldMetadata: PartitionedFieldMetadata +): SummaryData[] => [ + { categoryId: 'incompatible', mappings: partitionedFieldMetadata.incompatible.length }, + { categoryId: 'custom', mappings: partitionedFieldMetadata.custom.length }, + { categoryId: 'ecs-compliant', mappings: partitionedFieldMetadata.ecsCompliant.length }, +]; + +export const getFillColor = (categoryId: CategoryId): string => { + switch (categoryId) { + case 'incompatible': + return euiThemeVars.euiColorDanger; + case 'custom': + return euiThemeVars.euiColorLightShade; + case 'ecs-compliant': + return euiThemeVars.euiColorSuccess; + default: + return euiThemeVars.euiColorGhost; + } +}; + +export const getNodeLabel = (categoryId: CategoryId): string => { + switch (categoryId) { + case 'incompatible': + return i18n.INCOMPATIBLE_FIELDS; + case 'custom': + return i18n.CUSTOM_FIELDS; + case 'ecs-compliant': + return i18n.ECS_COMPLIANT_FIELDS; + default: + return i18n.UNKNOWN; + } +}; + +export const getTabId = (groupByField: string): string => { + switch (groupByField) { + case 'incompatible': + return INCOMPATIBLE_TAB_ID; + case 'custom': + return CUSTOM_TAB_ID; + case 'ecs-compliant': + return ECS_COMPLIANT_TAB_ID; + default: + return ALL_TAB_ID; + } +}; + +const isString = (x: string | null): x is string => typeof x === 'string'; + +export const getMarkdownComments = ({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, +}: { + docsCount: number; + formatNumber: (value: number | undefined) => string; + ilmPhase: IlmPhase | undefined; + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata; + pattern: string; + patternDocsCount: number; +}): string[] => { + const invalidMarkdownComments = showInvalidCallout(partitionedFieldMetadata.incompatible) + ? getAllIncompatibleMarkdownComments({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, + }) + : []; + + const showMissingTimestampComment = showMissingTimestampCallout( + partitionedFieldMetadata.ecsCompliant + ) + ? getMissingTimestampComment() + : null; + + return [...invalidMarkdownComments, showMissingTimestampComment].filter(isString); +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/index.tsx new file mode 100644 index 00000000000000..087470b7e86dc6 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/data_quality_panel/tabs/summary_tab/index.tsx @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import type { + FlameElementEvent, + HeatmapElementEvent, + MetricElementEvent, + PartitionElementEvent, + Theme, + WordCloudElementEvent, + XYChartElementEvent, +} from '@elastic/charts'; +import { CalloutSummary } from './callout_summary'; +import { EcsSummaryDonutChart } from '../../../ecs_summary_donut_chart'; +import { ALL_TAB_ID } from '../../index_properties/helpers'; +import type { IlmPhase, PartitionedFieldMetadata } from '../../../types'; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + addToNewCaseDisabled: boolean; + defaultNumberFormat: string; + docsCount: number; + getGroupByFieldsOnClick: ( + elements: Array< + | FlameElementEvent + | HeatmapElementEvent + | MetricElementEvent + | PartitionElementEvent + | WordCloudElementEvent + | XYChartElementEvent + > + ) => { + groupByField0: string; + groupByField1: string; + }; + ilmPhase: IlmPhase | undefined; + indexName: string; + onAddToNewCase: (markdownComments: string[]) => void; + partitionedFieldMetadata: PartitionedFieldMetadata; + pattern: string; + patternDocsCount: number; + setSelectedTabId: (tabId: string) => void; + theme: Theme; +} + +const SummaryTabComponent: React.FC = ({ + addSuccessToast, + addToNewCaseDisabled, + defaultNumberFormat, + docsCount, + getGroupByFieldsOnClick, + ilmPhase, + indexName, + onAddToNewCase, + partitionedFieldMetadata, + pattern, + patternDocsCount, + setSelectedTabId, + theme, +}) => ( + <> + + + + +); + +SummaryTabComponent.displayName = 'SummaryTabComponent'; + +export const SummaryTab = React.memo(SummaryTabComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/chart_legend/chart_legend_item.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/chart_legend/chart_legend_item.tsx new file mode 100644 index 00000000000000..129a790b8b71c1 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/chart_legend/chart_legend_item.tsx @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiHealth } from '@elastic/eui'; +import React from 'react'; + +interface Props { + color: string; + count: number; + onClick: () => void; + text: string; +} + +const ChartLegendItemComponent: React.FC = ({ color, count, onClick, text }) => { + return ( + + + + + {text} + + + + + +
    {count}
    +
    +
    +
    + ); +}; + +ChartLegendItemComponent.displayName = 'ChartLegendItemComponent'; + +export const ChartLegendItem = React.memo(ChartLegendItemComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/chart_legend/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/chart_legend/index.tsx new file mode 100644 index 00000000000000..21dd3e0450f40e --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/chart_legend/index.tsx @@ -0,0 +1,86 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import React, { useCallback } from 'react'; +import styled from 'styled-components'; + +import { ChartLegendItem } from './chart_legend_item'; +import { getEcsCompliantColor } from '../../data_quality_panel/tabs/helpers'; +import { + ECS_COMPLIANT_TAB_ID, + CUSTOM_TAB_ID, + INCOMPATIBLE_TAB_ID, +} from '../../data_quality_panel/index_properties/helpers'; +import { getCustomColor } from '../../data_quality_panel/tabs/custom_tab/helpers'; +import { getIncompatibleColor } from '../../data_quality_panel/tabs/incompatible_tab/helpers'; +import type { PartitionedFieldMetadata } from '../../types'; +import * as i18n from '../../data_quality_panel/index_properties/translations'; + +const ChartLegendFlexGroup = styled(EuiFlexGroup)` + width: 210px; +`; + +interface Props { + partitionedFieldMetadata: PartitionedFieldMetadata; + setSelectedTabId: (tabId: string) => void; +} + +const ChartLegendComponent: React.FC = ({ partitionedFieldMetadata, setSelectedTabId }) => { + const showIncompatibleTab = useCallback( + () => setSelectedTabId(INCOMPATIBLE_TAB_ID), + [setSelectedTabId] + ); + + const showCustomTab = useCallback(() => setSelectedTabId(CUSTOM_TAB_ID), [setSelectedTabId]); + + const showEcsCompliantTab = useCallback( + () => setSelectedTabId(ECS_COMPLIANT_TAB_ID), + [setSelectedTabId] + ); + + return ( + + {partitionedFieldMetadata.incompatible.length > 0 && ( + + + + )} + + {partitionedFieldMetadata.custom.length > 0 && ( + + + + )} + + {partitionedFieldMetadata.ecsCompliant.length > 0 && ( + + + + )} + + ); +}; + +ChartLegendComponent.displayName = 'ChartLegendComponent'; + +export const ChartLegend = React.memo(ChartLegendComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/helpers.ts new file mode 100644 index 00000000000000..3765bbe68ed162 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/helpers.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { PartitionedFieldMetadata } from '../types'; + +export const allMetadataIsEmpty = (partitionedFieldMetadata: PartitionedFieldMetadata): boolean => + partitionedFieldMetadata.all.length === 0; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/index.tsx new file mode 100644 index 00000000000000..dc25d12031b8f6 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/index.tsx @@ -0,0 +1,190 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + Datum, + ElementClickListener, + FlameElementEvent, + HeatmapElementEvent, + MetricElementEvent, + PartialTheme, + PartitionElementEvent, + Theme, + WordCloudElementEvent, + XYChartElementEvent, +} from '@elastic/charts'; +import { Chart, Partition, PartitionLayout, Settings } from '@elastic/charts'; +import { + EuiButtonEmpty, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, + EuiText, + EuiTitle, +} from '@elastic/eui'; +import React, { useCallback, useMemo } from 'react'; +import styled from 'styled-components'; + +import { ChartLegend } from './chart_legend'; +import { + getFillColor, + getNodeLabel, + getSummaryData, + getTabId, +} from '../data_quality_panel/tabs/summary_tab/helpers'; +import { allMetadataIsEmpty } from './helpers'; +import * as i18n from './translations'; +import type { PartitionedFieldMetadata } from '../types'; + +export const DEFAULT_HEIGHT = 180; // px + +const DonutTextWrapper = styled(EuiFlexGroup)` + max-width: 77px; + position: absolute; + top: 40%; + width: 100%; + z-index: 1; +`; + +const CenteredFlexItem = styled(EuiFlexItem)` + align-items: center; + position: relative; +`; + +const donutTheme: PartialTheme = { + chartMargins: { top: 0, bottom: 0, left: 0, right: 0 }, + partition: { + idealFontSizeJump: 1.1, + outerSizeRatio: 1, + emptySizeRatio: 0.8, + circlePadding: 4, + }, +}; + +interface Props { + defaultTabId: string; + getGroupByFieldsOnClick: ( + elements: Array< + | FlameElementEvent + | HeatmapElementEvent + | MetricElementEvent + | PartitionElementEvent + | WordCloudElementEvent + | XYChartElementEvent + > + ) => { + groupByField0: string; + groupByField1: string; + }; + height?: number; + partitionedFieldMetadata: PartitionedFieldMetadata; + setSelectedTabId: (tabId: string) => void; + theme: Theme; +} + +const EcsSummaryDonutChartComponent: React.FC = ({ + defaultTabId, + getGroupByFieldsOnClick, + height = DEFAULT_HEIGHT, + partitionedFieldMetadata, + setSelectedTabId, + theme, +}) => { + const summaryData = useMemo( + () => getSummaryData(partitionedFieldMetadata), + [partitionedFieldMetadata] + ); + const valueAccessor = useCallback((d: Datum) => d.mappings as number, []); + const valueFormatter = useCallback((d: number) => `${d}`, []); + const layers = useMemo( + () => [ + { + groupByRollup: (d: Datum) => d.categoryId, + nodeLabel: (d: Datum) => getNodeLabel(d), + shape: { + fillColor: (d: Datum) => getFillColor(d.dataName), + }, + }, + ], + [] + ); + const showDefaultTab = useCallback( + () => setSelectedTabId(defaultTabId), + [defaultTabId, setSelectedTabId] + ); + const onElementClick: ElementClickListener = useCallback( + (event) => { + const { groupByField0 } = getGroupByFieldsOnClick(event); + + setSelectedTabId(getTabId(groupByField0)); + }, + [getGroupByFieldsOnClick, setSelectedTabId] + ); + + if (allMetadataIsEmpty(partitionedFieldMetadata)) { + return null; + } + + return ( + <> + +

    {i18n.CHART_TITLE}

    +
    + + + + + + + + + {partitionedFieldMetadata.all.length} + + {i18n.FIELDS} + + + + + + + + + + + + + + + + + ); +}; + +EcsSummaryDonutChartComponent.displayName = 'EcsSummaryDonutChartComponent'; + +export const EcsSummaryDonutChart = React.memo(EcsSummaryDonutChartComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/translations.ts new file mode 100644 index 00000000000000..414a6f127eeda8 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ecs_summary_donut_chart/translations.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const CHART_TITLE = i18n.translate( + 'ecsDataQualityDashboard.ecsSummaryDonutChart.chartTitle', + { + defaultMessage: 'Field mappings', + } +); + +export const FIELDS = i18n.translate('ecsDataQualityDashboard.ecsSummaryDonutChart.fieldsLabel', { + defaultMessage: 'Fields', +}); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/example/mappings/alerts.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/example/mappings/alerts.ts new file mode 100644 index 00000000000000..3840d6990fbdb1 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/example/mappings/alerts.ts @@ -0,0 +1,5318 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { IndicesGetMappingIndexMappingRecord } from '@elastic/elasticsearch/lib/api/types'; + +export const alerts: Record = { + '.internal.alerts-security.alerts-default-000001': { + mappings: { + dynamic: 'false', + _meta: { + namespace: 'default', + kibana: { + version: '8.6.0', + }, + }, + properties: { + '@timestamp': { + type: 'date', + }, + agent: { + properties: { + build: { + properties: { + original: { + type: 'keyword', + }, + }, + }, + ephemeral_id: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + client: { + properties: { + address: { + type: 'keyword', + }, + as: { + properties: { + number: { + type: 'long', + }, + organization: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + }, + }, + bytes: { + type: 'long', + }, + domain: { + type: 'keyword', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + }, + continent_code: { + type: 'keyword', + }, + continent_name: { + type: 'keyword', + }, + country_iso_code: { + type: 'keyword', + }, + country_name: { + type: 'keyword', + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + }, + postal_code: { + type: 'keyword', + }, + region_iso_code: { + type: 'keyword', + }, + region_name: { + type: 'keyword', + }, + timezone: { + type: 'keyword', + }, + }, + }, + ip: { + type: 'ip', + }, + mac: { + type: 'keyword', + }, + nat: { + properties: { + ip: { + type: 'ip', + }, + port: { + type: 'long', + }, + }, + }, + packets: { + type: 'long', + }, + port: { + type: 'long', + }, + registered_domain: { + type: 'keyword', + }, + subdomain: { + type: 'keyword', + }, + top_level_domain: { + type: 'keyword', + }, + user: { + properties: { + domain: { + type: 'keyword', + }, + email: { + type: 'keyword', + }, + full_name: { + type: 'keyword', + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + roles: { + type: 'keyword', + }, + }, + }, + }, + }, + cloud: { + properties: { + account: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + availability_zone: { + type: 'keyword', + }, + instance: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + machine: { + properties: { + type: { + type: 'keyword', + }, + }, + }, + origin: { + properties: { + account: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + availability_zone: { + type: 'keyword', + }, + instance: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + machine: { + properties: { + type: { + type: 'keyword', + }, + }, + }, + project: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + provider: { + type: 'keyword', + }, + region: { + type: 'keyword', + }, + service: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + }, + }, + project: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + provider: { + type: 'keyword', + }, + region: { + type: 'keyword', + }, + service: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + target: { + properties: { + account: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + availability_zone: { + type: 'keyword', + }, + instance: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + machine: { + properties: { + type: { + type: 'keyword', + }, + }, + }, + project: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + provider: { + type: 'keyword', + }, + region: { + type: 'keyword', + }, + service: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + }, + }, + }, + }, + container: { + properties: { + id: { + type: 'keyword', + }, + image: { + properties: { + name: { + type: 'keyword', + }, + tag: { + type: 'keyword', + }, + }, + }, + labels: { + type: 'object', + }, + name: { + type: 'keyword', + }, + runtime: { + type: 'keyword', + }, + }, + }, + destination: { + properties: { + address: { + type: 'keyword', + }, + as: { + properties: { + number: { + type: 'long', + }, + organization: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + }, + }, + bytes: { + type: 'long', + }, + domain: { + type: 'keyword', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + }, + continent_code: { + type: 'keyword', + }, + continent_name: { + type: 'keyword', + }, + country_iso_code: { + type: 'keyword', + }, + country_name: { + type: 'keyword', + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + }, + postal_code: { + type: 'keyword', + }, + region_iso_code: { + type: 'keyword', + }, + region_name: { + type: 'keyword', + }, + timezone: { + type: 'keyword', + }, + }, + }, + ip: { + type: 'ip', + }, + mac: { + type: 'keyword', + }, + nat: { + properties: { + ip: { + type: 'ip', + }, + port: { + type: 'long', + }, + }, + }, + packets: { + type: 'long', + }, + port: { + type: 'long', + }, + registered_domain: { + type: 'keyword', + }, + subdomain: { + type: 'keyword', + }, + top_level_domain: { + type: 'keyword', + }, + user: { + properties: { + domain: { + type: 'keyword', + }, + email: { + type: 'keyword', + }, + full_name: { + type: 'keyword', + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + roles: { + type: 'keyword', + }, + }, + }, + }, + }, + dll: { + properties: { + code_signature: { + properties: { + digest_algorithm: { + type: 'keyword', + }, + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + }, + status: { + type: 'keyword', + }, + subject_name: { + type: 'keyword', + }, + team_id: { + type: 'keyword', + }, + timestamp: { + type: 'date', + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + }, + sha1: { + type: 'keyword', + }, + sha256: { + type: 'keyword', + }, + sha512: { + type: 'keyword', + }, + ssdeep: { + type: 'keyword', + }, + }, + }, + name: { + type: 'keyword', + }, + path: { + type: 'keyword', + }, + pe: { + properties: { + architecture: { + type: 'keyword', + }, + company: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + file_version: { + type: 'keyword', + }, + imphash: { + type: 'keyword', + }, + original_file_name: { + type: 'keyword', + }, + product: { + type: 'keyword', + }, + }, + }, + }, + }, + dns: { + properties: { + answers: { + properties: { + class: { + type: 'keyword', + }, + data: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + ttl: { + type: 'long', + }, + type: { + type: 'keyword', + }, + }, + }, + header_flags: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + op_code: { + type: 'keyword', + }, + question: { + properties: { + class: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + registered_domain: { + type: 'keyword', + }, + subdomain: { + type: 'keyword', + }, + top_level_domain: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + resolved_ip: { + type: 'ip', + }, + response_code: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + ecs: { + properties: { + version: { + type: 'keyword', + }, + }, + }, + error: { + properties: { + code: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + message: { + type: 'match_only_text', + }, + stack_trace: { + type: 'wildcard', + }, + type: { + type: 'keyword', + }, + }, + }, + event: { + properties: { + action: { + type: 'keyword', + }, + agent_id_status: { + type: 'keyword', + }, + category: { + type: 'keyword', + }, + code: { + type: 'keyword', + }, + created: { + type: 'date', + }, + dataset: { + type: 'keyword', + }, + duration: { + type: 'long', + }, + end: { + type: 'date', + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + ingested: { + type: 'date', + }, + kind: { + type: 'keyword', + }, + module: { + type: 'keyword', + }, + original: { + type: 'keyword', + }, + outcome: { + type: 'keyword', + }, + provider: { + type: 'keyword', + }, + reason: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + risk_score: { + type: 'float', + }, + risk_score_norm: { + type: 'float', + }, + sequence: { + type: 'long', + }, + severity: { + type: 'long', + }, + start: { + type: 'date', + }, + timezone: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + url: { + type: 'keyword', + }, + }, + }, + faas: { + properties: { + coldstart: { + type: 'boolean', + }, + execution: { + type: 'keyword', + }, + trigger: { + type: 'nested', + properties: { + request_id: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + }, + }, + file: { + properties: { + accessed: { + type: 'date', + }, + attributes: { + type: 'keyword', + }, + code_signature: { + properties: { + digest_algorithm: { + type: 'keyword', + }, + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + }, + status: { + type: 'keyword', + }, + subject_name: { + type: 'keyword', + }, + team_id: { + type: 'keyword', + }, + timestamp: { + type: 'date', + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + created: { + type: 'date', + }, + ctime: { + type: 'date', + }, + device: { + type: 'keyword', + }, + directory: { + type: 'keyword', + }, + drive_letter: { + type: 'keyword', + }, + elf: { + properties: { + architecture: { + type: 'keyword', + }, + byte_order: { + type: 'keyword', + }, + cpu_type: { + type: 'keyword', + }, + creation_date: { + type: 'date', + }, + exports: { + type: 'flattened', + }, + header: { + properties: { + abi_version: { + type: 'keyword', + }, + class: { + type: 'keyword', + }, + data: { + type: 'keyword', + }, + entrypoint: { + type: 'long', + }, + object_version: { + type: 'keyword', + }, + os_abi: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + imports: { + type: 'flattened', + }, + sections: { + type: 'nested', + properties: { + chi2: { + type: 'long', + }, + entropy: { + type: 'long', + }, + flags: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + physical_offset: { + type: 'keyword', + }, + physical_size: { + type: 'long', + }, + type: { + type: 'keyword', + }, + virtual_address: { + type: 'long', + }, + virtual_size: { + type: 'long', + }, + }, + }, + segments: { + type: 'nested', + properties: { + sections: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + shared_libraries: { + type: 'keyword', + }, + telfhash: { + type: 'keyword', + }, + }, + }, + extension: { + type: 'keyword', + }, + fork_name: { + type: 'keyword', + }, + gid: { + type: 'keyword', + }, + group: { + type: 'keyword', + }, + hash: { + properties: { + md5: { + type: 'keyword', + }, + sha1: { + type: 'keyword', + }, + sha256: { + type: 'keyword', + }, + sha512: { + type: 'keyword', + }, + ssdeep: { + type: 'keyword', + }, + }, + }, + inode: { + type: 'keyword', + }, + mime_type: { + type: 'keyword', + }, + mode: { + type: 'keyword', + }, + mtime: { + type: 'date', + }, + name: { + type: 'keyword', + }, + owner: { + type: 'keyword', + }, + path: { + type: 'keyword', + }, + pe: { + properties: { + architecture: { + type: 'keyword', + }, + company: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + file_version: { + type: 'keyword', + }, + imphash: { + type: 'keyword', + }, + original_file_name: { + type: 'keyword', + }, + product: { + type: 'keyword', + }, + }, + }, + size: { + type: 'long', + }, + target_path: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + uid: { + type: 'keyword', + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + }, + public_key_curve: { + type: 'keyword', + }, + public_key_exponent: { + type: 'long', + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + }, + signature_algorithm: { + type: 'keyword', + }, + subject: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + version_number: { + type: 'keyword', + }, + }, + }, + }, + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + host: { + properties: { + architecture: { + type: 'keyword', + }, + boot: { + properties: { + id: { + type: 'keyword', + }, + }, + }, + cpu: { + properties: { + usage: { + type: 'scaled_float', + scaling_factor: 1000, + }, + }, + }, + disk: { + properties: { + read: { + properties: { + bytes: { + type: 'long', + }, + }, + }, + write: { + properties: { + bytes: { + type: 'long', + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + }, + continent_code: { + type: 'keyword', + }, + continent_name: { + type: 'keyword', + }, + country_iso_code: { + type: 'keyword', + }, + country_name: { + type: 'keyword', + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + }, + postal_code: { + type: 'keyword', + }, + region_iso_code: { + type: 'keyword', + }, + region_name: { + type: 'keyword', + }, + timezone: { + type: 'keyword', + }, + }, + }, + hostname: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + ip: { + type: 'ip', + }, + mac: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + network: { + properties: { + egress: { + properties: { + bytes: { + type: 'long', + }, + packets: { + type: 'long', + }, + }, + }, + ingress: { + properties: { + bytes: { + type: 'long', + }, + packets: { + type: 'long', + }, + }, + }, + }, + }, + os: { + properties: { + family: { + type: 'keyword', + }, + full: { + type: 'keyword', + }, + kernel: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + platform: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + pid_ns_ino: { + type: 'keyword', + }, + risk: { + properties: { + calculated_level: { + type: 'keyword', + }, + calculated_score: { + type: 'float', + }, + calculated_score_norm: { + type: 'float', + }, + static_level: { + type: 'keyword', + }, + static_score: { + type: 'float', + }, + static_score_norm: { + type: 'float', + }, + }, + }, + type: { + type: 'keyword', + }, + uptime: { + type: 'long', + }, + }, + }, + http: { + properties: { + request: { + properties: { + body: { + properties: { + bytes: { + type: 'long', + }, + content: { + type: 'wildcard', + }, + }, + }, + bytes: { + type: 'long', + }, + id: { + type: 'keyword', + }, + method: { + type: 'keyword', + }, + mime_type: { + type: 'keyword', + }, + referrer: { + type: 'keyword', + }, + }, + }, + response: { + properties: { + body: { + properties: { + bytes: { + type: 'long', + }, + content: { + type: 'wildcard', + }, + }, + }, + bytes: { + type: 'long', + }, + mime_type: { + type: 'keyword', + }, + status_code: { + type: 'long', + }, + }, + }, + version: { + type: 'keyword', + }, + }, + }, + kibana: { + properties: { + alert: { + properties: { + action_group: { + type: 'keyword', + }, + ancestors: { + properties: { + depth: { + type: 'long', + }, + id: { + type: 'keyword', + }, + index: { + type: 'keyword', + }, + rule: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + building_block_type: { + type: 'keyword', + }, + depth: { + type: 'long', + }, + duration: { + properties: { + us: { + type: 'long', + }, + }, + }, + end: { + type: 'date', + }, + group: { + properties: { + id: { + type: 'keyword', + }, + index: { + type: 'integer', + }, + }, + }, + instance: { + properties: { + id: { + type: 'keyword', + }, + }, + }, + new_terms: { + type: 'keyword', + }, + original_event: { + properties: { + action: { + type: 'keyword', + }, + agent_id_status: { + type: 'keyword', + }, + category: { + type: 'keyword', + }, + code: { + type: 'keyword', + }, + created: { + type: 'date', + }, + dataset: { + type: 'keyword', + }, + duration: { + type: 'keyword', + }, + end: { + type: 'date', + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + ingested: { + type: 'date', + }, + kind: { + type: 'keyword', + }, + module: { + type: 'keyword', + }, + original: { + type: 'keyword', + }, + outcome: { + type: 'keyword', + }, + provider: { + type: 'keyword', + }, + reason: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + risk_score: { + type: 'float', + }, + risk_score_norm: { + type: 'float', + }, + sequence: { + type: 'long', + }, + severity: { + type: 'long', + }, + start: { + type: 'date', + }, + timezone: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + url: { + type: 'keyword', + }, + }, + }, + original_time: { + type: 'date', + }, + reason: { + type: 'keyword', + }, + risk_score: { + type: 'float', + }, + rule: { + properties: { + author: { + type: 'keyword', + }, + building_block_type: { + type: 'keyword', + }, + category: { + type: 'keyword', + }, + consumer: { + type: 'keyword', + }, + created_at: { + type: 'date', + }, + created_by: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + enabled: { + type: 'keyword', + }, + exceptions_list: { + type: 'object', + }, + execution: { + properties: { + uuid: { + type: 'keyword', + }, + }, + }, + false_positives: { + type: 'keyword', + }, + from: { + type: 'keyword', + }, + immutable: { + type: 'keyword', + }, + interval: { + type: 'keyword', + }, + license: { + type: 'keyword', + }, + max_signals: { + type: 'long', + }, + name: { + type: 'keyword', + }, + note: { + type: 'keyword', + }, + parameters: { + type: 'flattened', + ignore_above: 4096, + }, + producer: { + type: 'keyword', + }, + references: { + type: 'keyword', + }, + rule_id: { + type: 'keyword', + }, + rule_name_override: { + type: 'keyword', + }, + rule_type_id: { + type: 'keyword', + }, + tags: { + type: 'keyword', + }, + threat: { + properties: { + framework: { + type: 'keyword', + }, + tactic: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + }, + }, + technique: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + subtechnique: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + }, + }, + }, + }, + }, + }, + timeline_id: { + type: 'keyword', + }, + timeline_title: { + type: 'keyword', + }, + timestamp_override: { + type: 'keyword', + }, + to: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + updated_at: { + type: 'date', + }, + updated_by: { + type: 'keyword', + }, + uuid: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + severity: { + type: 'keyword', + }, + start: { + type: 'date', + }, + status: { + type: 'keyword', + }, + system_status: { + type: 'keyword', + }, + threshold_result: { + properties: { + cardinality: { + properties: { + field: { + type: 'keyword', + }, + value: { + type: 'long', + }, + }, + }, + count: { + type: 'long', + }, + from: { + type: 'date', + }, + terms: { + properties: { + field: { + type: 'keyword', + }, + value: { + type: 'keyword', + }, + }, + }, + }, + }, + time_range: { + type: 'date_range', + format: 'epoch_millis||strict_date_optional_time', + }, + uuid: { + type: 'keyword', + }, + workflow_reason: { + type: 'keyword', + }, + workflow_status: { + type: 'keyword', + }, + workflow_user: { + type: 'keyword', + }, + }, + }, + space_ids: { + type: 'keyword', + }, + version: { + type: 'version', + }, + }, + }, + labels: { + type: 'object', + }, + log: { + properties: { + file: { + properties: { + path: { + type: 'keyword', + }, + }, + }, + level: { + type: 'keyword', + }, + logger: { + type: 'keyword', + }, + origin: { + properties: { + file: { + properties: { + line: { + type: 'long', + }, + name: { + type: 'keyword', + }, + }, + }, + function: { + type: 'keyword', + }, + }, + }, + syslog: { + properties: { + facility: { + properties: { + code: { + type: 'long', + }, + name: { + type: 'keyword', + }, + }, + }, + priority: { + type: 'long', + }, + severity: { + properties: { + code: { + type: 'long', + }, + name: { + type: 'keyword', + }, + }, + }, + }, + }, + }, + }, + message: { + type: 'match_only_text', + }, + network: { + properties: { + application: { + type: 'keyword', + }, + bytes: { + type: 'long', + }, + community_id: { + type: 'keyword', + }, + direction: { + type: 'keyword', + }, + forwarded_ip: { + type: 'ip', + }, + iana_number: { + type: 'keyword', + }, + inner: { + properties: { + vlan: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + }, + }, + name: { + type: 'keyword', + }, + packets: { + type: 'long', + }, + protocol: { + type: 'keyword', + }, + transport: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + vlan: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + }, + }, + observer: { + properties: { + egress: { + properties: { + interface: { + properties: { + alias: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + vlan: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + zone: { + type: 'keyword', + }, + }, + }, + geo: { + properties: { + city_name: { + type: 'keyword', + }, + continent_code: { + type: 'keyword', + }, + continent_name: { + type: 'keyword', + }, + country_iso_code: { + type: 'keyword', + }, + country_name: { + type: 'keyword', + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + }, + postal_code: { + type: 'keyword', + }, + region_iso_code: { + type: 'keyword', + }, + region_name: { + type: 'keyword', + }, + timezone: { + type: 'keyword', + }, + }, + }, + hostname: { + type: 'keyword', + }, + ingress: { + properties: { + interface: { + properties: { + alias: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + vlan: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + zone: { + type: 'keyword', + }, + }, + }, + ip: { + type: 'ip', + }, + mac: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + os: { + properties: { + family: { + type: 'keyword', + }, + full: { + type: 'keyword', + }, + kernel: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + platform: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + product: { + type: 'keyword', + }, + serial_number: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + vendor: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + orchestrator: { + properties: { + api_version: { + type: 'keyword', + }, + cluster: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + url: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + namespace: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + resource: { + properties: { + id: { + type: 'keyword', + }, + ip: { + type: 'ip', + }, + name: { + type: 'keyword', + }, + parent: { + properties: { + type: { + type: 'keyword', + }, + }, + }, + type: { + type: 'keyword', + }, + }, + }, + type: { + type: 'keyword', + }, + }, + }, + organization: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + package: { + properties: { + architecture: { + type: 'keyword', + }, + build_version: { + type: 'keyword', + }, + checksum: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + install_scope: { + type: 'keyword', + }, + installed: { + type: 'date', + }, + license: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + path: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + size: { + type: 'long', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + process: { + properties: { + args: { + type: 'keyword', + }, + args_count: { + type: 'long', + }, + code_signature: { + properties: { + digest_algorithm: { + type: 'keyword', + }, + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + }, + status: { + type: 'keyword', + }, + subject_name: { + type: 'keyword', + }, + team_id: { + type: 'keyword', + }, + timestamp: { + type: 'date', + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + command_line: { + type: 'wildcard', + }, + elf: { + properties: { + architecture: { + type: 'keyword', + }, + byte_order: { + type: 'keyword', + }, + cpu_type: { + type: 'keyword', + }, + creation_date: { + type: 'date', + }, + exports: { + type: 'flattened', + }, + header: { + properties: { + abi_version: { + type: 'keyword', + }, + class: { + type: 'keyword', + }, + data: { + type: 'keyword', + }, + entrypoint: { + type: 'long', + }, + object_version: { + type: 'keyword', + }, + os_abi: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + imports: { + type: 'flattened', + }, + sections: { + type: 'nested', + properties: { + chi2: { + type: 'long', + }, + entropy: { + type: 'long', + }, + flags: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + physical_offset: { + type: 'keyword', + }, + physical_size: { + type: 'long', + }, + type: { + type: 'keyword', + }, + virtual_address: { + type: 'long', + }, + virtual_size: { + type: 'long', + }, + }, + }, + segments: { + type: 'nested', + properties: { + sections: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + shared_libraries: { + type: 'keyword', + }, + telfhash: { + type: 'keyword', + }, + }, + }, + end: { + type: 'date', + }, + entity_id: { + type: 'keyword', + }, + entry_leader: { + properties: { + entity_id: { + type: 'keyword', + }, + }, + }, + executable: { + type: 'keyword', + }, + exit_code: { + type: 'long', + }, + hash: { + properties: { + md5: { + type: 'keyword', + }, + sha1: { + type: 'keyword', + }, + sha256: { + type: 'keyword', + }, + sha512: { + type: 'keyword', + }, + ssdeep: { + type: 'keyword', + }, + }, + }, + name: { + type: 'keyword', + }, + parent: { + properties: { + args: { + type: 'keyword', + }, + args_count: { + type: 'long', + }, + code_signature: { + properties: { + digest_algorithm: { + type: 'keyword', + }, + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + }, + status: { + type: 'keyword', + }, + subject_name: { + type: 'keyword', + }, + team_id: { + type: 'keyword', + }, + timestamp: { + type: 'date', + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + command_line: { + type: 'wildcard', + }, + elf: { + properties: { + architecture: { + type: 'keyword', + }, + byte_order: { + type: 'keyword', + }, + cpu_type: { + type: 'keyword', + }, + creation_date: { + type: 'date', + }, + exports: { + type: 'flattened', + }, + header: { + properties: { + abi_version: { + type: 'keyword', + }, + class: { + type: 'keyword', + }, + data: { + type: 'keyword', + }, + entrypoint: { + type: 'long', + }, + object_version: { + type: 'keyword', + }, + os_abi: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + imports: { + type: 'flattened', + }, + sections: { + type: 'nested', + properties: { + chi2: { + type: 'long', + }, + entropy: { + type: 'long', + }, + flags: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + physical_offset: { + type: 'keyword', + }, + physical_size: { + type: 'long', + }, + type: { + type: 'keyword', + }, + virtual_address: { + type: 'long', + }, + virtual_size: { + type: 'long', + }, + }, + }, + segments: { + type: 'nested', + properties: { + sections: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + shared_libraries: { + type: 'keyword', + }, + telfhash: { + type: 'keyword', + }, + }, + }, + end: { + type: 'date', + }, + entity_id: { + type: 'keyword', + }, + executable: { + type: 'keyword', + }, + exit_code: { + type: 'long', + }, + hash: { + properties: { + md5: { + type: 'keyword', + }, + sha1: { + type: 'keyword', + }, + sha256: { + type: 'keyword', + }, + sha512: { + type: 'keyword', + }, + ssdeep: { + type: 'keyword', + }, + }, + }, + name: { + type: 'keyword', + }, + pe: { + properties: { + architecture: { + type: 'keyword', + }, + company: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + file_version: { + type: 'keyword', + }, + imphash: { + type: 'keyword', + }, + original_file_name: { + type: 'keyword', + }, + product: { + type: 'keyword', + }, + }, + }, + pgid: { + type: 'long', + }, + pid: { + type: 'long', + }, + start: { + type: 'date', + }, + thread: { + properties: { + id: { + type: 'long', + }, + name: { + type: 'keyword', + }, + }, + }, + title: { + type: 'keyword', + }, + uptime: { + type: 'long', + }, + working_directory: { + type: 'keyword', + }, + }, + }, + pe: { + properties: { + architecture: { + type: 'keyword', + }, + company: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + file_version: { + type: 'keyword', + }, + imphash: { + type: 'keyword', + }, + original_file_name: { + type: 'keyword', + }, + product: { + type: 'keyword', + }, + }, + }, + pgid: { + type: 'long', + }, + pid: { + type: 'long', + }, + session_leader: { + properties: { + entity_id: { + type: 'keyword', + }, + }, + }, + start: { + type: 'date', + }, + thread: { + properties: { + id: { + type: 'long', + }, + name: { + type: 'keyword', + }, + }, + }, + title: { + type: 'keyword', + }, + uptime: { + type: 'long', + }, + working_directory: { + type: 'keyword', + }, + }, + }, + registry: { + properties: { + data: { + properties: { + bytes: { + type: 'keyword', + }, + strings: { + type: 'wildcard', + }, + type: { + type: 'keyword', + }, + }, + }, + hive: { + type: 'keyword', + }, + key: { + type: 'keyword', + }, + path: { + type: 'keyword', + }, + value: { + type: 'keyword', + }, + }, + }, + related: { + properties: { + hash: { + type: 'keyword', + }, + hosts: { + type: 'keyword', + }, + ip: { + type: 'ip', + }, + user: { + type: 'keyword', + }, + }, + }, + rule: { + properties: { + author: { + type: 'keyword', + }, + category: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + license: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + ruleset: { + type: 'keyword', + }, + uuid: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + server: { + properties: { + address: { + type: 'keyword', + }, + as: { + properties: { + number: { + type: 'long', + }, + organization: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + }, + }, + bytes: { + type: 'long', + }, + domain: { + type: 'keyword', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + }, + continent_code: { + type: 'keyword', + }, + continent_name: { + type: 'keyword', + }, + country_iso_code: { + type: 'keyword', + }, + country_name: { + type: 'keyword', + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + }, + postal_code: { + type: 'keyword', + }, + region_iso_code: { + type: 'keyword', + }, + region_name: { + type: 'keyword', + }, + timezone: { + type: 'keyword', + }, + }, + }, + ip: { + type: 'ip', + }, + mac: { + type: 'keyword', + }, + nat: { + properties: { + ip: { + type: 'ip', + }, + port: { + type: 'long', + }, + }, + }, + packets: { + type: 'long', + }, + port: { + type: 'long', + }, + registered_domain: { + type: 'keyword', + }, + subdomain: { + type: 'keyword', + }, + top_level_domain: { + type: 'keyword', + }, + user: { + properties: { + domain: { + type: 'keyword', + }, + email: { + type: 'keyword', + }, + full_name: { + type: 'keyword', + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + roles: { + type: 'keyword', + }, + }, + }, + }, + }, + service: { + properties: { + address: { + type: 'keyword', + }, + environment: { + type: 'keyword', + }, + ephemeral_id: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + node: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + origin: { + properties: { + address: { + type: 'keyword', + }, + environment: { + type: 'keyword', + }, + ephemeral_id: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + node: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + state: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + state: { + type: 'keyword', + }, + target: { + properties: { + address: { + type: 'keyword', + }, + environment: { + type: 'keyword', + }, + ephemeral_id: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + node: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + state: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + signal: { + properties: { + ancestors: { + properties: { + depth: { + type: 'alias', + path: 'kibana.alert.ancestors.depth', + }, + id: { + type: 'alias', + path: 'kibana.alert.ancestors.id', + }, + index: { + type: 'alias', + path: 'kibana.alert.ancestors.index', + }, + type: { + type: 'alias', + path: 'kibana.alert.ancestors.type', + }, + }, + }, + depth: { + type: 'alias', + path: 'kibana.alert.depth', + }, + group: { + properties: { + id: { + type: 'alias', + path: 'kibana.alert.group.id', + }, + index: { + type: 'alias', + path: 'kibana.alert.group.index', + }, + }, + }, + original_event: { + properties: { + action: { + type: 'alias', + path: 'kibana.alert.original_event.action', + }, + category: { + type: 'alias', + path: 'kibana.alert.original_event.category', + }, + code: { + type: 'alias', + path: 'kibana.alert.original_event.code', + }, + created: { + type: 'alias', + path: 'kibana.alert.original_event.created', + }, + dataset: { + type: 'alias', + path: 'kibana.alert.original_event.dataset', + }, + duration: { + type: 'alias', + path: 'kibana.alert.original_event.duration', + }, + end: { + type: 'alias', + path: 'kibana.alert.original_event.end', + }, + hash: { + type: 'alias', + path: 'kibana.alert.original_event.hash', + }, + id: { + type: 'alias', + path: 'kibana.alert.original_event.id', + }, + kind: { + type: 'alias', + path: 'kibana.alert.original_event.kind', + }, + module: { + type: 'alias', + path: 'kibana.alert.original_event.module', + }, + outcome: { + type: 'alias', + path: 'kibana.alert.original_event.outcome', + }, + provider: { + type: 'alias', + path: 'kibana.alert.original_event.provider', + }, + reason: { + type: 'alias', + path: 'kibana.alert.original_event.reason', + }, + risk_score: { + type: 'alias', + path: 'kibana.alert.original_event.risk_score', + }, + risk_score_norm: { + type: 'alias', + path: 'kibana.alert.original_event.risk_score_norm', + }, + sequence: { + type: 'alias', + path: 'kibana.alert.original_event.sequence', + }, + severity: { + type: 'alias', + path: 'kibana.alert.original_event.severity', + }, + start: { + type: 'alias', + path: 'kibana.alert.original_event.start', + }, + timezone: { + type: 'alias', + path: 'kibana.alert.original_event.timezone', + }, + type: { + type: 'alias', + path: 'kibana.alert.original_event.type', + }, + }, + }, + original_time: { + type: 'alias', + path: 'kibana.alert.original_time', + }, + reason: { + type: 'alias', + path: 'kibana.alert.reason', + }, + rule: { + properties: { + author: { + type: 'alias', + path: 'kibana.alert.rule.author', + }, + building_block_type: { + type: 'alias', + path: 'kibana.alert.building_block_type', + }, + created_at: { + type: 'alias', + path: 'kibana.alert.rule.created_at', + }, + created_by: { + type: 'alias', + path: 'kibana.alert.rule.created_by', + }, + description: { + type: 'alias', + path: 'kibana.alert.rule.description', + }, + enabled: { + type: 'alias', + path: 'kibana.alert.rule.enabled', + }, + false_positives: { + type: 'alias', + path: 'kibana.alert.rule.false_positives', + }, + from: { + type: 'alias', + path: 'kibana.alert.rule.from', + }, + id: { + type: 'alias', + path: 'kibana.alert.rule.uuid', + }, + immutable: { + type: 'alias', + path: 'kibana.alert.rule.immutable', + }, + interval: { + type: 'alias', + path: 'kibana.alert.rule.interval', + }, + license: { + type: 'alias', + path: 'kibana.alert.rule.license', + }, + max_signals: { + type: 'alias', + path: 'kibana.alert.rule.max_signals', + }, + name: { + type: 'alias', + path: 'kibana.alert.rule.name', + }, + note: { + type: 'alias', + path: 'kibana.alert.rule.note', + }, + references: { + type: 'alias', + path: 'kibana.alert.rule.references', + }, + risk_score: { + type: 'alias', + path: 'kibana.alert.risk_score', + }, + rule_id: { + type: 'alias', + path: 'kibana.alert.rule.rule_id', + }, + rule_name_override: { + type: 'alias', + path: 'kibana.alert.rule.rule_name_override', + }, + severity: { + type: 'alias', + path: 'kibana.alert.severity', + }, + tags: { + type: 'alias', + path: 'kibana.alert.rule.tags', + }, + threat: { + properties: { + framework: { + type: 'alias', + path: 'kibana.alert.rule.threat.framework', + }, + tactic: { + properties: { + id: { + type: 'alias', + path: 'kibana.alert.rule.threat.tactic.id', + }, + name: { + type: 'alias', + path: 'kibana.alert.rule.threat.tactic.name', + }, + reference: { + type: 'alias', + path: 'kibana.alert.rule.threat.tactic.reference', + }, + }, + }, + technique: { + properties: { + id: { + type: 'alias', + path: 'kibana.alert.rule.threat.technique.id', + }, + name: { + type: 'alias', + path: 'kibana.alert.rule.threat.technique.name', + }, + reference: { + type: 'alias', + path: 'kibana.alert.rule.threat.technique.reference', + }, + subtechnique: { + properties: { + id: { + type: 'alias', + path: 'kibana.alert.rule.threat.technique.subtechnique.id', + }, + name: { + type: 'alias', + path: 'kibana.alert.rule.threat.technique.subtechnique.name', + }, + reference: { + type: 'alias', + path: 'kibana.alert.rule.threat.technique.subtechnique.reference', + }, + }, + }, + }, + }, + }, + }, + timeline_id: { + type: 'alias', + path: 'kibana.alert.rule.timeline_id', + }, + timeline_title: { + type: 'alias', + path: 'kibana.alert.rule.timeline_title', + }, + timestamp_override: { + type: 'alias', + path: 'kibana.alert.rule.timestamp_override', + }, + to: { + type: 'alias', + path: 'kibana.alert.rule.to', + }, + type: { + type: 'alias', + path: 'kibana.alert.rule.type', + }, + updated_at: { + type: 'alias', + path: 'kibana.alert.rule.updated_at', + }, + updated_by: { + type: 'alias', + path: 'kibana.alert.rule.updated_by', + }, + version: { + type: 'alias', + path: 'kibana.alert.rule.version', + }, + }, + }, + status: { + type: 'alias', + path: 'kibana.alert.workflow_status', + }, + threshold_result: { + properties: { + cardinality: { + properties: { + field: { + type: 'alias', + path: 'kibana.alert.threshold_result.cardinality.field', + }, + value: { + type: 'alias', + path: 'kibana.alert.threshold_result.cardinality.value', + }, + }, + }, + count: { + type: 'alias', + path: 'kibana.alert.threshold_result.count', + }, + from: { + type: 'alias', + path: 'kibana.alert.threshold_result.from', + }, + terms: { + properties: { + field: { + type: 'alias', + path: 'kibana.alert.threshold_result.terms.field', + }, + value: { + type: 'alias', + path: 'kibana.alert.threshold_result.terms.value', + }, + }, + }, + }, + }, + }, + }, + source: { + properties: { + address: { + type: 'keyword', + }, + as: { + properties: { + number: { + type: 'long', + }, + organization: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + }, + }, + bytes: { + type: 'long', + }, + domain: { + type: 'keyword', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + }, + continent_code: { + type: 'keyword', + }, + continent_name: { + type: 'keyword', + }, + country_iso_code: { + type: 'keyword', + }, + country_name: { + type: 'keyword', + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + }, + postal_code: { + type: 'keyword', + }, + region_iso_code: { + type: 'keyword', + }, + region_name: { + type: 'keyword', + }, + timezone: { + type: 'keyword', + }, + }, + }, + ip: { + type: 'ip', + }, + mac: { + type: 'keyword', + }, + nat: { + properties: { + ip: { + type: 'ip', + }, + port: { + type: 'long', + }, + }, + }, + packets: { + type: 'long', + }, + port: { + type: 'long', + }, + registered_domain: { + type: 'keyword', + }, + subdomain: { + type: 'keyword', + }, + top_level_domain: { + type: 'keyword', + }, + user: { + properties: { + domain: { + type: 'keyword', + }, + email: { + type: 'keyword', + }, + full_name: { + type: 'keyword', + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + roles: { + type: 'keyword', + }, + }, + }, + }, + }, + span: { + properties: { + id: { + type: 'keyword', + }, + }, + }, + tags: { + type: 'keyword', + }, + threat: { + properties: { + enrichments: { + type: 'nested', + properties: { + indicator: { + properties: { + as: { + properties: { + number: { + type: 'long', + }, + organization: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + }, + }, + confidence: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + email: { + properties: { + address: { + type: 'keyword', + }, + }, + }, + file: { + properties: { + accessed: { + type: 'date', + }, + attributes: { + type: 'keyword', + }, + code_signature: { + properties: { + digest_algorithm: { + type: 'keyword', + }, + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + }, + status: { + type: 'keyword', + }, + subject_name: { + type: 'keyword', + }, + team_id: { + type: 'keyword', + }, + timestamp: { + type: 'date', + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + created: { + type: 'date', + }, + ctime: { + type: 'date', + }, + device: { + type: 'keyword', + }, + directory: { + type: 'keyword', + }, + drive_letter: { + type: 'keyword', + }, + elf: { + properties: { + architecture: { + type: 'keyword', + }, + byte_order: { + type: 'keyword', + }, + cpu_type: { + type: 'keyword', + }, + creation_date: { + type: 'date', + }, + exports: { + type: 'flattened', + }, + header: { + properties: { + abi_version: { + type: 'keyword', + }, + class: { + type: 'keyword', + }, + data: { + type: 'keyword', + }, + entrypoint: { + type: 'long', + }, + object_version: { + type: 'keyword', + }, + os_abi: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + imports: { + type: 'flattened', + }, + sections: { + type: 'nested', + properties: { + chi2: { + type: 'long', + }, + entropy: { + type: 'long', + }, + flags: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + physical_offset: { + type: 'keyword', + }, + physical_size: { + type: 'long', + }, + type: { + type: 'keyword', + }, + virtual_address: { + type: 'long', + }, + virtual_size: { + type: 'long', + }, + }, + }, + segments: { + type: 'nested', + properties: { + sections: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + shared_libraries: { + type: 'keyword', + }, + telfhash: { + type: 'keyword', + }, + }, + }, + extension: { + type: 'keyword', + }, + fork_name: { + type: 'keyword', + }, + gid: { + type: 'keyword', + }, + group: { + type: 'keyword', + }, + hash: { + properties: { + md5: { + type: 'keyword', + }, + sha1: { + type: 'keyword', + }, + sha256: { + type: 'keyword', + }, + sha512: { + type: 'keyword', + }, + ssdeep: { + type: 'keyword', + }, + }, + }, + inode: { + type: 'keyword', + }, + mime_type: { + type: 'keyword', + }, + mode: { + type: 'keyword', + }, + mtime: { + type: 'date', + }, + name: { + type: 'keyword', + }, + owner: { + type: 'keyword', + }, + path: { + type: 'keyword', + }, + pe: { + properties: { + architecture: { + type: 'keyword', + }, + company: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + file_version: { + type: 'keyword', + }, + imphash: { + type: 'keyword', + }, + original_file_name: { + type: 'keyword', + }, + product: { + type: 'keyword', + }, + }, + }, + size: { + type: 'long', + }, + target_path: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + uid: { + type: 'keyword', + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + }, + public_key_curve: { + type: 'keyword', + }, + public_key_exponent: { + type: 'long', + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + }, + signature_algorithm: { + type: 'keyword', + }, + subject: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + version_number: { + type: 'keyword', + }, + }, + }, + }, + }, + first_seen: { + type: 'date', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + }, + continent_code: { + type: 'keyword', + }, + continent_name: { + type: 'keyword', + }, + country_iso_code: { + type: 'keyword', + }, + country_name: { + type: 'keyword', + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + }, + postal_code: { + type: 'keyword', + }, + region_iso_code: { + type: 'keyword', + }, + region_name: { + type: 'keyword', + }, + timezone: { + type: 'keyword', + }, + }, + }, + ip: { + type: 'ip', + }, + last_seen: { + type: 'date', + }, + marking: { + properties: { + tlp: { + type: 'keyword', + }, + }, + }, + modified_at: { + type: 'date', + }, + port: { + type: 'long', + }, + provider: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + registry: { + properties: { + data: { + properties: { + bytes: { + type: 'keyword', + }, + strings: { + type: 'wildcard', + }, + type: { + type: 'keyword', + }, + }, + }, + hive: { + type: 'keyword', + }, + key: { + type: 'keyword', + }, + path: { + type: 'keyword', + }, + value: { + type: 'keyword', + }, + }, + }, + scanner_stats: { + type: 'long', + }, + sightings: { + type: 'long', + }, + type: { + type: 'keyword', + }, + url: { + properties: { + domain: { + type: 'keyword', + }, + extension: { + type: 'keyword', + }, + fragment: { + type: 'keyword', + }, + full: { + type: 'wildcard', + }, + original: { + type: 'wildcard', + }, + password: { + type: 'keyword', + }, + path: { + type: 'wildcard', + }, + port: { + type: 'long', + }, + query: { + type: 'keyword', + }, + registered_domain: { + type: 'keyword', + }, + scheme: { + type: 'keyword', + }, + subdomain: { + type: 'keyword', + }, + top_level_domain: { + type: 'keyword', + }, + username: { + type: 'keyword', + }, + }, + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + }, + public_key_curve: { + type: 'keyword', + }, + public_key_exponent: { + type: 'long', + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + }, + signature_algorithm: { + type: 'keyword', + }, + subject: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + version_number: { + type: 'keyword', + }, + }, + }, + }, + }, + matched: { + properties: { + atomic: { + type: 'keyword', + }, + field: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + index: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + }, + }, + framework: { + type: 'keyword', + }, + group: { + properties: { + alias: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + }, + }, + indicator: { + properties: { + as: { + properties: { + number: { + type: 'long', + }, + organization: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + }, + }, + confidence: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + email: { + properties: { + address: { + type: 'keyword', + }, + }, + }, + file: { + properties: { + accessed: { + type: 'date', + }, + attributes: { + type: 'keyword', + }, + code_signature: { + properties: { + digest_algorithm: { + type: 'keyword', + }, + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + }, + status: { + type: 'keyword', + }, + subject_name: { + type: 'keyword', + }, + team_id: { + type: 'keyword', + }, + timestamp: { + type: 'date', + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + created: { + type: 'date', + }, + ctime: { + type: 'date', + }, + device: { + type: 'keyword', + }, + directory: { + type: 'keyword', + }, + drive_letter: { + type: 'keyword', + }, + elf: { + properties: { + architecture: { + type: 'keyword', + }, + byte_order: { + type: 'keyword', + }, + cpu_type: { + type: 'keyword', + }, + creation_date: { + type: 'date', + }, + exports: { + type: 'flattened', + }, + header: { + properties: { + abi_version: { + type: 'keyword', + }, + class: { + type: 'keyword', + }, + data: { + type: 'keyword', + }, + entrypoint: { + type: 'long', + }, + object_version: { + type: 'keyword', + }, + os_abi: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + imports: { + type: 'flattened', + }, + sections: { + type: 'nested', + properties: { + chi2: { + type: 'long', + }, + entropy: { + type: 'long', + }, + flags: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + physical_offset: { + type: 'keyword', + }, + physical_size: { + type: 'long', + }, + type: { + type: 'keyword', + }, + virtual_address: { + type: 'long', + }, + virtual_size: { + type: 'long', + }, + }, + }, + segments: { + type: 'nested', + properties: { + sections: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + shared_libraries: { + type: 'keyword', + }, + telfhash: { + type: 'keyword', + }, + }, + }, + extension: { + type: 'keyword', + }, + fork_name: { + type: 'keyword', + }, + gid: { + type: 'keyword', + }, + group: { + type: 'keyword', + }, + hash: { + properties: { + md5: { + type: 'keyword', + }, + sha1: { + type: 'keyword', + }, + sha256: { + type: 'keyword', + }, + sha512: { + type: 'keyword', + }, + ssdeep: { + type: 'keyword', + }, + }, + }, + inode: { + type: 'keyword', + }, + mime_type: { + type: 'keyword', + }, + mode: { + type: 'keyword', + }, + mtime: { + type: 'date', + }, + name: { + type: 'keyword', + }, + owner: { + type: 'keyword', + }, + path: { + type: 'keyword', + }, + pe: { + properties: { + architecture: { + type: 'keyword', + }, + company: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + file_version: { + type: 'keyword', + }, + imphash: { + type: 'keyword', + }, + original_file_name: { + type: 'keyword', + }, + product: { + type: 'keyword', + }, + }, + }, + size: { + type: 'long', + }, + target_path: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + uid: { + type: 'keyword', + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + }, + public_key_curve: { + type: 'keyword', + }, + public_key_exponent: { + type: 'long', + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + }, + signature_algorithm: { + type: 'keyword', + }, + subject: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + version_number: { + type: 'keyword', + }, + }, + }, + }, + }, + first_seen: { + type: 'date', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + }, + continent_code: { + type: 'keyword', + }, + continent_name: { + type: 'keyword', + }, + country_iso_code: { + type: 'keyword', + }, + country_name: { + type: 'keyword', + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + }, + postal_code: { + type: 'keyword', + }, + region_iso_code: { + type: 'keyword', + }, + region_name: { + type: 'keyword', + }, + timezone: { + type: 'keyword', + }, + }, + }, + ip: { + type: 'ip', + }, + last_seen: { + type: 'date', + }, + marking: { + properties: { + tlp: { + type: 'keyword', + }, + }, + }, + modified_at: { + type: 'date', + }, + port: { + type: 'long', + }, + provider: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + registry: { + properties: { + data: { + properties: { + bytes: { + type: 'keyword', + }, + strings: { + type: 'wildcard', + }, + type: { + type: 'keyword', + }, + }, + }, + hive: { + type: 'keyword', + }, + key: { + type: 'keyword', + }, + path: { + type: 'keyword', + }, + value: { + type: 'keyword', + }, + }, + }, + scanner_stats: { + type: 'long', + }, + sightings: { + type: 'long', + }, + type: { + type: 'keyword', + }, + url: { + properties: { + domain: { + type: 'keyword', + }, + extension: { + type: 'keyword', + }, + fragment: { + type: 'keyword', + }, + full: { + type: 'wildcard', + }, + original: { + type: 'wildcard', + }, + password: { + type: 'keyword', + }, + path: { + type: 'wildcard', + }, + port: { + type: 'long', + }, + query: { + type: 'keyword', + }, + registered_domain: { + type: 'keyword', + }, + scheme: { + type: 'keyword', + }, + subdomain: { + type: 'keyword', + }, + top_level_domain: { + type: 'keyword', + }, + username: { + type: 'keyword', + }, + }, + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + }, + public_key_curve: { + type: 'keyword', + }, + public_key_exponent: { + type: 'long', + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + }, + signature_algorithm: { + type: 'keyword', + }, + subject: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + version_number: { + type: 'keyword', + }, + }, + }, + }, + }, + software: { + properties: { + alias: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + platforms: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + }, + }, + tactic: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + }, + }, + technique: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + subtechnique: { + properties: { + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + }, + }, + }, + }, + }, + }, + tls: { + properties: { + cipher: { + type: 'keyword', + }, + client: { + properties: { + certificate: { + type: 'keyword', + }, + certificate_chain: { + type: 'keyword', + }, + hash: { + properties: { + md5: { + type: 'keyword', + }, + sha1: { + type: 'keyword', + }, + sha256: { + type: 'keyword', + }, + }, + }, + issuer: { + type: 'keyword', + }, + ja3: { + type: 'keyword', + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + server_name: { + type: 'keyword', + }, + subject: { + type: 'keyword', + }, + supported_ciphers: { + type: 'keyword', + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + }, + public_key_curve: { + type: 'keyword', + }, + public_key_exponent: { + type: 'long', + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + }, + signature_algorithm: { + type: 'keyword', + }, + subject: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + version_number: { + type: 'keyword', + }, + }, + }, + }, + }, + curve: { + type: 'keyword', + }, + established: { + type: 'boolean', + }, + next_protocol: { + type: 'keyword', + }, + resumed: { + type: 'boolean', + }, + server: { + properties: { + certificate: { + type: 'keyword', + }, + certificate_chain: { + type: 'keyword', + }, + hash: { + properties: { + md5: { + type: 'keyword', + }, + sha1: { + type: 'keyword', + }, + sha256: { + type: 'keyword', + }, + }, + }, + issuer: { + type: 'keyword', + }, + ja3s: { + type: 'keyword', + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + subject: { + type: 'keyword', + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + }, + public_key_curve: { + type: 'keyword', + }, + public_key_exponent: { + type: 'long', + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + }, + signature_algorithm: { + type: 'keyword', + }, + subject: { + properties: { + common_name: { + type: 'keyword', + }, + country: { + type: 'keyword', + }, + distinguished_name: { + type: 'keyword', + }, + locality: { + type: 'keyword', + }, + organization: { + type: 'keyword', + }, + organizational_unit: { + type: 'keyword', + }, + state_or_province: { + type: 'keyword', + }, + }, + }, + version_number: { + type: 'keyword', + }, + }, + }, + }, + }, + version: { + type: 'keyword', + }, + version_protocol: { + type: 'keyword', + }, + }, + }, + trace: { + properties: { + id: { + type: 'keyword', + }, + }, + }, + transaction: { + properties: { + id: { + type: 'keyword', + }, + }, + }, + url: { + properties: { + domain: { + type: 'keyword', + }, + extension: { + type: 'keyword', + }, + fragment: { + type: 'keyword', + }, + full: { + type: 'wildcard', + }, + original: { + type: 'wildcard', + }, + password: { + type: 'keyword', + }, + path: { + type: 'wildcard', + }, + port: { + type: 'long', + }, + query: { + type: 'keyword', + }, + registered_domain: { + type: 'keyword', + }, + scheme: { + type: 'keyword', + }, + subdomain: { + type: 'keyword', + }, + top_level_domain: { + type: 'keyword', + }, + username: { + type: 'keyword', + }, + }, + }, + user: { + properties: { + changes: { + properties: { + domain: { + type: 'keyword', + }, + email: { + type: 'keyword', + }, + full_name: { + type: 'keyword', + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + roles: { + type: 'keyword', + }, + }, + }, + domain: { + type: 'keyword', + }, + effective: { + properties: { + domain: { + type: 'keyword', + }, + email: { + type: 'keyword', + }, + full_name: { + type: 'keyword', + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + roles: { + type: 'keyword', + }, + }, + }, + email: { + type: 'keyword', + }, + full_name: { + type: 'keyword', + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + risk: { + properties: { + calculated_level: { + type: 'keyword', + }, + calculated_score: { + type: 'float', + }, + calculated_score_norm: { + type: 'float', + }, + static_level: { + type: 'keyword', + }, + static_score: { + type: 'float', + }, + static_score_norm: { + type: 'float', + }, + }, + }, + roles: { + type: 'keyword', + }, + target: { + properties: { + domain: { + type: 'keyword', + }, + email: { + type: 'keyword', + }, + full_name: { + type: 'keyword', + }, + group: { + properties: { + domain: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + }, + }, + hash: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + roles: { + type: 'keyword', + }, + }, + }, + }, + }, + user_agent: { + properties: { + device: { + properties: { + name: { + type: 'keyword', + }, + }, + }, + name: { + type: 'keyword', + }, + original: { + type: 'keyword', + }, + os: { + properties: { + family: { + type: 'keyword', + }, + full: { + type: 'keyword', + }, + kernel: { + type: 'keyword', + }, + name: { + type: 'keyword', + }, + platform: { + type: 'keyword', + }, + type: { + type: 'keyword', + }, + version: { + type: 'keyword', + }, + }, + }, + version: { + type: 'keyword', + }, + }, + }, + vulnerability: { + properties: { + category: { + type: 'keyword', + }, + classification: { + type: 'keyword', + }, + description: { + type: 'keyword', + }, + enumeration: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + reference: { + type: 'keyword', + }, + report_id: { + type: 'keyword', + }, + scanner: { + properties: { + vendor: { + type: 'keyword', + }, + }, + }, + score: { + properties: { + base: { + type: 'float', + }, + environmental: { + type: 'float', + }, + temporal: { + type: 'float', + }, + version: { + type: 'keyword', + }, + }, + }, + severity: { + type: 'keyword', + }, + }, + }, + }, + }, + }, +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/example/mappings/logs.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/example/mappings/logs.ts new file mode 100644 index 00000000000000..76e1770d506332 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/example/mappings/logs.ts @@ -0,0 +1,9229 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { IndicesGetMappingIndexMappingRecord } from '@elastic/elasticsearch/lib/api/types'; + +export const logs: Record = { + '.ds-logs-endpoint.events.process-default-2022.09.27-000001': { + mappings: { + dynamic: 'false', + _meta: { + package: { + name: 'endpoint', + }, + managed_by: 'fleet', + managed: true, + }, + _data_stream_timestamp: { + enabled: true, + }, + dynamic_templates: [ + { + strings_as_keyword: { + match_mapping_type: 'string', + mapping: { + ignore_above: 1024, + type: 'keyword', + }, + }, + }, + ], + date_detection: false, + properties: { + '@timestamp': { + type: 'date', + }, + agent: { + properties: { + ephemeral_id: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + cloud: { + properties: { + account: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + instance: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + project: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + provider: { + type: 'keyword', + ignore_above: 1024, + }, + region: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + container: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + image: { + properties: { + hash: { + properties: { + all: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + tag: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + data_stream: { + properties: { + dataset: { + type: 'constant_keyword', + value: 'endpoint.events.process', + }, + namespace: { + type: 'constant_keyword', + value: 'default', + }, + type: { + type: 'constant_keyword', + value: 'logs', + }, + }, + }, + destination: { + properties: { + geo: { + properties: { + city_name: { + type: 'keyword', + ignore_above: 1024, + }, + continent_code: { + type: 'keyword', + ignore_above: 1024, + }, + continent_name: { + type: 'keyword', + ignore_above: 1024, + }, + country_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + country_name: { + type: 'keyword', + ignore_above: 1024, + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + postal_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_name: { + type: 'keyword', + ignore_above: 1024, + }, + timezone: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + ecs: { + properties: { + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + event: { + properties: { + action: { + type: 'keyword', + ignore_above: 1024, + }, + agent_id_status: { + type: 'keyword', + ignore_above: 1024, + }, + category: { + type: 'keyword', + ignore_above: 1024, + }, + code: { + type: 'keyword', + ignore_above: 1024, + }, + created: { + type: 'date', + }, + dataset: { + type: 'keyword', + ignore_above: 1024, + }, + hash: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + ingested: { + type: 'date', + format: 'strict_date_time_no_millis||strict_date_optional_time||epoch_millis', + }, + kind: { + type: 'keyword', + ignore_above: 1024, + }, + module: { + type: 'keyword', + ignore_above: 1024, + }, + outcome: { + type: 'keyword', + ignore_above: 1024, + }, + provider: { + type: 'keyword', + ignore_above: 1024, + }, + sequence: { + type: 'long', + }, + severity: { + type: 'long', + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + group: { + properties: { + Ext: { + properties: { + real: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + host: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + boot: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + hostname: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + ip: { + type: 'ip', + }, + mac: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + os: { + properties: { + Ext: { + properties: { + variant: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + family: { + type: 'keyword', + ignore_above: 1024, + }, + full: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + kernel: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + platform: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + pid_ns_ino: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + uptime: { + type: 'long', + }, + }, + }, + message: { + type: 'match_only_text', + }, + orchestrator: { + properties: { + cluster: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + namespace: { + type: 'keyword', + ignore_above: 1024, + }, + resource: { + properties: { + ip: { + type: 'ip', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + parent: { + properties: { + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + package: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + process: { + properties: { + Ext: { + properties: { + ancestry: { + type: 'keyword', + ignore_above: 1024, + }, + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + authentication_id: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + defense_evasions: { + type: 'keyword', + ignore_above: 1024, + }, + device: { + properties: { + bus_type: { + type: 'keyword', + ignore_above: 1024, + }, + dos_name: { + type: 'keyword', + ignore_above: 1024, + }, + nt_name: { + type: 'keyword', + ignore_above: 1024, + }, + product_id: { + type: 'keyword', + ignore_above: 1024, + }, + serial_number: { + type: 'keyword', + ignore_above: 1024, + }, + vendor_id: { + type: 'keyword', + ignore_above: 1024, + }, + volume_device_type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + dll: { + properties: { + Ext: { + properties: { + mapped_address: { + type: 'unsigned_long', + }, + mapped_size: { + type: 'unsigned_long', + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + effective_parent: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + }, + }, + protection: { + type: 'keyword', + ignore_above: 1024, + }, + relative_file_creation_time: { + type: 'double', + }, + relative_file_name_modify_time: { + type: 'double', + }, + session: { + type: 'keyword', + ignore_above: 1024, + }, + token: { + properties: { + elevation: { + type: 'boolean', + }, + elevation_level: { + type: 'keyword', + ignore_above: 1024, + }, + elevation_type: { + type: 'keyword', + ignore_above: 1024, + }, + integrity_level_name: { + type: 'keyword', + ignore_above: 1024, + }, + security_attributes: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + trusted: { + type: 'boolean', + }, + trusted_descendant: { + type: 'boolean', + }, + }, + }, + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + end: { + type: 'date', + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + entry_leader: { + properties: { + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + attested_groups: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + attested_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + entry_meta: { + properties: { + source: { + properties: { + ip: { + type: 'ip', + }, + }, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + parent: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + session_leader: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + start: { + type: 'date', + }, + }, + }, + start: { + type: 'date', + }, + }, + }, + pid: { + type: 'long', + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + same_as_process: { + type: 'boolean', + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + env_vars: { + type: 'object', + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + exit_code: { + type: 'long', + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + group_leader: { + properties: { + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + pid: { + type: 'long', + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + same_as_process: { + type: 'boolean', + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + io: { + properties: { + max_bytes_per_process_exceeded: { + type: 'boolean', + }, + text: { + type: 'wildcard', + ignore_above: 1024, + }, + total_bytes_captured: { + type: 'long', + }, + total_bytes_skipped: { + type: 'long', + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + parent: { + properties: { + Ext: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + protection: { + type: 'keyword', + ignore_above: 1024, + }, + real: { + properties: { + pid: { + type: 'long', + }, + }, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + exit_code: { + type: 'long', + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + group_leader: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + start: { + type: 'date', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + pgid: { + type: 'long', + }, + pid: { + type: 'long', + }, + ppid: { + type: 'long', + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + thread: { + properties: { + id: { + type: 'long', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + title: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + uptime: { + type: 'long', + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + pgid: { + type: 'long', + }, + pid: { + type: 'long', + }, + ppid: { + type: 'long', + }, + previous: { + properties: { + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + session_leader: { + properties: { + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + parent: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + session_leader: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + start: { + type: 'date', + }, + }, + }, + start: { + type: 'date', + }, + }, + }, + pid: { + type: 'long', + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + same_as_process: { + type: 'boolean', + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + thread: { + properties: { + id: { + type: 'long', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + title: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + columns: { + type: 'long', + }, + rows: { + type: 'long', + }, + }, + }, + uptime: { + type: 'long', + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + source: { + properties: { + geo: { + properties: { + city_name: { + type: 'keyword', + ignore_above: 1024, + }, + continent_code: { + type: 'keyword', + ignore_above: 1024, + }, + continent_name: { + type: 'keyword', + ignore_above: 1024, + }, + country_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + country_name: { + type: 'keyword', + ignore_above: 1024, + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + postal_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_name: { + type: 'keyword', + ignore_above: 1024, + }, + timezone: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + user: { + properties: { + Ext: { + properties: { + real: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + email: { + type: 'keyword', + ignore_above: 1024, + }, + full_name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + group: { + properties: { + Ext: { + properties: { + real: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + hash: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + }, + }, + }, + '.ds-logs-endpoint.alerts-default-2022.09.27-000001': { + mappings: { + dynamic: 'false', + _meta: { + package: { + name: 'endpoint', + }, + managed_by: 'fleet', + managed: true, + }, + _data_stream_timestamp: { + enabled: true, + }, + dynamic_templates: [ + { + strings_as_keyword: { + match_mapping_type: 'string', + mapping: { + ignore_above: 1024, + type: 'keyword', + }, + }, + }, + ], + date_detection: false, + properties: { + '@timestamp': { + type: 'date', + }, + Endpoint: { + properties: { + policy: { + properties: { + applied: { + properties: { + artifacts: { + enabled: false, + properties: { + global: { + properties: { + identifiers: { + type: 'nested', + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + user: { + properties: { + identifiers: { + type: 'nested', + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + }, + }, + Events: { + type: 'object', + }, + // eslint-disable-next-line @typescript-eslint/naming-convention + Memory_protection: { + properties: { + cross_session: { + type: 'boolean', + }, + feature: { + type: 'keyword', + ignore_above: 1024, + }, + parent_to_child: { + type: 'boolean', + }, + self_injection: { + type: 'boolean', + }, + thread_count: { + type: 'long', + }, + unique_key_v1: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + Ransomware: { + properties: { + child_processes: { + properties: { + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'text', + }, + }, + }, + feature: { + type: 'keyword', + ignore_above: 1024, + }, + files: { + type: 'nested', + properties: { + data: { + type: 'keyword', + ignore_above: 1024, + }, + entropy: { + type: 'double', + }, + extension: { + type: 'keyword', + ignore_above: 1024, + }, + metrics: { + type: 'keyword', + ignore_above: 1024, + }, + operation: { + type: 'keyword', + ignore_above: 1024, + }, + original: { + properties: { + extension: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + }, + }, + pid: { + type: 'long', + }, + score: { + type: 'double', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'text', + }, + }, + }, + feature: { + type: 'keyword', + ignore_above: 1024, + }, + files: { + type: 'nested', + properties: { + data: { + type: 'keyword', + ignore_above: 1024, + }, + entropy: { + type: 'double', + }, + extension: { + type: 'keyword', + ignore_above: 1024, + }, + metrics: { + type: 'keyword', + ignore_above: 1024, + }, + operation: { + type: 'keyword', + ignore_above: 1024, + }, + original: { + properties: { + extension: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + }, + }, + pid: { + type: 'long', + }, + score: { + type: 'double', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + Responses: { + properties: { + '@timestamp': { + type: 'date', + }, + action: { + type: 'nested', + properties: { + action: { + type: 'keyword', + ignore_above: 1024, + }, + field: { + type: 'text', + }, + file: { + properties: { + attributes: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + source: { + properties: { + attributes: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + state: { + type: 'long', + }, + tree: { + type: 'boolean', + }, + }, + }, + message: { + type: 'text', + }, + process: { + type: 'nested', + properties: { + entity_id: { + type: 'text', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + }, + }, + result: { + type: 'long', + }, + }, + }, + Target: { + properties: { + dll: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + compile_time: { + type: 'date', + }, + malware_classification: { + properties: { + features: { + enabled: false, + properties: { + data: { + properties: { + buffer: { + type: 'keyword', + ignore_above: 1024, + }, + decompressed_size: { + type: 'long', + }, + encoding: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + threshold: { + type: 'double', + }, + upx_packed: { + type: 'boolean', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + mapped_address: { + type: 'unsigned_long', + }, + mapped_size: { + type: 'unsigned_long', + }, + }, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + process: { + properties: { + Ext: { + properties: { + ancestry: { + type: 'keyword', + ignore_above: 1024, + }, + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + authentication_id: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + dll: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + compile_time: { + type: 'date', + }, + mapped_address: { + type: 'unsigned_long', + }, + mapped_size: { + type: 'unsigned_long', + }, + }, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + malware_classification: { + properties: { + features: { + enabled: false, + properties: { + data: { + properties: { + buffer: { + type: 'keyword', + ignore_above: 1024, + }, + decompressed_size: { + type: 'long', + }, + encoding: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + threshold: { + type: 'double', + }, + upx_packed: { + type: 'boolean', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + memory_region: { + properties: { + allocation_base: { + type: 'unsigned_long', + }, + allocation_protection: { + type: 'keyword', + ignore_above: 1024, + }, + allocation_size: { + type: 'unsigned_long', + }, + allocation_type: { + type: 'keyword', + ignore_above: 1024, + }, + bytes_address: { + type: 'unsigned_long', + }, + bytes_allocation_offset: { + type: 'unsigned_long', + }, + bytes_compressed: { + type: 'keyword', + index: false, + doc_values: false, + }, + bytes_compressed_present: { + type: 'boolean', + }, + malware_signature: { + properties: { + all_names: { + type: 'keyword', + ignore_above: 1024, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + primary: { + properties: { + matches: { + type: 'keyword', + index: false, + doc_values: false, + }, + signature: { + properties: { + hash: { + type: 'nested', + properties: { + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + mapped_path: { + type: 'keyword', + ignore_above: 1024, + }, + mapped_pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + mapped_pe_detected: { + type: 'boolean', + }, + memory_pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + memory_pe_detected: { + type: 'boolean', + }, + region_base: { + type: 'unsigned_long', + }, + region_protection: { + type: 'keyword', + ignore_above: 1024, + }, + region_size: { + type: 'unsigned_long', + }, + region_state: { + type: 'keyword', + ignore_above: 1024, + }, + strings: { + type: 'keyword', + index: false, + doc_values: false, + }, + }, + }, + protection: { + type: 'keyword', + ignore_above: 1024, + }, + services: { + type: 'keyword', + ignore_above: 1024, + }, + session: { + type: 'keyword', + ignore_above: 1024, + }, + token: { + properties: { + domain: { + type: 'keyword', + ignore_above: 1024, + }, + elevation: { + type: 'boolean', + }, + elevation_type: { + type: 'keyword', + ignore_above: 1024, + }, + impersonation_level: { + type: 'keyword', + ignore_above: 1024, + }, + integrity_level: { + type: 'long', + }, + integrity_level_name: { + type: 'keyword', + ignore_above: 1024, + }, + is_appcontainer: { + type: 'boolean', + }, + privileges: { + type: 'nested', + properties: { + description: { + type: 'keyword', + ignore_above: 1024, + }, + enabled: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + sid: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + exit_code: { + type: 'long', + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + parent: { + properties: { + Ext: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + dll: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + compile_time: { + type: 'date', + }, + mapped_address: { + type: 'unsigned_long', + }, + mapped_size: { + type: 'unsigned_long', + }, + }, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + protection: { + type: 'keyword', + ignore_above: 1024, + }, + real: { + properties: { + pid: { + type: 'long', + }, + }, + }, + token: { + properties: { + domain: { + type: 'keyword', + ignore_above: 1024, + }, + elevation: { + type: 'boolean', + }, + elevation_type: { + type: 'keyword', + ignore_above: 1024, + }, + impersonation_level: { + type: 'keyword', + ignore_above: 1024, + }, + integrity_level: { + type: 'long', + }, + integrity_level_name: { + type: 'keyword', + ignore_above: 1024, + }, + is_appcontainer: { + type: 'boolean', + }, + privileges: { + type: 'nested', + properties: { + description: { + type: 'keyword', + ignore_above: 1024, + }, + enabled: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + sid: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + exit_code: { + type: 'long', + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + pgid: { + type: 'long', + }, + pid: { + type: 'long', + }, + ppid: { + type: 'long', + }, + start: { + type: 'date', + }, + thread: { + properties: { + id: { + type: 'long', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + title: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + uptime: { + type: 'long', + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + pgid: { + type: 'long', + }, + pid: { + type: 'long', + }, + ppid: { + type: 'long', + }, + start: { + type: 'date', + }, + thread: { + properties: { + Ext: { + properties: { + call_stack: { + enabled: false, + properties: { + instruction_pointer: { + type: 'keyword', + ignore_above: 1024, + }, + memory_section: { + properties: { + memory_address: { + type: 'keyword', + index: false, + doc_values: false, + }, + memory_size: { + type: 'keyword', + index: false, + doc_values: false, + }, + protection: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + module_name: { + type: 'keyword', + index: false, + doc_values: false, + }, + module_path: { + type: 'keyword', + ignore_above: 1024, + }, + rva: { + type: 'keyword', + ignore_above: 1024, + }, + symbol_info: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + call_stack_final_user_module: { + type: 'nested', + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + call_stack_summary: { + type: 'keyword', + ignore_above: 1024, + }, + parameter: { + type: 'unsigned_long', + }, + parameter_bytes_compressed: { + type: 'keyword', + index: false, + doc_values: false, + }, + parameter_bytes_compressed_present: { + type: 'boolean', + }, + service: { + type: 'keyword', + ignore_above: 1024, + }, + start: { + type: 'date', + }, + start_address: { + type: 'unsigned_long', + }, + start_address_allocation_offset: { + type: 'unsigned_long', + }, + start_address_bytes: { + type: 'keyword', + ignore_above: 1024, + }, + start_address_bytes_disasm: { + type: 'keyword', + ignore_above: 1024, + }, + start_address_bytes_disasm_hash: { + type: 'keyword', + ignore_above: 1024, + }, + start_address_module: { + type: 'keyword', + ignore_above: 1024, + }, + token: { + properties: { + domain: { + type: 'keyword', + ignore_above: 1024, + }, + elevation: { + type: 'boolean', + }, + elevation_type: { + type: 'keyword', + ignore_above: 1024, + }, + impersonation_level: { + type: 'keyword', + ignore_above: 1024, + }, + integrity_level: { + type: 'long', + }, + integrity_level_name: { + type: 'keyword', + ignore_above: 1024, + }, + is_appcontainer: { + type: 'boolean', + }, + privileges: { + type: 'nested', + properties: { + description: { + type: 'keyword', + ignore_above: 1024, + }, + enabled: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + sid: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + uptime: { + type: 'long', + }, + }, + }, + id: { + type: 'long', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + title: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + uptime: { + type: 'long', + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + }, + }, + agent: { + properties: { + ephemeral_id: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + cloud: { + properties: { + account: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + instance: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + project: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + provider: { + type: 'keyword', + ignore_above: 1024, + }, + region: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + container: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + image: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + tag: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + data_stream: { + properties: { + dataset: { + type: 'constant_keyword', + value: 'endpoint.alerts', + }, + namespace: { + type: 'constant_keyword', + value: 'default', + }, + type: { + type: 'constant_keyword', + value: 'logs', + }, + }, + }, + destination: { + properties: { + geo: { + properties: { + city_name: { + type: 'keyword', + ignore_above: 1024, + }, + continent_code: { + type: 'keyword', + ignore_above: 1024, + }, + continent_name: { + type: 'keyword', + ignore_above: 1024, + }, + country_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + country_name: { + type: 'keyword', + ignore_above: 1024, + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + postal_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_name: { + type: 'keyword', + ignore_above: 1024, + }, + timezone: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + ip: { + type: 'ip', + }, + }, + }, + dll: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + compile_time: { + type: 'date', + }, + malware_classification: { + properties: { + features: { + enabled: false, + properties: { + data: { + properties: { + buffer: { + type: 'keyword', + ignore_above: 1024, + }, + decompressed_size: { + type: 'long', + }, + encoding: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + threshold: { + type: 'double', + }, + upx_packed: { + type: 'boolean', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + mapped_address: { + type: 'unsigned_long', + }, + mapped_size: { + type: 'unsigned_long', + }, + }, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + dns: { + properties: { + question: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + ecs: { + properties: { + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + elastic: { + properties: { + agent: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + event: { + properties: { + action: { + type: 'keyword', + ignore_above: 1024, + }, + agent_id_status: { + type: 'keyword', + ignore_above: 1024, + }, + category: { + type: 'keyword', + ignore_above: 1024, + }, + code: { + type: 'keyword', + ignore_above: 1024, + }, + created: { + type: 'date', + }, + dataset: { + type: 'keyword', + ignore_above: 1024, + }, + hash: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + ingested: { + type: 'date', + format: 'strict_date_time_no_millis||strict_date_optional_time||epoch_millis', + }, + kind: { + type: 'keyword', + ignore_above: 1024, + }, + module: { + type: 'keyword', + ignore_above: 1024, + }, + outcome: { + type: 'keyword', + ignore_above: 1024, + }, + provider: { + type: 'keyword', + ignore_above: 1024, + }, + risk_score: { + type: 'float', + }, + sequence: { + type: 'long', + }, + severity: { + type: 'long', + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + file: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + entry_modified: { + type: 'double', + }, + macro: { + properties: { + code_page: { + type: 'long', + }, + collection: { + properties: { + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + errors: { + type: 'nested', + properties: { + count: { + type: 'long', + }, + error_type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + file_extension: { + type: 'keyword', + ignore_above: 1024, + }, + project_file: { + properties: { + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + stream: { + type: 'nested', + properties: { + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + raw_code: { + type: 'keyword', + ignore_above: 1024, + }, + raw_code_size: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + malware_classification: { + properties: { + features: { + enabled: false, + properties: { + data: { + properties: { + buffer: { + type: 'keyword', + ignore_above: 1024, + }, + decompressed_size: { + type: 'long', + }, + encoding: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + threshold: { + type: 'double', + }, + upx_packed: { + type: 'boolean', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + original: { + properties: { + gid: { + type: 'keyword', + ignore_above: 1024, + }, + group: { + type: 'keyword', + ignore_above: 1024, + }, + mode: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + owner: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + uid: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + quarantine_message: { + type: 'keyword', + ignore_above: 1024, + }, + quarantine_path: { + type: 'keyword', + ignore_above: 1024, + }, + quarantine_result: { + type: 'boolean', + }, + temp_file_path: { + type: 'keyword', + ignore_above: 1024, + }, + windows: { + properties: { + zone_identifier: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + accessed: { + type: 'date', + }, + attributes: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + created: { + type: 'date', + }, + ctime: { + type: 'date', + }, + device: { + type: 'keyword', + ignore_above: 1024, + }, + directory: { + type: 'keyword', + ignore_above: 1024, + }, + drive_letter: { + type: 'keyword', + ignore_above: 1, + }, + extension: { + type: 'keyword', + ignore_above: 1024, + }, + gid: { + type: 'keyword', + ignore_above: 1024, + }, + group: { + type: 'keyword', + ignore_above: 1024, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + inode: { + type: 'keyword', + ignore_above: 1024, + }, + mime_type: { + type: 'keyword', + ignore_above: 1024, + }, + mode: { + type: 'keyword', + ignore_above: 1024, + }, + mtime: { + type: 'date', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + owner: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + size: { + type: 'long', + }, + target_path: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + uid: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + group: { + properties: { + Ext: { + properties: { + real: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + host: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + boot: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + geo: { + properties: { + city_name: { + type: 'keyword', + ignore_above: 1024, + }, + continent_code: { + type: 'keyword', + ignore_above: 1024, + }, + continent_name: { + type: 'keyword', + ignore_above: 1024, + }, + country_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + country_name: { + type: 'keyword', + ignore_above: 1024, + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + postal_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_name: { + type: 'keyword', + ignore_above: 1024, + }, + timezone: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + hostname: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + ip: { + type: 'ip', + }, + mac: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + os: { + properties: { + Ext: { + properties: { + variant: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + family: { + type: 'keyword', + ignore_above: 1024, + }, + full: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + kernel: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + platform: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + pid_ns_ino: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + uptime: { + type: 'long', + }, + user: { + properties: { + Ext: { + properties: { + real: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + email: { + type: 'keyword', + ignore_above: 1024, + }, + full_name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + group: { + properties: { + Ext: { + properties: { + real: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + hash: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + }, + }, + message: { + type: 'match_only_text', + }, + orchestrator: { + properties: { + cluster: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + namespace: { + type: 'keyword', + ignore_above: 1024, + }, + resource: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + process: { + properties: { + Ext: { + properties: { + ancestry: { + type: 'keyword', + ignore_above: 1024, + }, + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + authentication_id: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + dll: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + compile_time: { + type: 'date', + }, + mapped_address: { + type: 'unsigned_long', + }, + mapped_size: { + type: 'unsigned_long', + }, + }, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + malware_classification: { + properties: { + features: { + enabled: false, + properties: { + data: { + properties: { + buffer: { + type: 'keyword', + ignore_above: 1024, + }, + decompressed_size: { + type: 'long', + }, + encoding: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + threshold: { + type: 'double', + }, + upx_packed: { + type: 'boolean', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + memory_region: { + properties: { + allocation_base: { + type: 'unsigned_long', + }, + allocation_protection: { + type: 'keyword', + ignore_above: 1024, + }, + allocation_size: { + type: 'unsigned_long', + }, + allocation_type: { + type: 'keyword', + ignore_above: 1024, + }, + bytes_address: { + type: 'unsigned_long', + }, + bytes_allocation_offset: { + type: 'unsigned_long', + }, + bytes_compressed: { + type: 'keyword', + index: false, + doc_values: false, + }, + bytes_compressed_present: { + type: 'boolean', + }, + malware_signature: { + properties: { + all_names: { + type: 'keyword', + ignore_above: 1024, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + primary: { + properties: { + matches: { + type: 'keyword', + index: false, + doc_values: false, + }, + signature: { + properties: { + hash: { + type: 'nested', + properties: { + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + mapped_path: { + type: 'keyword', + ignore_above: 1024, + }, + mapped_pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + mapped_pe_detected: { + type: 'boolean', + }, + memory_pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + memory_pe_detected: { + type: 'boolean', + }, + region_base: { + type: 'unsigned_long', + }, + region_protection: { + type: 'keyword', + ignore_above: 1024, + }, + region_size: { + type: 'unsigned_long', + }, + region_state: { + type: 'keyword', + ignore_above: 1024, + }, + strings: { + type: 'keyword', + index: false, + doc_values: false, + }, + }, + }, + protection: { + type: 'keyword', + ignore_above: 1024, + }, + services: { + type: 'keyword', + ignore_above: 1024, + }, + session: { + type: 'keyword', + ignore_above: 1024, + }, + token: { + properties: { + domain: { + type: 'keyword', + ignore_above: 1024, + }, + elevation: { + type: 'boolean', + }, + elevation_type: { + type: 'keyword', + ignore_above: 1024, + }, + impersonation_level: { + type: 'keyword', + ignore_above: 1024, + }, + integrity_level: { + type: 'long', + }, + integrity_level_name: { + type: 'keyword', + ignore_above: 1024, + }, + is_appcontainer: { + type: 'boolean', + }, + privileges: { + type: 'nested', + properties: { + description: { + type: 'keyword', + ignore_above: 1024, + }, + enabled: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + sid: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + entry_leader: { + properties: { + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + entry_meta: { + properties: { + source: { + properties: { + ip: { + type: 'ip', + }, + }, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + parent: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + session_leader: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + start: { + type: 'date', + }, + }, + }, + start: { + type: 'date', + }, + }, + }, + pid: { + type: 'long', + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + same_as_process: { + type: 'boolean', + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + env_vars: { + type: 'object', + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + exit_code: { + type: 'long', + }, + group_leader: { + properties: { + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + pid: { + type: 'long', + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + same_as_process: { + type: 'boolean', + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + parent: { + properties: { + Ext: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + dll: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + compile_time: { + type: 'date', + }, + mapped_address: { + type: 'unsigned_long', + }, + mapped_size: { + type: 'unsigned_long', + }, + }, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + protection: { + type: 'keyword', + ignore_above: 1024, + }, + real: { + properties: { + pid: { + type: 'long', + }, + }, + }, + token: { + properties: { + domain: { + type: 'keyword', + ignore_above: 1024, + }, + elevation: { + type: 'boolean', + }, + elevation_type: { + type: 'keyword', + ignore_above: 1024, + }, + impersonation_level: { + type: 'keyword', + ignore_above: 1024, + }, + integrity_level: { + type: 'long', + }, + integrity_level_name: { + type: 'keyword', + ignore_above: 1024, + }, + is_appcontainer: { + type: 'boolean', + }, + privileges: { + type: 'nested', + properties: { + description: { + type: 'keyword', + ignore_above: 1024, + }, + enabled: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + sid: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + exit_code: { + type: 'long', + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + group_leader: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + start: { + type: 'date', + }, + }, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + pgid: { + type: 'long', + }, + pid: { + type: 'long', + }, + ppid: { + type: 'long', + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + thread: { + properties: { + id: { + type: 'long', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + title: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + uptime: { + type: 'long', + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + pe: { + properties: { + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + pgid: { + type: 'long', + }, + pid: { + type: 'long', + }, + ppid: { + type: 'long', + }, + previous: { + properties: { + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + session_leader: { + properties: { + args: { + type: 'keyword', + ignore_above: 1024, + }, + args_count: { + type: 'long', + }, + command_line: { + type: 'wildcard', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + executable: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + interactive: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + parent: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + session_leader: { + properties: { + entity_id: { + type: 'keyword', + ignore_above: 1024, + }, + pid: { + type: 'long', + }, + start: { + type: 'date', + }, + }, + }, + start: { + type: 'date', + }, + }, + }, + pid: { + type: 'long', + }, + real_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + real_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + same_as_process: { + type: 'boolean', + }, + saved_group: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + saved_user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + start: { + type: 'date', + }, + supplemental_groups: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + thread: { + properties: { + Ext: { + properties: { + call_stack: { + enabled: false, + properties: { + instruction_pointer: { + type: 'keyword', + ignore_above: 1024, + }, + memory_section: { + properties: { + memory_address: { + type: 'keyword', + index: false, + doc_values: false, + }, + memory_size: { + type: 'keyword', + index: false, + doc_values: false, + }, + protection: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + module_name: { + type: 'keyword', + index: false, + doc_values: false, + }, + module_path: { + type: 'keyword', + ignore_above: 1024, + }, + rva: { + type: 'keyword', + ignore_above: 1024, + }, + symbol_info: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + call_stack_final_user_module: { + type: 'nested', + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + hash: { + properties: { + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + call_stack_summary: { + type: 'keyword', + ignore_above: 1024, + }, + parameter: { + type: 'unsigned_long', + }, + parameter_bytes_compressed: { + type: 'keyword', + index: false, + doc_values: false, + }, + parameter_bytes_compressed_present: { + type: 'boolean', + }, + service: { + type: 'keyword', + ignore_above: 1024, + }, + start: { + type: 'date', + }, + start_address: { + type: 'unsigned_long', + }, + start_address_allocation_offset: { + type: 'unsigned_long', + }, + start_address_bytes: { + type: 'keyword', + ignore_above: 1024, + }, + start_address_bytes_disasm: { + type: 'keyword', + ignore_above: 1024, + }, + start_address_bytes_disasm_hash: { + type: 'keyword', + ignore_above: 1024, + }, + start_address_module: { + type: 'keyword', + ignore_above: 1024, + }, + token: { + properties: { + domain: { + type: 'keyword', + ignore_above: 1024, + }, + elevation: { + type: 'boolean', + }, + elevation_type: { + type: 'keyword', + ignore_above: 1024, + }, + impersonation_level: { + type: 'keyword', + ignore_above: 1024, + }, + integrity_level: { + type: 'long', + }, + integrity_level_name: { + type: 'keyword', + ignore_above: 1024, + }, + is_appcontainer: { + type: 'boolean', + }, + privileges: { + type: 'nested', + properties: { + description: { + type: 'keyword', + ignore_above: 1024, + }, + enabled: { + type: 'boolean', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + sid: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + user: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + uptime: { + type: 'long', + }, + }, + }, + id: { + type: 'long', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + title: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + tty: { + properties: { + char_device: { + properties: { + major: { + type: 'long', + }, + minor: { + type: 'long', + }, + }, + }, + }, + }, + uptime: { + type: 'long', + }, + user: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + working_directory: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + }, + }, + registry: { + properties: { + data: { + properties: { + strings: { + type: 'wildcard', + ignore_above: 1024, + }, + }, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + value: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + rule: { + properties: { + author: { + type: 'keyword', + ignore_above: 1024, + }, + category: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + license: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + reference: { + type: 'keyword', + ignore_above: 1024, + }, + ruleset: { + type: 'keyword', + ignore_above: 1024, + }, + uuid: { + type: 'keyword', + ignore_above: 1024, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + source: { + properties: { + geo: { + properties: { + city_name: { + type: 'keyword', + ignore_above: 1024, + }, + continent_code: { + type: 'keyword', + ignore_above: 1024, + }, + continent_name: { + type: 'keyword', + ignore_above: 1024, + }, + country_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + country_name: { + type: 'keyword', + ignore_above: 1024, + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + postal_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_name: { + type: 'keyword', + ignore_above: 1024, + }, + timezone: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + ip: { + type: 'ip', + }, + }, + }, + threat: { + properties: { + enrichments: { + type: 'nested', + properties: { + indicator: { + properties: { + file: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + device: { + properties: { + bus_type: { + type: 'keyword', + ignore_above: 1024, + }, + dos_name: { + type: 'keyword', + ignore_above: 1024, + }, + nt_name: { + type: 'keyword', + ignore_above: 1024, + }, + product_id: { + type: 'keyword', + ignore_above: 1024, + }, + serial_number: { + type: 'keyword', + ignore_above: 1024, + }, + vendor_id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + entropy: { + type: 'double', + }, + entry_modified: { + type: 'double', + }, + header_bytes: { + type: 'keyword', + ignore_above: 1024, + }, + header_data: { + type: 'text', + }, + malware_classification: { + properties: { + features: { + properties: { + data: { + properties: { + buffer: { + type: 'keyword', + ignore_above: 1024, + }, + decompressed_size: { + type: 'long', + }, + encoding: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + threshold: { + type: 'double', + }, + upx_packed: { + type: 'boolean', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + malware_signature: { + type: 'nested', + properties: { + all_names: { + type: 'text', + }, + identifier: { + type: 'text', + }, + primary: { + type: 'nested', + properties: { + matches: { + type: 'nested', + }, + signature: { + type: 'nested', + properties: { + hash: { + type: 'nested', + properties: { + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + secondary: { + type: 'nested', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + monotonic_id: { + type: 'unsigned_long', + }, + original: { + properties: { + gid: { + type: 'keyword', + ignore_above: 1024, + }, + group: { + type: 'keyword', + ignore_above: 1024, + }, + mode: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + owner: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + uid: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + quarantine_message: { + type: 'keyword', + ignore_above: 1024, + }, + quarantine_path: { + type: 'keyword', + ignore_above: 1024, + }, + quarantine_result: { + type: 'boolean', + }, + temp_file_path: { + type: 'keyword', + ignore_above: 1024, + }, + windows: { + properties: { + zone_identifier: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + accessed: { + type: 'date', + }, + attributes: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + created: { + type: 'date', + }, + ctime: { + type: 'date', + }, + device: { + type: 'keyword', + ignore_above: 1024, + }, + directory: { + type: 'keyword', + ignore_above: 1024, + }, + drive_letter: { + type: 'keyword', + ignore_above: 1, + }, + elf: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + byte_order: { + type: 'keyword', + ignore_above: 1024, + }, + cpu_type: { + type: 'keyword', + ignore_above: 1024, + }, + creation_date: { + type: 'date', + }, + exports: { + type: 'flattened', + }, + header: { + properties: { + abi_version: { + type: 'keyword', + ignore_above: 1024, + }, + class: { + type: 'keyword', + ignore_above: 1024, + }, + data: { + type: 'keyword', + ignore_above: 1024, + }, + entrypoint: { + type: 'long', + }, + object_version: { + type: 'keyword', + ignore_above: 1024, + }, + os_abi: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + imports: { + type: 'flattened', + }, + sections: { + type: 'nested', + properties: { + chi2: { + type: 'long', + }, + entropy: { + type: 'long', + }, + flags: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + physical_offset: { + type: 'keyword', + ignore_above: 1024, + }, + physical_size: { + type: 'long', + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + virtual_address: { + type: 'long', + }, + virtual_size: { + type: 'long', + }, + }, + }, + segments: { + type: 'nested', + properties: { + sections: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + shared_libraries: { + type: 'keyword', + ignore_above: 1024, + }, + telfhash: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + extension: { + type: 'keyword', + ignore_above: 1024, + }, + gid: { + type: 'keyword', + ignore_above: 1024, + }, + group: { + type: 'keyword', + ignore_above: 1024, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + ssdeep: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + inode: { + type: 'keyword', + ignore_above: 1024, + }, + mime_type: { + type: 'keyword', + ignore_above: 1024, + }, + mode: { + type: 'keyword', + ignore_above: 1024, + }, + mtime: { + type: 'date', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + owner: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + pe: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + size: { + type: 'long', + }, + target_path: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + uid: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + first_seen: { + type: 'date', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + ignore_above: 1024, + }, + continent_code: { + type: 'keyword', + ignore_above: 1024, + }, + continent_name: { + type: 'keyword', + ignore_above: 1024, + }, + country_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + country_name: { + type: 'keyword', + ignore_above: 1024, + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + postal_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_name: { + type: 'keyword', + ignore_above: 1024, + }, + timezone: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + ip: { + type: 'ip', + }, + last_seen: { + type: 'date', + }, + marking: { + properties: { + tlp: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + modified_at: { + type: 'date', + }, + port: { + type: 'long', + }, + provider: { + type: 'keyword', + ignore_above: 1024, + }, + reference: { + type: 'keyword', + ignore_above: 1024, + }, + registry: { + properties: { + data: { + properties: { + bytes: { + type: 'keyword', + ignore_above: 1024, + }, + strings: { + type: 'wildcard', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + hive: { + type: 'keyword', + ignore_above: 1024, + }, + key: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + value: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + scanner_stats: { + type: 'long', + }, + sightings: { + type: 'long', + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + url: { + properties: { + domain: { + type: 'keyword', + ignore_above: 1024, + }, + extension: { + type: 'keyword', + ignore_above: 1024, + }, + fragment: { + type: 'keyword', + ignore_above: 1024, + }, + full: { + type: 'wildcard', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + original: { + type: 'wildcard', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + password: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'wildcard', + ignore_above: 1024, + }, + port: { + type: 'long', + }, + query: { + type: 'keyword', + ignore_above: 1024, + }, + registered_domain: { + type: 'keyword', + ignore_above: 1024, + }, + scheme: { + type: 'keyword', + ignore_above: 1024, + }, + subdomain: { + type: 'keyword', + ignore_above: 1024, + }, + top_level_domain: { + type: 'keyword', + ignore_above: 1024, + }, + username: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + ignore_above: 1024, + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + ignore_above: 1024, + }, + country: { + type: 'keyword', + ignore_above: 1024, + }, + distinguished_name: { + type: 'keyword', + ignore_above: 1024, + }, + locality: { + type: 'keyword', + ignore_above: 1024, + }, + organization: { + type: 'keyword', + ignore_above: 1024, + }, + organizational_unit: { + type: 'keyword', + ignore_above: 1024, + }, + state_or_province: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + ignore_above: 1024, + }, + public_key_curve: { + type: 'keyword', + ignore_above: 1024, + }, + public_key_exponent: { + type: 'long', + index: false, + doc_values: false, + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + ignore_above: 1024, + }, + signature_algorithm: { + type: 'keyword', + ignore_above: 1024, + }, + subject: { + properties: { + common_name: { + type: 'keyword', + ignore_above: 1024, + }, + country: { + type: 'keyword', + ignore_above: 1024, + }, + distinguished_name: { + type: 'keyword', + ignore_above: 1024, + }, + locality: { + type: 'keyword', + ignore_above: 1024, + }, + organization: { + type: 'keyword', + ignore_above: 1024, + }, + organizational_unit: { + type: 'keyword', + ignore_above: 1024, + }, + state_or_province: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + version_number: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + matched: { + properties: { + atomic: { + type: 'keyword', + ignore_above: 1024, + }, + field: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + index: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + framework: { + type: 'keyword', + ignore_above: 1024, + }, + group: { + properties: { + alias: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + reference: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + indicator: { + properties: { + as: { + properties: { + number: { + type: 'long', + }, + organization: { + properties: { + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + }, + }, + confidence: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + email: { + properties: { + address: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + file: { + properties: { + Ext: { + properties: { + code_signature: { + type: 'nested', + properties: { + exists: { + type: 'boolean', + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + device: { + properties: { + bus_type: { + type: 'keyword', + ignore_above: 1024, + }, + dos_name: { + type: 'keyword', + ignore_above: 1024, + }, + nt_name: { + type: 'keyword', + ignore_above: 1024, + }, + product_id: { + type: 'keyword', + ignore_above: 1024, + }, + serial_number: { + type: 'keyword', + ignore_above: 1024, + }, + vendor_id: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + entropy: { + type: 'double', + }, + entry_modified: { + type: 'double', + }, + header_bytes: { + type: 'keyword', + ignore_above: 1024, + }, + header_data: { + type: 'text', + }, + malware_classification: { + properties: { + features: { + properties: { + data: { + properties: { + buffer: { + type: 'keyword', + ignore_above: 1024, + }, + decompressed_size: { + type: 'long', + }, + encoding: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + identifier: { + type: 'keyword', + ignore_above: 1024, + }, + score: { + type: 'double', + }, + threshold: { + type: 'double', + }, + upx_packed: { + type: 'boolean', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + malware_signature: { + type: 'nested', + properties: { + all_names: { + type: 'text', + }, + identifier: { + type: 'text', + }, + primary: { + type: 'nested', + properties: { + matches: { + type: 'nested', + }, + signature: { + type: 'nested', + properties: { + hash: { + type: 'nested', + properties: { + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + secondary: { + type: 'nested', + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + monotonic_id: { + type: 'unsigned_long', + }, + original: { + properties: { + gid: { + type: 'keyword', + ignore_above: 1024, + }, + group: { + type: 'keyword', + ignore_above: 1024, + }, + mode: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + owner: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + uid: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + quarantine_message: { + type: 'keyword', + ignore_above: 1024, + }, + quarantine_path: { + type: 'keyword', + ignore_above: 1024, + }, + quarantine_result: { + type: 'boolean', + }, + temp_file_path: { + type: 'keyword', + ignore_above: 1024, + }, + windows: { + properties: { + zone_identifier: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + accessed: { + type: 'date', + }, + attributes: { + type: 'keyword', + ignore_above: 1024, + }, + code_signature: { + properties: { + exists: { + type: 'boolean', + }, + signing_id: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, + subject_name: { + type: 'keyword', + ignore_above: 1024, + }, + team_id: { + type: 'keyword', + ignore_above: 1024, + }, + trusted: { + type: 'boolean', + }, + valid: { + type: 'boolean', + }, + }, + }, + created: { + type: 'date', + }, + ctime: { + type: 'date', + }, + device: { + type: 'keyword', + ignore_above: 1024, + }, + directory: { + type: 'keyword', + ignore_above: 1024, + }, + drive_letter: { + type: 'keyword', + ignore_above: 1, + }, + elf: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + byte_order: { + type: 'keyword', + ignore_above: 1024, + }, + cpu_type: { + type: 'keyword', + ignore_above: 1024, + }, + creation_date: { + type: 'date', + }, + exports: { + type: 'flattened', + }, + header: { + properties: { + abi_version: { + type: 'keyword', + ignore_above: 1024, + }, + class: { + type: 'keyword', + ignore_above: 1024, + }, + data: { + type: 'keyword', + ignore_above: 1024, + }, + entrypoint: { + type: 'long', + }, + object_version: { + type: 'keyword', + ignore_above: 1024, + }, + os_abi: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + version: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + imports: { + type: 'flattened', + }, + sections: { + type: 'nested', + properties: { + chi2: { + type: 'long', + }, + entropy: { + type: 'long', + }, + flags: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + physical_offset: { + type: 'keyword', + ignore_above: 1024, + }, + physical_size: { + type: 'long', + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + virtual_address: { + type: 'long', + }, + virtual_size: { + type: 'long', + }, + }, + }, + segments: { + type: 'nested', + properties: { + sections: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + shared_libraries: { + type: 'keyword', + ignore_above: 1024, + }, + telfhash: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + extension: { + type: 'keyword', + ignore_above: 1024, + }, + gid: { + type: 'keyword', + ignore_above: 1024, + }, + group: { + type: 'keyword', + ignore_above: 1024, + }, + hash: { + properties: { + md5: { + type: 'keyword', + ignore_above: 1024, + }, + sha1: { + type: 'keyword', + ignore_above: 1024, + }, + sha256: { + type: 'keyword', + ignore_above: 1024, + }, + sha512: { + type: 'keyword', + ignore_above: 1024, + }, + ssdeep: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + inode: { + type: 'keyword', + ignore_above: 1024, + }, + mime_type: { + type: 'keyword', + ignore_above: 1024, + }, + mode: { + type: 'keyword', + ignore_above: 1024, + }, + mtime: { + type: 'date', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + owner: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + pe: { + properties: { + architecture: { + type: 'keyword', + ignore_above: 1024, + }, + company: { + type: 'keyword', + ignore_above: 1024, + }, + description: { + type: 'keyword', + ignore_above: 1024, + }, + file_version: { + type: 'keyword', + ignore_above: 1024, + }, + imphash: { + type: 'keyword', + ignore_above: 1024, + }, + original_file_name: { + type: 'keyword', + ignore_above: 1024, + }, + product: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + size: { + type: 'long', + }, + target_path: { + type: 'keyword', + ignore_above: 1024, + fields: { + caseless: { + type: 'keyword', + ignore_above: 1024, + normalizer: 'lowercase', + }, + text: { + type: 'text', + }, + }, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + uid: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + first_seen: { + type: 'date', + }, + geo: { + properties: { + city_name: { + type: 'keyword', + ignore_above: 1024, + }, + continent_code: { + type: 'keyword', + ignore_above: 1024, + }, + continent_name: { + type: 'keyword', + ignore_above: 1024, + }, + country_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + country_name: { + type: 'keyword', + ignore_above: 1024, + }, + location: { + type: 'geo_point', + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + postal_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_iso_code: { + type: 'keyword', + ignore_above: 1024, + }, + region_name: { + type: 'keyword', + ignore_above: 1024, + }, + timezone: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + ip: { + type: 'ip', + }, + last_seen: { + type: 'date', + }, + marking: { + properties: { + tlp: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + modified_at: { + type: 'date', + }, + port: { + type: 'long', + }, + provider: { + type: 'keyword', + ignore_above: 1024, + }, + reference: { + type: 'keyword', + ignore_above: 1024, + }, + registry: { + properties: { + data: { + properties: { + bytes: { + type: 'keyword', + ignore_above: 1024, + }, + strings: { + type: 'wildcard', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + hive: { + type: 'keyword', + ignore_above: 1024, + }, + key: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'keyword', + ignore_above: 1024, + }, + value: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + scanner_stats: { + type: 'long', + }, + sightings: { + type: 'long', + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + url: { + properties: { + domain: { + type: 'keyword', + ignore_above: 1024, + }, + extension: { + type: 'keyword', + ignore_above: 1024, + }, + fragment: { + type: 'keyword', + ignore_above: 1024, + }, + full: { + type: 'wildcard', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + original: { + type: 'wildcard', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + password: { + type: 'keyword', + ignore_above: 1024, + }, + path: { + type: 'wildcard', + ignore_above: 1024, + }, + port: { + type: 'long', + }, + query: { + type: 'keyword', + ignore_above: 1024, + }, + registered_domain: { + type: 'keyword', + ignore_above: 1024, + }, + scheme: { + type: 'keyword', + ignore_above: 1024, + }, + subdomain: { + type: 'keyword', + ignore_above: 1024, + }, + top_level_domain: { + type: 'keyword', + ignore_above: 1024, + }, + username: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + x509: { + properties: { + alternative_names: { + type: 'keyword', + ignore_above: 1024, + }, + issuer: { + properties: { + common_name: { + type: 'keyword', + ignore_above: 1024, + }, + country: { + type: 'keyword', + ignore_above: 1024, + }, + distinguished_name: { + type: 'keyword', + ignore_above: 1024, + }, + locality: { + type: 'keyword', + ignore_above: 1024, + }, + organization: { + type: 'keyword', + ignore_above: 1024, + }, + organizational_unit: { + type: 'keyword', + ignore_above: 1024, + }, + state_or_province: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + not_after: { + type: 'date', + }, + not_before: { + type: 'date', + }, + public_key_algorithm: { + type: 'keyword', + ignore_above: 1024, + }, + public_key_curve: { + type: 'keyword', + ignore_above: 1024, + }, + public_key_exponent: { + type: 'long', + index: false, + doc_values: false, + }, + public_key_size: { + type: 'long', + }, + serial_number: { + type: 'keyword', + ignore_above: 1024, + }, + signature_algorithm: { + type: 'keyword', + ignore_above: 1024, + }, + subject: { + properties: { + common_name: { + type: 'keyword', + ignore_above: 1024, + }, + country: { + type: 'keyword', + ignore_above: 1024, + }, + distinguished_name: { + type: 'keyword', + ignore_above: 1024, + }, + locality: { + type: 'keyword', + ignore_above: 1024, + }, + organization: { + type: 'keyword', + ignore_above: 1024, + }, + organizational_unit: { + type: 'keyword', + ignore_above: 1024, + }, + state_or_province: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + version_number: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + software: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + platforms: { + type: 'keyword', + ignore_above: 1024, + }, + reference: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + tactic: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + reference: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + technique: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + reference: { + type: 'keyword', + ignore_above: 1024, + }, + subtechnique: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + reference: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + }, + }, + user: { + properties: { + Ext: { + properties: { + real: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + email: { + type: 'keyword', + ignore_above: 1024, + }, + full_name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + group: { + properties: { + Ext: { + properties: { + real: { + properties: { + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + }, + }, + domain: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + }, + }, + }, + hash: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + name: { + type: 'keyword', + ignore_above: 1024, + fields: { + text: { + type: 'match_only_text', + }, + }, + }, + }, + }, + }, + }, + }, +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/helpers.test.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/helpers.test.ts new file mode 100644 index 00000000000000..c44104451b1d8b --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/helpers.test.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getIncompatibleStatColor } from './helpers'; + +describe('getIncompatibleStatColor', () => { + test('it returns the expected color when incompatible is greater than zero', () => { + const incompatible = 123; + + expect(getIncompatibleStatColor(incompatible)).toBe('#bd271e'); + }); + + test('it returns undefined when incompatible is zero', () => { + const incompatible = 0; + + expect(getIncompatibleStatColor(incompatible)).toBeUndefined(); + }); + + test('it returns undefined when incompatible is undefined', () => { + const incompatible = undefined; + + expect(getIncompatibleStatColor(incompatible)).toBeUndefined(); + }); +}); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/helpers.ts new file mode 100644 index 00000000000000..ac1fead3d187b8 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/helpers.ts @@ -0,0 +1,335 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + IlmExplainLifecycleLifecycleExplain, + IndicesStatsIndicesStats, +} from '@elastic/elasticsearch/lib/api/types'; +import { has, sortBy } from 'lodash/fp'; +import { getIlmPhase } from './data_quality_panel/pattern/helpers'; +import { getFillColor } from './data_quality_panel/tabs/summary_tab/helpers'; + +import * as i18n from './translations'; + +import type { + DataQualityCheckResult, + EcsMetadata, + EnrichedFieldMetadata, + ErrorSummary, + PartitionedFieldMetadata, + PartitionedFieldMetadataStats, + PatternRollup, + UnallowedValueCount, +} from './types'; + +const EMPTY_INDEX_NAMES: string[] = []; + +export const getIndexNames = ({ + ilmExplain, + ilmPhases, + stats, +}: { + ilmExplain: Record | null; + ilmPhases: string[]; + stats: Record | null; +}): string[] => { + if (ilmExplain != null && stats != null) { + const allIndexNames = Object.keys(stats); + const filteredByIlmPhase = allIndexNames.filter((indexName) => + ilmPhases.includes(getIlmPhase(ilmExplain[indexName]) ?? '') + ); + + return filteredByIlmPhase; + } else { + return EMPTY_INDEX_NAMES; + } +}; + +export interface FieldType { + field: string; + type: string; +} + +function shouldReadKeys(value: unknown): value is Record { + return typeof value === 'object' && value !== null && !Array.isArray(value); +} + +const getNextPathWithoutProperties = ({ + key, + pathWithoutProperties, + value, +}: { + key: string; + pathWithoutProperties: string; + value: unknown; +}): string => { + if (!pathWithoutProperties) { + return key; + } + + if (shouldReadKeys(value) && key === 'properties') { + return `${pathWithoutProperties}`; // TODO: wrap required? + } else { + return `${pathWithoutProperties}.${key}`; + } +}; + +export function getFieldTypes(mappingsProperties: Record): FieldType[] { + if (!shouldReadKeys(mappingsProperties)) { + throw new TypeError(`Root value is not flatten-able, received ${mappingsProperties}`); + } + + const result: FieldType[] = []; + (function flatten(prefix, object, pathWithoutProperties) { + for (const [key, value] of Object.entries(object)) { + const path = prefix ? `${prefix}.${key}` : key; + + const nextPathWithoutProperties = getNextPathWithoutProperties({ + key, + pathWithoutProperties, + value, + }); + + if (shouldReadKeys(value)) { + flatten(path, value, nextPathWithoutProperties); + } else { + if (nextPathWithoutProperties.endsWith('.type')) { + const pathWithoutType = nextPathWithoutProperties.slice( + 0, + nextPathWithoutProperties.lastIndexOf('.type') + ); + + result.push({ + field: pathWithoutType, + type: `${value}`, + }); + } + } + } + })('', mappingsProperties, ''); + + return result; +} + +export const getEnrichedFieldMetadata = ({ + ecsMetadata, + fieldMetadata, + unallowedValues, +}: { + ecsMetadata: Record; + fieldMetadata: FieldType; + unallowedValues: Record; +}): EnrichedFieldMetadata => { + const { field, type } = fieldMetadata; + const indexInvalidValues = unallowedValues[field] ?? []; + + if (has(fieldMetadata.field, ecsMetadata)) { + return { + ...ecsMetadata[field], + indexFieldName: field, + indexFieldType: type, + indexInvalidValues, + hasEcsMetadata: true, + isEcsCompliant: type === ecsMetadata[field].type && indexInvalidValues.length === 0, + }; + } else { + return { + indexFieldName: field, + indexFieldType: type, + indexInvalidValues, + hasEcsMetadata: false, + isEcsCompliant: false, + }; + } +}; + +export const getMissingTimestampFieldMetadata = (): EnrichedFieldMetadata => ({ + description: i18n.TIMESTAMP_DESCRIPTION, + hasEcsMetadata: true, + indexFieldName: '@timestamp', + indexFieldType: '-', + indexInvalidValues: [], + isEcsCompliant: false, + type: 'date', +}); + +export const getPartitionedFieldMetadata = ( + enrichedFieldMetadata: EnrichedFieldMetadata[] +): PartitionedFieldMetadata => + enrichedFieldMetadata.reduce( + (acc, x) => ({ + all: [...acc.all, x], + ecsCompliant: x.isEcsCompliant ? [...acc.ecsCompliant, x] : acc.ecsCompliant, + custom: !x.hasEcsMetadata ? [...acc.custom, x] : acc.custom, + incompatible: + x.hasEcsMetadata && !x.isEcsCompliant ? [...acc.incompatible, x] : acc.incompatible, + }), + { + all: [], + ecsCompliant: [], + custom: [], + incompatible: [], + } + ); + +export const getPartitionedFieldMetadataStats = ( + partitionedFieldMetadata: PartitionedFieldMetadata +): PartitionedFieldMetadataStats => { + const { all, ecsCompliant, custom, incompatible } = partitionedFieldMetadata; + + return { + all: all.length, + ecsCompliant: ecsCompliant.length, + custom: custom.length, + incompatible: incompatible.length, + }; +}; + +export const hasValidTimestampMapping = (enrichedFieldMetadata: EnrichedFieldMetadata[]): boolean => + enrichedFieldMetadata.some( + (x) => x.indexFieldName === '@timestamp' && x.indexFieldType === 'date' + ); + +export const getDocsCount = ({ + indexName, + stats, +}: { + indexName: string; + stats: Record | null; +}): number => (stats && stats[indexName]?.total?.docs?.count) ?? 0; + +export const getTotalDocsCount = ({ + indexNames, + stats, +}: { + indexNames: string[]; + stats: Record | null; +}): number => + indexNames.reduce( + (acc: number, indexName: string) => acc + getDocsCount({ stats, indexName }), + 0 + ); + +export const EMPTY_STAT = '--'; + +/** + * Returns an i18n description of an an ILM phase + */ +export const getIlmPhaseDescription = (phase: string): string => { + switch (phase) { + case 'hot': + return i18n.HOT_DESCRIPTION; + case 'warm': + return i18n.WARM_DESCRIPTION; + case 'cold': + return i18n.COLD_DESCRIPTION; + case 'frozen': + return i18n.FROZEN_DESCRIPTION; + case 'unmanaged': + return i18n.UNMANAGED_DESCRIPTION; + default: + return ' '; + } +}; + +export const getPatternIlmPhaseDescription = ({ + indices, + pattern, + phase, +}: { + indices: number; + pattern: string; + phase: string; +}): string => { + switch (phase) { + case 'hot': + return i18n.HOT_PATTERN_TOOLTIP({ indices, pattern }); + case 'warm': + return i18n.WARM_PATTERN_TOOLTIP({ indices, pattern }); + case 'cold': + return i18n.COLD_PATTERN_TOOLTIP({ indices, pattern }); + case 'frozen': + return i18n.FROZEN_PATTERN_TOOLTIP({ indices, pattern }); + case 'unmanaged': + return i18n.UNMANAGED_PATTERN_TOOLTIP({ indices, pattern }); + default: + return ''; + } +}; + +export const getTotalPatternIncompatible = ( + results: Record | undefined +): number | undefined => { + if (results == null) { + return undefined; + } + + const allResults = Object.values(results); + + return allResults.reduce((acc, { incompatible }) => acc + (incompatible ?? 0), 0); +}; + +export const getTotalPatternIndicesChecked = (patternRollup: PatternRollup | undefined): number => { + if (patternRollup != null && patternRollup.results != null) { + const allResults = Object.values(patternRollup.results); + const nonErrorResults = allResults.filter(({ error }) => error == null); + + return nonErrorResults.length; + } else { + return 0; + } +}; + +export const getIncompatibleStatColor = (incompatible: number | undefined): string | undefined => + incompatible != null && incompatible > 0 ? getFillColor('incompatible') : undefined; + +export const getErrorSummary = ({ + error, + indexName, + pattern, +}: DataQualityCheckResult): ErrorSummary => ({ + error: String(error), + indexName, + pattern, +}); + +export const getErrorSummariesForRollup = ( + patternRollup: PatternRollup | undefined +): ErrorSummary[] => { + const maybePatternErrorSummary: ErrorSummary[] = + patternRollup != null && patternRollup.error != null + ? [{ pattern: patternRollup.pattern, indexName: null, error: patternRollup.error }] + : []; + + if (patternRollup != null && patternRollup.results != null) { + const unsortedResults: DataQualityCheckResult[] = Object.values(patternRollup.results); + const sortedResults = sortBy('indexName', unsortedResults); + + return sortedResults.reduce( + (acc, result) => [...acc, ...(result.error != null ? [getErrorSummary(result)] : [])], + maybePatternErrorSummary + ); + } else { + return maybePatternErrorSummary; + } +}; + +export const getErrorSummaries = ( + patternRollups: Record +): ErrorSummary[] => { + const allPatterns: string[] = Object.keys(patternRollups); + + // sort the patterns A-Z: + const sortedPatterns = [...allPatterns].sort((a, b) => { + return a.localeCompare(b); + }); + + return sortedPatterns.reduce( + (acc, pattern) => [...acc, ...getErrorSummariesForRollup(patternRollups[pattern])], + [] + ); +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ilm_phases_empty_prompt/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ilm_phases_empty_prompt/index.tsx new file mode 100644 index 00000000000000..1fbeec55deddbb --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ilm_phases_empty_prompt/index.tsx @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiEmptyPrompt, EuiSpacer, EuiText, EuiTitle } from '@elastic/eui'; +import React, { useMemo } from 'react'; +import styled from 'styled-components'; + +import { + COLD_DESCRIPTION, + FROZEN_DESCRIPTION, + HOT_DESCRIPTION, + UNMANAGED_DESCRIPTION, + WARM_DESCRIPTION, +} from '../translations'; +import * as i18n from './translations'; + +const Ul = styled.ul` + text-align: left; +`; + +const Li = styled.ul` + margin-bottom: ${({ theme }) => theme.eui.euiSizeS}; + text-align: left; +`; + +const IlmPhasesEmptyPromptComponent: React.FC = () => { + const title = useMemo(() =>

    {i18n.TITLE}

    , []); + const body = useMemo(() =>

    {i18n.BODY}

    , []); + const footer = useMemo( + () => ( + <> + +

    {i18n.ILM_PHASES_THAT_CAN_BE_CHECKED}

    +
    + + + +
      +
    • + {i18n.HOT} + {': '} + {HOT_DESCRIPTION} +
    • +
    • + {i18n.WARM} + {': '} + {WARM_DESCRIPTION} +
    • +
    • + {i18n.UNMANAGED} + {': '} + {UNMANAGED_DESCRIPTION} +
    • +
    + + + + +

    {i18n.ILM_PHASES_THAT_CANNOT_BE_CHECKED}

    +
    + + + {i18n.THE_FOLLOWING_ILM_PHASES} + + + + +
      +
    • + {i18n.COLD} + {': '} + {COLD_DESCRIPTION} +
    • +
    • + {i18n.FROZEN} + {': '} + {FROZEN_DESCRIPTION} +
    • +
    + + ), + [] + ); + + return ; +}; + +export const IlmPhasesEmptyPrompt = React.memo(IlmPhasesEmptyPromptComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ilm_phases_empty_prompt/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ilm_phases_empty_prompt/translations.ts new file mode 100644 index 00000000000000..080669c92c39aa --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/ilm_phases_empty_prompt/translations.ts @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const BODY = i18n.translate('ecsDataQualityDashboard.ilmPhasesEmptyPromptBody', { + defaultMessage: + 'Indices with these Index Lifecycle Management (ILM) phases will be checked for data quality', +}); + +export const COLD = i18n.translate('ecsDataQualityDashboard.ilmPhasesEmptyPromptColdLabel', { + defaultMessage: 'cold', +}); + +export const FROZEN = i18n.translate('ecsDataQualityDashboard.ilmPhasesEmptyPromptFrozenLabel', { + defaultMessage: 'frozen', +}); + +export const HOT = i18n.translate('ecsDataQualityDashboard.ilmPhasesEmptyPromptHotLabel', { + defaultMessage: 'hot', +}); + +export const ILM_PHASES_THAT_CAN_BE_CHECKED = i18n.translate( + 'ecsDataQualityDashboard.ilmPhasesEmptyPromptIlmPhasesThatCanBeCheckedSubtitle', + { + defaultMessage: 'ILM phases that can be checked for data quality', + } +); + +export const ILM_PHASES_THAT_CANNOT_BE_CHECKED = i18n.translate( + 'ecsDataQualityDashboard.ilmPhasesEmptyPromptIlmPhasesThatCannotBeCheckedSubtitle', + { + defaultMessage: 'ILM phases that cannot be checked', + } +); + +export const THE_FOLLOWING_ILM_PHASES = i18n.translate( + 'ecsDataQualityDashboard.ilmPhasesEmptyPromptITheFollowingIlmPhasesLabel', + { + defaultMessage: + 'The following ILM phases cannot be checked for data quality because they are slower to access', + } +); + +export const UNMANAGED = i18n.translate( + 'ecsDataQualityDashboard.ilmPhasesEmptyPromptUnmanagedLabel', + { + defaultMessage: 'unmanaged', + } +); + +export const WARM = i18n.translate('ecsDataQualityDashboard.ilmPhasesEmptyPromptWarmLabel', { + defaultMessage: 'warm', +}); + +export const TITLE = i18n.translate('ecsDataQualityDashboard.ilmPhasesEmptyPromptTitle', { + defaultMessage: 'Select one or more ILM phases', +}); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/index.tsx new file mode 100644 index 00000000000000..05ccaf9c4fc5e4 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/index.tsx @@ -0,0 +1,89 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + FlameElementEvent, + HeatmapElementEvent, + MetricElementEvent, + PartitionElementEvent, + Theme, + WordCloudElementEvent, + XYChartElementEvent, +} from '@elastic/charts'; +import React from 'react'; + +import { Body } from './data_quality_panel/body'; +import { IlmPhasesEmptyPrompt } from './ilm_phases_empty_prompt'; + +interface Props { + addSuccessToast: (toast: { title: string }) => void; + canUserCreateAndReadCases: () => boolean; + defaultNumberFormat: string; + getGroupByFieldsOnClick: ( + elements: Array< + | FlameElementEvent + | HeatmapElementEvent + | MetricElementEvent + | PartitionElementEvent + | WordCloudElementEvent + | XYChartElementEvent + > + ) => { + groupByField0: string; + groupByField1: string; + }; + ilmPhases: string[]; + lastChecked: string; + openCreateCaseFlyout: ({ + comments, + headerContent, + }: { + comments: string[]; + headerContent?: React.ReactNode; + }) => void; + patterns: string[]; + setLastChecked: (lastChecked: string) => void; + theme: Theme; +} + +/** Renders the `Data Quality` dashboard content */ +const DataQualityPanelComponent: React.FC = ({ + addSuccessToast, + canUserCreateAndReadCases, + defaultNumberFormat, + getGroupByFieldsOnClick, + ilmPhases, + lastChecked, + openCreateCaseFlyout, + patterns, + setLastChecked, + theme, +}) => { + if (ilmPhases.length === 0) { + return ; + } + + return ( + + ); +}; + +DataQualityPanelComponent.displayName = 'DataQualityPanelComponent'; + +/** Renders the `Data Quality` dashboard content */ +export const DataQualityPanel = React.memo(DataQualityPanelComponent); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/styles.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/styles.tsx new file mode 100644 index 00000000000000..6b05356d5de59a --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/styles.tsx @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiCode } from '@elastic/eui'; +import { euiThemeVars } from '@kbn/ui-theme'; +import styled from 'styled-components'; + +export const CodeDanger = styled(EuiCode)` + color: ${euiThemeVars.euiColorDanger}; +`; + +export const CodeSuccess = styled(EuiCode)` + color: ${euiThemeVars.euiColorSuccess}; +`; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/translations.ts new file mode 100644 index 00000000000000..771faa301cee34 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/translations.ts @@ -0,0 +1,257 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const ADD_TO_NEW_CASE = i18n.translate('ecsDataQualityDashboard.addToNewCaseButton', { + defaultMessage: 'Add to new case', +}); + +export const CANCEL = i18n.translate('ecsDataQualityDashboard.cancelButton', { + defaultMessage: 'Cancel', +}); + +export const CHECK_ALL = i18n.translate('ecsDataQualityDashboard.checkAllButton', { + defaultMessage: 'Check all', +}); + +export const CHECKING = (index: string) => + i18n.translate('ecsDataQualityDashboard.checkingLabel', { + values: { index }, + defaultMessage: 'Checking {index}', + }); + +export const COLLAPSE_BUTTON_LABEL = (collapsed: boolean) => + collapsed + ? i18n.translate('ecsDataQualityDashboard.collapseButtonLabelOpen', { + defaultMessage: 'Open', + }) + : i18n.translate('ecsDataQualityDashboard.collapseButtonLabelClosed', { + defaultMessage: 'Closed', + }); + +export const COLD_DESCRIPTION = i18n.translate('ecsDataQualityDashboard.coldDescription', { + defaultMessage: + 'The index is no longer being updated and is queried infrequently. The information still needs to be searchable, but it’s okay if those queries are slower.', +}); + +export const COLD_PATTERN_TOOLTIP = ({ indices, pattern }: { indices: number; pattern: string }) => + i18n.translate('ecsDataQualityDashboard.coldPatternTooltip', { + values: { indices, pattern }, + defaultMessage: + '{indices} {indices, plural, =1 {index} other {indices}} matching the {pattern} pattern {indices, plural, =1 {is} other {are}} cold. Cold indices are no longer being updated and are queried infrequently. The information still needs to be searchable, but it’s okay if those queries are slower.', + }); + +export const COPIED_RESULTS_TOAST_TITLE = i18n.translate( + 'ecsDataQualityDashboard.toasts.copiedResultsToastTitle', + { + defaultMessage: 'Copied results to the clipboard', + } +); + +export const COPY_TO_CLIPBOARD = i18n.translate('ecsDataQualityDashboard.copyToClipboardButton', { + defaultMessage: 'Copy to clipboard', +}); + +/** The subtitle displayed on the Data Quality dashboard */ +export const DATA_QUALITY_SUBTITLE: string = i18n.translate( + 'ecsDataQualityDashboard.ecsDataQualityDashboardSubtitle', + { + defaultMessage: 'Check index mappings and values for compatibility with the', + } +); + +export const DATA_QUALITY_TITLE = i18n.translate( + 'ecsDataQualityDashboard.ecsDataQualityDashboardTitle', + { + defaultMessage: 'Data quality', + } +); + +export const DEFAULT_PANEL_TITLE = i18n.translate('ecsDataQualityDashboard.defaultPanelTitle', { + defaultMessage: 'Check index mappings', +}); + +export const ECS_VERSION = i18n.translate('ecsDataQualityDashboard.ecsVersionStat', { + defaultMessage: 'ECS version', +}); + +export const ERROR_LOADING_ECS_METADATA = (details: string) => + i18n.translate('ecsDataQualityDashboard.errorLoadingEcsMetadataLabel', { + values: { details }, + defaultMessage: 'Error loading ECS metadata: {details}', + }); + +export const ERROR_LOADING_ECS_METADATA_TITLE = i18n.translate( + 'ecsDataQualityDashboard.emptyErrorPrompt.errorLoadingEcsMetadataTitle', + { + defaultMessage: 'Unable to load ECS metadata', + } +); + +export const ERROR_LOADING_ECS_VERSION = (details: string) => + i18n.translate('ecsDataQualityDashboard.errorLoadingEcsVersionLabel', { + values: { details }, + defaultMessage: 'Error loading ECS version: {details}', + }); + +export const ERROR_LOADING_ECS_VERSION_TITLE = i18n.translate( + 'ecsDataQualityDashboard.emptyErrorPrompt.errorLoadingEcsVersionTitle', + { + defaultMessage: 'Unable to load ECS version', + } +); + +export const ERROR_LOADING_ILM_EXPLAIN = (details: string) => + i18n.translate('ecsDataQualityDashboard.errorLoadingIlmExplainLabel', { + values: { details }, + defaultMessage: 'Error loading ILM Explain: {details}', + }); + +export const ERROR_LOADING_MAPPINGS = ({ + details, + patternOrIndexName, +}: { + details: string; + patternOrIndexName: string; +}) => + i18n.translate('ecsDataQualityDashboard.errorLoadingMappingsLabel', { + values: { details, patternOrIndexName }, + defaultMessage: 'Error loading mappings for {patternOrIndexName}: {details}', + }); + +export const ERROR_LOADING_STATS = (details: string) => + i18n.translate('ecsDataQualityDashboard.errorLoadingStatsLabel', { + values: { details }, + defaultMessage: 'Error loading stats: {details}', + }); + +export const ERROR_LOADING_UNALLOWED_VALUES = ({ + details, + indexName, +}: { + details: string; + indexName: string; +}) => + i18n.translate('ecsDataQualityDashboard.errorLoadingUnallowedValuesLabel', { + values: { details, indexName }, + defaultMessage: 'Error loading unallowed values for index {indexName}: {details}', + }); + +export const FIELDS = i18n.translate('ecsDataQualityDashboard.fieldsLabel', { + defaultMessage: 'Fields', +}); + +export const FROZEN_DESCRIPTION = i18n.translate('ecsDataQualityDashboard.frozenDescription', { + defaultMessage: `The index is no longer being updated and is queried rarely. The information still needs to be searchable, but it's okay if those queries are extremely slow.`, +}); + +export const FROZEN_PATTERN_TOOLTIP = ({ + indices, + pattern, +}: { + indices: number; + pattern: string; +}) => + i18n.translate('ecsDataQualityDashboard.frozenPatternTooltip', { + values: { indices, pattern }, + defaultMessage: `{indices} {indices, plural, =1 {index} other {indices}} matching the {pattern} pattern {indices, plural, =1 {is} other {are}} frozen. Frozen indices are no longer being updated and are queried rarely. The information still needs to be searchable, but it's okay if those queries are extremely slow.`, + }); + +export const HOT_DESCRIPTION = i18n.translate('ecsDataQualityDashboard.hotDescription', { + defaultMessage: 'The index is actively being updated and queried', +}); + +export const HOT_PATTERN_TOOLTIP = ({ indices, pattern }: { indices: number; pattern: string }) => + i18n.translate('ecsDataQualityDashboard.hotPatternTooltip', { + values: { indices, pattern }, + defaultMessage: + '{indices} {indices, plural, =1 {index} other {indices}} matching the {pattern} pattern {indices, plural, =1 {is} other {are}} hot. Hot indices are actively being updated and queried.', + }); + +/** The tooltip for the `ILM phase` combo box on the Data Quality Dashboard */ +export const INDEX_LIFECYCLE_MANAGEMENT_PHASES: string = i18n.translate( + 'ecsDataQualityDashboard.indexLifecycleManagementPhasesTooltip', + { + defaultMessage: + 'Indices with these Index Lifecycle Management (ILM) phases will be checked for data quality', + } +); + +export const INDEX_NAME = i18n.translate('ecsDataQualityDashboard.indexNameLabel', { + defaultMessage: 'Index name', +}); + +/** The label displayed for the `ILM phase` combo box on the Data Quality dashboard */ +export const ILM_PHASE: string = i18n.translate('ecsDataQualityDashboard.ilmPhaseLabel', { + defaultMessage: 'ILM phase', +}); + +export const LAST_CHECKED = i18n.translate('ecsDataQualityDashboard.lastCheckedLabel', { + defaultMessage: 'Last checked', +}); + +export const LOADING_ECS_METADATA = i18n.translate( + 'ecsDataQualityDashboard.emptyLoadingPrompt.loadingEcsMetadataPrompt', + { + defaultMessage: 'Loading ECS metadata', + } +); + +export const SELECT_AN_INDEX = i18n.translate('ecsDataQualityDashboard.selectAnIndexPrompt', { + defaultMessage: 'Select an index to compare it against ECS version', +}); + +/** The placeholder for the `ILM phase` combo box on the Data Quality Dashboard */ +export const SELECT_ONE_OR_MORE_ILM_PHASES: string = i18n.translate( + 'ecsDataQualityDashboard.selectOneOrMorPhasesPlaceholder', + { + defaultMessage: 'Select one or more ILM phases', + } +); + +export const TECHNICAL_PREVIEW = i18n.translate('ecsDataQualityDashboard.technicalPreviewBadge', { + defaultMessage: 'Technical preview', +}); + +export const TIMESTAMP_DESCRIPTION = i18n.translate( + 'ecsDataQualityDashboard.timestampDescriptionLabel', + { + defaultMessage: + 'Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events.', + } +); + +export const UNMANAGED_DESCRIPTION = i18n.translate( + 'ecsDataQualityDashboard.unmanagedDescription', + { + defaultMessage: `The index isn't managed by Index Lifecycle Management (ILM)`, + } +); + +export const UNMANAGED_PATTERN_TOOLTIP = ({ + indices, + pattern, +}: { + indices: number; + pattern: string; +}) => + i18n.translate('ecsDataQualityDashboard.unmanagedPatternTooltip', { + values: { indices, pattern }, + defaultMessage: `{indices} {indices, plural, =1 {index} other {indices}} matching the {pattern} pattern {indices, plural, =1 {is} other {are}} unmanaged by Index Lifecycle Management (ILM)`, + }); + +export const WARM_DESCRIPTION = i18n.translate('ecsDataQualityDashboard.warmDescription', { + defaultMessage: 'The index is no longer being updated but is still being queried', +}); + +export const WARM_PATTERN_TOOLTIP = ({ indices, pattern }: { indices: number; pattern: string }) => + i18n.translate('ecsDataQualityDashboard.warmPatternTooltip', { + values: { indices, pattern }, + defaultMessage: + '{indices} {indices, plural, =1 {index} other {indices}} matching the {pattern} pattern {indices, plural, =1 {is} other {are}} warm. Warm indices are no longer being updated but are still being queried.', + }); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/types.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/types.ts new file mode 100644 index 00000000000000..7a0ec3698a315c --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/types.ts @@ -0,0 +1,155 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + IlmExplainLifecycleLifecycleExplain, + IndicesGetMappingIndexMappingRecord, + IndicesStatsIndicesStats, +} from '@elastic/elasticsearch/lib/api/types'; + +export interface Mappings { + pattern: string; + indexes: Record; +} + +export interface AllowedValue { + description?: string; + name?: string; +} + +export interface EcsMetadata { + allowed_values?: AllowedValue[]; + dashed_name?: string; + description?: string; + example?: string; + flat_name?: string; + level?: string; + name?: string; + required?: boolean; + short?: string; + type?: string; +} + +export type EnrichedFieldMetadata = EcsMetadata & { + hasEcsMetadata: boolean; + indexFieldName: string; + indexFieldType: string; + indexInvalidValues: UnallowedValueCount[]; + isEcsCompliant: boolean; +}; + +export interface PartitionedFieldMetadata { + all: EnrichedFieldMetadata[]; + custom: EnrichedFieldMetadata[]; + ecsCompliant: EnrichedFieldMetadata[]; + incompatible: EnrichedFieldMetadata[]; +} + +export interface PartitionedFieldMetadataStats { + all: number; + custom: number; + ecsCompliant: number; + incompatible: number; +} + +export interface UnallowedValueRequestItem { + allowedValues: string[]; + indexFieldName: string; + indexName: string; +} + +export interface Bucket { + key: string; + doc_count: number; +} + +export interface UnallowedValueCount { + fieldName: string; + count: number; +} + +export interface UnallowedValueSearchResult { + aggregations?: { + [x: string]: { + buckets?: Bucket[]; + }; + }; +} + +export type IlmPhase = 'hot' | 'warm' | 'cold' | 'frozen' | 'unmanaged'; + +export interface IlmExplainPhaseCounts { + hot: number; + warm: number; + cold: number; + frozen: number; + unmanaged: number; +} + +export interface DataQualityCheckResult { + docsCount: number | undefined; + error: string | null; + ilmPhase: IlmPhase | undefined; + incompatible: number | undefined; + indexName: string; + markdownComments: string[]; + pattern: string; +} + +export interface PatternRollup { + docsCount: number | undefined; + error: string | null; + ilmExplain: Record | null; + ilmExplainPhaseCounts: IlmExplainPhaseCounts | undefined; + indices: number | undefined; + pattern: string; + results: Record | undefined; + stats: Record | null; +} + +export interface CheckIndexRequest { + pattern: string; + indexName: string; +} + +export interface RequestQueueRequest { + topicId: string; + request: T; +} + +export interface RequestQueueResponse { + topicId: string; + request: T; + response: U; +} + +export interface IndexToCheck { + pattern: string; + indexName: string; +} + +export type OnCheckCompleted = ({ + error, + formatNumber, + indexName, + partitionedFieldMetadata, + pattern, + version, +}: { + error: string | null; + formatNumber: (value: number | undefined) => string; + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata | null; + pattern: string; + version: string; +}) => void; + +export interface ErrorSummary { + error: string; + indexName: string | null; + pattern: string; +} diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_add_to_new_case/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_add_to_new_case/index.tsx new file mode 100644 index 00000000000000..b011259c6d81fe --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_add_to_new_case/index.tsx @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback, useMemo } from 'react'; + +import * as i18n from './translations'; + +interface Props { + canUserCreateAndReadCases: () => boolean; + indexName?: string; + onClick?: () => void; + openCreateCaseFlyout: ({ + comments, + headerContent, + }: { + comments: string[]; + headerContent?: React.ReactNode; + }) => void; +} + +export const useAddToNewCase = ({ + canUserCreateAndReadCases, + indexName, + onClick, + openCreateCaseFlyout, +}: Props): { + disabled: boolean; + onAddToNewCase: (markdownComments: string[]) => void; +} => { + const headerContent = useMemo( + () => ( +
    + {indexName != null + ? i18n.CREATE_A_DATA_QUALITY_CASE_FOR_INDEX(indexName) + : i18n.CREATE_A_DATA_QUALITY_CASE} +
    + ), + [indexName] + ); + + const onAddToNewCase = useCallback( + (markdownComments: string[]) => { + if (onClick) { + onClick(); + } + + openCreateCaseFlyout({ comments: markdownComments, headerContent }); + }, + [headerContent, onClick, openCreateCaseFlyout] + ); + + return { + disabled: !canUserCreateAndReadCases(), + onAddToNewCase, + }; +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_add_to_new_case/translations.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_add_to_new_case/translations.ts new file mode 100644 index 00000000000000..aadb58c56996bd --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_add_to_new_case/translations.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const ADD_TO_CASE_SUCCESS = i18n.translate('ecsDataQualityDashboard.addToCaseSuccessToast', { + defaultMessage: 'Successfully added data quality results to the case', +}); + +export const CREATE_A_DATA_QUALITY_CASE = i18n.translate( + 'ecsDataQualityDashboard.createADataQualityCaseHeaderText', + { + defaultMessage: 'Create a data quality case', + } +); + +export const CREATE_A_DATA_QUALITY_CASE_FOR_INDEX = (indexName: string) => + i18n.translate('ecsDataQualityDashboard.createADataQualityCaseForIndexHeaderText', { + values: { indexName }, + defaultMessage: 'Create a data quality case for index {indexName}', + }); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_ilm_explain/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_ilm_explain/index.tsx new file mode 100644 index 00000000000000..72d75408301abc --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_ilm_explain/index.tsx @@ -0,0 +1,69 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { IlmExplainLifecycleLifecycleExplain } from '@elastic/elasticsearch/lib/api/types'; +import { useEffect, useState } from 'react'; + +import * as i18n from '../translations'; + +const ILM_EXPLAIN_ENDPOINT = '/internal/ecs_data_quality_dashboard/ilm_explain'; + +interface UseIlmExplain { + ilmExplain: Record | null; + error: string | null; + loading: boolean; +} + +export const useIlmExplain = (pattern: string): UseIlmExplain => { + const [ilmExplain, setIlmExplain] = useState | null>(null); + const [error, setError] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const abortController = new AbortController(); + + async function fetchData() { + try { + const encodedIndexName = encodeURIComponent(`${pattern}`); + + const response = await fetch(`${ILM_EXPLAIN_ENDPOINT}/${encodedIndexName}`, { + method: 'GET', + signal: abortController.signal, + }); + + if (response.ok) { + const json = await response.json(); + + if (!abortController.signal.aborted) { + setIlmExplain(json); + } + } else { + throw new Error(response.statusText); + } + } catch (e) { + if (!abortController.signal.aborted) { + setError(i18n.ERROR_LOADING_ILM_EXPLAIN(e)); + } + } finally { + if (!abortController.signal.aborted) { + setLoading(false); + } + } + } + + fetchData(); + + return () => { + abortController.abort(); + }; + }, [pattern, setError]); + + return { ilmExplain, error, loading }; +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_mappings/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_mappings/helpers.ts new file mode 100644 index 00000000000000..57d7787bbfee99 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_mappings/helpers.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { IndicesGetMappingIndexMappingRecord } from '@elastic/elasticsearch/lib/api/types'; + +import * as i18n from '../translations'; + +export const MAPPINGS_API_ROUTE = '/internal/ecs_data_quality_dashboard/mappings'; + +export async function fetchMappings({ + abortController, + patternOrIndexName, +}: { + abortController: AbortController; + patternOrIndexName: string; +}): Promise> { + const encodedIndexName = encodeURIComponent(`${patternOrIndexName}`); + + const response = await fetch(`${MAPPINGS_API_ROUTE}/${encodedIndexName}`, { + method: 'GET', + signal: abortController.signal, + }); + + if (response.ok) { + return response.json(); + } + + throw new Error( + i18n.ERROR_LOADING_MAPPINGS({ details: response.statusText, patternOrIndexName }) + ); +} diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_mappings/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_mappings/index.tsx new file mode 100644 index 00000000000000..09c47bb5532d77 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_mappings/index.tsx @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { IndicesGetMappingIndexMappingRecord } from '@elastic/elasticsearch/lib/api/types'; +import { useEffect, useState } from 'react'; + +import * as i18n from '../translations'; + +import { fetchMappings } from './helpers'; + +interface UseMappings { + indexes: Record | null; + error: string | null; + loading: boolean; +} + +export const useMappings = (patternOrIndexName: string): UseMappings => { + const [indexes, setIndexes] = useState | null>(null); + const [error, setError] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const abortController = new AbortController(); + + async function fetchData() { + try { + setIndexes(await fetchMappings({ abortController, patternOrIndexName })); + } catch (e) { + if (!abortController.signal.aborted) { + setError(i18n.ERROR_LOADING_MAPPINGS({ details: e, patternOrIndexName })); + } + } finally { + if (!abortController.signal.aborted) { + setLoading(false); + } + } + } + + fetchData(); + + return () => { + abortController.abort(); + }; + }, [patternOrIndexName, setError]); + + return { indexes, error, loading }; +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_results_rollup/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_results_rollup/helpers.ts new file mode 100644 index 00000000000000..995ac8eac86c40 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_results_rollup/helpers.ts @@ -0,0 +1,135 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getIndexDocsCountFromRollup } from '../data_quality_panel/data_quality_summary/summary_actions/check_all/helpers'; +import { getIlmPhase } from '../data_quality_panel/pattern/helpers'; +import { getAllIncompatibleMarkdownComments } from '../data_quality_panel/tabs/incompatible_tab/helpers'; +import { getTotalPatternIncompatible, getTotalPatternIndicesChecked } from '../helpers'; +import type { IlmPhase, PartitionedFieldMetadata, PatternRollup } from '../types'; + +export const getTotalIndices = ( + patternRollups: Record +): number | undefined => { + const allRollups = Object.values(patternRollups); + const allRollupsHaveIndices = allRollups.every(({ indices }) => Number.isInteger(indices)); + + // only return the total when all `PatternRollup`s have a `indices`: + return allRollupsHaveIndices + ? allRollups.reduce((acc, { indices }) => acc + (indices ?? 0), 0) + : undefined; +}; + +export const getTotalDocsCount = ( + patternRollups: Record +): number | undefined => { + const allRollups = Object.values(patternRollups); + const allRollupsHaveDocsCount = allRollups.every(({ docsCount }) => Number.isInteger(docsCount)); + + // only return the total when all `PatternRollup`s have a `docsCount`: + return allRollupsHaveDocsCount + ? allRollups.reduce((acc, { docsCount }) => acc + (docsCount ?? 0), 0) + : undefined; +}; + +export const getTotalIncompatible = ( + patternRollups: Record +): number | undefined => { + const allRollups = Object.values(patternRollups); + const anyRollupsHaveResults = allRollups.some(({ results }) => results != null); + + // only return the total when at least one `PatternRollup` has results: + return anyRollupsHaveResults + ? allRollups.reduce((acc, { results }) => acc + (getTotalPatternIncompatible(results) ?? 0), 0) + : undefined; +}; + +export const getTotalIndicesChecked = (patternRollups: Record): number => { + const allRollups = Object.values(patternRollups); + + return allRollups.reduce( + (acc, patternRollup) => acc + getTotalPatternIndicesChecked(patternRollup), + 0 + ); +}; + +export const onPatternRollupUpdated = ({ + patternRollup, + patternRollups, +}: { + patternRollup: PatternRollup; + patternRollups: Record; +}): Record => ({ + ...patternRollups, + [patternRollup.pattern]: patternRollup, +}); + +export const updateResultOnCheckCompleted = ({ + error, + formatNumber, + indexName, + partitionedFieldMetadata, + pattern, + patternRollups, +}: { + error: string | null; + formatNumber: (value: number | undefined) => string; + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata | null; + pattern: string; + patternRollups: Record; +}): Record => { + const patternRollup: PatternRollup | undefined = patternRollups[pattern]; + + if (patternRollup != null) { + const ilmExplain = patternRollup.ilmExplain ?? null; + + const ilmPhase: IlmPhase | undefined = + ilmExplain != null ? getIlmPhase(ilmExplain[indexName]) : undefined; + + const docsCount = getIndexDocsCountFromRollup({ + indexName, + patternRollup, + }); + + const patternDocsCount = patternRollup.docsCount ?? 0; + + const markdownComments = + partitionedFieldMetadata != null + ? getAllIncompatibleMarkdownComments({ + docsCount, + formatNumber, + ilmPhase, + indexName, + partitionedFieldMetadata, + patternDocsCount, + }) + : []; + + const incompatible = partitionedFieldMetadata?.incompatible.length; + + return { + ...patternRollups, + [pattern]: { + ...patternRollup, + results: { + ...(patternRollup.results ?? {}), + [indexName]: { + docsCount, + error, + ilmPhase, + incompatible, + indexName, + markdownComments, + pattern, + }, + }, + }, + }; + } else { + return patternRollups; + } +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_results_rollup/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_results_rollup/index.tsx new file mode 100644 index 00000000000000..da5745deaa3cd7 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_results_rollup/index.tsx @@ -0,0 +1,117 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useCallback, useEffect, useMemo, useState } from 'react'; + +interface Props { + ilmPhases: string[]; + patterns: string[]; +} + +import { + getTotalDocsCount, + getTotalIncompatible, + getTotalIndices, + getTotalIndicesChecked, + onPatternRollupUpdated, + updateResultOnCheckCompleted, +} from './helpers'; + +import type { OnCheckCompleted, PartitionedFieldMetadata, PatternRollup } from '../types'; + +interface UseResultsRollup { + onCheckCompleted: OnCheckCompleted; + patternIndexNames: Record; + patternRollups: Record; + totalDocsCount: number | undefined; + totalIncompatible: number | undefined; + totalIndices: number | undefined; + totalIndicesChecked: number | undefined; + updatePatternIndexNames: ({ + indexNames, + pattern, + }: { + indexNames: string[]; + pattern: string; + }) => void; + updatePatternRollup: (patternRollup: PatternRollup) => void; +} + +export const useResultsRollup = ({ ilmPhases, patterns }: Props): UseResultsRollup => { + const [patternIndexNames, setPatternIndexNames] = useState>({}); + const [patternRollups, setPatternRollups] = useState>({}); + + const updatePatternRollup = useCallback((patternRollup: PatternRollup) => { + setPatternRollups((current) => + onPatternRollupUpdated({ patternRollup, patternRollups: current }) + ); + }, []); + + const totalDocsCount = useMemo(() => getTotalDocsCount(patternRollups), [patternRollups]); + const totalIncompatible = useMemo(() => getTotalIncompatible(patternRollups), [patternRollups]); + const totalIndices = useMemo(() => getTotalIndices(patternRollups), [patternRollups]); + const totalIndicesChecked = useMemo( + () => getTotalIndicesChecked(patternRollups), + [patternRollups] + ); + + const updatePatternIndexNames = useCallback( + ({ indexNames, pattern }: { indexNames: string[]; pattern: string }) => { + setPatternIndexNames((current) => ({ + ...current, + [pattern]: indexNames, + })); + }, + [] + ); + + const onCheckCompleted: OnCheckCompleted = useCallback( + ({ + error, + formatNumber, + indexName, + partitionedFieldMetadata, + pattern, + }: { + error: string | null; + formatNumber: (value: number | undefined) => string; + indexName: string; + partitionedFieldMetadata: PartitionedFieldMetadata | null; + pattern: string; + }) => { + setPatternRollups((current) => + updateResultOnCheckCompleted({ + error, + formatNumber, + indexName, + partitionedFieldMetadata, + pattern, + patternRollups: current, + }) + ); + }, + [] + ); + + useEffect(() => { + // reset all state + setPatternRollups({}); + setPatternIndexNames({}); + }, [ilmPhases, patterns]); + + return { + onCheckCompleted, + patternIndexNames, + patternRollups, + totalDocsCount, + totalIncompatible, + totalIndices, + totalIndicesChecked, + updatePatternIndexNames, + updatePatternRollup, + }; +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_stats/index.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_stats/index.tsx new file mode 100644 index 00000000000000..d2c39e70fb9c96 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_stats/index.tsx @@ -0,0 +1,66 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { IndicesStatsIndicesStats } from '@elastic/elasticsearch/lib/api/types'; +import { useEffect, useState } from 'react'; + +import * as i18n from '../translations'; + +const STATS_ENDPOINT = '/internal/ecs_data_quality_dashboard/stats'; + +interface UseStats { + stats: Record | null; + error: string | null; + loading: boolean; +} + +export const useStats = (pattern: string): UseStats => { + const [stats, setStats] = useState | null>(null); + const [error, setError] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const abortController = new AbortController(); + + async function fetchData() { + try { + const encodedIndexName = encodeURIComponent(`${pattern}`); + + const response = await fetch(`${STATS_ENDPOINT}/${encodedIndexName}`, { + method: 'GET', + signal: abortController.signal, + }); + + if (response.ok) { + const json = await response.json(); + + if (!abortController.signal.aborted) { + setStats(json); + } + } else { + throw new Error(response.statusText); + } + } catch (e) { + if (!abortController.signal.aborted) { + setError(i18n.ERROR_LOADING_STATS(e)); + } + } finally { + if (!abortController.signal.aborted) { + setLoading(false); + } + } + } + + fetchData(); + + return () => { + abortController.abort(); + }; + }, [pattern, setError]); + + return { stats, error, loading }; +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_unallowed_values/helpers.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_unallowed_values/helpers.ts new file mode 100644 index 00000000000000..1fa8991ce9264b --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_unallowed_values/helpers.ts @@ -0,0 +1,91 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import * as i18n from '../translations'; +import type { + Bucket, + UnallowedValueCount, + UnallowedValueRequestItem, + UnallowedValueSearchResult, +} from '../types'; + +const UNALLOWED_VALUES_API_ROUTE = '/internal/ecs_data_quality_dashboard/unallowed_field_values'; + +export const isBucket = (maybeBucket: unknown): maybeBucket is Bucket => + typeof (maybeBucket as Bucket).key === 'string' && + typeof (maybeBucket as Bucket).doc_count === 'number'; + +// eslint-disable-next-line @typescript-eslint/naming-convention +export const getUnallowedValueCount = ({ doc_count, key }: Bucket): UnallowedValueCount => ({ + count: doc_count, + fieldName: key, +}); + +export const getUnallowedValues = ({ + requestItems, + searchResults, +}: { + requestItems: UnallowedValueRequestItem[]; + searchResults: UnallowedValueSearchResult[] | null; +}): Record => { + if (searchResults == null || !Array.isArray(searchResults)) { + return {}; + } + + return requestItems.reduce((acc, { indexFieldName }) => { + const searchResult = searchResults.find( + (x) => + typeof x.aggregations === 'object' && Array.isArray(x.aggregations[indexFieldName]?.buckets) + ); + + if ( + searchResult != null && + searchResult.aggregations != null && + searchResult.aggregations[indexFieldName] != null + ) { + const buckets = searchResult.aggregations[indexFieldName]?.buckets; + + return { + ...acc, + [indexFieldName]: buckets?.flatMap((x) => (isBucket(x) ? getUnallowedValueCount(x) : [])), + }; + } else { + return { + ...acc, + [indexFieldName]: [], + }; + } + }, {}); +}; + +export async function fetchUnallowedValues({ + abortController, + indexName, + requestItems, +}: { + abortController: AbortController; + indexName: string; + requestItems: UnallowedValueRequestItem[]; +}): Promise { + const response = await fetch(UNALLOWED_VALUES_API_ROUTE, { + body: JSON.stringify(requestItems), + headers: { 'Content-Type': 'application/json', 'kbn-xsrf': 'xsrf' }, + method: 'POST', + signal: abortController.signal, + }); + + if (response.ok) { + return response.json(); + } + + throw new Error( + i18n.ERROR_LOADING_UNALLOWED_VALUES({ + details: response.statusText, + indexName, + }) + ); +} diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_unallowed_values/index.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_unallowed_values/index.ts new file mode 100644 index 00000000000000..744cc344cea122 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/use_unallowed_values/index.ts @@ -0,0 +1,81 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useEffect, useState } from 'react'; + +import { fetchUnallowedValues, getUnallowedValues } from './helpers'; +import type { UnallowedValueCount, UnallowedValueRequestItem } from '../types'; + +interface UseUnallowedValues { + unallowedValues: Record | null; + error: string | null; + loading: boolean; +} + +export const useUnallowedValues = ({ + indexName, + requestItems, +}: { + indexName: string; + requestItems: UnallowedValueRequestItem[]; +}): UseUnallowedValues => { + const [unallowedValues, setUnallowedValues] = useState | null>(null); + const [error, setError] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + if (requestItems.length === 0) { + return; + } + + const abortController = new AbortController(); + + async function fetchData() { + try { + // if (indexName === '.ds-logs-endpoint.alerts-default-2023.01.17-000001') { + // throw new Error( + // 'simulated useUnallowedValues failure just for .ds-logs-endpoint.alerts-default-2023.01.17-000001' + // ); + // } + + const searchResults = await fetchUnallowedValues({ + abortController, + indexName, + requestItems, + }); + + const unallowedValuesMap = getUnallowedValues({ + requestItems, + searchResults, + }); + + if (!abortController.signal.aborted) { + setUnallowedValues(unallowedValuesMap); + } + } catch (e) { + if (!abortController.signal.aborted) { + setError(e); + } + } finally { + if (!abortController.signal.aborted) { + setLoading(false); + } + } + } + + fetchData(); + + return () => { + abortController.abort(); + }; + }, [indexName, requestItems, setError]); + + return { unallowedValues, error, loading }; +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/index.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/index.ts new file mode 100644 index 00000000000000..6e5f3c69f14c45 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { DataQualityPanel } from './impl/data_quality'; + +export { getIlmPhaseDescription } from './impl/data_quality/helpers'; + +export { + DATA_QUALITY_SUBTITLE, + ILM_PHASE, + INDEX_LIFECYCLE_MANAGEMENT_PHASES, + SELECT_ONE_OR_MORE_ILM_PHASES, +} from './impl/data_quality/translations'; + +export { ECS_REFERENCE_URL } from './impl/data_quality/data_quality_panel/index_properties/markdown/helpers'; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/jest.config.js b/x-pack/packages/kbn-ecs-data-quality-dashboard/jest.config.js new file mode 100644 index 00000000000000..5f6465bb21a522 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/jest.config.js @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../..', + roots: ['/x-pack/packages/kbn-ecs-data-quality-dashboard'], +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/kibana.jsonc b/x-pack/packages/kbn-ecs-data-quality-dashboard/kibana.jsonc new file mode 100644 index 00000000000000..a001420fade88f --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-browser", + "id": "@kbn/ecs-data-quality-dashboard", + "owner": "@elastic/security-threat-hunting-investigations" +} diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/package.json b/x-pack/packages/kbn-ecs-data-quality-dashboard/package.json new file mode 100644 index 00000000000000..32fc5f7572c89a --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/ecs-data-quality-dashboard", + "private": true, + "version": "1.0.0", + "license": "Elastic License 2.0" +} \ No newline at end of file diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/tsconfig.json b/x-pack/packages/kbn-ecs-data-quality-dashboard/tsconfig.json new file mode 100644 index 00000000000000..ddb539c293a2b9 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/ecs", + "@kbn/i18n", + "@kbn/ui-theme", + ] +} diff --git a/x-pack/packages/ml/agg_utils/package.json b/x-pack/packages/ml/agg_utils/package.json index 509fcaf1f6eaae..419f5d6049925c 100644 --- a/x-pack/packages/ml/agg_utils/package.json +++ b/x-pack/packages/ml/agg_utils/package.json @@ -5,5 +5,5 @@ "homepage": "https://docs.elastic.dev/kibana-dev-docs/api/kbn-ml-agg-utils", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } \ No newline at end of file diff --git a/x-pack/packages/ml/aiops_components/package.json b/x-pack/packages/ml/aiops_components/package.json index 8c9a4a0b76ea5b..fd64c49c074d3f 100644 --- a/x-pack/packages/ml/aiops_components/package.json +++ b/x-pack/packages/ml/aiops_components/package.json @@ -5,5 +5,5 @@ "homepage": "https://docs.elastic.dev/kibana-dev-docs/api/kbn-aiops-components", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } \ No newline at end of file diff --git a/x-pack/packages/ml/aiops_utils/package.json b/x-pack/packages/ml/aiops_utils/package.json index dc2960e5f360af..b0b426f14435ca 100644 --- a/x-pack/packages/ml/aiops_utils/package.json +++ b/x-pack/packages/ml/aiops_utils/package.json @@ -5,5 +5,5 @@ "homepage": "https://docs.elastic.dev/kibana-dev-docs/api/kbn-aiops-utils", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } \ No newline at end of file diff --git a/x-pack/packages/ml/date_picker/index.ts b/x-pack/packages/ml/date_picker/index.ts index c3047c4957d5d1..f795d6a4d1f06d 100644 --- a/x-pack/packages/ml/date_picker/index.ts +++ b/x-pack/packages/ml/date_picker/index.ts @@ -13,6 +13,7 @@ export { useRefreshIntervalUpdates, useTimefilter, useTimeRangeUpdates, + useRefresh, } from './src/hooks/use_timefilter'; export { DatePickerWrapper } from './src/components/date_picker_wrapper'; export { diff --git a/x-pack/packages/ml/date_picker/package.json b/x-pack/packages/ml/date_picker/package.json index 246cfba3e4b8bf..720cc013c10eee 100644 --- a/x-pack/packages/ml/date_picker/package.json +++ b/x-pack/packages/ml/date_picker/package.json @@ -2,5 +2,5 @@ "name": "@kbn/ml-date-picker", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } diff --git a/x-pack/packages/ml/date_picker/src/hooks/use_timefilter.ts b/x-pack/packages/ml/date_picker/src/hooks/use_timefilter.ts index 9b610908d5dff8..ac82a291181922 100644 --- a/x-pack/packages/ml/date_picker/src/hooks/use_timefilter.ts +++ b/x-pack/packages/ml/date_picker/src/hooks/use_timefilter.ts @@ -7,6 +7,7 @@ import { useEffect, useMemo } from 'react'; import useObservable from 'react-use/lib/useObservable'; +import { merge, type Observable } from 'rxjs'; import { distinctUntilChanged, map } from 'rxjs/operators'; import { isEqual } from 'lodash'; @@ -14,6 +15,7 @@ import type { TimeRange } from '@kbn/es-query'; import type { TimefilterContract } from '@kbn/data-plugin/public'; import { useDatePickerContext } from './use_date_picker_context'; +import { mlTimefilterRefresh$, Refresh } from '../services/timefilter_refresh_service'; /** * Options interface for the `useTimefilter` custom hook. @@ -100,3 +102,29 @@ export const useTimeRangeUpdates = (absolute = false): TimeRange => { return useObservable(timeChangeObservable$, getTimeCallback()); }; + +/** + * Provides the latest refresh, both manual or auto. + */ +export const useRefresh = () => { + const timefilter = useTimefilter(); + + const getTimeRange = () => { + const { from, to } = timefilter.getTime(); + return { start: from, end: to }; + }; + + const refresh$ = useMemo(() => { + return merge( + mlTimefilterRefresh$, + timefilter.getTimeUpdate$().pipe( + map(() => { + return { lastRefresh: Date.now(), timeRange: getTimeRange() }; + }) + ) + ) as Observable; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + return useObservable(refresh$); +}; diff --git a/x-pack/packages/ml/is_defined/package.json b/x-pack/packages/ml/is_defined/package.json index 2ed8896c225529..6212999083d6f7 100644 --- a/x-pack/packages/ml/is_defined/package.json +++ b/x-pack/packages/ml/is_defined/package.json @@ -2,5 +2,5 @@ "name": "@kbn/ml-is-defined", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } diff --git a/x-pack/packages/ml/is_populated_object/package.json b/x-pack/packages/ml/is_populated_object/package.json index 67178caec3de6d..62d1b27980390d 100644 --- a/x-pack/packages/ml/is_populated_object/package.json +++ b/x-pack/packages/ml/is_populated_object/package.json @@ -5,5 +5,5 @@ "homepage": "https://docs.elastic.dev/kibana-dev-docs/api/kbn-ml-is-populated-object", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } \ No newline at end of file diff --git a/x-pack/packages/ml/local_storage/package.json b/x-pack/packages/ml/local_storage/package.json index af2452a92220bc..2b2056d32481a6 100644 --- a/x-pack/packages/ml/local_storage/package.json +++ b/x-pack/packages/ml/local_storage/package.json @@ -5,5 +5,5 @@ "homepage": "https://docs.elastic.dev/kibana-dev-docs/api/kbn-ml-local-storage", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } diff --git a/x-pack/packages/ml/nested_property/package.json b/x-pack/packages/ml/nested_property/package.json index 6498da088ece75..ee3455ff97beb2 100644 --- a/x-pack/packages/ml/nested_property/package.json +++ b/x-pack/packages/ml/nested_property/package.json @@ -5,5 +5,5 @@ "homepage": "https://docs.elastic.dev/kibana-dev-docs/api/kbn-ml-nested-property", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } diff --git a/x-pack/packages/ml/query_utils/package.json b/x-pack/packages/ml/query_utils/package.json index a9ecd87080a770..7f77c5822b1c07 100644 --- a/x-pack/packages/ml/query_utils/package.json +++ b/x-pack/packages/ml/query_utils/package.json @@ -2,5 +2,5 @@ "name": "@kbn/ml-query-utils", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } diff --git a/x-pack/packages/ml/string_hash/package.json b/x-pack/packages/ml/string_hash/package.json index 272cb258ed1c5c..6c418f207f3996 100644 --- a/x-pack/packages/ml/string_hash/package.json +++ b/x-pack/packages/ml/string_hash/package.json @@ -5,5 +5,5 @@ "homepage": "https://docs.elastic.dev/kibana-dev-docs/api/kbn-ml-string-hash", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } \ No newline at end of file diff --git a/x-pack/packages/ml/url_state/package.json b/x-pack/packages/ml/url_state/package.json index f53d53db4b504c..c807aec282f32d 100644 --- a/x-pack/packages/ml/url_state/package.json +++ b/x-pack/packages/ml/url_state/package.json @@ -5,5 +5,5 @@ "homepage": "https://docs.elastic.dev/kibana-dev-docs/api/kbn-ml-url-state", "private": true, "version": "1.0.0", - "license": "SSPL-1.0 OR Elastic License 2.0" + "license": "Elastic License 2.0" } diff --git a/x-pack/plugins/actions/kibana.json b/x-pack/plugins/actions/kibana.json deleted file mode 100644 index ad5ca87949848d..00000000000000 --- a/x-pack/plugins/actions/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "actions", - "owner": { - "name": "Response Ops", - "githubTeam": "response-ops" - }, - "server": true, - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "actions"], - "requiredPlugins": ["licensing", "taskManager", "encryptedSavedObjects", "eventLog", "features"], - "optionalPlugins": ["usageCollection", "spaces", "security", "monitoringCollection"], - "extraPublicDirs": ["common"], - "ui": true -} diff --git a/x-pack/plugins/actions/kibana.jsonc b/x-pack/plugins/actions/kibana.jsonc new file mode 100644 index 00000000000000..9152e64ba898af --- /dev/null +++ b/x-pack/plugins/actions/kibana.jsonc @@ -0,0 +1,30 @@ +{ + "type": "plugin", + "id": "@kbn/actions-plugin", + "owner": "@elastic/response-ops", + "plugin": { + "id": "actions", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "actions" + ], + "requiredPlugins": [ + "licensing", + "taskManager", + "encryptedSavedObjects", + "eventLog", + "features" + ], + "optionalPlugins": [ + "usageCollection", + "spaces", + "security", + "monitoringCollection" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_item_sets.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_item_sets.ts new file mode 100644 index 00000000000000..5f3d8ce759e191 --- /dev/null +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_item_sets.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { ItemsetResult } from '../../types'; + +export const filteredFrequentItemSets: ItemsetResult[] = [ + { + set: { response_code: '500', url: 'home.php' }, + size: 2, + maxPValue: 0.010770456205312423, + doc_count: 792, + support: 0.5262458471760797, + total_doc_count: 1505, + }, + { + set: { user: 'Peter', url: 'home.php' }, + size: 2, + maxPValue: 0.010770456205312423, + doc_count: 634, + support: 0.4212624584717608, + total_doc_count: 1505, + }, +]; diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_items.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_items.ts deleted file mode 100644 index 268516f95542df..00000000000000 --- a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_items.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { ItemsetResult } from '../../types'; - -export const filteredFrequentItems: ItemsetResult[] = [ - { - set: { response_code: '500', url: 'home.php' }, - size: 2, - maxPValue: 0.010770456205312423, - doc_count: 792, - support: 0.5262458471760797, - total_doc_count: 1505, - }, - { - set: { user: 'Peter', url: 'home.php' }, - size: 2, - maxPValue: 0.010770456205312423, - doc_count: 634, - support: 0.4212624584717608, - total_doc_count: 1505, - }, -]; diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_item_sets.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_item_sets.ts new file mode 100644 index 00000000000000..783ea7d674d3df --- /dev/null +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_item_sets.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { ItemsetResult } from '../../types'; + +export const frequentItemSets: ItemsetResult[] = [ + { + set: { response_code: '500', url: 'home.php' }, + size: 2, + maxPValue: 0.010770456205312423, + doc_count: 792, + support: 0.5262458471760797, + total_doc_count: 1505, + }, + { + set: { user: 'Peter', url: 'home.php' }, + size: 2, + maxPValue: 0.010770456205312423, + doc_count: 634, + support: 0.4212624584717608, + total_doc_count: 1505, + }, + { + set: { response_code: '500', user: 'Mary', url: 'home.php' }, + size: 3, + maxPValue: 0.010770456205312423, + doc_count: 396, + support: 0.26312292358803985, + total_doc_count: 1505, + }, + { + set: { response_code: '500', user: 'Paul', url: 'home.php' }, + size: 3, + maxPValue: 0.010770456205312423, + doc_count: 396, + support: 0.26312292358803985, + total_doc_count: 1505, + }, + { + set: { response_code: '404', user: 'Peter', url: 'home.php' }, + size: 3, + maxPValue: 0.010770456205312423, + doc_count: 317, + support: 0.2106312292358804, + total_doc_count: 1505, + }, + { + set: { response_code: '200', user: 'Peter', url: 'home.php' }, + size: 3, + maxPValue: 0.010770456205312423, + doc_count: 317, + support: 0.2106312292358804, + total_doc_count: 1505, + }, +]; diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_items.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_items.ts deleted file mode 100644 index fe61a60a1afbe5..00000000000000 --- a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_items.ts +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { ItemsetResult } from '../../types'; - -export const frequentItems: ItemsetResult[] = [ - { - set: { response_code: '500', url: 'home.php' }, - size: 2, - maxPValue: 0.010770456205312423, - doc_count: 792, - support: 0.5262458471760797, - total_doc_count: 1505, - }, - { - set: { user: 'Peter', url: 'home.php' }, - size: 2, - maxPValue: 0.010770456205312423, - doc_count: 634, - support: 0.4212624584717608, - total_doc_count: 1505, - }, - { - set: { response_code: '500', user: 'Mary', url: 'home.php' }, - size: 3, - maxPValue: 0.010770456205312423, - doc_count: 396, - support: 0.26312292358803985, - total_doc_count: 1505, - }, - { - set: { response_code: '500', user: 'Paul', url: 'home.php' }, - size: 3, - maxPValue: 0.010770456205312423, - doc_count: 396, - support: 0.26312292358803985, - total_doc_count: 1505, - }, - { - set: { response_code: '404', user: 'Peter', url: 'home.php' }, - size: 3, - maxPValue: 0.010770456205312423, - doc_count: 317, - support: 0.2106312292358804, - total_doc_count: 1505, - }, - { - set: { response_code: '200', user: 'Peter', url: 'home.php' }, - size: 3, - maxPValue: 0.010770456205312423, - doc_count: 317, - support: 0.2106312292358804, - total_doc_count: 1505, - }, -]; diff --git a/x-pack/plugins/aiops/kibana.json b/x-pack/plugins/aiops/kibana.json deleted file mode 100755 index 08cbaf4613464f..00000000000000 --- a/x-pack/plugins/aiops/kibana.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "aiops", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Machine Learning UI", - "githubTeam": "ml-ui" - }, - "description": "AIOps plugin maintained by ML team.", - "server": true, - "ui": true, - "requiredPlugins": [ - "charts", - "data", - "lens", - "licensing" - ], - "optionalPlugins": [], - "requiredBundles": ["fieldFormats", "kibanaReact", "kibanaUtils"], - "extraPublicDirs": ["common"] -} diff --git a/x-pack/plugins/aiops/kibana.jsonc b/x-pack/plugins/aiops/kibana.jsonc new file mode 100644 index 00000000000000..a343af521ed802 --- /dev/null +++ b/x-pack/plugins/aiops/kibana.jsonc @@ -0,0 +1,25 @@ +{ + "type": "plugin", + "id": "@kbn/aiops-plugin", + "owner": "@elastic/ml-ui", + "description": "AIOps plugin maintained by ML team.", + "plugin": { + "id": "aiops", + "server": true, + "browser": true, + "requiredPlugins": [ + "charts", + "data", + "lens", + "licensing" + ], + "requiredBundles": [ + "fieldFormats", + "kibanaReact", + "kibanaUtils" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/aiops/public/application/utils/search_utils.ts b/x-pack/plugins/aiops/public/application/utils/search_utils.ts index 3bd0ea7a965232..f8f570d475fc02 100644 --- a/x-pack/plugins/aiops/public/application/utils/search_utils.ts +++ b/x-pack/plugins/aiops/public/application/utils/search_utils.ts @@ -11,8 +11,8 @@ import { cloneDeep } from 'lodash'; import { IUiSettingsClient } from '@kbn/core/public'; import { getEsQueryConfig, SearchSource } from '@kbn/data-plugin/common'; -import { SavedSearch } from '@kbn/discover-plugin/public'; -import { FilterManager } from '@kbn/data-plugin/public'; +import type { SavedSearch } from '@kbn/discover-plugin/public'; +import { FilterManager, isQuery, mapAndFlattenFilters } from '@kbn/data-plugin/public'; import { fromKueryExpression, toElasticsearchQuery, @@ -20,6 +20,7 @@ import { buildEsQuery, Query, Filter, + AggregateQuery, } from '@kbn/es-query'; import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { DataView } from '@kbn/data-views-plugin/public'; @@ -88,14 +89,15 @@ export function getQueryFromSavedSearchObject(savedSearch: SavedSearchSavedObjec * Should also form a valid query if only the query or filters is provided */ export function createMergedEsQuery( - query?: Query, + query?: Query | AggregateQuery, filters?: Filter[], dataView?: DataView, uiSettings?: IUiSettingsClient ) { let combinedQuery: QueryDslQueryContainer = getDefaultQuery(); - if (query && query.language === SEARCH_QUERY_LANGUAGE.KUERY) { + // FIXME: Add support for AggregateQuery type #150091 + if (isQuery(query) && query.language === SEARCH_QUERY_LANGUAGE.KUERY) { const ast = fromKueryExpression(query.query); if (query.query !== '') { combinedQuery = toElasticsearchQuery(ast, dataView); @@ -127,6 +129,14 @@ export function createMergedEsQuery( return combinedQuery; } +function getSavedSearchSource(savedSearch: SavedSearch) { + return savedSearch && + 'searchSource' in savedSearch && + savedSearch?.searchSource instanceof SearchSource + ? savedSearch.searchSource + : undefined; +} + /** * Extract query data from the saved search object * with overrides from the provided query data and/or filters @@ -141,7 +151,7 @@ export function getEsQueryFromSavedSearch({ }: { dataView: DataView; uiSettings: IUiSettingsClient; - savedSearch: SavedSearchSavedObject | SavedSearch | null | undefined; + savedSearch: SavedSearch | null | undefined; query?: Query; filters?: Filter[]; filterManager?: FilterManager; @@ -151,17 +161,13 @@ export function getEsQueryFromSavedSearch({ const userQuery = query; const userFilters = filters; + const savedSearchSource = getSavedSearchSource(savedSearch); + // If saved search has a search source with nested parent // e.g. a search coming from Dashboard saved search embeddable // which already combines both the saved search's original query/filters and the Dashboard's // then no need to process any further - if ( - savedSearch && - 'searchSource' in savedSearch && - savedSearch?.searchSource instanceof SearchSource && - savedSearch.searchSource.getParent() !== undefined && - userQuery - ) { + if (savedSearchSource && savedSearchSource.getParent() !== undefined && userQuery) { // Flattened query from search source may contain a clause that narrows the time range // which might interfere with global time pickers so we need to remove const savedQuery = @@ -181,12 +187,8 @@ export function getEsQueryFromSavedSearch({ }; } - // If saved search is an json object with the original query and filter - // retrieve the parsed query and filter - const savedSearchData = getQueryFromSavedSearchObject(savedSearch); - // If no saved search available, use user's query and filters - if (!savedSearchData && userQuery) { + if (!savedSearch && userQuery) { if (filterManager && userFilters) filterManager.addFilters(userFilters); const combinedQuery = createMergedEsQuery( @@ -205,11 +207,12 @@ export function getEsQueryFromSavedSearch({ // If saved search available, merge saved search with the latest user query or filters // which might differ from extracted saved search data - if (savedSearchData) { + if (savedSearchSource) { const globalFilters = filterManager?.getGlobalFilters(); - const currentQuery = userQuery ?? savedSearchData?.query; - const currentFilters = userFilters ?? savedSearchData?.filter; - + // FIXME: Add support for AggregateQuery type #150091 + const currentQuery = userQuery ?? (savedSearchSource.getField('query') as Query); + const currentFilters = + userFilters ?? mapAndFlattenFilters(savedSearchSource.getField('filter') as Filter[]); if (filterManager) filterManager.setFilters(currentFilters); if (globalFilters) filterManager?.addFilters(globalFilters); diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx index 7aaf4dbc6dc539..9b9e414a71e6f7 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx @@ -19,6 +19,8 @@ import { startWith } from 'rxjs'; import type { Query, Filter } from '@kbn/es-query'; import { usePageUrlState } from '@kbn/ml-url-state'; import { useTimefilter, useTimeRangeUpdates } from '@kbn/ml-date-picker'; +import { DEFAULT_AGG_FUNCTION } from './constants'; +import { useSplitFieldCardinality } from './use_split_field_cardinality'; import { createMergedEsQuery, getEsQueryFromSavedSearch, @@ -36,11 +38,12 @@ export interface ChangePointDetectionPageUrlState { export interface ChangePointDetectionRequestParams { fn: string; - splitField: string; + splitField?: string; metricField: string; interval: string; query: Query; filters: Filter[]; + changePointType?: ChangePointType[]; } export const ChangePointDetectionContext = createContext<{ @@ -61,6 +64,7 @@ export const ChangePointDetectionContext = createContext<{ pageCount: number; updatePagination: (newPage: number) => void; }; + splitFieldCardinality: number | null; }>({ isLoading: false, splitFieldsOptions: [], @@ -79,6 +83,7 @@ export const ChangePointDetectionContext = createContext<{ pageCount: 1, updatePagination: () => {}, }, + splitFieldCardinality: null, }); export type ChangePointType = @@ -95,13 +100,14 @@ export interface ChangePointAnnotation { label: string; reason: string; timestamp: string; - group_field: string; + group?: { + name: string; + value: string; + }; type: ChangePointType; p_value: number; } -const DEFAULT_AGG_FUNCTION = 'min'; - export const ChangePointDetectionContextProvider: FC = ({ children }) => { const { dataView, savedSearch } = useDataSource(); const { @@ -181,12 +187,9 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { if (!params.metricField && metricFieldOptions.length > 0) { params.metricField = metricFieldOptions[0].name; } - if (!params.splitField && splitFieldsOptions.length > 0) { - params.splitField = splitFieldsOptions[0].name; - } params.interval = bucketInterval?.expression!; return params; - }, [requestParamsFromUrl, metricFieldOptions, splitFieldsOptions, bucketInterval]); + }, [requestParamsFromUrl, metricFieldOptions, bucketInterval]); const updateFilters = useCallback( (update: Filter[]) => { @@ -240,12 +243,14 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { return mergedQuery; }, [resultFilters, resultQuery, uiSettings, dataView, timeRange]); + const splitFieldCardinality = useSplitFieldCardinality(requestParams.splitField, combinedQuery); + const { results: annotations, isLoading: annotationsLoading, progress, pagination, - } = useChangePointResults(requestParams, combinedQuery); + } = useChangePointResults(requestParams, combinedQuery, splitFieldCardinality); if (!bucketInterval) return null; @@ -263,6 +268,7 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { updateFilters, resultQuery, pagination, + splitFieldCardinality, }; return ( diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_page.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_page.tsx index 8e5c06b38f85cd..081961c8b889d1 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_page.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_page.tsx @@ -7,24 +7,29 @@ import React, { FC, useCallback } from 'react'; import { EuiBadge, + EuiCallOut, EuiDescriptionList, EuiEmptyPrompt, EuiFlexGrid, EuiFlexGroup, EuiFlexItem, + EuiHorizontalRule, EuiIcon, EuiPagination, EuiPanel, EuiProgress, EuiSpacer, - EuiTitle, + EuiText, EuiToolTip, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import type { Query } from '@kbn/es-query'; +import { useDataSource } from '../../hooks/use_data_source'; +import { SPLIT_FIELD_CARDINALITY_LIMIT } from './constants'; +import { ChangePointTypeFilter } from './change_point_type_filter'; import { SearchBarWrapper } from './search_bar'; -import { useChangePointDetectionContext } from './change_point_detection_context'; +import { ChangePointType, useChangePointDetectionContext } from './change_point_detection_context'; import { MetricFieldSelector } from './metric_field_selector'; import { SplitFieldSelector } from './split_field_selector'; import { FunctionPicker } from './function_picker'; @@ -40,8 +45,13 @@ export const ChangePointDetectionPage: FC = () => { resultQuery, progress, pagination, + splitFieldCardinality, + splitFieldsOptions, + metricFieldOptions, } = useChangePointDetectionContext(); + const { dataView } = useDataSource(); + const setFn = useCallback( (fn: string) => { updateRequestParams({ fn }); @@ -50,7 +60,7 @@ export const ChangePointDetectionPage: FC = () => { ); const setSplitField = useCallback( - (splitField: string) => { + (splitField: string | undefined) => { updateRequestParams({ splitField }); }, [updateRequestParams] @@ -70,7 +80,37 @@ export const ChangePointDetectionPage: FC = () => { [updateRequestParams] ); - const selectControlCss = { width: '200px' }; + const setChangePointType = useCallback( + (changePointType: ChangePointType[] | undefined) => { + updateRequestParams({ changePointType }); + }, + [updateRequestParams] + ); + + const selectControlCss = { width: '300px' }; + + const cardinalityExceeded = + splitFieldCardinality && splitFieldCardinality > SPLIT_FIELD_CARDINALITY_LIMIT; + + if (metricFieldOptions.length === 0) { + return ( + +

    + {i18n.translate('xpack.aiops.index.dataViewWithoutMetricNotificationDescription', { + defaultMessage: + 'Change point detection can only be run on data views with a metric field.', + })} +

    +
    + ); + } return (
    @@ -90,9 +130,11 @@ export const ChangePointDetectionPage: FC = () => { - - - + {splitFieldsOptions.length > 0 ? ( + + + + ) : null} { + {cardinalityExceeded ? ( + <> + +

    + {i18n.translate('xpack.aiops.changePointDetection.cardinalityWarningMessage', { + defaultMessage: + 'The "{splitField}" field cardinality is {cardinality} which exceeds the limit of {cardinalityLimit}. Only the first {cardinalityLimit} partitions, sorted by document count, are analyzed.', + values: { + cardinality: splitFieldCardinality, + cardinalityLimit: SPLIT_FIELD_CARDINALITY_LIMIT, + splitField: requestParams.splitField, + }, + })} +

    +
    + + + ) : null} + + + + + + {requestParams.interval} + + + + + + + + + {annotations.length === 0 && progress === 100 ? ( <> {

    } @@ -140,46 +227,70 @@ export const ChangePointDetectionPage: FC = () => { = 2 ? 2 : 1} responsive gutterSize={'m'}> {annotations.map((v) => { return ( - + - + - - - -

    {v.group_field}

    -
    -
    - {v.reason ? ( - - - - - - ) : null} -
    + {v.group ? ( + + ) : null} + + {v.reason ? ( + + + + ) : null} +
    + + + {requestParams.fn}({requestParams.metricField}) + +
    + + + + + {v.p_value !== undefined ? ( + + + ), + description: v.p_value.toPrecision(3), + }, + ]} + /> + + ) : null} {v.type} - {v.p_value !== undefined ? ( - - ) : null}
    diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detetion_root.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detetion_root.tsx index fb9dbc5156ed46..1662dfc09a1bfe 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detetion_root.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detetion_root.tsx @@ -8,10 +8,10 @@ import React, { FC } from 'react'; import { pick } from 'lodash'; -import { EuiSpacer } from '@elastic/eui'; +import { EuiCallOut, EuiSpacer } from '@elastic/eui'; import { DataView } from '@kbn/data-views-plugin/common'; -import { SavedSearch } from '@kbn/saved-search-plugin/public'; +import type { SavedSearch } from '@kbn/saved-search-plugin/public'; import { StorageContextProvider } from '@kbn/ml-local-storage'; import { UrlStateProvider } from '@kbn/ml-url-state'; import { Storage } from '@kbn/kibana-utils-plugin/public'; @@ -19,8 +19,8 @@ import { DatePickerContextProvider } from '@kbn/ml-date-picker'; import { UI_SETTINGS } from '@kbn/data-plugin/common'; import { toMountPoint, wrapWithTheme } from '@kbn/kibana-react-plugin/public'; +import { i18n } from '@kbn/i18n'; import { DataSourceContext } from '../../hooks/use_data_source'; -import { SavedSearchSavedObject } from '../../application/utils/search_utils'; import { AiopsAppContext, AiopsAppDependencies } from '../../hooks/use_aiops_app_context'; import { AIOPS_STORAGE_KEYS } from '../../types/storage'; @@ -33,7 +33,7 @@ const localStorage = new Storage(window.localStorage); export interface ChangePointDetectionAppStateProps { dataView: DataView; - savedSearch: SavedSearch | SavedSearchSavedObject | null; + savedSearch: SavedSearch | null; appDependencies: AiopsAppDependencies; } @@ -49,6 +49,25 @@ export const ChangePointDetectionAppState: FC uiSettingsKeys: UI_SETTINGS, }; + if (!dataView.isTimeBased()) { + return ( + +

    + {i18n.translate('xpack.aiops.index.changePointTimeSeriesNotificationDescription', { + defaultMessage: 'Change point detection only runs over time-based indices.', + })} +

    +
    + ); + } + return ( diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_type_filter.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_type_filter.tsx new file mode 100644 index 00000000000000..50441710c33eff --- /dev/null +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_type_filter.tsx @@ -0,0 +1,140 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { type FC, useCallback, useMemo } from 'react'; +import { + EuiComboBox, + type EuiComboBoxOptionOption, + type EuiComboBoxOptionsListProps, + EuiFlexGroup, + EuiFlexItem, + EuiFormRow, + EuiIcon, + EuiToolTip, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { isDefined } from '@kbn/ml-is-defined'; +import { type ChangePointType } from './change_point_detection_context'; + +export type ChangePointUIValue = ChangePointType | undefined; + +interface ChangePointTypeFilterProps { + value: ChangePointType[] | undefined; + onChange: (changePointType: ChangePointType[] | undefined) => void; +} + +const changePointTypes: Array<{ value: ChangePointType; description: string }> = [ + { + value: 'dip', + description: i18n.translate('xpack.aiops.changePointDetection.dipDescription', { + defaultMessage: 'A significant dip occurs at this point.', + }), + }, + { + value: 'spike', + description: i18n.translate('xpack.aiops.changePointDetection.spikeDescription', { + defaultMessage: 'A significant spike occurs at this point.', + }), + }, + { + value: 'distribution_change', + description: i18n.translate('xpack.aiops.changePointDetection.distributionChangeDescription', { + defaultMessage: 'The overall distribution of the values has changed significantly.', + }), + }, + { + value: 'step_change', + description: i18n.translate('xpack.aiops.changePointDetection.stepChangeDescription', { + defaultMessage: + 'The change indicates a statistically significant step up or down in value distribution.', + }), + }, + { + value: 'trend_change', + description: i18n.translate('xpack.aiops.changePointDetection.trendChangeDescription', { + defaultMessage: 'An overall trend change occurs at this point.', + }), + }, +]; + +interface FilterOption { + value: ChangePointUIValue; + label: string; + description: string; +} + +type ChangePointTypeFilterOptions = Array>; + +export const ChangePointTypeFilter: FC = ({ value, onChange }) => { + const options = useMemo(() => { + return [{ value: undefined, description: '' }, ...changePointTypes].map((v) => ({ + value: v.value, + label: + v.value ?? + i18n.translate('xpack.aiops.changePointDetection.selectAllChangePoints', { + defaultMessage: 'Select all', + }), + description: v.description, + })); + }, []); + + const selection: ChangePointTypeFilterOptions = !value + ? [options[0]] + : options.filter((v) => value.includes(v.value!)); + + const onChangeCallback = useCallback( + (selectedOptions: ChangePointTypeFilterOptions) => { + if ( + selectedOptions.length === 0 || + selectedOptions[selectedOptions.length - 1].value === undefined + ) { + onChange(undefined); + return; + } + + onChange(selectedOptions.map((v) => v.value as ChangePointType).filter(isDefined)); + }, + [onChange] + ); + + const renderOption = useCallback((option: FilterOption) => { + const { label, description } = option; + + if (!description) { + return <>{label}; + } + return ( + + + + + + {label} + + + ); + }, []) as unknown as EuiComboBoxOptionsListProps['renderOption']; + + return ( + + + options={options} + selectedOptions={selection} + onChange={onChangeCallback} + isClearable + data-test-subj="aiopsChangePointTypeFilter" + renderOption={renderOption} + /> + + ); +}; diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/chart_component.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/chart_component.tsx index e1402496800caa..6cc620a8046910 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/chart_component.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/chart_component.tsx @@ -14,16 +14,14 @@ import { useTimeRangeUpdates } from '@kbn/ml-date-picker'; import { useDataSource } from '../../hooks/use_data_source'; import { useAiopsAppContext } from '../../hooks/use_aiops_app_context'; -import { useChangePointDetectionContext } from './change_point_detection_context'; +import { + type ChangePointAnnotation, + useChangePointDetectionContext, +} from './change_point_detection_context'; import { fnOperationTypeMapping } from './constants'; export interface ChartComponentProps { - annotation: { - group_field: string; - label: string; - timestamp: string; - reason: string; - }; + annotation: ChangePointAnnotation; } export const ChartComponent: FC = React.memo(({ annotation }) => { @@ -35,37 +33,38 @@ export const ChartComponent: FC = React.memo(({ annotation const { dataView } = useDataSource(); const { requestParams, bucketInterval } = useChangePointDetectionContext(); - const filters = useMemo( - () => [ - { - meta: { - index: dataView.id!, - alias: null, - negate: false, - disabled: false, - type: 'phrase', - key: requestParams.splitField, - params: { - query: annotation.group_field, - }, - }, - query: { - match_phrase: { - [requestParams.splitField]: annotation.group_field, + const filters = useMemo(() => { + return annotation.group + ? [ + { + meta: { + index: dataView.id!, + alias: null, + negate: false, + disabled: false, + type: 'phrase', + key: annotation.group.name, + params: { + query: annotation.group.value, + }, + }, + query: { + match_phrase: { + [annotation.group.name]: annotation.group.value, + }, + }, + $state: { + store: FilterStateStore.APP_STATE, + }, }, - }, - $state: { - store: FilterStateStore.APP_STATE, - }, - }, - ], - [dataView.id, requestParams.splitField, annotation.group_field] - ); + ] + : []; + }, [dataView.id, annotation.group]); // @ts-ignore incorrect types for attributes const attributes = useMemo(() => { return { - title: annotation.group_field, + title: annotation.group?.value ?? '', description: '', visualizationType: 'lnsXY', type: 'lens', @@ -83,6 +82,9 @@ export const ChartComponent: FC = React.memo(({ annotation ], state: { visualization: { + yLeftExtent: { + mode: 'dataBounds', + }, legend: { isVisible: false, position: 'right', @@ -204,7 +206,7 @@ export const ChartComponent: FC = React.memo(({ annotation return ( = { sum: 'sum', avg: 'average', } as const; + +export const DEFAULT_AGG_FUNCTION = 'avg'; + +export const SPLIT_FIELD_CARDINALITY_LIMIT = 10000; + +export const COMPOSITE_AGG_SIZE = 500; diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/metric_field_selector.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/metric_field_selector.tsx index bbdc3e5742b080..539df3a13608de 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/metric_field_selector.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/metric_field_selector.tsx @@ -5,9 +5,9 @@ * 2.0. */ -import React, { FC, useMemo } from 'react'; +import React, { FC, useCallback, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiFormRow, EuiSelect, EuiSelectOption } from '@elastic/eui'; +import { EuiComboBox, type EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui'; import { useChangePointDetectionContext } from './change_point_detection_context'; interface MetricFieldSelectorProps { @@ -19,19 +19,34 @@ export const MetricFieldSelector: FC = React.memo( ({ value, onChange }) => { const { metricFieldOptions } = useChangePointDetectionContext(); - const options = useMemo(() => { - return metricFieldOptions.map((v) => ({ value: v.name, text: v.displayName })); + const options = useMemo(() => { + return metricFieldOptions.map((v) => ({ value: v.name, label: v.displayName })); }, [metricFieldOptions]); + const selection = options.filter((v) => v.value === value); + + const onChangeCallback = useCallback( + (selectedOptions: EuiComboBoxOptionOption[]) => { + const option = selectedOptions[0]; + if (typeof option !== 'undefined') { + onChange(option.label); + } + }, + [onChange] + ); + return ( - onChange(e.target.value)} + selectedOptions={selection} + onChange={onChangeCallback} + isClearable={false} + data-test-subj="aiopsChangePointMetricField" /> ); diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/split_field_selector.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/split_field_selector.tsx index 1a91e69af65baf..fbe54780548828 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/split_field_selector.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/split_field_selector.tsx @@ -5,32 +5,57 @@ * 2.0. */ -import React, { FC, useMemo } from 'react'; +import React, { FC, useMemo, useCallback } from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiFormRow, EuiSelect, type EuiSelectOption } from '@elastic/eui'; +import { EuiComboBox, type EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui'; import { useChangePointDetectionContext } from './change_point_detection_context'; interface SplitFieldSelectorProps { - value: string; - onChange: (value: string) => void; + value: string | undefined; + onChange: (value: string | undefined) => void; } export const SplitFieldSelector: FC = React.memo(({ value, onChange }) => { const { splitFieldsOptions } = useChangePointDetectionContext(); - const options = useMemo(() => { - return splitFieldsOptions.map((v) => ({ value: v.name, text: v.displayName })); + const options = useMemo>>(() => { + return [ + { + name: undefined, + displayName: i18n.translate('xpack.aiops.changePointDetection.notSelectedSplitFieldLabel', { + defaultMessage: '--- Not selected ---', + }), + }, + ...splitFieldsOptions, + ].map((v) => ({ + value: v.name, + label: v.displayName, + })); }, [splitFieldsOptions]); + const selection = options.filter((v) => v.value === value); + + const onChangeCallback = useCallback( + (selectedOptions: Array>) => { + const option = selectedOptions[0]; + const newValue = option?.value; + onChange(newValue); + }, + [onChange] + ); + return ( - onChange(e.target.value)} + selectedOptions={selection} + onChange={onChangeCallback} + isClearable + data-test-subj="aiopsChangePointSplitField" /> ); diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/use_change_point_agg_request.ts b/x-pack/plugins/aiops/public/components/change_point_detection/use_change_point_agg_request.ts index b00c5dab790b76..35d2f768fc45b0 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/use_change_point_agg_request.ts +++ b/x-pack/plugins/aiops/public/components/change_point_detection/use_change_point_agg_request.ts @@ -8,6 +8,8 @@ import { useEffect, useCallback, useState, useMemo } from 'react'; import { type QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; import { i18n } from '@kbn/i18n'; +import { useRefresh } from '@kbn/ml-date-picker'; +import { isDefined } from '@kbn/ml-is-defined'; import { useAiopsAppContext } from '../../hooks/use_aiops_app_context'; import { ChangePointAnnotation, @@ -16,78 +18,87 @@ import { } from './change_point_detection_context'; import { useDataSource } from '../../hooks/use_data_source'; import { useCancellableSearch } from '../../hooks/use_cancellable_search'; -import { useSplitFieldCardinality } from './use_split_field_cardinality'; +import { SPLIT_FIELD_CARDINALITY_LIMIT, COMPOSITE_AGG_SIZE } from './constants'; interface RequestOptions { index: string; fn: string; metricField: string; - splitField: string; + splitField?: string; timeField: string; timeInterval: string; afterKey?: string; } -export const COMPOSITE_AGG_SIZE = 500; - function getChangePointDetectionRequestBody( { index, fn, metricField, splitField, timeInterval, timeField, afterKey }: RequestOptions, query: QueryDslQueryContainer ) { - return { - params: { - index, - size: 0, - body: { - query, - aggregations: { - groupings: { - composite: { - size: COMPOSITE_AGG_SIZE, - ...(afterKey !== undefined ? { after: { splitFieldTerm: afterKey } } : {}), - sources: [ - { - splitFieldTerm: { - terms: { - field: splitField, - }, - }, - }, - ], + const timeSeriesAgg = { + over_time: { + date_histogram: { + field: timeField, + fixed_interval: timeInterval, + }, + aggs: { + function_value: { + [fn]: { + field: metricField, + }, + }, + }, + }, + change_point_request: { + change_point: { + buckets_path: 'over_time>function_value', + }, + }, + // Bucket selecting and sorting are only applicable for partitions + ...(isDefined(splitField) + ? { + select: { + bucket_selector: { + buckets_path: { p_value: 'change_point_request.p_value' }, + script: 'params.p_value < 1', }, - aggregations: { - over_time: { - date_histogram: { - field: timeField, - fixed_interval: timeInterval, - }, - aggs: { - function_value: { - [fn]: { - field: metricField, - }, + }, + sort: { + bucket_sort: { + sort: [{ 'change_point_request.p_value': { order: 'asc' } }], + }, + }, + } + : {}), + }; + + const aggregations = splitField + ? { + groupings: { + composite: { + size: COMPOSITE_AGG_SIZE, + ...(afterKey !== undefined ? { after: { splitFieldTerm: afterKey } } : {}), + sources: [ + { + splitFieldTerm: { + terms: { + field: splitField, }, }, }, - change_point_request: { - change_point: { - buckets_path: 'over_time>function_value', - }, - }, - select: { - bucket_selector: { - buckets_path: { p_value: 'change_point_request.p_value' }, - script: 'params.p_value < 1', - }, - }, - sort: { - bucket_sort: { - sort: [{ 'change_point_request.p_value': { order: 'asc' } }], - }, - }, - }, + ], }, + aggregations: timeSeriesAgg, }, + } + : timeSeriesAgg; + + return { + params: { + index, + size: 0, + body: { + query, + aggregations, }, }, }; @@ -97,7 +108,8 @@ const CHARTS_PER_PAGE = 6; export function useChangePointResults( requestParams: ChangePointDetectionRequestParams, - query: QueryDslQueryContainer + query: QueryDslQueryContainer, + splitFieldCardinality: number | null ) { const { notifications: { toasts }, @@ -105,11 +117,19 @@ export function useChangePointResults( const { dataView } = useDataSource(); + const refresh = useRefresh(); + const [results, setResults] = useState([]); const [activePage, setActivePage] = useState(0); const [progress, setProgress] = useState(0); - const splitFieldCardinality = useSplitFieldCardinality(requestParams.splitField, query); + const isSingleMetric = !isDefined(requestParams.splitField); + + const totalAggPages = useMemo(() => { + return Math.ceil( + Math.min(splitFieldCardinality ?? 0, SPLIT_FIELD_CARDINALITY_LIMIT) / COMPOSITE_AGG_SIZE + ); + }, [splitFieldCardinality]); const { runRequest, cancelRequest, isLoading } = useCancellableSearch(); @@ -121,9 +141,9 @@ export function useChangePointResults( }, [cancelRequest]); const fetchResults = useCallback( - async (afterKey?: string, prevBucketsCount?: number) => { + async (pageNumber: number = 1, afterKey?: string) => { try { - if (!splitFieldCardinality) { + if (!isSingleMetric && !totalAggPages) { setProgress(100); return; } @@ -150,22 +170,28 @@ export function useChangePointResults( return; } - const buckets = result.rawResponse.aggregations.groupings.buckets; + const buckets = ( + isSingleMetric + ? [result.rawResponse.aggregations] + : result.rawResponse.aggregations.groupings.buckets + ) as ChangePointAggResponse['aggregations']['groupings']['buckets']; - setProgress( - Math.min( - Math.round(((buckets.length + (prevBucketsCount ?? 0)) / splitFieldCardinality) * 100), - 100 - ) - ); + setProgress(Math.min(Math.round((pageNumber / totalAggPages) * 100), 100)); - const groups = buckets.map((v) => { + let groups = buckets.map((v) => { const changePointType = Object.keys(v.change_point_request.type)[0] as ChangePointType; const timeAsString = v.change_point_request.bucket?.key; const rawPValue = v.change_point_request.type[changePointType].p_value; return { - group_field: v.key.splitFieldTerm, + ...(isSingleMetric + ? {} + : { + group: { + name: requestParams.splitField, + value: v.key.splitFieldTerm, + }, + }), type: changePointType, p_value: rawPValue, timestamp: timeAsString, @@ -174,6 +200,10 @@ export function useChangePointResults( } as ChangePointAnnotation; }); + if (Array.isArray(requestParams.changePointType)) { + groups = groups.filter((v) => requestParams.changePointType!.includes(v.type)); + } + setResults((prev) => { return ( (prev ?? []) @@ -183,10 +213,13 @@ export function useChangePointResults( ); }); - if (result.rawResponse.aggregations.groupings.after_key?.splitFieldTerm) { + if ( + result.rawResponse.aggregations?.groupings?.after_key?.splitFieldTerm && + pageNumber < totalAggPages + ) { await fetchResults( - result.rawResponse.aggregations.groupings.after_key.splitFieldTerm, - buckets.length + (prevBucketsCount ?? 0) + pageNumber + 1, + result.rawResponse.aggregations.groupings.after_key.splitFieldTerm ); } else { setProgress(100); @@ -199,7 +232,7 @@ export function useChangePointResults( }); } }, - [runRequest, requestParams, query, dataView, splitFieldCardinality, toasts] + [runRequest, requestParams, query, dataView, totalAggPages, toasts, isSingleMetric] ); useEffect( @@ -211,7 +244,7 @@ export function useChangePointResults( cancelRequest(); }; }, - [requestParams, query, splitFieldCardinality, fetchResults, reset, cancelRequest] + [requestParams, query, splitFieldCardinality, fetchResults, reset, cancelRequest, refresh] ); const pagination = useMemo(() => { @@ -230,11 +263,15 @@ export function useChangePointResults( return { results: resultPerPage, isLoading, reset, progress, pagination }; } +/** + * Response type for aggregation with composite agg pagination. + * TODO: update type for the single metric + */ interface ChangePointAggResponse { took: number; timed_out: boolean; _shards: { total: number; failed: number; successful: number; skipped: number }; - hits: { hits: any[]; total: number; max_score: null }; + hits: { hits: unknown[]; total: number; max_score: null }; aggregations: { groupings: { after_key?: { diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/use_split_field_cardinality.ts b/x-pack/plugins/aiops/public/components/change_point_detection/use_split_field_cardinality.ts index 19e8212f1b8a8b..5bfaf09693184e 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/use_split_field_cardinality.ts +++ b/x-pack/plugins/aiops/public/components/change_point_detection/use_split_field_cardinality.ts @@ -19,8 +19,11 @@ import { useDataSource } from '../../hooks/use_data_source'; * @param splitField * @param query */ -export function useSplitFieldCardinality(splitField: string, query: QueryDslQueryContainer) { - const [cardinality, setCardinality] = useState(); +export function useSplitFieldCardinality( + splitField: string | undefined, + query: QueryDslQueryContainer +) { + const [cardinality, setCardinality] = useState(null); const { dataView } = useDataSource(); const requestPayload = useMemo(() => { @@ -46,6 +49,10 @@ export function useSplitFieldCardinality(splitField: string, query: QueryDslQuer useEffect( function performCardinalityCheck() { + if (splitField === undefined) { + return; + } + cancelRequest(); getSplitFieldCardinality< @@ -62,7 +69,7 @@ export function useSplitFieldCardinality(splitField: string, query: QueryDslQuer } }); }, - [getSplitFieldCardinality, requestPayload, cancelRequest] + [getSplitFieldCardinality, requestPayload, cancelRequest, splitField] ); return cardinality; diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx b/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx index ae67c55d87f055..f43b60d7daffaa 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx +++ b/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx @@ -21,11 +21,7 @@ import { DatePickerContextProvider } from '@kbn/ml-date-picker'; import { UI_SETTINGS } from '@kbn/data-plugin/common'; import { toMountPoint, wrapWithTheme } from '@kbn/kibana-react-plugin/public'; -import { - SEARCH_QUERY_LANGUAGE, - SearchQueryLanguage, - SavedSearchSavedObject, -} from '../../application/utils/search_utils'; +import { SEARCH_QUERY_LANGUAGE, SearchQueryLanguage } from '../../application/utils/search_utils'; import type { AiopsAppDependencies } from '../../hooks/use_aiops_app_context'; import { AiopsAppContext } from '../../hooks/use_aiops_app_context'; import { DataSourceContext } from '../../hooks/use_data_source'; @@ -41,7 +37,7 @@ export interface ExplainLogRateSpikesAppStateProps { /** The data view to analyze. */ dataView: DataView; /** The saved search to analyze. */ - savedSearch: SavedSearch | SavedSearchSavedObject | null; + savedSearch: SavedSearch | null; /** App dependencies */ appDependencies: AiopsAppDependencies; } diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_page.tsx b/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_page.tsx index 8f4504070cc08e..6c277456d2ec35 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_page.tsx +++ b/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_page.tsx @@ -67,11 +67,11 @@ export const ExplainLogRateSpikesPage: FC = () => { ); const [globalState, setGlobalState] = useUrlState('_g'); - const [currentSavedSearch, setCurrentSavedSearch] = useState(savedSearch); + const [selectedSavedSearch, setSelectedSavedSearch] = useState(savedSearch); useEffect(() => { if (savedSearch) { - setCurrentSavedSearch(savedSearch); + setSelectedSavedSearch(savedSearch); } }, [savedSearch]); @@ -84,8 +84,8 @@ export const ExplainLogRateSpikesPage: FC = () => { }) => { // When the user loads a saved search and then clears or modifies the query // we should remove the saved search and replace it with the index pattern id - if (currentSavedSearch !== null) { - setCurrentSavedSearch(null); + if (selectedSavedSearch !== null) { + setSelectedSavedSearch(null); } setAiopsListState({ @@ -96,7 +96,7 @@ export const ExplainLogRateSpikesPage: FC = () => { filters: searchParams.filters, }); }, - [currentSavedSearch, aiopsListState, setAiopsListState] + [selectedSavedSearch, aiopsListState, setAiopsListState] ); const { @@ -108,7 +108,7 @@ export const ExplainLogRateSpikesPage: FC = () => { searchString, searchQuery, } = useData( - { currentDataView: dataView, currentSavedSearch }, + { selectedDataView: dataView, selectedSavedSearch }, aiopsListState, setGlobalState, currentSelectedChangePoint, diff --git a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx index 235aa1a5184032..b5540133939260 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx @@ -17,7 +17,6 @@ import { UI_SETTINGS } from '@kbn/data-plugin/common'; import { toMountPoint, wrapWithTheme } from '@kbn/kibana-react-plugin/public'; import { DataSourceContext } from '../../hooks/use_data_source'; -import { SavedSearchSavedObject } from '../../application/utils/search_utils'; import type { AiopsAppDependencies } from '../../hooks/use_aiops_app_context'; import { AIOPS_STORAGE_KEYS } from '../../types/storage'; import { AiopsAppContext } from '../../hooks/use_aiops_app_context'; @@ -28,7 +27,7 @@ const localStorage = new Storage(window.localStorage); export interface LogCategorizationAppStateProps { dataView: DataView; - savedSearch: SavedSearch | SavedSearchSavedObject | null; + savedSearch: SavedSearch | null; appDependencies: AiopsAppDependencies; } diff --git a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx index ab66a75754e637..feb6ef9c9b31cc 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx @@ -52,13 +52,19 @@ export const LogCategorizationPage: FC = () => { const [selectedField, setSelectedField] = useState(); const [selectedCategory, setSelectedCategory] = useState(null); const [categories, setCategories] = useState(null); - const [currentSavedSearch, setCurrentSavedSearch] = useState(savedSearch); + const [selectedSavedSearch, setSelectedDataView] = useState(savedSearch); const [loading, setLoading] = useState(false); const [totalCount, setTotalCount] = useState(0); const [eventRate, setEventRate] = useState([]); const [pinnedCategory, setPinnedCategory] = useState(null); const [sparkLines, setSparkLines] = useState({}); + useEffect(() => { + if (savedSearch) { + setSelectedDataView(savedSearch); + } + }, [savedSearch]); + useEffect( function cancelRequestOnLeave() { return () => { @@ -77,8 +83,8 @@ export const LogCategorizationPage: FC = () => { }) => { // When the user loads saved search and then clear or modify the query // we should remove the saved search and replace it with the index pattern id - if (currentSavedSearch !== null) { - setCurrentSavedSearch(null); + if (selectedSavedSearch !== null) { + setSelectedDataView(null); } setAiopsListState({ @@ -89,7 +95,7 @@ export const LogCategorizationPage: FC = () => { filters: searchParams.filters, }); }, - [currentSavedSearch, aiopsListState, setAiopsListState] + [selectedSavedSearch, aiopsListState, setAiopsListState] ); const { @@ -102,7 +108,7 @@ export const LogCategorizationPage: FC = () => { searchQuery, intervalMs, } = useData( - { currentDataView: dataView, currentSavedSearch }, + { selectedDataView: dataView, selectedSavedSearch }, aiopsListState, setGlobalState, undefined, diff --git a/x-pack/plugins/aiops/public/hooks/use_data.ts b/x-pack/plugins/aiops/public/hooks/use_data.ts index 3cace69ed4e985..ff04b27b44e3ca 100644 --- a/x-pack/plugins/aiops/public/hooks/use_data.ts +++ b/x-pack/plugins/aiops/public/hooks/use_data.ts @@ -16,10 +16,7 @@ import { mlTimefilterRefresh$, useTimefilter } from '@kbn/ml-date-picker'; import type { DocumentStatsSearchStrategyParams } from '../get_document_stats'; import type { AiOpsIndexBasedAppState } from '../components/explain_log_rate_spikes/explain_log_rate_spikes_app_state'; -import { - getEsQueryFromSavedSearch, - SavedSearchSavedObject, -} from '../application/utils/search_utils'; +import { getEsQueryFromSavedSearch } from '../application/utils/search_utils'; import type { GroupTableItem } from '../components/spike_analysis_table/types'; import { useTimeBuckets } from './use_time_buckets'; @@ -31,9 +28,9 @@ const DEFAULT_BAR_TARGET = 75; export const useData = ( { - currentDataView, - currentSavedSearch, - }: { currentDataView: DataView; currentSavedSearch: SavedSearch | SavedSearchSavedObject | null }, + selectedDataView, + selectedSavedSearch, + }: { selectedDataView: DataView; selectedSavedSearch: SavedSearch | null }, aiopsListState: AiOpsIndexBasedAppState, onUpdate: (params: Dictionary) => void, selectedChangePoint?: ChangePoint, @@ -55,9 +52,9 @@ export const useData = ( /** Prepare required params to pass to search strategy **/ const { searchQueryLanguage, searchString, searchQuery } = useMemo(() => { const searchData = getEsQueryFromSavedSearch({ - dataView: currentDataView, + dataView: selectedDataView, uiSettings, - savedSearch: currentSavedSearch, + savedSearch: selectedSavedSearch, filterManager, }); @@ -82,8 +79,8 @@ export const useData = ( } // eslint-disable-next-line react-hooks/exhaustive-deps }, [ - currentSavedSearch?.id, - currentDataView.id, + selectedSavedSearch?.id, + selectedDataView.id, aiopsListState.searchString, aiopsListState.searchQueryLanguage, // eslint-disable-next-line react-hooks/exhaustive-deps @@ -96,7 +93,7 @@ export const useData = ( const _timeBuckets = useTimeBuckets(); const timefilter = useTimefilter({ - timeRangeSelector: currentDataView?.timeFieldName !== undefined, + timeRangeSelector: selectedDataView?.timeFieldName !== undefined, autoRefreshSelector: true, }); @@ -138,10 +135,10 @@ export const useData = ( earliest: timefilterActiveBounds.min?.valueOf(), latest: timefilterActiveBounds.max?.valueOf(), intervalMs: _timeBuckets.getInterval()?.asMilliseconds(), - index: currentDataView.getIndexPattern(), + index: selectedDataView.getIndexPattern(), searchQuery, - timeFieldName: currentDataView.timeFieldName, - runtimeFieldMap: currentDataView.getRuntimeMappings(), + timeFieldName: selectedDataView.timeFieldName, + runtimeFieldMap: selectedDataView.getRuntimeMappings(), }); setLastRefresh(Date.now()); } diff --git a/x-pack/plugins/aiops/public/hooks/use_data_source.ts b/x-pack/plugins/aiops/public/hooks/use_data_source.ts index e67aad07a338cb..64cf4fe8ec521c 100644 --- a/x-pack/plugins/aiops/public/hooks/use_data_source.ts +++ b/x-pack/plugins/aiops/public/hooks/use_data_source.ts @@ -7,12 +7,11 @@ import { createContext, useContext } from 'react'; import { DataView } from '@kbn/data-views-plugin/common'; -import { SavedSearch } from '@kbn/saved-search-plugin/public'; -import { SavedSearchSavedObject } from '../application/utils/search_utils'; +import type { SavedSearch } from '@kbn/saved-search-plugin/public'; export const DataSourceContext = createContext<{ dataView: DataView | never; - savedSearch: SavedSearch | SavedSearchSavedObject | null; + savedSearch: SavedSearch | null; }>({ get dataView(): never { throw new Error('DataSourceContext is not implemented'); diff --git a/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts b/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts index dfbc313632efc9..f8fac77a63cd8e 100644 --- a/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts +++ b/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts @@ -44,7 +44,7 @@ import type { AiopsLicense } from '../types'; import { duplicateIdentifier } from './queries/duplicate_identifier'; import { fetchChangePointPValues } from './queries/fetch_change_point_p_values'; import { fetchIndexInfo } from './queries/fetch_index_info'; -import { dropDuplicates, fetchFrequentItems } from './queries/fetch_frequent_items'; +import { dropDuplicates, fetchFrequentItemSets } from './queries/fetch_frequent_item_sets'; import { getHistogramQuery } from './queries/get_histogram_query'; import { getGroupFilter } from './queries/get_group_filter'; import { getChangePointGroups } from './queries/get_change_point_groups'; @@ -423,11 +423,11 @@ export const defineExplainLogRateSpikesRoute = ( }) ); - // Deduplicated change points we pass to the `frequent_items` aggregation. + // Deduplicated change points we pass to the `frequent_item_sets` aggregation. const deduplicatedChangePoints = dropDuplicates(changePoints, duplicateIdentifier); try { - const { fields, df } = await fetchFrequentItems( + const { fields, df } = await fetchFrequentItemSets( client, request.body.index, JSON.parse(request.body.searchQuery) as estypes.QueryDslQueryContainer, @@ -442,7 +442,7 @@ export const defineExplainLogRateSpikesRoute = ( ); if (shouldStop) { - logDebugMessage('shouldStop after fetching frequent_items.'); + logDebugMessage('shouldStop after fetching frequent_item_sets.'); end(); return; } diff --git a/x-pack/plugins/aiops/server/routes/queries/duplicate_identifier.ts b/x-pack/plugins/aiops/server/routes/queries/duplicate_identifier.ts index d996c060f7fe96..b8e24946672dc9 100644 --- a/x-pack/plugins/aiops/server/routes/queries/duplicate_identifier.ts +++ b/x-pack/plugins/aiops/server/routes/queries/duplicate_identifier.ts @@ -7,7 +7,7 @@ import type { ChangePoint } from '@kbn/ml-agg-utils'; -// To optimize the `frequent_items` query, we identify duplicate change points by count attributes. +// To optimize the `frequent_item_sets` query, we identify duplicate change points by count attributes. // Note this is a compromise and not 100% accurate because there could be change points that // have the exact same counts but still don't co-occur. export const duplicateIdentifier: Array = [ diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_item_sets.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_item_sets.ts new file mode 100644 index 00000000000000..2f28a55ceeb2d6 --- /dev/null +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_item_sets.ts @@ -0,0 +1,226 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { uniq, uniqWith, pick, isEqual } from 'lodash'; + +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; + +import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; +import type { Logger } from '@kbn/logging'; +import { type ChangePoint, RANDOM_SAMPLER_SEED } from '@kbn/ml-agg-utils'; +import { isPopulatedObject } from '@kbn/ml-is-populated-object'; + +import type { ChangePointDuplicateGroup, ItemsetResult } from '../../../common/types'; + +const FREQUENT_ITEM_SETS_FIELDS_LIMIT = 15; + +interface FrequentItemSetsAggregation extends estypes.AggregationsSamplerAggregation { + fi: { + buckets: Array<{ key: Record; doc_count: number; support: number }>; + }; +} + +interface RandomSamplerAggregation { + sample: FrequentItemSetsAggregation; +} + +function isRandomSamplerAggregation(arg: unknown): arg is RandomSamplerAggregation { + return isPopulatedObject(arg, ['sample']); +} + +export function dropDuplicates(cps: ChangePoint[], uniqueFields: Array) { + return uniqWith(cps, (a, b) => isEqual(pick(a, uniqueFields), pick(b, uniqueFields))); +} + +export function groupDuplicates(cps: ChangePoint[], uniqueFields: Array) { + const groups: ChangePointDuplicateGroup[] = []; + + for (const cp of cps) { + const compareAttributes = pick(cp, uniqueFields); + + const groupIndex = groups.findIndex((g) => isEqual(g.keys, compareAttributes)); + if (groupIndex === -1) { + groups.push({ + keys: compareAttributes, + group: [cp], + }); + } else { + groups[groupIndex].group.push(cp); + } + } + + return groups; +} + +export async function fetchFrequentItemSets( + client: ElasticsearchClient, + index: string, + searchQuery: estypes.QueryDslQueryContainer, + changePoints: ChangePoint[], + timeFieldName: string, + deviationMin: number, + deviationMax: number, + logger: Logger, + // The default value of 1 means no sampling will be used + sampleProbability: number = 1, + emitError: (m: string) => void, + abortSignal?: AbortSignal +) { + // Sort change points by ascending p-value, necessary to apply the field limit correctly. + const sortedChangePoints = changePoints.slice().sort((a, b) => { + return (a.pValue ?? 0) - (b.pValue ?? 0); + }); + + // Get up to 15 unique fields from change points with retained order + const fields = sortedChangePoints.reduce((p, c) => { + if (p.length < FREQUENT_ITEM_SETS_FIELDS_LIMIT && !p.some((d) => d === c.fieldName)) { + p.push(c.fieldName); + } + return p; + }, []); + + const query = { + bool: { + minimum_should_match: 2, + filter: [ + searchQuery, + { + range: { + [timeFieldName]: { + gte: deviationMin, + lt: deviationMax, + }, + }, + }, + ], + should: sortedChangePoints.map((t) => { + return { term: { [t.fieldName]: t.fieldValue } }; + }), + }, + }; + + const aggFields = fields.map((field) => ({ + field, + })); + + const frequentItemSetsAgg: Record = { + fi: { + // @ts-expect-error `frequent_item_sets` is not yet part of `AggregationsAggregationContainer` + frequent_item_sets: { + minimum_set_size: 2, + size: 200, + minimum_support: 0.1, + fields: aggFields, + }, + }, + }; + + // frequent items can be slow, so sample and use 10% min_support + const randomSamplerAgg: Record = { + sample: { + // @ts-expect-error `random_sampler` is not yet part of `AggregationsAggregationContainer` + random_sampler: { + probability: sampleProbability, + seed: RANDOM_SAMPLER_SEED, + }, + aggs: frequentItemSetsAgg, + }, + }; + + const esBody = { + query, + aggs: sampleProbability < 1 ? randomSamplerAgg : frequentItemSetsAgg, + size: 0, + track_total_hits: true, + }; + + const body = await client.search< + unknown, + { sample: FrequentItemSetsAggregation } | FrequentItemSetsAggregation + >( + { + index, + size: 0, + body: esBody, + }, + { signal: abortSignal, maxRetries: 0 } + ); + + if (body.aggregations === undefined) { + logger.error(`Failed to fetch frequent_item_sets, got: \n${JSON.stringify(body, null, 2)}`); + emitError(`Failed to fetch frequent_item_sets.`); + return { + fields: [], + df: [], + totalDocCount: 0, + }; + } + + const totalDocCountFi = (body.hits.total as estypes.SearchTotalHits).value; + + const frequentItemSets = isRandomSamplerAggregation(body.aggregations) + ? body.aggregations.sample.fi + : body.aggregations.fi; + + const shape = frequentItemSets.buckets.length; + let maximum = shape; + if (maximum > 50000) { + maximum = 50000; + } + + const fiss = frequentItemSets.buckets; + fiss.length = maximum; + + const results: ItemsetResult[] = []; + + fiss.forEach((fis) => { + const result: ItemsetResult = { + set: {}, + size: 0, + maxPValue: 0, + doc_count: 0, + support: 0, + total_doc_count: 0, + }; + let maxPValue: number | undefined; + Object.entries(fis.key).forEach(([key, value]) => { + result.set[key] = value[0]; + + const pValue = sortedChangePoints.find( + (t) => t.fieldName === key && t.fieldValue === value[0] + )?.pValue; + + if (pValue !== undefined && pValue !== null) { + maxPValue = Math.max(maxPValue ?? 0, pValue); + } + }); + + if (maxPValue === undefined) { + return; + } + + result.size = Object.keys(result.set).length; + result.maxPValue = maxPValue; + result.doc_count = fis.doc_count; + result.support = fis.support; + result.total_doc_count = totalDocCountFi; + + results.push(result); + }); + + results.sort((a, b) => { + return b.doc_count - a.doc_count; + }); + + const uniqueFields = uniq(results.flatMap((r) => Object.keys(r.set))); + + return { + fields: uniqueFields, + df: results, + totalDocCount: totalDocCountFi, + }; +} diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_items.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_items.ts deleted file mode 100644 index 76aeeb1eabcdbd..00000000000000 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_items.ts +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { uniq, uniqWith, pick, isEqual } from 'lodash'; - -import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; - -import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; -import type { Logger } from '@kbn/logging'; -import { type ChangePoint, RANDOM_SAMPLER_SEED } from '@kbn/ml-agg-utils'; -import { isPopulatedObject } from '@kbn/ml-is-populated-object'; - -import type { ChangePointDuplicateGroup, ItemsetResult } from '../../../common/types'; - -const FREQUENT_ITEMS_FIELDS_LIMIT = 15; - -interface FrequentItemsAggregation extends estypes.AggregationsSamplerAggregation { - fi: { - buckets: Array<{ key: Record; doc_count: number; support: number }>; - }; -} - -interface RandomSamplerAggregation { - sample: FrequentItemsAggregation; -} - -function isRandomSamplerAggregation(arg: unknown): arg is RandomSamplerAggregation { - return isPopulatedObject(arg, ['sample']); -} - -export function dropDuplicates(cps: ChangePoint[], uniqueFields: Array) { - return uniqWith(cps, (a, b) => isEqual(pick(a, uniqueFields), pick(b, uniqueFields))); -} - -export function groupDuplicates(cps: ChangePoint[], uniqueFields: Array) { - const groups: ChangePointDuplicateGroup[] = []; - - for (const cp of cps) { - const compareAttributes = pick(cp, uniqueFields); - - const groupIndex = groups.findIndex((g) => isEqual(g.keys, compareAttributes)); - if (groupIndex === -1) { - groups.push({ - keys: compareAttributes, - group: [cp], - }); - } else { - groups[groupIndex].group.push(cp); - } - } - - return groups; -} - -export async function fetchFrequentItems( - client: ElasticsearchClient, - index: string, - searchQuery: estypes.QueryDslQueryContainer, - changePoints: ChangePoint[], - timeFieldName: string, - deviationMin: number, - deviationMax: number, - logger: Logger, - // The default value of 1 means no sampling will be used - sampleProbability: number = 1, - emitError: (m: string) => void, - abortSignal?: AbortSignal -) { - // Sort change points by ascending p-value, necessary to apply the field limit correctly. - const sortedChangePoints = changePoints.slice().sort((a, b) => { - return (a.pValue ?? 0) - (b.pValue ?? 0); - }); - - // Get up to 15 unique fields from change points with retained order - const fields = sortedChangePoints.reduce((p, c) => { - if (p.length < FREQUENT_ITEMS_FIELDS_LIMIT && !p.some((d) => d === c.fieldName)) { - p.push(c.fieldName); - } - return p; - }, []); - - const query = { - bool: { - minimum_should_match: 2, - filter: [ - searchQuery, - { - range: { - [timeFieldName]: { - gte: deviationMin, - lt: deviationMax, - }, - }, - }, - ], - should: sortedChangePoints.map((t) => { - return { term: { [t.fieldName]: t.fieldValue } }; - }), - }, - }; - - const aggFields = fields.map((field) => ({ - field, - })); - - const frequentItemsAgg: Record = { - fi: { - // @ts-expect-error `frequent_items` is not yet part of `AggregationsAggregationContainer` - frequent_items: { - minimum_set_size: 2, - size: 200, - minimum_support: 0.1, - fields: aggFields, - }, - }, - }; - - // frequent items can be slow, so sample and use 10% min_support - const randomSamplerAgg: Record = { - sample: { - // @ts-expect-error `random_sampler` is not yet part of `AggregationsAggregationContainer` - random_sampler: { - probability: sampleProbability, - seed: RANDOM_SAMPLER_SEED, - }, - aggs: frequentItemsAgg, - }, - }; - - const esBody = { - query, - aggs: sampleProbability < 1 ? randomSamplerAgg : frequentItemsAgg, - size: 0, - track_total_hits: true, - }; - - const body = await client.search< - unknown, - { sample: FrequentItemsAggregation } | FrequentItemsAggregation - >( - { - index, - size: 0, - body: esBody, - }, - { signal: abortSignal, maxRetries: 0 } - ); - - if (body.aggregations === undefined) { - logger.error(`Failed to fetch frequent_items, got: \n${JSON.stringify(body, null, 2)}`); - emitError(`Failed to fetch frequent_items.`); - return { - fields: [], - df: [], - totalDocCount: 0, - }; - } - - const totalDocCountFi = (body.hits.total as estypes.SearchTotalHits).value; - - const frequentItems = isRandomSamplerAggregation(body.aggregations) - ? body.aggregations.sample.fi - : body.aggregations.fi; - - const shape = frequentItems.buckets.length; - let maximum = shape; - if (maximum > 50000) { - maximum = 50000; - } - - const fiss = frequentItems.buckets; - fiss.length = maximum; - - const results: ItemsetResult[] = []; - - fiss.forEach((fis) => { - const result: ItemsetResult = { - set: {}, - size: 0, - maxPValue: 0, - doc_count: 0, - support: 0, - total_doc_count: 0, - }; - let maxPValue: number | undefined; - Object.entries(fis.key).forEach(([key, value]) => { - result.set[key] = value[0]; - - const pValue = sortedChangePoints.find( - (t) => t.fieldName === key && t.fieldValue === value[0] - )?.pValue; - - if (pValue !== undefined && pValue !== null) { - maxPValue = Math.max(maxPValue ?? 0, pValue); - } - }); - - if (maxPValue === undefined) { - return; - } - - result.size = Object.keys(result.set).length; - result.maxPValue = maxPValue; - result.doc_count = fis.doc_count; - result.support = fis.support; - result.total_doc_count = totalDocCountFi; - - results.push(result); - }); - - results.sort((a, b) => { - return b.doc_count - a.doc_count; - }); - - const uniqueFields = uniq(results.flatMap((r) => Object.keys(r.set))); - - return { - fields: uniqueFields, - df: results, - totalDocCount: totalDocCountFi, - }; -} diff --git a/x-pack/plugins/aiops/server/routes/queries/get_change_point_groups.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_change_point_groups.test.ts index 2496e9e927f0ed..7340d8e834d10f 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_change_point_groups.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_change_point_groups.test.ts @@ -6,7 +6,7 @@ */ import { fields } from '../../../common/__mocks__/artificial_logs/fields'; -import { frequentItems } from '../../../common/__mocks__/artificial_logs/frequent_items'; +import { frequentItemSets } from '../../../common/__mocks__/artificial_logs/frequent_item_sets'; import { changePoints } from '../../../common/__mocks__/artificial_logs/change_points'; import { finalChangePointGroups } from '../../../common/__mocks__/artificial_logs/final_change_point_groups'; @@ -14,7 +14,7 @@ import { getChangePointGroups } from './get_change_point_groups'; describe('getChangePointGroups', () => { it('gets change point groups', () => { - const changePointGroups = getChangePointGroups(frequentItems, changePoints, fields); + const changePointGroups = getChangePointGroups(frequentItemSets, changePoints, fields); expect(changePointGroups).toEqual(finalChangePointGroups); }); diff --git a/x-pack/plugins/aiops/server/routes/queries/get_change_point_groups.ts b/x-pack/plugins/aiops/server/routes/queries/get_change_point_groups.ts index fa0722b15c9a4f..5b9920c180d459 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_change_point_groups.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_change_point_groups.ts @@ -8,12 +8,12 @@ import type { ChangePoint, ChangePointGroup } from '@kbn/ml-agg-utils'; import { duplicateIdentifier } from './duplicate_identifier'; -import { dropDuplicates, groupDuplicates } from './fetch_frequent_items'; +import { dropDuplicates, groupDuplicates } from './fetch_frequent_item_sets'; import { getFieldValuePairCounts } from './get_field_value_pair_counts'; import { getMarkedDuplicates } from './get_marked_duplicates'; import { getSimpleHierarchicalTree } from './get_simple_hierarchical_tree'; import { getSimpleHierarchicalTreeLeaves } from './get_simple_hierarchical_tree_leaves'; -import { getFilteredFrequentItems } from './get_filtered_frequent_items'; +import { getFilteredFrequentItemSets } from './get_filtered_frequent_item_sets'; import { getGroupsWithReaddedDuplicates } from './get_groups_with_readded_duplicates'; import { getMissingChangePoints } from './get_missing_change_points'; import { transformChangePointToGroup } from './transform_change_point_to_group'; @@ -24,22 +24,22 @@ export function getChangePointGroups( changePoints: ChangePoint[], fields: string[] ): ChangePointGroup[] { - // These are the deduplicated change points we pass to the `frequent_items` aggregation. + // These are the deduplicated change points we pass to the `frequent_item_sets` aggregation. const deduplicatedChangePoints = dropDuplicates(changePoints, duplicateIdentifier); // We use the grouped change points to later repopulate - // the `frequent_items` result with the missing duplicates. + // the `frequent_item_sets` result with the missing duplicates. const groupedChangePoints = groupDuplicates(changePoints, duplicateIdentifier).filter( (g) => g.group.length > 1 ); - const filteredDf = getFilteredFrequentItems(itemsets, changePoints); + const filteredDf = getFilteredFrequentItemSets(itemsets, changePoints); - // `frequent_items` returns lot of different small groups of field/value pairs that co-occur. + // `frequent_item_sets` returns lot of different small groups of field/value pairs that co-occur. // The following steps analyse these small groups, identify overlap between these groups, // and then summarize them in larger groups where possible. - // Get a tree structure based on `frequent_items`. + // Get a tree structure based on `frequent_item_sets`. const { root } = getSimpleHierarchicalTree(filteredDf, true, false, fields); // Each leave of the tree will be a summarized group of co-occuring field/value pairs. @@ -48,7 +48,7 @@ export function getChangePointGroups( // To be able to display a more cleaned up results table in the UI, we identify field/value pairs // that occur in multiple groups. This will allow us to highlight field/value pairs that are // unique to a group in a better way. This step will also re-add duplicates we identified in the - // beginning and didn't pass on to the `frequent_items` agg. + // beginning and didn't pass on to the `frequent_item_sets` agg. const fieldValuePairCounts = getFieldValuePairCounts(treeLeaves); const changePointGroupsWithMarkedDuplicates = getMarkedDuplicates( treeLeaves, @@ -59,7 +59,7 @@ export function getChangePointGroups( groupedChangePoints ); - // Some field/value pairs might not be part of the `frequent_items` result set, for example + // Some field/value pairs might not be part of the `frequent_item_sets` result set, for example // because they don't co-occur with other field/value pairs or because of the limits we set on the query. // In this next part we identify those missing pairs and add them as individual groups. const missingChangePoints = getMissingChangePoints(deduplicatedChangePoints, changePointGroups); diff --git a/x-pack/plugins/aiops/server/routes/queries/get_field_value_pair_counts.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_field_value_pair_counts.test.ts index d5b56751fa1732..7c104e2ecb586f 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_field_value_pair_counts.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_field_value_pair_counts.test.ts @@ -7,7 +7,7 @@ import { changePointGroups } from '../../../common/__mocks__/farequote/change_point_groups'; import { fields } from '../../../common/__mocks__/artificial_logs/fields'; -import { filteredFrequentItems } from '../../../common/__mocks__/artificial_logs/filtered_frequent_items'; +import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; import { getFieldValuePairCounts } from './get_field_value_pair_counts'; import { getSimpleHierarchicalTree } from './get_simple_hierarchical_tree'; @@ -30,7 +30,7 @@ describe('getFieldValuePairCounts', () => { it('returns a nested record with field/value pair counts for artificial logs', () => { const simpleHierarchicalTree = getSimpleHierarchicalTree( - filteredFrequentItems, + filteredFrequentItemSets, true, false, fields diff --git a/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_item_sets.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_item_sets.test.ts new file mode 100644 index 00000000000000..ed907770d3484b --- /dev/null +++ b/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_item_sets.test.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { changePoints } from '../../../common/__mocks__/artificial_logs/change_points'; +import { frequentItemSets } from '../../../common/__mocks__/artificial_logs/frequent_item_sets'; +import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; + +import { getFilteredFrequentItemSets } from './get_filtered_frequent_item_sets'; + +describe('getFilteredFrequentItemSets', () => { + it('filter frequent item set based on provided change points', () => { + expect(getFilteredFrequentItemSets(frequentItemSets, changePoints)).toStrictEqual( + filteredFrequentItemSets + ); + }); +}); diff --git a/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_item_sets.ts b/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_item_sets.ts new file mode 100644 index 00000000000000..15ba268fa733c1 --- /dev/null +++ b/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_item_sets.ts @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isEqual } from 'lodash'; + +import type { ChangePoint } from '@kbn/ml-agg-utils'; + +import type { ItemsetResult } from '../../../common/types'; + +// The way the `frequent_item_sets` aggregation works could return item sets that include +// field/value pairs that are not part of the original list of significant change points. +// This cleans up groups and removes those unrelated field/value pairs. +export function getFilteredFrequentItemSets( + itemsets: ItemsetResult[], + changePoints: ChangePoint[] +): ItemsetResult[] { + return itemsets.reduce((p, itemset, itemsetIndex) => { + // Remove field/value pairs not part of the provided change points + itemset.set = Object.entries(itemset.set).reduce( + (set, [field, value]) => { + if (changePoints.some((cp) => cp.fieldName === field && cp.fieldValue === value)) { + set[field] = value; + } + return set; + }, + {} + ); + + // Only assign the updated reduced set if it doesn't already match + // an existing set. if there's a match just add an empty set + // so it will be filtered in the last step. + if (itemsets.some((d, dIndex) => itemsetIndex !== dIndex && isEqual(itemset.set, d.set))) { + return p; + } + + // Update the size attribute to match the possibly updated set + itemset.size = Object.keys(itemset.set).length; + + p.push(itemset); + + return p; + }, []); +} diff --git a/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_items.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_items.test.ts deleted file mode 100644 index 8399c0366dea10..00000000000000 --- a/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_items.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { changePoints } from '../../../common/__mocks__/artificial_logs/change_points'; -import { frequentItems } from '../../../common/__mocks__/artificial_logs/frequent_items'; -import { filteredFrequentItems } from '../../../common/__mocks__/artificial_logs/filtered_frequent_items'; - -import { getFilteredFrequentItems } from './get_filtered_frequent_items'; - -describe('getFilteredFrequentItems', () => { - it('filter frequent item set based on provided change points', () => { - expect(getFilteredFrequentItems(frequentItems, changePoints)).toStrictEqual( - filteredFrequentItems - ); - }); -}); diff --git a/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_items.ts b/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_items.ts deleted file mode 100644 index e071621f6d9f7e..00000000000000 --- a/x-pack/plugins/aiops/server/routes/queries/get_filtered_frequent_items.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { isEqual } from 'lodash'; - -import type { ChangePoint } from '@kbn/ml-agg-utils'; - -import type { ItemsetResult } from '../../../common/types'; - -// The way the `frequent_items` aggregation works could return item sets that include -// field/value pairs that are not part of the original list of significant change points. -// This cleans up groups and removes those unrelated field/value pairs. -export function getFilteredFrequentItems( - itemsets: ItemsetResult[], - changePoints: ChangePoint[] -): ItemsetResult[] { - return itemsets.reduce((p, itemset, itemsetIndex) => { - // Remove field/value pairs not part of the provided change points - itemset.set = Object.entries(itemset.set).reduce( - (set, [field, value]) => { - if (changePoints.some((cp) => cp.fieldName === field && cp.fieldValue === value)) { - set[field] = value; - } - return set; - }, - {} - ); - - // Only assign the updated reduced set if it doesn't already match - // an existing set. if there's a match just add an empty set - // so it will be filtered in the last step. - if (itemsets.some((d, dIndex) => itemsetIndex !== dIndex && isEqual(itemset.set, d.set))) { - return p; - } - - // Update the size attribute to match the possibly updated set - itemset.size = Object.keys(itemset.set).length; - - p.push(itemset); - - return p; - }, []); -} diff --git a/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.test.ts index 50b5719e49fa4c..257acff9793b5e 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.test.ts @@ -10,7 +10,7 @@ import { changePoints } from '../../../common/__mocks__/artificial_logs/change_p import { duplicateIdentifier } from './duplicate_identifier'; import { getGroupsWithReaddedDuplicates } from './get_groups_with_readded_duplicates'; -import { groupDuplicates } from './fetch_frequent_items'; +import { groupDuplicates } from './fetch_frequent_item_sets'; import { getFieldValuePairCounts } from './get_field_value_pair_counts'; import { getMarkedDuplicates } from './get_marked_duplicates'; diff --git a/x-pack/plugins/aiops/server/routes/queries/get_marked_duplicates.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_marked_duplicates.test.ts index e44a26d70494cf..f84f08e235b6ad 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_marked_duplicates.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_marked_duplicates.test.ts @@ -7,7 +7,7 @@ import { changePointGroups } from '../../../common/__mocks__/farequote/change_point_groups'; import { fields } from '../../../common/__mocks__/artificial_logs/fields'; -import { filteredFrequentItems } from '../../../common/__mocks__/artificial_logs/filtered_frequent_items'; +import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; import { getFieldValuePairCounts } from './get_field_value_pair_counts'; import { getMarkedDuplicates } from './get_marked_duplicates'; @@ -59,7 +59,7 @@ describe('markDuplicates', () => { it('marks duplicates based on change point groups for artificial logs', () => { const simpleHierarchicalTree = getSimpleHierarchicalTree( - filteredFrequentItems, + filteredFrequentItemSets, true, false, fields diff --git a/x-pack/plugins/aiops/server/routes/queries/get_missing_change_points.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_missing_change_points.test.ts index 477321b74e0075..757097c84e0c82 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_missing_change_points.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_missing_change_points.test.ts @@ -10,7 +10,7 @@ import { changePoints } from '../../../common/__mocks__/artificial_logs/change_p import { duplicateIdentifier } from './duplicate_identifier'; import { getGroupsWithReaddedDuplicates } from './get_groups_with_readded_duplicates'; -import { dropDuplicates, groupDuplicates } from './fetch_frequent_items'; +import { dropDuplicates, groupDuplicates } from './fetch_frequent_item_sets'; import { getFieldValuePairCounts } from './get_field_value_pair_counts'; import { getMarkedDuplicates } from './get_marked_duplicates'; import { getMissingChangePoints } from './get_missing_change_points'; diff --git a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.test.ts index 36cc113ad7be07..e7f40a795bc165 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.test.ts @@ -6,7 +6,7 @@ */ import { fields } from '../../../common/__mocks__/artificial_logs/fields'; -import { filteredFrequentItems } from '../../../common/__mocks__/artificial_logs/filtered_frequent_items'; +import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; import { getSimpleHierarchicalTree } from './get_simple_hierarchical_tree'; @@ -16,7 +16,7 @@ describe('getSimpleHierarchicalTree', () => { // and make it comparable against a static representation. expect( JSON.parse( - JSON.stringify(getSimpleHierarchicalTree(filteredFrequentItems, true, false, fields)) + JSON.stringify(getSimpleHierarchicalTree(filteredFrequentItemSets, true, false, fields)) ) ).toEqual({ root: { diff --git a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree_leaves.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree_leaves.test.ts index 9567d38f3d402a..89d345bf1d82d8 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree_leaves.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree_leaves.test.ts @@ -6,7 +6,7 @@ */ import { fields } from '../../../common/__mocks__/artificial_logs/fields'; -import { filteredFrequentItems } from '../../../common/__mocks__/artificial_logs/filtered_frequent_items'; +import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; import { getSimpleHierarchicalTree } from './get_simple_hierarchical_tree'; import { getSimpleHierarchicalTreeLeaves } from './get_simple_hierarchical_tree_leaves'; @@ -14,7 +14,7 @@ import { getSimpleHierarchicalTreeLeaves } from './get_simple_hierarchical_tree_ describe('getSimpleHierarchicalTreeLeaves', () => { it('returns the hierarchical tree leaves', () => { const simpleHierarchicalTree = getSimpleHierarchicalTree( - filteredFrequentItems, + filteredFrequentItemSets, true, false, fields diff --git a/x-pack/plugins/aiops/server/routes/queries/get_value_counts.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_value_counts.test.ts index 744179c485caae..89d7880b5250bb 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_value_counts.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_value_counts.test.ts @@ -5,12 +5,12 @@ * 2.0. */ -import { frequentItems } from '../../../common/__mocks__/artificial_logs/frequent_items'; +import { frequentItemSets } from '../../../common/__mocks__/artificial_logs/frequent_item_sets'; import { getValueCounts } from './get_value_counts'; describe('getValueCounts', () => { it('get value counts for field response_code', () => { - expect(getValueCounts(frequentItems, 'response_code')).toEqual({ + expect(getValueCounts(frequentItemSets, 'response_code')).toEqual({ '200': 1, '404': 1, '500': 3, @@ -18,11 +18,11 @@ describe('getValueCounts', () => { }); it('get value counts for field url', () => { - expect(getValueCounts(frequentItems, 'url')).toEqual({ 'home.php': 6 }); + expect(getValueCounts(frequentItemSets, 'url')).toEqual({ 'home.php': 6 }); }); it('get value counts for field user', () => { - expect(getValueCounts(frequentItems, 'user')).toEqual({ + expect(getValueCounts(frequentItemSets, 'user')).toEqual({ Mary: 1, Paul: 1, Peter: 3, diff --git a/x-pack/plugins/aiops/server/routes/queries/get_values_descending.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_values_descending.test.ts index cd4935b4fcc8fd..e3519995fc916f 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_values_descending.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_values_descending.test.ts @@ -5,19 +5,19 @@ * 2.0. */ -import { frequentItems } from '../../../common/__mocks__/artificial_logs/frequent_items'; +import { frequentItemSets } from '../../../common/__mocks__/artificial_logs/frequent_item_sets'; import { getValuesDescending } from './get_values_descending'; describe('getValuesDescending', () => { it('get descending values for field response_code', () => { - expect(getValuesDescending(frequentItems, 'response_code')).toEqual(['500', '200', '404']); + expect(getValuesDescending(frequentItemSets, 'response_code')).toEqual(['500', '200', '404']); }); it('get descending values for field url', () => { - expect(getValuesDescending(frequentItems, 'url')).toEqual(['home.php']); + expect(getValuesDescending(frequentItemSets, 'url')).toEqual(['home.php']); }); it('get descending values for field user', () => { - expect(getValuesDescending(frequentItems, 'user')).toEqual(['Peter', 'Mary', 'Paul']); + expect(getValuesDescending(frequentItemSets, 'user')).toEqual(['Peter', 'Mary', 'Paul']); }); }); diff --git a/x-pack/plugins/aiops/server/routes/queries/transform_change_point_to_group.test.ts b/x-pack/plugins/aiops/server/routes/queries/transform_change_point_to_group.test.ts index 448f3003fc924c..c1ed0bcbcb6ab5 100644 --- a/x-pack/plugins/aiops/server/routes/queries/transform_change_point_to_group.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/transform_change_point_to_group.test.ts @@ -10,7 +10,7 @@ import { changePoints } from '../../../common/__mocks__/artificial_logs/change_p import { duplicateIdentifier } from './duplicate_identifier'; import { getGroupsWithReaddedDuplicates } from './get_groups_with_readded_duplicates'; -import { dropDuplicates, groupDuplicates } from './fetch_frequent_items'; +import { dropDuplicates, groupDuplicates } from './fetch_frequent_item_sets'; import { getFieldValuePairCounts } from './get_field_value_pair_counts'; import { getMarkedDuplicates } from './get_marked_duplicates'; import { getMissingChangePoints } from './get_missing_change_points'; diff --git a/x-pack/plugins/aiops/tsconfig.json b/x-pack/plugins/aiops/tsconfig.json index a5f260e695cbb9..1f465d61f80ab0 100644 --- a/x-pack/plugins/aiops/tsconfig.json +++ b/x-pack/plugins/aiops/tsconfig.json @@ -47,6 +47,7 @@ "@kbn/ml-date-picker", "@kbn/ml-local-storage", "@kbn/ml-query-utils", + "@kbn/ml-is-defined", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/alerting/common/rule.ts b/x-pack/plugins/alerting/common/rule.ts index 3bfddd79af10d1..49c274f140ea90 100644 --- a/x-pack/plugins/alerting/common/rule.ts +++ b/x-pack/plugins/alerting/common/rule.ts @@ -35,6 +35,12 @@ export type RuleExecutionStatuses = typeof RuleExecutionStatusValues[number]; export const RuleLastRunOutcomeValues = ['succeeded', 'warning', 'failed'] as const; export type RuleLastRunOutcomes = typeof RuleLastRunOutcomeValues[number]; +export const RuleLastRunOutcomeOrderMap: Record = { + succeeded: 0, + warning: 10, + failed: 20, +}; + export enum RuleExecutionStatusErrorReasons { Read = 'read', Decrypt = 'decrypt', @@ -93,6 +99,7 @@ export interface RuleAggregations { export interface RuleLastRun { outcome: RuleLastRunOutcomes; + outcomeOrder?: number; warning?: RuleExecutionStatusErrorReasons | RuleExecutionStatusWarningReasons | null; outcomeMsg?: string[] | null; alertsCount: { @@ -161,6 +168,8 @@ export type SanitizedRuleConfig = Pick< | 'updatedAt' | 'throttle' | 'notifyWhen' + | 'muteAll' + | 'snoozeSchedule' > & { producer: string; ruleTypeId: string; diff --git a/x-pack/plugins/alerting/docs/openapi/bundled.json b/x-pack/plugins/alerting/docs/openapi/bundled.json index a245616abe4612..e7fbc15c77c015 100644 --- a/x-pack/plugins/alerting/docs/openapi/bundled.json +++ b/x-pack/plugins/alerting/docs/openapi/bundled.json @@ -2500,6 +2500,23 @@ } }, "schemas": { + "notify_when": { + "type": "string", + "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met.\n", + "enum": [ + "onActionGroupChange", + "onActiveAlert", + "onThrottleInterval" + ], + "example": "onActiveAlert" + }, + "throttle": { + "type": "string", + "description": "The throttle interval, which defines how often an alert generates repeated actions. It is applicable only if `notify_when` is set to `onThrottleInterval`. It is specified in seconds, minutes, hours, or days.", + "nullable": true, + "default": null, + "example": "10m" + }, "actions": { "type": "array", "default": [], @@ -2512,6 +2529,32 @@ "items": { "type": "object", "properties": { + "connector_type_id": { + "type": "string", + "description": "The type of connector. This property appears in responses but cannot be set in requests.", + "example": ".server-log", + "readOnly": true + }, + "frequency": { + "type": "object", + "description": "The parameters that affect how often actions are generated. NOTE: You cannot specify these parameters when `notify_when` or `throttle` are defined at the rule level.\n", + "required": [ + "notify_when", + "summary" + ], + "properties": { + "notify_when": { + "$ref": "#/components/schemas/notify_when" + }, + "summary": { + "type": "boolean", + "description": "Indicates whether the action is a summary." + }, + "throttle": { + "$ref": "#/components/schemas/throttle" + } + } + }, "group": { "type": "string", "description": "The group name for the actions. If you don't need to group actions, set to `default`.", @@ -2530,16 +2573,6 @@ } } }, - "notify_when": { - "type": "string", - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met.\n", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "example": "onActiveAlert" - }, "schedule": { "type": "object", "description": "The check interval, which specifies how frequently the rule conditions are checked. The interval is specified in seconds, minutes, hours, or days.", @@ -2558,13 +2591,6 @@ }, "default": [] }, - "throttle": { - "type": "string", - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is applicable only if `notify_when` is set to `onThrottleInterval`. It is specified in seconds, minutes, hours, or days.", - "nullable": true, - "default": null, - "example": "10m" - }, "rule_response_properties": { "title": "Rule response properties", "type": "object", @@ -2580,7 +2606,6 @@ "mute_all", "muted_alert_ids", "name", - "notify_when", "params", "rule_type_id", "schedule", @@ -2714,6 +2739,10 @@ "description": "The identifier for the type of rule. For example, `.es-query`, `.index-threshold`, `logs.alert.document.count`, `monitoring_alert_cluster_health`, `siem.thresholdRule`, or `xpack.ml.anomaly_detection_alert`.\n", "example": "monitoring_alert_cluster_health" }, + "running": { + "type": "boolean", + "description": "Indicates whether the rule is running." + }, "schedule": { "$ref": "#/components/schemas/schedule" }, @@ -2792,7 +2821,6 @@ "type": "object", "required": [ "name", - "notify_when", "params", "schedule" ], @@ -2831,7 +2859,6 @@ "required": [ "consumer", "name", - "notify_when", "params", "rule_type_id", "schedule" @@ -3064,30 +3091,42 @@ "update_rule_request": { "summary": "Update an index threshold rule.", "value": { - "notify_when": "onActionGroupChange", + "actions": [ + { + "frequency": { + "summary": false, + "notify_when": "onActionGroupChange" + }, + "group": "threshold met", + "id": "96b668d0-a1b6-11ed-afdf-d39a49596974", + "params": { + "level": "info", + "message": "alert {{alertName}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}\n- Timestamp: {{context.date}}" + } + } + ], "params": { + "aggField": "sheet.version", + "aggType": "avg", "index": [ ".test-index" ], - "timeField": "@timestamp", "groupBy": "top", - "aggType": "avg", - "timeWindowSize": 5, - "timeWindowUnit": "m", - "thresholdComparator": ">", + "termField": "name.keyword", + "termSize": 6, "threshold": [ 1000 ], - "aggField": "sheet.version", - "termField": "name.keyword", - "termSize": 6 + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 5, + "timeWindowUnit": "m" }, + "name": "new name", "schedule": { "interval": "1m" }, - "actions": [], "tags": [], - "name": "new name", "throttle": null } }, @@ -3100,8 +3139,9 @@ "name": "new name", "enabled": true, "throttle": null, + "running": false, "schedule": { - "interval": "1m" + "interval": "10m" }, "params": { "index": [ @@ -3125,17 +3165,31 @@ "updated_by": "elastic", "rule_type_id": ".index-threshold", "scheduled_task_id": "4c5eda00-e74f-11ec-b72f-5b18752ff9ea", - "created_at": "2022-12-12T22:43:20.578Z", - "updated_at": "2022-12-12T22:44:21.783Z", - "notify_when": "onActionGroupChange", + "created_at": "2023-01-31T23:03:33.127Z", + "updated_at": "2023-01-31T23:55:27.314Z", "mute_all": false, "muted_alert_ids": [], "execution_status": { "status": "ok", - "last_execution_date": "2022-12-12T22:43:21.723Z", - "last_duration": 125 + "last_execution_date": "2023-01-31T23:48:42.499Z", + "last_duration": 52 }, - "actions": [], + "actions": [ + { + "group": "threshold met", + "params": { + "level": "info", + "message": "alert {{alertName}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}\n- Timestamp: {{context.date}" + }, + "id": "96b668d0-a1b6-11ed-afdf-d39a49596974", + "connector_type_id": ".server-log", + "frequency": { + "summary": false, + "throttle": null, + "notify_when": "onActionGroupChange" + } + } + ], "last_run": { "alerts_count": { "new": 0, @@ -3147,7 +3201,7 @@ "warning": null, "outcome": "succeeded" }, - "next_run": "2022-12-12T22:44:21.653Z" + "next_run": "2023-01-31T23:49:42.432Z" } }, "create_rule_request": { @@ -3156,6 +3210,10 @@ "actions": [ { "id": "dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2", + "frequency": { + "notify_when": "onActionGroupChange", + "summary": false + }, "group": "threshold met", "params": { "level": "info", @@ -3165,7 +3223,6 @@ ], "consumer": "alerts", "name": "my rule", - "notify_when": "onActionGroupChange", "params": { "aggType": "avg", "termSize": 6, @@ -3199,6 +3256,11 @@ { "group": "threshold met", "id": "dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2", + "frequency": { + "notify_when": "onActionGroupChange", + "summary": false, + "throttle": null + }, "params": { "level": "info", "message": "alert {{alertName}} is active for group {{context.group} :\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}\n- Timestamp: {{context.date}}" @@ -3237,6 +3299,7 @@ "termField": "name.keyword" }, "rule_type_id": ".index-threshold", + "running": false, "schedule": { "interval": "1m" }, diff --git a/x-pack/plugins/alerting/docs/openapi/bundled.yaml b/x-pack/plugins/alerting/docs/openapi/bundled.yaml index ad2ea6a72f15ae..a82f2156f35810 100644 --- a/x-pack/plugins/alerting/docs/openapi/bundled.yaml +++ b/x-pack/plugins/alerting/docs/openapi/bundled.yaml @@ -1583,6 +1583,21 @@ components: type: string example: ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74 schemas: + notify_when: + type: string + description: | + Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + example: onActiveAlert + throttle: + type: string + description: The throttle interval, which defines how often an alert generates repeated actions. It is applicable only if `notify_when` is set to `onThrottleInterval`. It is specified in seconds, minutes, hours, or days. + nullable: true + default: null + example: 10m actions: type: array default: [] @@ -1594,6 +1609,26 @@ components: items: type: object properties: + connector_type_id: + type: string + description: The type of connector. This property appears in responses but cannot be set in requests. + example: .server-log + readOnly: true + frequency: + type: object + description: | + The parameters that affect how often actions are generated. NOTE: You cannot specify these parameters when `notify_when` or `throttle` are defined at the rule level. + required: + - notify_when + - summary + properties: + notify_when: + $ref: '#/components/schemas/notify_when' + summary: + type: boolean + description: Indicates whether the action is a summary. + throttle: + $ref: '#/components/schemas/throttle' group: type: string description: The group name for the actions. If you don't need to group actions, set to `default`. @@ -1606,15 +1641,6 @@ components: type: object description: The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context. additionalProperties: true - notify_when: - type: string - description: | - Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - example: onActiveAlert schedule: type: object description: The check interval, which specifies how frequently the rule conditions are checked. The interval is specified in seconds, minutes, hours, or days. @@ -1628,12 +1654,6 @@ components: items: type: string default: [] - throttle: - type: string - description: The throttle interval, which defines how often an alert generates repeated actions. It is applicable only if `notify_when` is set to `onThrottleInterval`. It is specified in seconds, minutes, hours, or days. - nullable: true - default: null - example: 10m rule_response_properties: title: Rule response properties type: object @@ -1649,7 +1669,6 @@ components: - mute_all - muted_alert_ids - name - - notify_when - params - rule_type_id - schedule @@ -1752,6 +1771,9 @@ components: description: | The identifier for the type of rule. For example, `.es-query`, `.index-threshold`, `logs.alert.document.count`, `monitoring_alert_cluster_health`, `siem.thresholdRule`, or `xpack.ml.anomaly_detection_alert`. example: monitoring_alert_cluster_health + running: + type: boolean + description: Indicates whether the rule is running. schedule: $ref: '#/components/schemas/schedule' scheduled_task_id: @@ -1808,7 +1830,6 @@ components: type: object required: - name - - notify_when - params - schedule properties: @@ -1837,7 +1858,6 @@ components: required: - consumer - name - - notify_when - params - rule_type_id - schedule @@ -2020,26 +2040,38 @@ components: update_rule_request: summary: Update an index threshold rule. value: - notify_when: onActionGroupChange + actions: + - frequency: + summary: false + notify_when: onActionGroupChange + group: threshold met + id: 96b668d0-a1b6-11ed-afdf-d39a49596974 + params: + level: info + message: |- + alert {{alertName}} is active for group {{context.group}}: + + - Value: {{context.value}} + - Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}} + - Timestamp: {{context.date}} params: + aggField: sheet.version + aggType: avg index: - .test-index - timeField: '@timestamp' groupBy: top - aggType: avg - timeWindowSize: 5 - timeWindowUnit: m - thresholdComparator: '>' - threshold: - - 1000 - aggField: sheet.version termField: name.keyword termSize: 6 + threshold: + - 1000 + thresholdComparator: '>' + timeField: '@timestamp' + timeWindowSize: 5 + timeWindowUnit: m + name: new name schedule: interval: 1m - actions: [] tags: [] - name: new name throttle: null update_rule_response: summary: The update rule API returns a JSON object that contains details about the rule. @@ -2050,8 +2082,9 @@ components: name: new name enabled: true throttle: null + running: false schedule: - interval: 1m + interval: 10m params: index: - .updated-index @@ -2071,16 +2104,30 @@ components: updated_by: elastic rule_type_id: .index-threshold scheduled_task_id: 4c5eda00-e74f-11ec-b72f-5b18752ff9ea - created_at: '2022-12-12T22:43:20.578Z' - updated_at: '2022-12-12T22:44:21.783Z' - notify_when: onActionGroupChange + created_at: '2023-01-31T23:03:33.127Z' + updated_at: '2023-01-31T23:55:27.314Z' mute_all: false muted_alert_ids: [] execution_status: status: ok - last_execution_date: '2022-12-12T22:43:21.723Z' - last_duration: 125 - actions: [] + last_execution_date: '2023-01-31T23:48:42.499Z' + last_duration: 52 + actions: + - group: threshold met + params: + level: info + message: |- + alert {{alertName}} is active for group {{context.group}}: + + - Value: {{context.value}} + - Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}} + - Timestamp: {{context.date} + id: 96b668d0-a1b6-11ed-afdf-d39a49596974 + connector_type_id: .server-log + frequency: + summary: false + throttle: null + notify_when: onActionGroupChange last_run: alerts_count: new: 0 @@ -2090,12 +2137,15 @@ components: outcome_msg: null warning: null outcome: succeeded - next_run: '2022-12-12T22:44:21.653Z' + next_run: '2023-01-31T23:49:42.432Z' create_rule_request: summary: Create an index threshold rule. value: actions: - id: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + frequency: + notify_when: onActionGroupChange + summary: false group: threshold met params: level: info @@ -2107,7 +2157,6 @@ components: - Timestamp: {{context.date}} consumer: alerts name: my rule - notify_when: onActionGroupChange params: aggType: avg termSize: 6 @@ -2133,6 +2182,10 @@ components: actions: - group: threshold met id: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + frequency: + notify_when: onActionGroupChange + summary: false + throttle: null params: level: info message: |- @@ -2169,6 +2222,7 @@ components: aggField: sheet.version termField: name.keyword rule_type_id: .index-threshold + running: false schedule: interval: 1m scheduled_task_id: 425b0800-6bca-11eb-9e0d-85d233e3ee35 diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_rule_request.yaml b/x-pack/plugins/alerting/docs/openapi/components/examples/create_rule_request.yaml index da587ebc22e529..0ca040446cda69 100644 --- a/x-pack/plugins/alerting/docs/openapi/components/examples/create_rule_request.yaml +++ b/x-pack/plugins/alerting/docs/openapi/components/examples/create_rule_request.yaml @@ -2,13 +2,15 @@ summary: Create an index threshold rule. value: actions: - id: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + frequency: + notify_when: onActionGroupChange + summary: false group: threshold met params: level: info message: "alert '{{alertName}}' is active for group '{{context.group}}':\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}\n- Timestamp: {{context.date}}" consumer: alerts name: my rule - notify_when: onActionGroupChange params: aggType: avg termSize: 6 diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/create_rule_response.yaml b/x-pack/plugins/alerting/docs/openapi/components/examples/create_rule_response.yaml index 1a1b45199ba581..daef9b2e3a39b1 100644 --- a/x-pack/plugins/alerting/docs/openapi/components/examples/create_rule_response.yaml +++ b/x-pack/plugins/alerting/docs/openapi/components/examples/create_rule_response.yaml @@ -3,6 +3,10 @@ value: actions: - group: threshold met id: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + frequency: + notify_when: onActionGroupChange + summary: false + throttle: null params: level: info message: "alert {{alertName}} is active for group {{context.group} :\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}\n- Timestamp: {{context.date}}" @@ -34,6 +38,7 @@ value: aggField: sheet.version termField: name.keyword rule_type_id: .index-threshold + running: false schedule: interval: 1m scheduled_task_id: 425b0800-6bca-11eb-9e0d-85d233e3ee35 diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_request.yaml b/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_request.yaml index 464645358990a3..20ee916284ed09 100644 --- a/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_request.yaml +++ b/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_request.yaml @@ -1,21 +1,28 @@ summary: Update an index threshold rule. value: - notify_when: onActionGroupChange + actions: + - frequency: + summary: false + notify_when: onActionGroupChange + group: threshold met + id: 96b668d0-a1b6-11ed-afdf-d39a49596974 + params: + level: info + message: "alert {{alertName}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}\n- Timestamp: {{context.date}}" params: + aggField: sheet.version + aggType: avg index: [".test-index"] - timeField: "@timestamp" groupBy: top - aggType: avg - timeWindowSize: 5 - timeWindowUnit: m - thresholdComparator: ">" - threshold: [1000] - aggField: sheet.version termField: name.keyword termSize: 6 + threshold: [1000] + thresholdComparator: ">" + timeField: "@timestamp" + timeWindowSize: 5 + timeWindowUnit: m + name: new name schedule: interval: 1m - actions: [] tags: [] - name: new name throttle: null \ No newline at end of file diff --git a/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_response.yaml b/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_response.yaml index 7bbdba73774ac0..a2195d0e15947d 100644 --- a/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_response.yaml +++ b/x-pack/plugins/alerting/docs/openapi/components/examples/update_rule_response.yaml @@ -6,8 +6,9 @@ value: name: new name enabled: true throttle: null + running: false schedule: - interval: 1m + interval: 10m params: index: [".updated-index"] timeField: "@timestamp" @@ -25,16 +26,25 @@ value: updated_by: elastic rule_type_id: .index-threshold scheduled_task_id: 4c5eda00-e74f-11ec-b72f-5b18752ff9ea - created_at: '2022-12-12T22:43:20.578Z' - updated_at: '2022-12-12T22:44:21.783Z' - notify_when: onActionGroupChange + created_at: '2023-01-31T23:03:33.127Z' + updated_at: '2023-01-31T23:55:27.314Z' mute_all: false muted_alert_ids: [] execution_status: status: ok - last_execution_date: '2022-12-12T22:43:21.723Z' - last_duration: 125 - actions: [] + last_execution_date: '2023-01-31T23:48:42.499Z' + last_duration: 52 + actions: + - group: threshold met + params: + level: info + message: "alert {{alertName}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}\n- Timestamp: {{context.date}" + id: 96b668d0-a1b6-11ed-afdf-d39a49596974 + connector_type_id: .server-log + frequency: + summary: false + throttle: null + notify_when: onActionGroupChange last_run: alerts_count: new: 0 @@ -44,4 +54,4 @@ value: outcome_msg: null warning: null outcome: succeeded - next_run: '2022-12-12T22:44:21.653Z' \ No newline at end of file + next_run: '2023-01-31T23:49:42.432Z' \ No newline at end of file diff --git a/x-pack/plugins/alerting/docs/openapi/components/schemas/actions.yaml b/x-pack/plugins/alerting/docs/openapi/components/schemas/actions.yaml index ae381d6b370f30..5d0d877a4c177e 100644 --- a/x-pack/plugins/alerting/docs/openapi/components/schemas/actions.yaml +++ b/x-pack/plugins/alerting/docs/openapi/components/schemas/actions.yaml @@ -8,6 +8,27 @@ nullable: true items: type: object properties: + connector_type_id: + type: string + description: The type of connector. This property appears in responses but cannot be set in requests. + example: .server-log + readOnly: true + frequency: + type: object + description: > + The parameters that affect how often actions are generated. + NOTE: You cannot specify these parameters when `notify_when` or `throttle` are defined at the rule level. + required: + - notify_when + - summary + properties: + notify_when: + $ref: 'notify_when.yaml' + summary: + type: boolean + description: Indicates whether the action is a summary. + throttle: + $ref: 'throttle.yaml' group: type: string description: The group name for the actions. If you don't need to group actions, set to `default`. diff --git a/x-pack/plugins/alerting/docs/openapi/components/schemas/create_rule_request.yaml b/x-pack/plugins/alerting/docs/openapi/components/schemas/create_rule_request.yaml index e916f02227ea0c..ca143eeb51cd88 100644 --- a/x-pack/plugins/alerting/docs/openapi/components/schemas/create_rule_request.yaml +++ b/x-pack/plugins/alerting/docs/openapi/components/schemas/create_rule_request.yaml @@ -5,7 +5,6 @@ type: object required: - consumer - name - - notify_when - params - rule_type_id - schedule diff --git a/x-pack/plugins/alerting/docs/openapi/components/schemas/rule_response_properties.yaml b/x-pack/plugins/alerting/docs/openapi/components/schemas/rule_response_properties.yaml index 39f35d97d846b3..827e89938f8fd4 100644 --- a/x-pack/plugins/alerting/docs/openapi/components/schemas/rule_response_properties.yaml +++ b/x-pack/plugins/alerting/docs/openapi/components/schemas/rule_response_properties.yaml @@ -12,7 +12,6 @@ required: - mute_all - muted_alert_ids - name - - notify_when - params - rule_type_id - schedule @@ -115,6 +114,9 @@ properties: description: > The identifier for the type of rule. For example, `.es-query`, `.index-threshold`, `logs.alert.document.count`, `monitoring_alert_cluster_health`, `siem.thresholdRule`, or `xpack.ml.anomaly_detection_alert`. example: monitoring_alert_cluster_health + running: + type: boolean + description: Indicates whether the rule is running. schedule: $ref: 'schedule.yaml' scheduled_task_id: diff --git a/x-pack/plugins/alerting/docs/openapi/components/schemas/update_rule_request.yaml b/x-pack/plugins/alerting/docs/openapi/components/schemas/update_rule_request.yaml index fb4bd9586ea1f1..4d08574698888e 100644 --- a/x-pack/plugins/alerting/docs/openapi/components/schemas/update_rule_request.yaml +++ b/x-pack/plugins/alerting/docs/openapi/components/schemas/update_rule_request.yaml @@ -4,7 +4,6 @@ description: >- type: object required: - name - - notify_when - params - schedule properties: diff --git a/x-pack/plugins/alerting/kibana.json b/x-pack/plugins/alerting/kibana.json deleted file mode 100644 index ab0b708d59ee5e..00000000000000 --- a/x-pack/plugins/alerting/kibana.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "id": "alerting", - "server": true, - "ui": true, - "owner": { - "name": "Response Ops", - "githubTeam": "response-ops" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": [ - "xpack", - "alerting" - ], - "requiredPlugins": [ - "actions", - "data", - "dataViews", - "share", - "encryptedSavedObjects", - "eventLog", - "features", - "kibanaUtils", - "licensing", - "taskManager" - ], - "optionalPlugins": [ - "usageCollection", - "security", - "monitoringCollection", - "spaces" - ], - "extraPublicDirs": [ - "common", - "common/parse_duration" - ] -} \ No newline at end of file diff --git a/x-pack/plugins/alerting/kibana.jsonc b/x-pack/plugins/alerting/kibana.jsonc new file mode 100644 index 00000000000000..6fd3e2ba32dbf6 --- /dev/null +++ b/x-pack/plugins/alerting/kibana.jsonc @@ -0,0 +1,36 @@ +{ + "type": "plugin", + "id": "@kbn/alerting-plugin", + "owner": "@elastic/response-ops", + "plugin": { + "id": "alerting", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "alerting" + ], + "requiredPlugins": [ + "actions", + "data", + "dataViews", + "share", + "encryptedSavedObjects", + "eventLog", + "features", + "kibanaUtils", + "licensing", + "taskManager" + ], + "optionalPlugins": [ + "usageCollection", + "security", + "monitoringCollection", + "spaces" + ], + "extraPublicDirs": [ + "common", + "common/parse_duration" + ] + } +} diff --git a/x-pack/plugins/alerting/public/lib/common_transformations.test.ts b/x-pack/plugins/alerting/public/lib/common_transformations.test.ts index 4747ad98412c9b..cef3cf8804f402 100644 --- a/x-pack/plugins/alerting/public/lib/common_transformations.test.ts +++ b/x-pack/plugins/alerting/public/lib/common_transformations.test.ts @@ -81,6 +81,7 @@ describe('common_transformations', () => { }, last_run: { outcome: RuleLastRunOutcomeValues[2], + outcome_order: 20, outcome_msg: ['this is just a test'], warning: RuleExecutionStatusErrorReasons.Unknown, alerts_count: { @@ -137,6 +138,7 @@ describe('common_transformations', () => { "outcomeMsg": Array [ "this is just a test", ], + "outcomeOrder": 20, "warning": "unknown", }, "monitoring": Object { @@ -255,6 +257,7 @@ describe('common_transformations', () => { }, last_run: { outcome: 'failed', + outcome_order: 20, outcome_msg: ['this is just a test'], warning: RuleExecutionStatusErrorReasons.Unknown, alerts_count: { @@ -300,6 +303,7 @@ describe('common_transformations', () => { "outcomeMsg": Array [ "this is just a test", ], + "outcomeOrder": 20, "warning": "unknown", }, "monitoring": Object { diff --git a/x-pack/plugins/alerting/public/lib/common_transformations.ts b/x-pack/plugins/alerting/public/lib/common_transformations.ts index 6e3888db451b85..6a89b1ce9958ba 100644 --- a/x-pack/plugins/alerting/public/lib/common_transformations.ts +++ b/x-pack/plugins/alerting/public/lib/common_transformations.ts @@ -63,10 +63,16 @@ function transformMonitoring(input: RuleMonitoring): RuleMonitoring { } function transformLastRun(input: AsApiContract): RuleLastRun { - const { outcome_msg: outcomeMsg, alerts_count: alertsCount, ...rest } = input; + const { + outcome_msg: outcomeMsg, + alerts_count: alertsCount, + outcome_order: outcomeOrder, + ...rest + } = input; return { outcomeMsg, alertsCount, + outcomeOrder, ...rest, }; } diff --git a/x-pack/plugins/alerting/server/lib/alerting_event_logger/alerting_event_logger.ts b/x-pack/plugins/alerting/server/lib/alerting_event_logger/alerting_event_logger.ts index fff026a358bc82..dd8c52bebc0e0f 100644 --- a/x-pack/plugins/alerting/server/lib/alerting_event_logger/alerting_event_logger.ts +++ b/x-pack/plugins/alerting/server/lib/alerting_event_logger/alerting_event_logger.ts @@ -54,8 +54,13 @@ interface AlertOpts { interface ActionOpts { id: string; typeId: string; - alertId: string; + alertId?: string; alertGroup?: string; + alertSummary?: { + new: number; + ongoing: number; + recovered: number; + }; } export class AlertingEventLogger { @@ -278,6 +283,7 @@ export function createActionExecuteRecord(context: RuleContextOpts, action: Acti }, ], ruleName: context.ruleName, + alertSummary: action.alertSummary, }); } diff --git a/x-pack/plugins/alerting/server/lib/create_alert_event_log_record_object.test.ts b/x-pack/plugins/alerting/server/lib/create_alert_event_log_record_object.test.ts index 8f73ba3a568604..185aa098a49d72 100644 --- a/x-pack/plugins/alerting/server/lib/create_alert_event_log_record_object.test.ts +++ b/x-pack/plugins/alerting/server/lib/create_alert_event_log_record_object.test.ts @@ -191,6 +191,11 @@ describe('createAlertEventLogRecordObject', () => { }, ], spaceId: 'default', + alertSummary: { + new: 2, + ongoing: 3, + recovered: 1, + }, }) ).toStrictEqual({ event: { @@ -214,6 +219,17 @@ describe('createAlertEventLogRecordObject', () => { alerting: { action_group_id: 'group 1', instance_id: 'test1', + summary: { + new: { + count: 2, + }, + ongoing: { + count: 3, + }, + recovered: { + count: 1, + }, + }, }, saved_objects: [ { diff --git a/x-pack/plugins/alerting/server/lib/create_alert_event_log_record_object.ts b/x-pack/plugins/alerting/server/lib/create_alert_event_log_record_object.ts index ea74cab5d11cf5..280f498422fd01 100644 --- a/x-pack/plugins/alerting/server/lib/create_alert_event_log_record_object.ts +++ b/x-pack/plugins/alerting/server/lib/create_alert_event_log_record_object.ts @@ -36,6 +36,11 @@ interface CreateAlertEventLogRecordParams { relation?: string; }>; flapping?: boolean; + alertSummary?: { + new: number; + ongoing: number; + recovered: number; + }; } export function createAlertEventLogRecordObject(params: CreateAlertEventLogRecordParams): Event { @@ -52,13 +57,23 @@ export function createAlertEventLogRecordObject(params: CreateAlertEventLogRecor consumer, spaceId, flapping, + alertSummary, } = params; const alerting = - params.instanceId || group + params.instanceId || group || alertSummary ? { alerting: { ...(params.instanceId ? { instance_id: params.instanceId } : {}), ...(group ? { action_group_id: group } : {}), + ...(alertSummary + ? { + summary: { + new: { count: alertSummary.new }, + ongoing: { count: alertSummary.ongoing }, + recovered: { count: alertSummary.recovered }, + }, + } + : {}), }, } : undefined; diff --git a/x-pack/plugins/alerting/server/lib/last_run_status.ts b/x-pack/plugins/alerting/server/lib/last_run_status.ts index d2bc22cadb2855..a007d8637eac07 100644 --- a/x-pack/plugins/alerting/server/lib/last_run_status.ts +++ b/x-pack/plugins/alerting/server/lib/last_run_status.ts @@ -8,7 +8,7 @@ import { RuleTaskStateAndMetrics } from '../task_runner/types'; import { getReasonFromError } from './error_with_reason'; import { getEsErrorMessage } from './errors'; -import { ActionsCompletion, RuleLastRunOutcomes } from '../../common'; +import { ActionsCompletion, RuleLastRunOutcomeOrderMap, RuleLastRunOutcomes } from '../../common'; import { RuleLastRunOutcomeValues, RuleExecutionStatusWarningReasons, @@ -65,6 +65,7 @@ export const lastRunFromState = ( return { lastRun: { outcome, + outcomeOrder: RuleLastRunOutcomeOrderMap[outcome], outcomeMsg: outcomeMsg.length > 0 ? outcomeMsg : null, warning: warning || null, alertsCount: { @@ -80,9 +81,11 @@ export const lastRunFromState = ( export const lastRunFromError = (error: Error): ILastRun => { const esErrorMessage = getEsErrorMessage(error); + const outcome = RuleLastRunOutcomeValues[2]; return { lastRun: { - outcome: RuleLastRunOutcomeValues[2], + outcome, + outcomeOrder: RuleLastRunOutcomeOrderMap[outcome], warning: getReasonFromError(error), outcomeMsg: esErrorMessage ? [esErrorMessage] : null, alertsCount: {}, @@ -104,5 +107,6 @@ export const lastRunToRaw = (lastRun: ILastRun['lastRun']): RawRuleLastRun => { }, warning: warning ?? null, outcomeMsg: outcomeMsg && !Array.isArray(outcomeMsg) ? [outcomeMsg] : outcomeMsg, + outcomeOrder: RuleLastRunOutcomeOrderMap[lastRun.outcome], }; }; diff --git a/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts b/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts index 0cc910a4af2f0c..bbcb489a9597ec 100644 --- a/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts +++ b/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts @@ -9,10 +9,11 @@ import { omit } from 'lodash'; import { RuleTypeParams, SanitizedRule, RuleLastRun } from '../../types'; export const rewriteRuleLastRun = (lastRun: RuleLastRun) => { - const { outcomeMsg, alertsCount, ...rest } = lastRun; + const { outcomeMsg, outcomeOrder, alertsCount, ...rest } = lastRun; return { alerts_count: alertsCount, outcome_msg: outcomeMsg, + outcome_order: outcomeOrder, ...rest, }; }; diff --git a/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts b/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts index 3c97080e2d655d..ea6145b8f6e996 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts @@ -17,7 +17,10 @@ import { parseDuration } from '../../lib'; export async function validateActions( context: RulesClientContext, alertType: UntypedNormalizedRuleType, - data: Pick & { actions: NormalizedAlertAction[] } + data: Pick & { + actions: NormalizedAlertAction[]; + }, + allowMissingConnectorSecrets?: boolean ): Promise { const { actions, notifyWhen, throttle } = data; const hasRuleLevelNotifyWhen = typeof notifyWhen !== 'undefined'; @@ -35,20 +38,26 @@ export async function validateActions( const actionsUsingConnectorsWithMissingSecrets = actionResults.filter( (result) => result.isMissingSecrets ); - if (actionsUsingConnectorsWithMissingSecrets.length) { - errors.push( - i18n.translate('xpack.alerting.rulesClient.validateActions.misconfiguredConnector', { - defaultMessage: 'Invalid connectors: {groups}', - values: { - groups: actionsUsingConnectorsWithMissingSecrets - .map((connector) => connector.name) - .join(', '), - }, - }) - ); + if (allowMissingConnectorSecrets) { + context.logger.error( + `Invalid connectors with "allowMissingConnectorSecrets": ${actionsUsingConnectorsWithMissingSecrets + .map((connector) => connector.name) + .join(', ')}` + ); + } else { + errors.push( + i18n.translate('xpack.alerting.rulesClient.validateActions.misconfiguredConnector', { + defaultMessage: 'Invalid connectors: {groups}', + values: { + groups: actionsUsingConnectorsWithMissingSecrets + .map((connector) => connector.name) + .join(', '), + }, + }) + ); + } } - // check for actions with invalid action groups const { actionGroups: alertTypeActionGroups } = alertType; const usedAlertActionGroups = actions.map((action) => action.group); diff --git a/x-pack/plugins/alerting/server/rules_client/methods/create.ts b/x-pack/plugins/alerting/server/rules_client/methods/create.ts index e8dcefe4a9ef14..09dc8f62494b82 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/create.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/create.ts @@ -46,11 +46,12 @@ export interface CreateOptions { | 'nextRun' > & { actions: NormalizedAlertAction[] }; options?: SavedObjectOptions; + allowMissingConnectorSecrets?: boolean; } export async function create( context: RulesClientContext, - { data, options }: CreateOptions + { data, options, allowMissingConnectorSecrets }: CreateOptions ): Promise> { const id = options?.id || SavedObjectsUtils.generateId(); @@ -104,10 +105,11 @@ export async function create( } } - await validateActions(context, ruleType, data); + await validateActions(context, ruleType, data, allowMissingConnectorSecrets); await withSpan({ name: 'validateActions', type: 'rules' }, () => - validateActions(context, ruleType, data) + validateActions(context, ruleType, data, allowMissingConnectorSecrets) ); + // Throw error if schedule interval is less than the minimum and we are enforcing it const intervalInMs = parseDuration(data.schedule.interval); if ( diff --git a/x-pack/plugins/alerting/server/rules_client/methods/get_alert_summary.ts b/x-pack/plugins/alerting/server/rules_client/methods/get_alert_summary.ts index e841423ad19499..8d194b850816b0 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/get_alert_summary.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/get_alert_summary.ts @@ -56,6 +56,8 @@ export async function getAlertSummary( start: parsedDateStart.toISOString(), sort: [{ sort_field: '@timestamp', sort_order: 'desc' }], end: dateNow.toISOString(), + // filter out execute-action event logs + filter: 'NOT event.action: execute-action AND event.provider: alerting', }, rule.legacyId !== null ? [rule.legacyId] : undefined ), diff --git a/x-pack/plugins/alerting/server/rules_client/methods/update.ts b/x-pack/plugins/alerting/server/rules_client/methods/update.ts index 8fa3855b95707d..5e116f9f21b284 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/update.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/update.ts @@ -38,22 +38,23 @@ export interface UpdateOptions { throttle?: string | null; notifyWhen?: RuleNotifyWhenType | null; }; + allowMissingConnectorSecrets?: boolean; } export async function update( context: RulesClientContext, - { id, data }: UpdateOptions + { id, data, allowMissingConnectorSecrets }: UpdateOptions ): Promise> { return await retryIfConflicts( context.logger, `rulesClient.update('${id}')`, - async () => await updateWithOCC(context, { id, data }) + async () => await updateWithOCC(context, { id, data, allowMissingConnectorSecrets }) ); } async function updateWithOCC( context: RulesClientContext, - { id, data }: UpdateOptions + { id, data, allowMissingConnectorSecrets }: UpdateOptions ): Promise> { let alertSavedObject: SavedObject; @@ -99,7 +100,11 @@ async function updateWithOCC( context.ruleTypeRegistry.ensureRuleTypeEnabled(alertSavedObject.attributes.alertTypeId); - const updateResult = await updateAlert(context, { id, data }, alertSavedObject); + const updateResult = await updateAlert( + context, + { id, data, allowMissingConnectorSecrets }, + alertSavedObject + ); await Promise.all([ alertSavedObject.attributes.apiKey @@ -138,7 +143,7 @@ async function updateWithOCC( async function updateAlert( context: RulesClientContext, - { id, data }: UpdateOptions, + { id, data, allowMissingConnectorSecrets }: UpdateOptions, { attributes, version }: SavedObject ): Promise> { const ruleType = context.ruleTypeRegistry.get(attributes.alertTypeId); @@ -156,7 +161,7 @@ async function updateAlert( // Validate const validatedAlertTypeParams = validateRuleTypeParams(data.params, ruleType.validate?.params); - await validateActions(context, ruleType, data); + await validateActions(context, ruleType, data, allowMissingConnectorSecrets); // Throw error if schedule interval is less than the minimum and we are enforcing it const intervalInMs = parseDuration(data.schedule.interval); diff --git a/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts index c11dc8be21ca41..dddfbe85f9ee38 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts @@ -3047,4 +3047,120 @@ describe('create()', () => { expect(unsecuredSavedObjectsClient.create).not.toHaveBeenCalled(); expect(taskManager.schedule).not.toHaveBeenCalled(); }); + test('should create a rule even if action is missing secret when allowMissingConnectorSecrets is true', async () => { + const data = getMockData({ + actions: [ + { + group: 'default', + id: '1', + params: { + foo: true, + }, + }, + { + group: 'default', + id: '1', + params: { + foo: true, + }, + }, + { + group: 'default', + id: '2', + params: { + foo: true, + }, + }, + ], + }); + actionsClient.getBulk.mockReset(); + actionsClient.getBulk.mockResolvedValue([ + { + id: '1', + actionTypeId: '.slack', + config: {}, + isMissingSecrets: true, + name: 'Slack connector', + isPreconfigured: false, + isDeprecated: false, + }, + ]); + unsecuredSavedObjectsClient.create.mockResolvedValueOnce({ + id: '1', + type: 'alert', + attributes: { + alertTypeId: '123', + schedule: { interval: '1m' }, + params: { + bar: true, + }, + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString(), + notifyWhen: null, + actions: [ + { + group: 'default', + actionRef: 'action_0', + actionTypeId: '.slack', + params: { + foo: true, + }, + }, + ], + }, + references: [ + { + name: 'action_0', + type: 'action', + id: '1', + }, + { + name: 'action_1', + type: 'action', + id: '1', + }, + { + name: 'action_2', + type: 'action', + id: '2', + }, + ], + }); + unsecuredSavedObjectsClient.create.mockResolvedValueOnce({ + id: '1', + type: 'alert', + attributes: { + actions: [], + scheduledTaskId: 'task-123', + }, + references: [], + }); + const result = await rulesClient.create({ data, allowMissingConnectorSecrets: true }); + expect(result).toMatchInlineSnapshot(` + Object { + "actions": Array [ + Object { + "actionTypeId": ".slack", + "group": "default", + "id": "1", + "params": Object { + "foo": true, + }, + }, + ], + "alertTypeId": "123", + "createdAt": 2019-02-12T21:01:22.479Z, + "id": "1", + "notifyWhen": null, + "params": Object { + "bar": true, + }, + "schedule": Object { + "interval": "1m", + }, + "scheduledTaskId": "task-123", + "updatedAt": 2019-02-12T21:01:22.479Z, + } + `); + }); }); diff --git a/x-pack/plugins/alerting/server/rules_client/tests/get_alert_summary.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/get_alert_summary.test.ts index f0f634538d6f72..cbf766bd482d52 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/get_alert_summary.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/get_alert_summary.test.ts @@ -222,6 +222,7 @@ describe('getAlertSummary()', () => { ], Object { "end": "2019-02-12T21:01:22.479Z", + "filter": "NOT event.action: execute-action AND event.provider: alerting", "page": 1, "per_page": 10000, "sort": Array [ @@ -264,6 +265,7 @@ describe('getAlertSummary()', () => { ], Object { "end": "2019-02-12T21:01:22.479Z", + "filter": "NOT event.action: execute-action AND event.provider: alerting", "page": 1, "per_page": 10000, "sort": Array [ diff --git a/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts index 44c4eeb50fe276..4d16f3e5d66a01 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts @@ -2022,6 +2022,155 @@ describe('update()', () => { expect(unsecuredSavedObjectsClient.create).not.toHaveBeenCalled(); expect(taskManager.schedule).not.toHaveBeenCalled(); }); + test('should update a rule even if action is missing secret when allowMissingConnectorSecrets is true', async () => { + // Reset from default behaviour + actionsClient.getBulk.mockReset(); + actionsClient.getBulk.mockResolvedValue([ + { + id: '1', + actionTypeId: '.slack', + config: {}, + isMissingSecrets: true, + name: 'slack connector', + isPreconfigured: false, + isDeprecated: false, + }, + ]); + actionsClient.isPreconfigured.mockReset(); + actionsClient.isPreconfigured.mockReturnValueOnce(false); + actionsClient.isPreconfigured.mockReturnValueOnce(true); + actionsClient.isPreconfigured.mockReturnValueOnce(true); + unsecuredSavedObjectsClient.create.mockResolvedValueOnce({ + id: '1', + type: 'alert', + attributes: { + enabled: true, + schedule: { interval: '1m' }, + params: { + bar: true, + }, + actions: [ + { + group: 'default', + actionRef: 'action_0', + actionTypeId: '.slack', + params: { + foo: true, + }, + }, + ], + notifyWhen: 'onActiveAlert', + scheduledTaskId: 'task-123', + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString(), + }, + references: [ + { + name: 'action_0', + type: 'action', + id: '1', + }, + { + name: 'param:soRef_0', + type: 'someSavedObjectType', + id: '9', + }, + ], + }); + const result = await rulesClient.update({ + id: '1', + data: { + schedule: { interval: '1m' }, + name: 'abc', + tags: ['foo'], + params: { + bar: true, + }, + throttle: null, + notifyWhen: 'onActiveAlert', + actions: [ + { + group: 'default', + id: '1', + params: { + foo: true, + }, + }, + ], + }, + allowMissingConnectorSecrets: true, + }); + + expect(unsecuredSavedObjectsClient.create).toHaveBeenNthCalledWith( + 1, + 'alert', + { + actions: [ + { + group: 'default', + actionRef: 'action_0', + actionTypeId: '.slack', + params: { + foo: true, + }, + }, + ], + alertTypeId: 'myType', + apiKey: null, + apiKeyOwner: null, + consumer: 'myApp', + enabled: true, + meta: { versionApiKeyLastmodified: 'v7.10.0' }, + name: 'abc', + notifyWhen: 'onActiveAlert', + params: { bar: true }, + schedule: { interval: '1m' }, + scheduledTaskId: 'task-123', + tags: ['foo'], + throttle: null, + updatedAt: '2019-02-12T21:01:22.479Z', + updatedBy: 'elastic', + }, + { + id: '1', + overwrite: true, + references: [{ id: '1', name: 'action_0', type: 'action' }], + version: '123', + } + ); + + expect(result).toMatchInlineSnapshot(` + Object { + "actions": Array [ + Object { + "actionTypeId": ".slack", + "group": "default", + "id": "1", + "params": Object { + "foo": true, + }, + }, + ], + "createdAt": 2019-02-12T21:01:22.479Z, + "enabled": true, + "id": "1", + "notifyWhen": "onActiveAlert", + "params": Object { + "bar": true, + }, + "schedule": Object { + "interval": "1m", + }, + "scheduledTaskId": "task-123", + "updatedAt": 2019-02-12T21:01:22.479Z, + } + `); + expect(encryptedSavedObjects.getDecryptedAsInternalUser).toHaveBeenCalledWith('alert', '1', { + namespace: 'default', + }); + expect(unsecuredSavedObjectsClient.get).not.toHaveBeenCalled(); + expect(actionsClient.isPreconfigured).toHaveBeenCalledTimes(1); + }); test('logs warning when creating with an interval less than the minimum configured one when enforce = false', async () => { actionsClient.getBulk.mockReset(); diff --git a/x-pack/plugins/alerting/server/saved_objects/mappings.ts b/x-pack/plugins/alerting/server/saved_objects/mappings.ts index 75c3185db7ef4f..be70255f188401 100644 --- a/x-pack/plugins/alerting/server/saved_objects/mappings.ts +++ b/x-pack/plugins/alerting/server/saved_objects/mappings.ts @@ -53,8 +53,8 @@ export const alertMappings: SavedObjectsTypeMappingDefinition = { type: 'keyword', }, params: { - enabled: false, - type: 'object', + dynamic: false, + properties: {}, }, frequency: { properties: { diff --git a/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts b/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts index b2bd0b01f7f616..1b49f606cb6b57 100644 --- a/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts +++ b/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts @@ -14,7 +14,7 @@ import { isLogThresholdRuleType, pipeMigrations, } from '../utils'; -import { RawRule } from '../../../types'; +import { RawRule, RuleLastRunOutcomeOrderMap } from '../../../types'; function addGroupByToEsQueryRule( doc: SavedObjectUnsanitizedDoc @@ -70,9 +70,29 @@ function addLogViewRefToLogThresholdRule( return doc; } +function addOutcomeOrder( + doc: SavedObjectUnsanitizedDoc +): SavedObjectUnsanitizedDoc { + if (!doc.attributes.lastRun) { + return doc; + } + + const outcome = doc.attributes.lastRun.outcome; + return { + ...doc, + attributes: { + ...doc.attributes, + lastRun: { + ...doc.attributes.lastRun, + outcomeOrder: RuleLastRunOutcomeOrderMap[outcome], + }, + }, + }; +} + export const getMigrations870 = (encryptedSavedObjects: EncryptedSavedObjectsPluginSetup) => createEsoMigration( encryptedSavedObjects, (doc: SavedObjectUnsanitizedDoc): doc is SavedObjectUnsanitizedDoc => true, - pipeMigrations(addGroupByToEsQueryRule, addLogViewRefToLogThresholdRule) + pipeMigrations(addGroupByToEsQueryRule, addLogViewRefToLogThresholdRule, addOutcomeOrder) ); diff --git a/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts b/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts index 5043cad69b6968..7ecf7596259fa4 100644 --- a/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts +++ b/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts @@ -2606,6 +2606,28 @@ describe('successful migrations', () => { expect(migratedAlert870.references).toEqual([]); }); }); + + test('migrates last run outcome order', () => { + const migration870 = getMigrations(encryptedSavedObjectsSetup, {}, isPreconfigured)['8.7.0']; + + // Failed rule + const failedRule = getMockData({ lastRun: { outcome: 'failed' } }); + const failedRule870 = migration870(failedRule, migrationContext); + expect(failedRule870.attributes.lastRun).toEqual({ outcome: 'failed', outcomeOrder: 20 }); + + // Rule with warnings + const warningRule = getMockData({ lastRun: { outcome: 'warning' } }); + const warningRule870 = migration870(warningRule, migrationContext); + expect(warningRule870.attributes.lastRun).toEqual({ outcome: 'warning', outcomeOrder: 10 }); + + // Succeeded rule + const succeededRule = getMockData({ lastRun: { outcome: 'succeeded' } }); + const succeededRule870 = migration870(succeededRule, migrationContext); + expect(succeededRule870.attributes.lastRun).toEqual({ + outcome: 'succeeded', + outcomeOrder: 0, + }); + }); }); describe('Metrics Inventory Threshold rule', () => { diff --git a/x-pack/plugins/alerting/server/task_runner/execution_handler.test.ts b/x-pack/plugins/alerting/server/task_runner/execution_handler.test.ts index ed88a9ecb60c10..b41db1147f3b76 100644 --- a/x-pack/plugins/alerting/server/task_runner/execution_handler.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/execution_handler.test.ts @@ -907,6 +907,11 @@ describe('Execution Handler', () => { ], ] `); + expect(alertingEventLogger.logAction).toBeCalledWith({ + alertSummary: { new: 1, ongoing: 0, recovered: 0 }, + id: '1', + typeId: 'testActionTypeId', + }); }); test('skips summary actions (per rule run) when there is no alerts', async () => { @@ -946,6 +951,7 @@ describe('Execution Handler', () => { expect(getSummarizedAlertsMock).not.toHaveBeenCalled(); expect(actionsClient.bulkEnqueueExecution).not.toHaveBeenCalled(); + expect(alertingEventLogger.logAction).not.toHaveBeenCalled(); }); test('triggers summary actions (custom interval)', async () => { @@ -1030,6 +1036,11 @@ describe('Execution Handler', () => { ], ] `); + expect(alertingEventLogger.logAction).toBeCalledWith({ + alertSummary: { new: 1, ongoing: 0, recovered: 0 }, + id: '1', + typeId: 'testActionTypeId', + }); }); test('does not trigger summary actions if it is still being throttled (custom interval)', async () => { @@ -1075,6 +1086,7 @@ describe('Execution Handler', () => { ); expect(getSummarizedAlertsMock).not.toHaveBeenCalled(); expect(actionsClient.bulkEnqueueExecution).not.toHaveBeenCalled(); + expect(alertingEventLogger.logAction).not.toHaveBeenCalled(); }); test('removes the obsolete actions from the task state', async () => { diff --git a/x-pack/plugins/alerting/server/task_runner/execution_handler.ts b/x-pack/plugins/alerting/server/task_runner/execution_handler.ts index 8755d480621d7a..d0784805c5942d 100644 --- a/x-pack/plugins/alerting/server/task_runner/execution_handler.ts +++ b/x-pack/plugins/alerting/server/task_runner/execution_handler.ts @@ -239,8 +239,11 @@ export class ExecutionHandler< logActions.push({ id: action.id, typeId: action.actionTypeId, - alertId: 'summary', - alertGroup: action.group, + alertSummary: { + new: summarizedAlerts.new.count, + ongoing: summarizedAlerts.ongoing.count, + recovered: summarizedAlerts.recovered.count, + }, }); } else { const executableAlert = alert!; diff --git a/x-pack/plugins/alerting/server/task_runner/fixtures.ts b/x-pack/plugins/alerting/server/task_runner/fixtures.ts index 7784247ca75f38..7acb36c34bd9c8 100644 --- a/x-pack/plugins/alerting/server/task_runner/fixtures.ts +++ b/x-pack/plugins/alerting/server/task_runner/fixtures.ts @@ -6,7 +6,14 @@ */ import { TaskStatus } from '@kbn/task-manager-plugin/server'; -import { Rule, RuleTypeParams, RecoveredActionGroup, RuleMonitoring } from '../../common'; +import { + Rule, + RuleTypeParams, + RecoveredActionGroup, + RuleMonitoring, + RuleLastRunOutcomeOrderMap, + RuleLastRunOutcomes, +} from '../../common'; import { getDefaultMonitoring } from '../lib/monitoring'; import { UntypedNormalizedRuleType } from '../rule_type_registry'; import { EVENT_LOG_ACTIONS } from '../plugin'; @@ -74,7 +81,7 @@ export const generateSavedObjectParams = ({ error?: null | { reason: string; message: string }; warning?: null | { reason: string; message: string }; status?: string; - outcome?: string; + outcome?: RuleLastRunOutcomes; nextRun?: string | null; successRatio?: number; history?: RuleMonitoring['run']['history']; @@ -110,6 +117,7 @@ export const generateSavedObjectParams = ({ }, lastRun: { outcome, + outcomeOrder: RuleLastRunOutcomeOrderMap[outcome], outcomeMsg: (error?.message && [error?.message]) || (warning?.message && [warning?.message]) || null, warning: error?.reason || warning?.reason || null, diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts index d840a9397e248a..8b7284bb8ffd4e 100644 --- a/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts @@ -279,7 +279,7 @@ describe('Task Runner', () => { ); expect(logger.debug).nthCalledWith( 3, - 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeMsg":null,"warning":null,"alertsCount":{"active":0,"new":0,"recovered":0,"ignored":0}}' + 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeOrder":0,"outcomeMsg":null,"warning":null,"alertsCount":{"active":0,"new":0,"recovered":0,"ignored":0}}' ); expect(logger.debug).nthCalledWith( 4, @@ -360,7 +360,7 @@ describe('Task Runner', () => { ); expect(logger.debug).nthCalledWith( 4, - 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeMsg":null,"warning":null,"alertsCount":{"active":1,"new":1,"recovered":0,"ignored":0}}' + 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeOrder":0,"outcomeMsg":null,"warning":null,"alertsCount":{"active":1,"new":1,"recovered":0,"ignored":0}}' ); expect(logger.debug).nthCalledWith( 5, @@ -447,7 +447,7 @@ describe('Task Runner', () => { ); expect(logger.debug).nthCalledWith( 5, - 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeMsg":null,"warning":null,"alertsCount":{"active":1,"new":1,"recovered":0,"ignored":0}}' + 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeOrder":0,"outcomeMsg":null,"warning":null,"alertsCount":{"active":1,"new":1,"recovered":0,"ignored":0}}' ); expect(logger.debug).nthCalledWith( 6, @@ -627,7 +627,7 @@ describe('Task Runner', () => { ); expect(logger.debug).nthCalledWith( 5, - 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeMsg":null,"warning":null,"alertsCount":{"active":2,"new":2,"recovered":0,"ignored":0}}' + 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeOrder":0,"outcomeMsg":null,"warning":null,"alertsCount":{"active":2,"new":2,"recovered":0,"ignored":0}}' ); expect(logger.debug).nthCalledWith( 6, @@ -1066,7 +1066,7 @@ describe('Task Runner', () => { ); expect(logger.debug).nthCalledWith( 5, - 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeMsg":null,"warning":null,"alertsCount":{"active":1,"new":0,"recovered":1,"ignored":0}}' + 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeOrder":0,"outcomeMsg":null,"warning":null,"alertsCount":{"active":1,"new":0,"recovered":1,"ignored":0}}' ); expect(logger.debug).nthCalledWith( 6, @@ -1192,7 +1192,7 @@ describe('Task Runner', () => { ); expect(logger.debug).nthCalledWith( 5, - 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeMsg":null,"warning":null,"alertsCount":{"active":1,"new":0,"recovered":1,"ignored":0}}' + 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeOrder":0,"outcomeMsg":null,"warning":null,"alertsCount":{"active":1,"new":0,"recovered":1,"ignored":0}}' ); expect(logger.debug).nthCalledWith( 6, @@ -2330,7 +2330,7 @@ describe('Task Runner', () => { ); expect(logger.debug).nthCalledWith( 3, - 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeMsg":null,"warning":null,"alertsCount":{"active":0,"new":0,"recovered":0,"ignored":0}}' + 'ruleRunStatus for test:1: {"outcome":"succeeded","outcomeOrder":0,"outcomeMsg":null,"warning":null,"alertsCount":{"active":0,"new":0,"recovered":0,"ignored":0}}' ); expect(logger.debug).nthCalledWith( 4, diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner.ts b/x-pack/plugins/alerting/server/task_runner/task_runner.ts index 808fe89baa7c8c..f0727024d277ff 100644 --- a/x-pack/plugins/alerting/server/task_runner/task_runner.ts +++ b/x-pack/plugins/alerting/server/task_runner/task_runner.ts @@ -45,6 +45,7 @@ import { RuleTypeState, parseDuration, RawAlertInstance, + RuleLastRunOutcomeOrderMap, } from '../../common'; import { NormalizedRuleType, UntypedNormalizedRuleType } from '../rule_type_registry'; import { getEsErrorMessage } from '../lib/errors'; @@ -257,6 +258,8 @@ export class TaskRunner< updatedAt, enabled, actions, + muteAll, + snoozeSchedule, } = rule; const { params: { alertId: ruleId, spaceId }, @@ -373,6 +376,8 @@ export class TaskRunner< updatedAt, throttle, notifyWhen, + muteAll, + snoozeSchedule, }, logger: this.logger, flappingSettings, @@ -821,10 +826,12 @@ export class TaskRunner< this.logger.debug( `Updating rule task for ${this.ruleType.id} rule with id ${ruleId} - execution error due to timeout` ); + const outcome = 'failed'; await this.updateRuleSavedObjectPostRun(ruleId, namespace, { executionStatus: ruleExecutionStatusToRaw(executionStatus), lastRun: { - outcome: 'failed', + outcome, + outcomeOrder: RuleLastRunOutcomeOrderMap[outcome], warning: RuleExecutionStatusErrorReasons.Timeout, outcomeMsg, alertsCount: {}, diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner_cancel.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner_cancel.test.ts index 6c094d330bf164..84ee0f101d8b87 100644 --- a/x-pack/plugins/alerting/server/task_runner/task_runner_cancel.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/task_runner_cancel.test.ts @@ -235,6 +235,7 @@ describe('Task Runner Cancel', () => { outcomeMsg: [ 'test:1: execution cancelled due to timeout - exceeded rule type timeout of 5m', ], + outcomeOrder: 20, warning: 'timeout', }, monitoring: { diff --git a/x-pack/plugins/apm/common/data_source.ts b/x-pack/plugins/apm/common/data_source.ts index 54b7f105125664..b951677a8cb656 100644 --- a/x-pack/plugins/apm/common/data_source.ts +++ b/x-pack/plugins/apm/common/data_source.ts @@ -12,7 +12,8 @@ type AnyApmDocumentType = | ApmDocumentType.ServiceTransactionMetric | ApmDocumentType.TransactionMetric | ApmDocumentType.TransactionEvent - | ApmDocumentType.ServiceDestinationMetric; + | ApmDocumentType.ServiceDestinationMetric + | ApmDocumentType.ServiceSummaryMetric; export interface ApmDataSource< TDocumentType extends AnyApmDocumentType = AnyApmDocumentType diff --git a/x-pack/plugins/apm/common/document_type.ts b/x-pack/plugins/apm/common/document_type.ts index a737484b917609..4027e9d36ded2f 100644 --- a/x-pack/plugins/apm/common/document_type.ts +++ b/x-pack/plugins/apm/common/document_type.ts @@ -10,4 +10,10 @@ export enum ApmDocumentType { ServiceTransactionMetric = 'serviceTransactionMetric', TransactionEvent = 'transactionEvent', ServiceDestinationMetric = 'serviceDestinationMetric', + ServiceSummaryMetric = 'serviceSummaryMetric', } + +export type ApmServiceTransactionDocumentType = + | ApmDocumentType.ServiceTransactionMetric + | ApmDocumentType.TransactionMetric + | ApmDocumentType.TransactionEvent; diff --git a/x-pack/plugins/apm/common/es_fields/__snapshots__/es_fields.test.ts.snap b/x-pack/plugins/apm/common/es_fields/__snapshots__/es_fields.test.ts.snap index 815665f5f0b431..0cb355aaab5729 100644 --- a/x-pack/plugins/apm/common/es_fields/__snapshots__/es_fields.test.ts.snap +++ b/x-pack/plugins/apm/common/es_fields/__snapshots__/es_fields.test.ts.snap @@ -21,6 +21,8 @@ exports[`Error CLIENT_GEO_COUNTRY_ISO_CODE 1`] = `undefined`; exports[`Error CLIENT_GEO_COUNTRY_NAME 1`] = `undefined`; +exports[`Error CLIENT_GEO_REGION_ISO_CODE 1`] = `undefined`; + exports[`Error CLIENT_GEO_REGION_NAME 1`] = `undefined`; exports[`Error CLOUD 1`] = ` @@ -325,6 +327,8 @@ exports[`Span CLIENT_GEO_COUNTRY_ISO_CODE 1`] = `undefined`; exports[`Span CLIENT_GEO_COUNTRY_NAME 1`] = `undefined`; +exports[`Span CLIENT_GEO_REGION_ISO_CODE 1`] = `undefined`; + exports[`Span CLIENT_GEO_REGION_NAME 1`] = `undefined`; exports[`Span CLOUD 1`] = ` @@ -612,6 +616,8 @@ exports[`Transaction CLIENT_GEO_COUNTRY_ISO_CODE 1`] = `undefined`; exports[`Transaction CLIENT_GEO_COUNTRY_NAME 1`] = `undefined`; +exports[`Transaction CLIENT_GEO_REGION_ISO_CODE 1`] = `undefined`; + exports[`Transaction CLIENT_GEO_REGION_NAME 1`] = `undefined`; exports[`Transaction CLOUD 1`] = ` diff --git a/x-pack/plugins/apm/common/es_fields/apm.ts b/x-pack/plugins/apm/common/es_fields/apm.ts index 6f5420af51c7a8..e38d805565c48b 100644 --- a/x-pack/plugins/apm/common/es_fields/apm.ts +++ b/x-pack/plugins/apm/common/es_fields/apm.ts @@ -171,6 +171,7 @@ export const EVENT_NAME = 'event.name'; // Location export const CLIENT_GEO_COUNTRY_ISO_CODE = 'client.geo.country_iso_code'; +export const CLIENT_GEO_REGION_ISO_CODE = 'client.geo.region_iso_code'; export const CLIENT_GEO_COUNTRY_NAME = 'client.geo.country_name'; export const CLIENT_GEO_CITY_NAME = 'client.geo.city_name'; export const CLIENT_GEO_REGION_NAME = 'client.geo.region_name'; diff --git a/x-pack/plugins/apm/common/mobile/constants.ts b/x-pack/plugins/apm/common/mobile/constants.ts new file mode 100644 index 00000000000000..d2b8fdc8091565 --- /dev/null +++ b/x-pack/plugins/apm/common/mobile/constants.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export enum MapTypes { + Http = 'http_requests', + Session = 'unique_sessions', +} + +export enum MobileSpanSubtype { + Http = 'http', +} + +export enum MobileSpanType { + External = 'external', +} diff --git a/x-pack/plugins/apm/dev_docs/apm_queries.md b/x-pack/plugins/apm/dev_docs/apm_queries.md index 69f5953cce59ce..acd20597389d95 100644 --- a/x-pack/plugins/apm/dev_docs/apm_queries.md +++ b/x-pack/plugins/apm/dev_docs/apm_queries.md @@ -224,38 +224,48 @@ GET apm-*-metric-*,metrics-apm*/_search?terminate_after=1000 # Transactions in service inventory page -Service metrics is an aggregated metric document that holds latency and throughput metrics pivoted by `service.name + service.environment + transaction.type` +Service transaction metrics are aggregated metric documents that hold latency and throughput metrics pivoted by `service.name`, `service.environment` and `transaction.type`. Additionally, `agent.name` and `service.language.name` are included as metadata. -The decision to use service metrics aggregation or not is determined in [getServiceInventorySearchSource](https://github.com/elastic/kibana/blob/5d585ea375be551a169a0bea49b011819b9ac669/x-pack/plugins/apm/server/lib/helpers/get_service_inventory_search_source.ts#L12) and [getSearchServiceMetrics](https://github.com/elastic/kibana/blob/5d585ea375be551a169a0bea49b011819b9ac669/x-pack/plugins/apm/server/lib/helpers/service_metrics/index.ts#L38) +We use the response from the `GET /internal/apm/time_range_metadata` endpoint to determine what data source is available. A data source is considered available if there is either data before the current time range, or, if there is no data at all before the current time range, if there is data within the current time range. This means that existing deployments will use transaction metrics right after upgrading (instead of using service transaction metrics and seeing a mostly blank screen), but also that new deployments immediately get the benefits of service transaction metrics, instead of falling all the way back to transaction events. A pre-aggregated document where `_doc_count` is the number of transaction events ``` { - "_doc_count": 627, + "_doc_count": 4, "@timestamp": "2021-09-01T10:00:00.000Z", "processor.event": "metric", - "metricset.name": "service", + "metricset.name": "service_transaction", + "metricset.interval": "1m", "service": { "environment": "production", "name": "web-go" }, "transaction": { "duration.summary": { - "sum": 376492831, - "value_count": 627 + "sum": 1000, + "value_count": 4 + }, + "duration.histogram": { + "counts": [ 4 ], + "values": [ 250 ] }, - "success_count": 476, - "failure_count": 151, "type": "request" + }, + "event": { + "success_count": { + "sum": 1, + "value_count": 2 + } } } ``` - `_doc_count` is the number of bucket counts -- `transaction.duration.summary` is an [aggregate_metric_double](https://www.elastic.co/guide/en/elasticsearch/reference/7.17/aggregate-metric-double.html) field and holds an aggregated transaction duration summary, for service metrics -- `failure_count` holds an aggregated count of transactions with the outcome "failure" -- `success_count` holds an aggregated count of transactions with the outcome "success" +- `transaction.duration.summary` is an [aggregate_metric_double](https://www.elastic.co/guide/en/elasticsearch/reference/7.17/aggregate-metric-double.html) field and holds an aggregated transaction duration summary, for service transaction metrics +- `event.success_count` holds an aggregate metric double that describes the _success rate_. E.g., in this example, the success rate is 50% (1/2). + +In addition to `service_transaction`, `service_summary` metrics are also generated. Every service outputs these, even when it does not record any transaction (that also means there is no transaction data on this metric). This means that we can use `service_summary` to display services without transactions, i.e. services that only have app/system metrics or errors. ### Latency diff --git a/x-pack/plugins/apm/kibana.json b/x-pack/plugins/apm/kibana.json deleted file mode 100644 index 3df051925ab619..00000000000000 --- a/x-pack/plugins/apm/kibana.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "id": "apm", - "owner": { - "name": "APM UI", - "githubTeam": "apm-ui" - }, - "description": "The user interface for Elastic APM", - "version": "8.0.0", - "kibanaVersion": "kibana", - "requiredPlugins": [ - "data", - "embeddable", - "features", - "infra", - "inspector", - "licensing", - "observability", - "ruleRegistry", - "triggersActionsUi", - "share", - "unifiedSearch", - "dataViews", - "advancedSettings", - "unifiedFieldList", - "lens", - "maps" - ], - "optionalPlugins": [ - "actions", - "alerting", - "cases", - "charts", - "cloud", - "fleet", - "fieldFormats", - "home", - "ml", - "security", - "spaces", - "taskManager", - "usageCollection" - ], - "server": true, - "ui": true, - "configPath": [ - "xpack", - "apm" - ], - "requiredBundles": [ - "fleet", - "kibanaReact", - "kibanaUtils", - "ml", - "observability", - "esUiShared", - "maps" - ] -} diff --git a/x-pack/plugins/apm/kibana.jsonc b/x-pack/plugins/apm/kibana.jsonc new file mode 100644 index 00000000000000..9d77d00b21befb --- /dev/null +++ b/x-pack/plugins/apm/kibana.jsonc @@ -0,0 +1,57 @@ +{ + "type": "plugin", + "id": "@kbn/apm-plugin", + "owner": "@elastic/apm-ui", + "description": "The user interface for Elastic APM", + "plugin": { + "id": "apm", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "apm" + ], + "requiredPlugins": [ + "data", + "embeddable", + "features", + "infra", + "inspector", + "licensing", + "observability", + "ruleRegistry", + "triggersActionsUi", + "share", + "unifiedSearch", + "dataViews", + "advancedSettings", + "unifiedFieldList", + "lens", + "maps" + ], + "optionalPlugins": [ + "actions", + "alerting", + "cases", + "charts", + "cloud", + "fleet", + "fieldFormats", + "home", + "ml", + "security", + "spaces", + "taskManager", + "usageCollection" + ], + "requiredBundles": [ + "fleet", + "kibanaReact", + "kibanaUtils", + "ml", + "observability", + "esUiShared", + "maps" + ] + } +} diff --git a/x-pack/plugins/apm/public/components/app/alerts_overview/index.tsx b/x-pack/plugins/apm/public/components/app/alerts_overview/index.tsx index 898762c8350fa2..541a4619300f3c 100644 --- a/x-pack/plugins/apm/public/components/app/alerts_overview/index.tsx +++ b/x-pack/plugins/apm/public/components/app/alerts_overview/index.tsx @@ -103,6 +103,7 @@ export function AlertsOverview() { configurationId={AlertConsumers.OBSERVABILITY} featureIds={[AlertConsumers.APM]} query={esQuery} + showAlertStatusWithFlapping showExpandToDetails={false} /> )} diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/embedded_map.test.tsx b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/embedded_map.test.tsx similarity index 91% rename from x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/embedded_map.test.tsx rename to x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/embedded_map.test.tsx index 78afdb121df488..88e94ef82a61c2 100644 --- a/x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/embedded_map.test.tsx +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/embedded_map.test.tsx @@ -12,12 +12,14 @@ import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import { embeddablePluginMock } from '@kbn/embeddable-plugin/public/mocks'; import { MockApmPluginContextWrapper } from '../../../../../context/apm_plugin/mock_apm_plugin_context'; import { MemoryRouter } from 'react-router-dom'; +import { MapTypes } from '../../../../../../common/mobile/constants'; describe('Embedded Map', () => { it('it renders', async () => { const mockSetLayerList = jest.fn(); const mockUpdateInput = jest.fn(); const mockRender = jest.fn(); + const mockReload = jest.fn(); const mockEmbeddable = embeddablePluginMock.createStartContract(); mockEmbeddable.getEmbeddableFactory = jest.fn().mockImplementation(() => ({ @@ -25,6 +27,7 @@ describe('Embedded Map', () => { setLayerList: mockSetLayerList, updateInput: mockUpdateInput, render: mockRender, + reload: mockReload, }), })); @@ -37,6 +40,7 @@ describe('Embedded Map', () => { { + const setLayerList = async () => { + if (embeddable && !isErrorEmbeddable(embeddable)) { + const layerList = await getLayerList({ selectedMap, maps }); + await Promise.all([ + embeddable.setLayerList(layerList), + embeddable.reload(), + ]); + } + }; + + setLayerList(); + }, [embeddable, selectedMap, maps]); + useEffect(() => { if (embeddable) { embeddable.updateInput({ @@ -140,7 +153,7 @@ function EmbeddedMapComponent({ }, }); } - }, [start, end, kuery, filters, embeddable]); + }, [start, end, kuery, filters, embeddable, selectedMap]); return ( <> diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/index.tsx b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/index.tsx new file mode 100644 index 00000000000000..bf8331b69555b8 --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/index.tsx @@ -0,0 +1,127 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiTitle } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import type { Filter } from '@kbn/es-query'; +import { EuiSuperSelect, EuiText } from '@elastic/eui'; +import { EmbeddedMap } from './embedded_map'; +import { MapTypes } from '../../../../../../common/mobile/constants'; + +const availableMaps: Array<{ + id: MapTypes; + label: string; + description: string; +}> = [ + { + id: MapTypes.Http, + label: i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.dropdown.http.requests', + { + defaultMessage: 'HTTP requests', + } + ), + description: i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.dropdown.http.requests.subtitle', + { + defaultMessage: + 'HTTP defines a set of request methods to indicate the desired action to be performed for a given resource', + } + ), + }, + { + id: MapTypes.Session, + label: i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.dropdown.sessions', + { + defaultMessage: 'Sessions', + } + ), + description: i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.dropdown.sessions.subtitle', + { + defaultMessage: + 'An application session begins when a user starts an application and ends when the application exits.', + } + ), + }, +]; + +export function GeoMap({ + start, + end, + kuery, + filters, +}: { + start: string; + end: string; + kuery?: string; + filters: Filter[]; +}) { + const [selectedMap, setMap] = useState(MapTypes.Http); + + const currentMap = + availableMaps.find(({ id }) => id === selectedMap) ?? availableMaps[0]; + + return ( + <> + + + +

    + {i18n.translate('xpack.apm.serviceOverview.embeddedMap.title', { + defaultMessage: 'Geographic regions', + })} +

    +
    + +

    + {i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.subtitle', + { + defaultMessage: + 'Map showing the total number of {currentMap} based on country and region', + values: { currentMap: currentMap.label }, + } + )} +

    +
    +
    + + ({ + inputDisplay: item.label, + value: item.id, + dropdownDisplay: ( + <> + {item.label} + +

    {item.description}

    +
    + + ), + }))} + valueOfSelected={selectedMap} + onChange={(value: MapTypes) => setMap(value)} + itemLayoutAlign="top" + hasDividers + /> +
    + + + + ); +} diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_http_requests_map_layer_list.ts b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_http_requests_map_layer_list.ts new file mode 100644 index 00000000000000..89546265462906 --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_http_requests_map_layer_list.ts @@ -0,0 +1,149 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + EMSFileSourceDescriptor, + LayerDescriptor as BaseLayerDescriptor, + VectorLayerDescriptor as BaseVectorLayerDescriptor, + AGG_TYPE, + LAYER_TYPE, + SOURCE_TYPES, +} from '@kbn/maps-plugin/common'; +import { ProcessorEvent } from '@kbn/observability-plugin/common'; +import { v4 as uuidv4 } from 'uuid'; +import type { MapsStartApi } from '@kbn/maps-plugin/public'; +import { i18n } from '@kbn/i18n'; +import { + CLIENT_GEO_COUNTRY_ISO_CODE, + CLIENT_GEO_REGION_ISO_CODE, + PROCESSOR_EVENT, + SPAN_SUBTYPE, + SPAN_TYPE, +} from '../../../../../../../common/es_fields/apm'; +import { APM_STATIC_DATA_VIEW_ID } from '../../../../../../../common/data_view_constants'; +import { getLayerStyle, PalleteColors } from './get_map_layer_style'; +import { + MobileSpanSubtype, + MobileSpanType, +} from '../../../../../../../common/mobile/constants'; + +interface VectorLayerDescriptor extends BaseVectorLayerDescriptor { + sourceDescriptor: EMSFileSourceDescriptor; +} + +const COUNTRY_NAME = 'name'; +const PER_COUNTRY_LAYER_ID = 'per_country'; +const PER_REGION_LAYER_ID = 'per_region'; +const HTTP_REQUEST_PER_COUNTRY = `__kbnjoin__count__${PER_COUNTRY_LAYER_ID}`; +const HTTP_REQUESTS_PER_REGION = `__kbnjoin__count__${PER_REGION_LAYER_ID}`; + +const label = i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.httpRequests.metric.label', + { + defaultMessage: 'HTTP requests', + } +); + +export async function getHttpRequestsLayerList(maps?: MapsStartApi) { + const whereQuery = { + language: 'kuery', + query: `${PROCESSOR_EVENT}:${ProcessorEvent.span} and ${SPAN_SUBTYPE}:${MobileSpanSubtype.Http} and ${SPAN_TYPE}:${MobileSpanType.External}`, + }; + + const basemapLayerDescriptor = + await maps?.createLayerDescriptors?.createBasemapLayerDescriptor(); + + const httpRequestsByCountryLayer: VectorLayerDescriptor = { + joins: [ + { + leftField: 'iso2', + right: { + type: SOURCE_TYPES.ES_TERM_SOURCE, + id: PER_COUNTRY_LAYER_ID, + term: CLIENT_GEO_COUNTRY_ISO_CODE, + metrics: [ + { + type: AGG_TYPE.COUNT, + label, + }, + ], + whereQuery, + indexPatternId: APM_STATIC_DATA_VIEW_ID, + applyGlobalQuery: true, + applyGlobalTime: true, + applyForceRefresh: true, + }, + }, + ], + sourceDescriptor: { + type: SOURCE_TYPES.EMS_FILE, + id: 'world_countries', + tooltipProperties: [COUNTRY_NAME], + }, + style: getLayerStyle(HTTP_REQUEST_PER_COUNTRY, PalleteColors.BluetoRed), + id: uuidv4(), + label: i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.httpRequests.country.label', + { + defaultMessage: 'HTTP requests per country', + } + ), + minZoom: 0, + maxZoom: 2, + alpha: 0.75, + visible: true, + type: LAYER_TYPE.GEOJSON_VECTOR, + }; + + const httpRequestsByRegionLayer: VectorLayerDescriptor = { + joins: [ + { + leftField: 'region_iso_code', + right: { + type: SOURCE_TYPES.ES_TERM_SOURCE, + id: PER_REGION_LAYER_ID, + term: CLIENT_GEO_REGION_ISO_CODE, + metrics: [ + { + type: AGG_TYPE.COUNT, + label, + }, + ], + whereQuery, + indexPatternId: APM_STATIC_DATA_VIEW_ID, + applyGlobalQuery: true, + applyGlobalTime: true, + applyForceRefresh: true, + }, + }, + ], + sourceDescriptor: { + type: SOURCE_TYPES.EMS_FILE, + id: 'administrative_regions_lvl2', + tooltipProperties: ['region_iso_code'], + }, + style: getLayerStyle(HTTP_REQUESTS_PER_REGION, PalleteColors.YellowtoRed), + id: uuidv4(), + label: i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.httpRequests.region.label', + { + defaultMessage: 'HTTP requests per region', + } + ), + minZoom: 1, + maxZoom: 24, + alpha: 0.75, + visible: true, + type: LAYER_TYPE.GEOJSON_VECTOR, + }; + + return [ + ...(basemapLayerDescriptor ? [basemapLayerDescriptor] : []), + httpRequestsByRegionLayer, + httpRequestsByCountryLayer, + ] as BaseLayerDescriptor[]; +} diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_layer_list.ts b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_layer_list.ts new file mode 100644 index 00000000000000..152f1874b143b8 --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_layer_list.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { MapsStartApi } from '@kbn/maps-plugin/public'; +import { LayerDescriptor } from '@kbn/maps-plugin/common'; +import { getHttpRequestsLayerList } from './get_http_requests_map_layer_list'; +import { getSessionMapLayerList } from './get_session_map_layer_list'; +import { MapTypes } from '../../../../../../../common/mobile/constants'; + +export async function getLayerList({ + selectedMap, + maps, +}: { + selectedMap: MapTypes; + maps?: MapsStartApi; +}): Promise { + switch (selectedMap) { + case MapTypes.Http: + return await getHttpRequestsLayerList(maps); + case MapTypes.Session: + return await getSessionMapLayerList(maps); + default: + return await getHttpRequestsLayerList(maps); + } +} diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_map_layer_style.ts b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_map_layer_style.ts new file mode 100644 index 00000000000000..aed6fb2d39b7bf --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_map_layer_style.ts @@ -0,0 +1,90 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + VectorStyleDescriptor, + COLOR_MAP_TYPE, + FIELD_ORIGIN, + LABEL_BORDER_SIZES, + LABEL_POSITIONS, + STYLE_TYPE, + SYMBOLIZE_AS_TYPES, +} from '@kbn/maps-plugin/common'; + +export enum PalleteColors { + BluetoRed = 'Blue to Red', + YellowtoRed = 'Yellow to Red', +} + +export function getLayerStyle( + fieldName: string, + color: PalleteColors +): VectorStyleDescriptor { + return { + type: 'VECTOR', + properties: { + icon: { type: STYLE_TYPE.STATIC, options: { value: 'marker' } }, + fillColor: { + type: STYLE_TYPE.DYNAMIC, + options: { + color, + colorCategory: 'palette_0', + fieldMetaOptions: { isEnabled: true, sigma: 3 }, + type: COLOR_MAP_TYPE.ORDINAL, + field: { + name: fieldName, + origin: FIELD_ORIGIN.JOIN, + }, + useCustomColorRamp: false, + }, + }, + lineColor: { + type: STYLE_TYPE.DYNAMIC, + options: { color: '#3d3d3d', fieldMetaOptions: { isEnabled: true } }, + }, + lineWidth: { type: STYLE_TYPE.STATIC, options: { size: 1 } }, + iconSize: { type: STYLE_TYPE.STATIC, options: { size: 6 } }, + iconOrientation: { + type: STYLE_TYPE.STATIC, + options: { orientation: 0 }, + }, + labelText: { + type: STYLE_TYPE.DYNAMIC, + options: { + field: { + name: fieldName, + origin: FIELD_ORIGIN.JOIN, + }, + }, + }, + labelPosition: { + options: { + position: LABEL_POSITIONS.CENTER, + }, + }, + labelZoomRange: { + options: { + useLayerZoomRange: true, + minZoom: 0, + maxZoom: 24, + }, + }, + labelColor: { + type: STYLE_TYPE.STATIC, + options: { color: '#3d3d3d' }, + }, + labelSize: { type: STYLE_TYPE.STATIC, options: { size: 14 } }, + labelBorderColor: { + type: STYLE_TYPE.STATIC, + options: { color: '#FFFFFF' }, + }, + symbolizeAs: { options: { value: SYMBOLIZE_AS_TYPES.CIRCLE } }, + labelBorderSize: { options: { size: LABEL_BORDER_SIZES.SMALL } }, + }, + isTimeAware: true, + }; +} diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_session_map_layer_list.ts b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_session_map_layer_list.ts new file mode 100644 index 00000000000000..a0d2b80b218fda --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/geo_map/map_layers/get_session_map_layer_list.ts @@ -0,0 +1,136 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + EMSFileSourceDescriptor, + LayerDescriptor as BaseLayerDescriptor, + VectorLayerDescriptor as BaseVectorLayerDescriptor, + AGG_TYPE, + LAYER_TYPE, + SOURCE_TYPES, +} from '@kbn/maps-plugin/common'; +import { v4 as uuidv4 } from 'uuid'; +import type { MapsStartApi } from '@kbn/maps-plugin/public'; +import { i18n } from '@kbn/i18n'; +import { + CLIENT_GEO_COUNTRY_ISO_CODE, + CLIENT_GEO_REGION_ISO_CODE, + SESSION_ID, +} from '../../../../../../../common/es_fields/apm'; +import { APM_STATIC_DATA_VIEW_ID } from '../../../../../../../common/data_view_constants'; +import { getLayerStyle, PalleteColors } from './get_map_layer_style'; + +interface VectorLayerDescriptor extends BaseVectorLayerDescriptor { + sourceDescriptor: EMSFileSourceDescriptor; +} + +const PER_COUNTRY_LAYER_ID = 'per_country'; +const PER_REGION_LAYER_ID = 'per_region'; +const COUNTRY_NAME = 'name'; +const SESSION_PER_COUNTRY = `__kbnjoin__cardinality_of_session.id__${PER_COUNTRY_LAYER_ID}`; +const SESSION_PER_REGION = `__kbnjoin__cardinality_of_session.id__${PER_REGION_LAYER_ID}`; + +const label = i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.session.metric.label', + { + defaultMessage: 'Sessions', + } +); +export async function getSessionMapLayerList(maps?: MapsStartApi) { + const basemapLayerDescriptor = + await maps?.createLayerDescriptors?.createBasemapLayerDescriptor(); + + const sessionsByCountryLayer: VectorLayerDescriptor = { + joins: [ + { + leftField: 'iso2', + right: { + type: SOURCE_TYPES.ES_TERM_SOURCE, + id: PER_COUNTRY_LAYER_ID, + term: CLIENT_GEO_COUNTRY_ISO_CODE, + metrics: [ + { + type: AGG_TYPE.UNIQUE_COUNT, + field: SESSION_ID, + label, + }, + ], + indexPatternId: APM_STATIC_DATA_VIEW_ID, + applyGlobalQuery: true, + applyGlobalTime: true, + applyForceRefresh: true, + }, + }, + ], + sourceDescriptor: { + type: SOURCE_TYPES.EMS_FILE, + id: 'world_countries', + tooltipProperties: [COUNTRY_NAME], + }, + style: getLayerStyle(SESSION_PER_COUNTRY, PalleteColors.BluetoRed), + id: uuidv4(), + label: i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.sessionCountry.metric.label', + { + defaultMessage: 'Sessions per country', + } + ), + minZoom: 0, + maxZoom: 2, + alpha: 0.75, + visible: true, + type: LAYER_TYPE.GEOJSON_VECTOR, + }; + + const sessionsByRegionLayer: VectorLayerDescriptor = { + joins: [ + { + leftField: 'region_iso_code', + right: { + type: SOURCE_TYPES.ES_TERM_SOURCE, + id: PER_REGION_LAYER_ID, + term: CLIENT_GEO_REGION_ISO_CODE, + metrics: [ + { + type: AGG_TYPE.UNIQUE_COUNT, + field: SESSION_ID, + label, + }, + ], + indexPatternId: APM_STATIC_DATA_VIEW_ID, + applyGlobalQuery: true, + applyGlobalTime: true, + applyForceRefresh: true, + }, + }, + ], + sourceDescriptor: { + type: SOURCE_TYPES.EMS_FILE, + id: 'administrative_regions_lvl2', + tooltipProperties: ['region_iso_code'], + }, + style: getLayerStyle(SESSION_PER_REGION, PalleteColors.YellowtoRed), + id: uuidv4(), + label: i18n.translate( + 'xpack.apm.serviceOverview.embeddedMap.sessionRegion.metric.label', + { + defaultMessage: 'Sessions per region', + } + ), + minZoom: 1, + maxZoom: 24, + alpha: 0.75, + visible: true, + type: LAYER_TYPE.GEOJSON_VECTOR, + }; + + return [ + ...(basemapLayerDescriptor ? [basemapLayerDescriptor] : []), + sessionsByRegionLayer, + sessionsByCountryLayer, + ] as BaseLayerDescriptor[]; +} diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/index.tsx b/x-pack/plugins/apm/public/components/app/mobile/service_overview/index.tsx index 326a7ae22f0851..6282c581e477fb 100644 --- a/x-pack/plugins/apm/public/components/app/mobile/service_overview/index.tsx +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/index.tsx @@ -35,7 +35,7 @@ import { SERVICE_VERSION, } from '../../../../../common/es_fields/apm'; import { MostUsedChart } from './most_used_chart'; -import { LatencyMap } from './latency_map'; +import { GeoMap } from './geo_map'; import { FailedTransactionRateChart } from '../../../shared/charts/failed_transaction_rate_chart'; import { ServiceOverviewDependenciesTable } from '../../service_overview/service_overview_dependencies_table'; import { LatencyChart } from '../../../shared/charts/latency_chart'; @@ -52,7 +52,6 @@ export const chartHeight = 288; export function MobileServiceOverview() { const { serviceName } = useApmServiceContext(); const router = useApmRouter(); - const embeddableFilters = useFiltersForEmbeddableCharts(); const { query, @@ -65,10 +64,16 @@ export function MobileServiceOverview() { osVersion, appVersion, netConnectionType, + offset, comparisonEnabled, }, } = useApmParams('/mobile-services/{serviceName}/overview'); + const embeddableFilters = useFiltersForEmbeddableCharts({ + serviceName, + environment, + }); + const kueryWithMobileFilters = getKueryWithMobileFilters({ device, osVersion, @@ -152,30 +157,33 @@ export function MobileServiceOverview() {
    - - - - + + + + + + - - - - - - + + +
    - +

    @@ -189,76 +197,68 @@ export function MobileServiceOverview() { {/* Device */} - - - + {/* NCT */} - - - + {/* OS version */} - - - + {/* App version */} - - - + diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/get_layer_list.ts b/x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/get_layer_list.ts deleted file mode 100644 index d6f544cdd1d219..00000000000000 --- a/x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/get_layer_list.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - EMSFileSourceDescriptor, - LayerDescriptor as BaseLayerDescriptor, - VectorLayerDescriptor as BaseVectorLayerDescriptor, - VectorStyleDescriptor, - AGG_TYPE, - COLOR_MAP_TYPE, - FIELD_ORIGIN, - LABEL_BORDER_SIZES, - LABEL_POSITIONS, - LAYER_TYPE, - SOURCE_TYPES, - STYLE_TYPE, - SYMBOLIZE_AS_TYPES, -} from '@kbn/maps-plugin/common'; -import { v4 as uuidv4 } from 'uuid'; -import type { MapsStartApi } from '@kbn/maps-plugin/public'; -import { i18n } from '@kbn/i18n'; -import { - CLIENT_GEO_COUNTRY_ISO_CODE, - TRANSACTION_DURATION, -} from '../../../../../../common/es_fields/apm'; -import { APM_STATIC_DATA_VIEW_ID } from '../../../../../../common/data_view_constants'; - -interface VectorLayerDescriptor extends BaseVectorLayerDescriptor { - sourceDescriptor: EMSFileSourceDescriptor; -} - -const FIELD_NAME = 'apm-service-overview-layer-country'; -const COUNTRY_NAME = 'name'; -const TRANSACTION_DURATION_COUNTRY = `__kbnjoin__avg_of_transaction.duration.us__${FIELD_NAME}`; - -function getLayerStyle(): VectorStyleDescriptor { - return { - type: 'VECTOR', - properties: { - icon: { type: STYLE_TYPE.STATIC, options: { value: 'marker' } }, - fillColor: { - type: STYLE_TYPE.DYNAMIC, - options: { - color: 'Blue to Red', - colorCategory: 'palette_0', - fieldMetaOptions: { isEnabled: true, sigma: 3 }, - type: COLOR_MAP_TYPE.ORDINAL, - field: { - name: TRANSACTION_DURATION_COUNTRY, - origin: FIELD_ORIGIN.JOIN, - }, - useCustomColorRamp: false, - }, - }, - lineColor: { - type: STYLE_TYPE.DYNAMIC, - options: { color: '#3d3d3d', fieldMetaOptions: { isEnabled: true } }, - }, - lineWidth: { type: STYLE_TYPE.STATIC, options: { size: 1 } }, - iconSize: { type: STYLE_TYPE.STATIC, options: { size: 6 } }, - iconOrientation: { - type: STYLE_TYPE.STATIC, - options: { orientation: 0 }, - }, - labelText: { - type: STYLE_TYPE.DYNAMIC, - options: { - field: { - name: TRANSACTION_DURATION_COUNTRY, - origin: FIELD_ORIGIN.JOIN, - }, - }, - }, - labelPosition: { - options: { - position: LABEL_POSITIONS.CENTER, - }, - }, - labelZoomRange: { - options: { - useLayerZoomRange: true, - minZoom: 0, - maxZoom: 24, - }, - }, - labelColor: { - type: STYLE_TYPE.STATIC, - options: { color: '#000000' }, - }, - labelSize: { type: STYLE_TYPE.STATIC, options: { size: 14 } }, - labelBorderColor: { - type: STYLE_TYPE.STATIC, - options: { color: '#FFFFFF' }, - }, - symbolizeAs: { options: { value: SYMBOLIZE_AS_TYPES.CIRCLE } }, - labelBorderSize: { options: { size: LABEL_BORDER_SIZES.SMALL } }, - }, - isTimeAware: true, - }; -} - -export async function getLayerList(maps?: MapsStartApi) { - const basemapLayerDescriptor = maps - ? await maps.createLayerDescriptors.createBasemapLayerDescriptor() - : null; - - const pageLoadDurationByCountryLayer: VectorLayerDescriptor = { - joins: [ - { - leftField: 'iso2', - right: { - type: SOURCE_TYPES.ES_TERM_SOURCE, - id: FIELD_NAME, - term: CLIENT_GEO_COUNTRY_ISO_CODE, - metrics: [ - { - type: AGG_TYPE.AVG, - field: TRANSACTION_DURATION, - label: i18n.translate( - 'xpack.apm.serviceOverview.embeddedMap.metric.label', - { - defaultMessage: 'Page load duration', - } - ), - }, - ], - indexPatternId: APM_STATIC_DATA_VIEW_ID, - applyGlobalQuery: true, - applyGlobalTime: true, - applyForceRefresh: true, - }, - }, - ], - sourceDescriptor: { - type: SOURCE_TYPES.EMS_FILE, - id: 'world_countries', - tooltipProperties: [COUNTRY_NAME], - }, - style: getLayerStyle(), - id: uuidv4(), - label: null, - minZoom: 0, - maxZoom: 24, - alpha: 0.75, - visible: true, - type: LAYER_TYPE.GEOJSON_VECTOR, - }; - - return [ - ...(basemapLayerDescriptor ? [basemapLayerDescriptor] : []), - pageLoadDurationByCountryLayer, - ] as BaseLayerDescriptor[]; -} diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/index.tsx b/x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/index.tsx deleted file mode 100644 index 6ac672dea1f064..00000000000000 --- a/x-pack/plugins/apm/public/components/app/mobile/service_overview/latency_map/index.tsx +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { - EuiFlexGroup, - EuiFlexItem, - EuiSpacer, - EuiTitle, - EuiIconTip, -} from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import type { Filter } from '@kbn/es-query'; -import { EmbeddedMap } from './embedded_map'; - -export function LatencyMap({ - start, - end, - kuery, - filters, - comparisonEnabled, -}: { - start: string; - end: string; - kuery?: string; - filters: Filter[]; - comparisonEnabled: boolean; -}) { - return ( - <> - - - -

    - {i18n.translate('xpack.apm.serviceOverview.embeddedMap.title', { - defaultMessage: 'Average latency per country', - })} -

    -
    -
    - - {comparisonEnabled && ( - - )} - -
    - - - - ); -} diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/stats/location_stats.tsx b/x-pack/plugins/apm/public/components/app/mobile/service_overview/stats/location_stats.tsx index 74d55f233570ac..ccded09c50e527 100644 --- a/x-pack/plugins/apm/public/components/app/mobile/service_overview/stats/location_stats.tsx +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/stats/location_stats.tsx @@ -9,7 +9,6 @@ import { i18n } from '@kbn/i18n'; import { EuiIcon, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React, { useCallback } from 'react'; import { useTheme } from '@kbn/observability-plugin/public'; -import { useAnyOfApmParams } from '../../../../../hooks/use_apm_params'; import { useFetcher, isPending } from '../../../../../hooks/use_fetcher'; import { CLIENT_GEO_COUNTRY_NAME } from '../../../../../../common/es_fields/apm'; import { NOT_AVAILABLE_LABEL } from '../../../../../../common/i18n'; @@ -50,18 +49,21 @@ export function MobileLocationStats({ start, end, kuery, + serviceName, + offset, + environment, + comparisonEnabled, }: { start: string; end: string; kuery: string; + serviceName: string; + offset?: string; + environment: string; + comparisonEnabled: boolean; }) { const euiTheme = useTheme(); - const { - path: { serviceName }, - query: { environment, offset, comparisonEnabled }, - } = useAnyOfApmParams('/mobile-services/{serviceName}/overview'); - const previousPeriodLabel = usePreviousPeriodLabel(); const locationField = CLIENT_GEO_COUNTRY_NAME; diff --git a/x-pack/plugins/apm/public/components/app/mobile/transaction_overview/index.tsx b/x-pack/plugins/apm/public/components/app/mobile/transaction_overview/index.tsx index 4d1ae6372668ac..f6fc9556c0de2b 100644 --- a/x-pack/plugins/apm/public/components/app/mobile/transaction_overview/index.tsx +++ b/x-pack/plugins/apm/public/components/app/mobile/transaction_overview/index.tsx @@ -10,6 +10,7 @@ import { EuiHorizontalRule, EuiPanel, EuiSpacer, + EuiFlexGroup, } from '@elastic/eui'; import React from 'react'; import { useHistory } from 'react-router-dom'; @@ -20,6 +21,9 @@ import { TransactionsTable } from '../../../shared/transactions_table'; import { replace } from '../../../shared/links/url_helpers'; import { getKueryWithMobileFilters } from '../../../../../common/utils/get_kuery_with_mobile_filters'; import { MobileTransactionCharts } from './transaction_charts'; +import { MobileLocationStats } from '../service_overview/stats/location_stats'; +import { useFiltersForEmbeddableCharts } from '../../../../hooks/use_filters_for_embeddable_charts'; +import { GeoMap } from '../service_overview/geo_map'; export function MobileTransactionOverview() { const { @@ -39,6 +43,11 @@ export function MobileTransactionOverview() { }, } = useApmParams('/mobile-services/{serviceName}/transactions'); + const embeddableFilters = useFiltersForEmbeddableCharts({ + serviceName, + environment, + }); + const kueryWithMobileFilters = getKueryWithMobileFilters({ device, osVersion, @@ -63,6 +72,32 @@ export function MobileTransactionOverview() { + + + + + + + + + + + + + - + - + {serviceGroupCounts !== undefined && i18n.translate( 'xpack.apm.serviceGroups.cardsList.serviceCount', @@ -80,25 +81,35 @@ export function ServiceGroupsCard({ {serviceGroupCounts && serviceGroupCounts.alerts > 0 && ( - - {i18n.translate( - 'xpack.apm.serviceGroups.cardsList.alertCount', + + > + + {i18n.translate( + 'xpack.apm.serviceGroups.cardsList.alertCount', + { + defaultMessage: + '{alertsCount} {alertsCount, plural, one {alert} other {alerts}}', + values: { alertsCount: serviceGroupCounts.alerts }, + } + )} + + )} diff --git a/x-pack/plugins/apm/public/components/app/service_inventory/service_list/index.tsx b/x-pack/plugins/apm/public/components/app/service_inventory/service_list/index.tsx index 1938b2dfe0bda3..0f7d64477b2f46 100644 --- a/x-pack/plugins/apm/public/components/app/service_inventory/service_list/index.tsx +++ b/x-pack/plugins/apm/public/components/app/service_inventory/service_list/index.tsx @@ -82,8 +82,10 @@ export function getServiceColumns({ ? [ { field: ServiceInventoryFieldName.AlertsCount, - name: '', - width: `${unit * 5}px`, + name: i18n.translate('xpack.apm.servicesTable.alertsColumnLabel', { + defaultMessage: 'Active alerts', + }), + width: `${unit * 8}px`, sortable: true, render: (_, { serviceName, alertsCount }) => { if (!alertsCount) { @@ -91,16 +93,26 @@ export function getServiceColumns({ } return ( - - {alertsCount} - + + {alertsCount} + + ); }, } as ITableColumn, @@ -150,7 +162,7 @@ export function getServiceColumns({ defaultMessage: 'Environment', } ), - width: `${unit * 10}px`, + width: `${unit * 9}px`, sortable: true, render: (_, { environments }) => ( @@ -166,7 +178,7 @@ export function getServiceColumns({ 'xpack.apm.servicesTable.transactionColumnLabel', { defaultMessage: 'Transaction type' } ), - width: `${unit * 10}px`, + width: `${unit * 8}px`, sortable: true, }, ] diff --git a/x-pack/plugins/apm/public/components/app/service_map/index.tsx b/x-pack/plugins/apm/public/components/app/service_map/index.tsx index 44072c4ec88eaa..d1be9af798dd72 100644 --- a/x-pack/plugins/apm/public/components/app/service_map/index.tsx +++ b/x-pack/plugins/apm/public/components/app/service_map/index.tsx @@ -137,11 +137,12 @@ export function ServiceMap({ environment, serviceName, serviceGroup: serviceGroupId, + kuery, }, }, }); }, - [license, serviceName, environment, start, end, serviceGroupId] + [license, serviceName, environment, start, end, serviceGroupId, kuery] ); const { ref, height } = useRefDimensions(); @@ -186,7 +187,7 @@ export function ServiceMap({ return ( <> - +

    {selectedElementData.label ?? selectedElementId} + {kuery && ( + + + + )}

    diff --git a/x-pack/plugins/apm/public/components/app/settings/general_settings/index.tsx b/x-pack/plugins/apm/public/components/app/settings/general_settings/index.tsx index e250f1e09276b5..670826e43cccc6 100644 --- a/x-pack/plugins/apm/public/components/app/settings/general_settings/index.tsx +++ b/x-pack/plugins/apm/public/components/app/settings/general_settings/index.tsx @@ -17,6 +17,8 @@ import { enableInspectEsQueries, apmAWSLambdaPriceFactor, apmAWSLambdaRequestCostPerMillion, + apmEnableServiceMetrics, + apmEnableContinuousRollups, } from '@kbn/observability-plugin/common'; import { isEmpty } from 'lodash'; import React from 'react'; @@ -32,6 +34,8 @@ const apmSettingsKeys = [ apmLabsButton, apmAWSLambdaPriceFactor, apmAWSLambdaRequestCostPerMillion, + apmEnableServiceMetrics, + apmEnableContinuousRollups, ]; export function GeneralSettings() { diff --git a/x-pack/plugins/apm/public/components/app/top_traces_overview/trace_list.tsx b/x-pack/plugins/apm/public/components/app/top_traces_overview/trace_list.tsx index 76ec4720fa060e..32044af7219b0b 100644 --- a/x-pack/plugins/apm/public/components/app/top_traces_overview/trace_list.tsx +++ b/x-pack/plugins/apm/public/components/app/top_traces_overview/trace_list.tsx @@ -45,7 +45,7 @@ export function getTraceListColumns({ }): Array> { return [ { - field: 'name', + field: 'transactionName', name: i18n.translate('xpack.apm.tracesTable.nameColumnLabel', { defaultMessage: 'Name', }), diff --git a/x-pack/plugins/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall_container.stories.tsx b/x-pack/plugins/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall_container.stories.tsx index e0f48f9bed7813..5cdaa756d4fd05 100644 --- a/x-pack/plugins/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall_container.stories.tsx +++ b/x-pack/plugins/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall_container.stories.tsx @@ -4,11 +4,12 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { EuiFilePicker, EuiForm } from '@elastic/eui'; import { apm, dedot } from '@kbn/apm-synthtrace-client'; import { ProcessorEvent } from '@kbn/observability-plugin/common'; import { Meta, Story } from '@storybook/react'; import { noop } from 'lodash'; -import React, { ComponentProps } from 'react'; +import React, { ComponentProps, useState } from 'react'; import { WaterfallContainer } from '.'; import { WaterfallError, @@ -16,8 +17,9 @@ import { WaterfallTransaction, } from '../../../../../../common/waterfall/typings'; import { Transaction } from '../../../../../../typings/es_schemas/ui/transaction'; -import { getWaterfall } from './waterfall/waterfall_helpers/waterfall_helpers'; import { MockApmPluginStorybook } from '../../../../../context/apm_plugin/mock_apm_plugin_storybook'; +import { APIReturnType } from '../../../../../services/rest/create_call_apm_api'; +import { getWaterfall } from './waterfall/waterfall_helpers/waterfall_helpers'; type Args = ComponentProps; @@ -97,3 +99,51 @@ export const Example: Story = () => { /> ); }; +type TraceAPIResponse = APIReturnType<'GET /internal/apm/traces/{traceId}'>; + +export const WaterfallFromJSON: Story<{}> = () => { + const [json, setJson] = useState(); + + function renderWaterfall() { + if (!json) { + return null; + } + const waterfall = getWaterfall(JSON.parse(json) as TraceAPIResponse); + return ( + + ); + } + + return ( + + { + const item = event?.item(0); + + if (item) { + const f = new FileReader(); + f.onload = (onloadEvent) => { + const result = onloadEvent?.target?.result; + if (typeof result === 'string') { + setJson(result); + } + }; + f.readAsText(item); + } else { + setJson(undefined); + } + }} + /> + {renderWaterfall()} + + ); +}; diff --git a/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx b/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx index 6f5fd0f364d5b0..02929c63e2e597 100644 --- a/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx +++ b/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx @@ -12,9 +12,10 @@ import { EuiPageHeaderProps, EuiSpacer, EuiTitle, + EuiToolTip, + EuiBadge, } from '@elastic/eui'; import { useLocation } from 'react-router-dom'; -import { EuiBadge } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { enableAwsLambdaMetrics } from '@kbn/observability-plugin/common'; import { omit } from 'lodash'; @@ -357,13 +358,20 @@ function useTabs({ selectedTab }: { selectedTab: Tab['key'] }) { path: { serviceName }, query, }), - prepend: + append: serviceAlertsCount.alertsCount > 0 ? ( - - {serviceAlertsCount.alertsCount} - + + {serviceAlertsCount.alertsCount} + ) : null, - append: , label: i18n.translate('xpack.apm.home.alertsTabLabel', { defaultMessage: 'Alerts', }), diff --git a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.tsx b/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.tsx index 48a5b4e81f1d64..74757fb5fd2c25 100644 --- a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.tsx +++ b/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.tsx @@ -46,7 +46,7 @@ export function AnomalyDetectionSetupLink() { defaultMessage: 'Could not determine state of anomaly detection setup.', } ); - icon = 'alert'; + icon = 'machineLearningApp'; } else if ( anomalyDetectionSetupState === AnomalyDetectionSetupState.NoJobs || anomalyDetectionSetupState === @@ -54,7 +54,7 @@ export function AnomalyDetectionSetupLink() { ) { color = 'warning'; tooltipText = getNoJobsMessage(anomalyDetectionSetupState, environment); - icon = 'alert'; + icon = 'machineLearningApp'; } else if ( anomalyDetectionSetupState === AnomalyDetectionSetupState.UpgradeableJobs ) { diff --git a/x-pack/plugins/apm/public/components/shared/kuery_bar/index.tsx b/x-pack/plugins/apm/public/components/shared/kuery_bar/index.tsx index c8e9de32c83f30..825fa8e3ef7f47 100644 --- a/x-pack/plugins/apm/public/components/shared/kuery_bar/index.tsx +++ b/x-pack/plugins/apm/public/components/shared/kuery_bar/index.tsx @@ -151,7 +151,7 @@ export function KueryBar(props: { return; } - if (typeof props.onSubmit === 'function') { + if (props.onSubmit) { props.onSubmit(inputValue.trim()); return; } diff --git a/x-pack/plugins/apm/public/components/shared/transaction_action_menu/sections.test.ts b/x-pack/plugins/apm/public/components/shared/transaction_action_menu/sections.test.ts index c0b67dfc02e33e..0451cda9dafa23 100644 --- a/x-pack/plugins/apm/public/components/shared/transaction_action_menu/sections.test.ts +++ b/x-pack/plugins/apm/public/components/shared/transaction_action_menu/sections.test.ts @@ -5,10 +5,20 @@ * 2.0. */ -import { Location } from 'history'; +import { createMemoryHistory } from 'history'; import { IBasePath } from '@kbn/core/public'; import { Transaction } from '../../../../typings/es_schemas/ui/transaction'; import { getSections } from './sections'; +import { + apmRouter as apmRouterBase, + ApmRouter, +} from '../../routing/apm_route_config'; + +const apmRouter = { + ...apmRouterBase, + link: (...args: [any]) => + `some-basepath/app/apm${apmRouterBase.link(...args)}`, +} as ApmRouter; describe('Transaction action menu', () => { const basePath = { @@ -19,17 +29,11 @@ describe('Transaction action menu', () => { const date = '2020-02-06T11:00:00.000Z'; const timestamp = { us: new Date(date).getTime() }; - const urlParams = { - rangeFrom: 'now-24h', - rangeTo: 'now', - refreshPaused: true, - refreshInterval: 0, - }; - - const location = { - search: - '?rangeFrom=now-24h&rangeTo=now&refreshPaused=true&refreshInterval=0', - } as unknown as Location; + const history = createMemoryHistory(); + history.replace( + '/services/testbeans-go/transactions/view?rangeFrom=now-24h&rangeTo=now&transactionName=GET+%2Ftestbeans-go%2Fapi' + ); + const location = history.location; it('shows required sections only', () => { const transaction = { @@ -43,7 +47,7 @@ describe('Transaction action menu', () => { transaction, basePath, location, - urlParams, + apmRouter, }) ).toEqual([ [ @@ -60,6 +64,19 @@ describe('Transaction action menu', () => { }, ], }, + { + key: 'serviceMap', + title: 'Service map', + subtitle: 'View service map filtered by this trace.', + actions: [ + { + key: 'serviceMap', + label: 'Show in service map', + href: 'some-basepath/app/apm/service-map?comparisonEnabled=false&environment=ENVIRONMENT_ALL&kuery=trace.id%20%3A%20%22123%22&rangeFrom=now-24h&rangeTo=now&serviceGroup=', + condition: true, + }, + ], + }, ], [ { @@ -90,7 +107,7 @@ describe('Transaction action menu', () => { transaction, basePath, location, - urlParams, + apmRouter, }) ).toEqual([ [ @@ -127,6 +144,19 @@ describe('Transaction action menu', () => { }, ], }, + { + key: 'serviceMap', + title: 'Service map', + subtitle: 'View service map filtered by this trace.', + actions: [ + { + key: 'serviceMap', + label: 'Show in service map', + href: 'some-basepath/app/apm/service-map?comparisonEnabled=false&environment=ENVIRONMENT_ALL&kuery=trace.id%20%3A%20%22123%22&rangeFrom=now-24h&rangeTo=now&serviceGroup=', + condition: true, + }, + ], + }, ], [ { @@ -157,7 +187,7 @@ describe('Transaction action menu', () => { transaction, basePath, location, - urlParams, + apmRouter, }) ).toEqual([ [ @@ -193,6 +223,19 @@ describe('Transaction action menu', () => { }, ], }, + { + key: 'serviceMap', + title: 'Service map', + subtitle: 'View service map filtered by this trace.', + actions: [ + { + key: 'serviceMap', + label: 'Show in service map', + href: 'some-basepath/app/apm/service-map?comparisonEnabled=false&environment=ENVIRONMENT_ALL&kuery=trace.id%20%3A%20%22123%22&rangeFrom=now-24h&rangeTo=now&serviceGroup=', + condition: true, + }, + ], + }, ], [ { diff --git a/x-pack/plugins/apm/public/components/shared/transaction_action_menu/sections.ts b/x-pack/plugins/apm/public/components/shared/transaction_action_menu/sections.ts index 144658746175fd..2ec8a186b3579d 100644 --- a/x-pack/plugins/apm/public/components/shared/transaction_action_menu/sections.ts +++ b/x-pack/plugins/apm/public/components/shared/transaction_action_menu/sections.ts @@ -12,12 +12,13 @@ import { isEmpty, pickBy } from 'lodash'; import moment from 'moment'; import url from 'url'; import type { Transaction } from '../../../../typings/es_schemas/ui/transaction'; -import type { ApmUrlParams } from '../../../context/url_params_context/types'; import { getDiscoverHref } from '../links/discover_links/discover_link'; import { getDiscoverQuery } from '../links/discover_links/discover_transaction_link'; import { getInfraHref } from '../links/infra_link'; import { fromQuery } from '../links/url_helpers'; import { SectionRecord, getNonEmptySections, Action } from './sections_helper'; +import { TRACE_ID } from '../../../../common/es_fields/apm'; +import { ApmRouter } from '../../routing/apm_route_config'; function getInfraMetricsQuery(transaction: Transaction) { const timestamp = new Date(transaction['@timestamp']).getTime(); @@ -33,12 +34,12 @@ export const getSections = ({ transaction, basePath, location, - urlParams, + apmRouter, }: { transaction?: Transaction; basePath: IBasePath; location: Location; - urlParams: ApmUrlParams; + apmRouter: ApmRouter; }) => { if (!transaction) return []; const hostName = transaction.host?.hostname; @@ -48,13 +49,19 @@ export const getSections = ({ const time = Math.round(transaction.timestamp.us / 1000); const infraMetricsQuery = getInfraMetricsQuery(transaction); + const routeParams = apmRouter.getParams( + '/services/{serviceName}/transactions/view', + location + ); + const { rangeFrom, rangeTo, environment } = routeParams.query; + const uptimeLink = url.format({ pathname: basePath.prepend('/app/uptime'), search: `?${fromQuery( pickBy( { - dateRangeStart: urlParams.rangeFrom, - dateRangeEnd: urlParams.rangeTo, + dateRangeStart: rangeFrom, + dateRangeEnd: rangeTo, search: `url.domain:"${transaction.url?.domain}"`, }, (val) => !isEmpty(val) @@ -204,6 +211,28 @@ export const getSections = ({ }, ]; + const serviceMapHref = apmRouter.link('/service-map', { + query: { + rangeFrom, + rangeTo, + environment, + kuery: `${TRACE_ID} : "${transaction.trace.id}"`, + serviceGroup: '', + comparisonEnabled: false, + }, + }); + const serviceMapActions: Action[] = [ + { + key: 'serviceMap', + label: i18n.translate( + 'xpack.apm.transactionActionMenu.showInServiceMapLinkLabel', + { defaultMessage: 'Show in service map' } + ), + href: serviceMapHref, + condition: true, + }, + ]; + const sectionRecord: SectionRecord = { observability: [ { @@ -277,6 +306,22 @@ export const getSections = ({ ), actions: uptimeActions, }, + { + key: 'serviceMap', + title: i18n.translate( + 'xpack.apm.transactionActionMenu.serviceMap.title', + { + defaultMessage: 'Service map', + } + ), + subtitle: i18n.translate( + 'xpack.apm.transactionActionMenu.serviceMap.subtitle', + { + defaultMessage: 'View service map filtered by this trace.', + } + ), + actions: serviceMapActions, + }, ], kibana: [{ key: 'kibana', actions: kibanaActions }], }; diff --git a/x-pack/plugins/apm/public/components/shared/transaction_action_menu/transaction_action_menu.test.tsx b/x-pack/plugins/apm/public/components/shared/transaction_action_menu/transaction_action_menu.test.tsx index 25e1277ebe0c36..3cd3972eeae942 100644 --- a/x-pack/plugins/apm/public/components/shared/transaction_action_menu/transaction_action_menu.test.tsx +++ b/x-pack/plugins/apm/public/components/shared/transaction_action_menu/transaction_action_menu.test.tsx @@ -8,6 +8,8 @@ import { act, fireEvent, render } from '@testing-library/react'; import React from 'react'; import { MemoryRouter } from 'react-router-dom'; +import { createMemoryHistory } from 'history'; +import { RouterProvider } from '@kbn/typed-react-router-config'; import { License } from '@kbn/licensing-plugin/common/license'; import { Transaction } from '../../../../typings/es_schemas/ui/transaction'; import { ApmPluginContextValue } from '../../../context/apm_plugin/apm_plugin_context'; @@ -24,6 +26,7 @@ import { } from '../../../utils/test_helpers'; import { TransactionActionMenu } from './transaction_action_menu'; import * as Transactions from './__fixtures__/mock_data'; +import { apmRouter } from '../../routing/apm_route_config'; function getMockAPMContext({ canSave }: { canSave: boolean }) { return { @@ -35,11 +38,18 @@ function getMockAPMContext({ canSave }: { canSave: boolean }) { } as unknown as ApmPluginContextValue; } +const history = createMemoryHistory(); +history.replace( + '/services/testbeans-go/transactions/view?rangeFrom=now-24h&rangeTo=now&transactionName=GET+%2Ftestbeans-go%2Fapi' +); + function Wrapper({ children }: { children?: React.ReactNode }) { return ( - {children} + + {children} + ); @@ -249,7 +259,7 @@ describe('TransactionActionMenu component', () => { expect( (getByText('Status').parentElement as HTMLAnchorElement).href ).toEqual( - 'http://localhost/basepath/app/uptime?search=url.domain:%22example.com%22' + 'http://localhost/basepath/app/uptime?dateRangeStart=now-24h&dateRangeEnd=now&search=url.domain:%22example.com%22' ); }); }); diff --git a/x-pack/plugins/apm/public/components/shared/transaction_action_menu/transaction_action_menu.tsx b/x-pack/plugins/apm/public/components/shared/transaction_action_menu/transaction_action_menu.tsx index 8b010e79fb7b99..0848c5f902c27c 100644 --- a/x-pack/plugins/apm/public/components/shared/transaction_action_menu/transaction_action_menu.tsx +++ b/x-pack/plugins/apm/public/components/shared/transaction_action_menu/transaction_action_menu.tsx @@ -21,7 +21,7 @@ import { import { Transaction } from '../../../../typings/es_schemas/ui/transaction'; import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; import { useLicenseContext } from '../../../context/license/use_license_context'; -import { useLegacyUrlParams } from '../../../context/url_params_context/use_url_params'; +import { useApmRouter } from '../../../hooks/use_apm_router'; import { CustomLinkMenuSection } from './custom_link_menu_section'; import { getSections } from './sections'; @@ -85,13 +85,13 @@ export function TransactionActionMenu({ transaction, isLoading }: Props) { function ActionMenuSections({ transaction }: { transaction?: Transaction }) { const { core } = useApmPluginContext(); const location = useLocation(); - const { urlParams } = useLegacyUrlParams(); + const apmRouter = useApmRouter(); const sections = getSections({ transaction, basePath: core.http.basePath, location, - urlParams, + apmRouter, }); return ( diff --git a/x-pack/plugins/apm/public/components/shared/transactions_table/index.tsx b/x-pack/plugins/apm/public/components/shared/transactions_table/index.tsx index 4d80fff82c4fed..3990c0de33a47f 100644 --- a/x-pack/plugins/apm/public/components/shared/transactions_table/index.tsx +++ b/x-pack/plugins/apm/public/components/shared/transactions_table/index.tsx @@ -49,7 +49,7 @@ const INITIAL_STATE: InitialState = { requestId: '', mainStatisticsData: { transactionGroups: [], - maxTransactionGroupsExceeded: true, + maxTransactionGroupsExceeded: false, transactionOverflowCount: 0, transactionGroupsTotalItems: 0, }, diff --git a/x-pack/plugins/apm/public/context/time_range_metadata/time_range_metadata_context.tsx b/x-pack/plugins/apm/public/context/time_range_metadata/time_range_metadata_context.tsx index 8a549ee26d1992..0bdb9418bf5104 100644 --- a/x-pack/plugins/apm/public/context/time_range_metadata/time_range_metadata_context.tsx +++ b/x-pack/plugins/apm/public/context/time_range_metadata/time_range_metadata_context.tsx @@ -5,11 +5,16 @@ * 2.0. */ import React, { createContext } from 'react'; +import { + apmEnableServiceMetrics, + apmEnableContinuousRollups, +} from '@kbn/observability-plugin/common'; import { TimeRangeMetadata } from '../../../common/time_range_metadata'; import { useApmParams } from '../../hooks/use_apm_params'; import { useApmRoutePath } from '../../hooks/use_apm_route_path'; import { FetcherResult, useFetcher } from '../../hooks/use_fetcher'; import { useTimeRange } from '../../hooks/use_time_range'; +import { useApmPluginContext } from '../apm_plugin/use_apm_plugin_context'; export const TimeRangeMetadataContext = createContext< FetcherResult | undefined @@ -20,6 +25,10 @@ export function TimeRangeMetadataContextProvider({ }: { children: React.ReactElement; }) { + const { + core: { uiSettings }, + } = useApmPluginContext(); + const { query } = useApmParams('/*'); const kuery = 'kuery' in query ? query.kuery : ''; @@ -37,6 +46,16 @@ export function TimeRangeMetadataContextProvider({ const routePath = useApmRoutePath(); + const enableServiceTransactionMetrics = uiSettings.get( + apmEnableServiceMetrics, + true + ); + + const enableContinuousRollups = uiSettings.get( + apmEnableContinuousRollups, + true + ); + const isOperationView = routePath.startsWith('/dependencies/operation') || routePath.startsWith('/dependencies/operations'); @@ -50,11 +69,20 @@ export function TimeRangeMetadataContextProvider({ end, kuery, useSpanName: isOperationView, + enableServiceTransactionMetrics, + enableContinuousRollups, }, }, }); }, - [start, end, kuery, isOperationView] + [ + start, + end, + kuery, + isOperationView, + enableServiceTransactionMetrics, + enableContinuousRollups, + ] ); return ( diff --git a/x-pack/plugins/apm/public/hooks/use_environments_fetcher.tsx b/x-pack/plugins/apm/public/hooks/use_environments_fetcher.tsx index 50ad012e1aa02d..4dc32754cbfe4c 100644 --- a/x-pack/plugins/apm/public/hooks/use_environments_fetcher.tsx +++ b/x-pack/plugins/apm/public/hooks/use_environments_fetcher.tsx @@ -5,10 +5,14 @@ * 2.0. */ +import { SERVICE_ENVIRONMENT } from '../../common/es_fields/apm'; import { useFetcher } from './use_fetcher'; +import { Environment } from '../../common/environment_rt'; +import { APIReturnType } from '../services/rest/create_call_apm_api'; -const INITIAL_DATA = { environments: [] }; +type EnvironmentsAPIResponse = APIReturnType<'GET /internal/apm/environments'>; +const INITIAL_DATA: EnvironmentsAPIResponse = { environments: [] }; export function useEnvironmentsFetcher({ serviceName, start, @@ -20,7 +24,11 @@ export function useEnvironmentsFetcher({ }) { const { data = INITIAL_DATA, status } = useFetcher( (callApmApi) => { - if (start && end) { + if (!start || !end) { + return; + } + + if (serviceName) { return callApmApi('GET /internal/apm/environments', { params: { query: { @@ -31,9 +39,24 @@ export function useEnvironmentsFetcher({ }, }); } + return callApmApi('GET /internal/apm/suggestions', { + params: { + query: { + start, + end, + fieldName: SERVICE_ENVIRONMENT, + fieldValue: '', + }, + }, + }).then((response) => { + return { environments: response.terms }; + }); }, [start, end, serviceName] ); - return { environments: data.environments, status }; + return { + environments: data.environments as Environment[], + status, + }; } diff --git a/x-pack/plugins/apm/public/hooks/use_fetcher.tsx b/x-pack/plugins/apm/public/hooks/use_fetcher.tsx index 80f2451863b422..28e06341965f65 100644 --- a/x-pack/plugins/apm/public/hooks/use_fetcher.tsx +++ b/x-pack/plugins/apm/public/hooks/use_fetcher.tsx @@ -54,13 +54,28 @@ function getDetailsFromErrorResponse( } const createAutoAbortedAPMClient = ( - signal: AbortSignal + signal: AbortSignal, + addInspectorRequest: (result: FetcherResult) => void ): AutoAbortedAPMClient => { return ((endpoint, options) => { return callApmApi(endpoint, { ...options, signal, - } as any); + } as any) + .catch((err) => { + addInspectorRequest({ + status: FETCH_STATUS.FAILURE, + data: err.body?.attributes, + }); + throw err; + }) + .then((response) => { + addInspectorRequest({ + data: response, + status: FETCH_STATUS.SUCCESS, + }); + return response; + }); }) as AutoAbortedAPMClient; }; @@ -102,7 +117,9 @@ export function useFetcher( const signal = controller.signal; - const promise = fn(createAutoAbortedAPMClient(signal)); + const promise = fn( + createAutoAbortedAPMClient(signal, addInspectorRequest) + ); // if `fn` doesn't return a promise it is a signal that data fetching was not initiated. // This can happen if the data fetching is conditional (based on certain inputs). // In these cases it is not desirable to invoke the global loading spinner, or change the status to success @@ -179,14 +196,6 @@ export function useFetcher( /* eslint-enable react-hooks/exhaustive-deps */ ]); - useEffect(() => { - if (result.error) { - addInspectorRequest({ ...result, data: result.error.body?.attributes }); - } else { - addInspectorRequest(result); - } - }, [addInspectorRequest, result]); - return useMemo(() => { return { ...result, diff --git a/x-pack/plugins/apm/public/hooks/use_filters_for_embeddable_charts.ts b/x-pack/plugins/apm/public/hooks/use_filters_for_embeddable_charts.ts index 22dbf955b2308a..7e100131b1ad4c 100644 --- a/x-pack/plugins/apm/public/hooks/use_filters_for_embeddable_charts.ts +++ b/x-pack/plugins/apm/public/hooks/use_filters_for_embeddable_charts.ts @@ -6,27 +6,26 @@ */ import { useMemo } from 'react'; -import { SERVICE_NAME, TRANSACTION_TYPE } from '../../common/es_fields/apm'; +import { SERVICE_NAME } from '../../common/es_fields/apm'; import { termQuery } from '../../common/utils/term_query'; -import { useApmParams } from './use_apm_params'; import { environmentQuery } from '../../common/utils/environment_query'; -export function useFiltersForEmbeddableCharts() { - const { - path: { serviceName }, - query: { environment, transactionType }, - } = useApmParams('/mobile-services/{serviceName}/overview'); - +export function useFiltersForEmbeddableCharts({ + serviceName, + environment, +}: { + serviceName: string; + environment: string; +}) { return useMemo( () => [ ...termQuery(SERVICE_NAME, serviceName), - ...termQuery(TRANSACTION_TYPE, transactionType), ...environmentQuery(environment), ].map((query) => ({ meta: {}, query, })), - [environment, transactionType, serviceName] + [environment, serviceName] ); } diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/get_request_base.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/get_request_base.ts index 5551736fc34b91..16e8b0edba21a8 100644 --- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/get_request_base.ts +++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/get_request_base.ts @@ -28,7 +28,11 @@ export function processorEventsToIndex( events: ProcessorEvent[], indices: ApmIndicesConfig ) { - return uniq(events.map((event) => indices[processorEventIndexMap[event]])); + return uniq( + events.flatMap((event) => + indices[processorEventIndexMap[event]].split(',').map((str) => str.trim()) + ) + ); } export function getRequestBase(options: { diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts index b6cdfa80ff3f85..b06ab4ecb2c71e 100644 --- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts +++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts @@ -9,15 +9,17 @@ import type { EqlSearchRequest, FieldCapsRequest, FieldCapsResponse, + MsearchMultisearchBody, + MsearchMultisearchHeader, TermsEnumRequest, TermsEnumResponse, } from '@elastic/elasticsearch/lib/api/types'; -import { ValuesType } from 'utility-types'; import { ElasticsearchClient, KibanaRequest } from '@kbn/core/server'; import type { ESSearchRequest, InferSearchResponseOf } from '@kbn/es-types'; import { ProcessorEvent } from '@kbn/observability-plugin/common'; import { unwrapEsResponse } from '@kbn/observability-plugin/server'; import { compact, omit } from 'lodash'; +import { ValuesType } from 'utility-types'; import { ApmDataSource } from '../../../../../common/data_source'; import { APMError } from '../../../../../typings/es_schemas/ui/apm_error'; import { Metric } from '../../../../../typings/es_schemas/ui/metric'; @@ -31,8 +33,8 @@ import { getDebugTitle, } from '../call_async_with_debug'; import { cancelEsRequestOnAbort } from '../cancel_es_request_on_abort'; -import { processorEventsToIndex, getRequestBase } from './get_request_base'; import { ProcessorEventOfDocumentType } from '../document_type'; +import { getRequestBase, processorEventsToIndex } from './get_request_base'; export type APMEventESSearchRequest = Omit & { apm: { @@ -81,6 +83,10 @@ type TypedSearchResponse = TParams >; +interface TypedMSearchResponse { + responses: Array>; +} + export interface APMEventClientConfig { esClient: ElasticsearchClient; debug: boolean; @@ -163,7 +169,7 @@ export class APMEventClient { this.forceSyntheticSource && events.includes(ProcessorEvent.metric); const searchParams = { - ...omit(params, 'apm'), + ...omit(params, 'apm', 'body'), index, body: { ...params.body, @@ -193,12 +199,63 @@ export class APMEventClient { }); } + async msearch( + operationName: string, + ...allParams: TParams[] + ): Promise> { + const searches = allParams + .map((params) => { + const { index, filters } = getRequestBase({ + apm: params.apm, + indices: this.indices, + }); + + const searchParams: [MsearchMultisearchHeader, MsearchMultisearchBody] = + [ + { + index, + preference: 'any', + ...(this.includeFrozen ? { ignore_throttled: false } : {}), + ignore_unavailable: true, + expand_wildcards: ['open' as const, 'hidden' as const], + }, + { + ...omit(params, 'apm', 'body'), + ...params.body, + query: { + bool: { + filter: compact([params.body.query, ...filters]), + }, + }, + }, + ]; + + return searchParams; + }) + .flat(); + + return this.callAsyncWithDebug({ + cb: (opts) => + this.esClient.msearch( + { + searches, + }, + opts + ) as unknown as Promise<{ + body: TypedMSearchResponse; + }>, + operationName, + params: searches, + requestType: 'msearch', + }); + } + async eqlSearch(operationName: string, params: APMEventEqlSearchRequest) { const index = processorEventsToIndex(params.apm.events, this.indices); const requestParams = { - index, ...omit(params, 'apm'), + index, }; return this.callAsyncWithDebug({ @@ -216,8 +273,8 @@ export class APMEventClient { const index = processorEventsToIndex(params.apm.events, this.indices); const requestParams = { - index, ...omit(params, 'apm'), + index, }; return this.callAsyncWithDebug({ @@ -235,8 +292,8 @@ export class APMEventClient { const index = processorEventsToIndex(params.apm.events, this.indices); const requestParams = { - index: Array.isArray(index) ? index.join(',') : index, ...omit(params, 'apm'), + index: index.join(','), }; return this.callAsyncWithDebug({ diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/document_type.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/document_type.ts index 70ca95147387cd..2ebee7e23b8e71 100644 --- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/document_type.ts +++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/document_type.ts @@ -51,6 +51,15 @@ const documentTypeConfigMap: Record< }), rollupIntervals: defaultRollupIntervals, }, + [ApmDocumentType.ServiceSummaryMetric]: { + processorEvent: ProcessorEvent.metric, + getQuery: (rollupInterval) => ({ + bool: { + filter: getDefaultFilter('service_summary', rollupInterval), + }, + }), + rollupIntervals: defaultRollupIntervals, + }, [ApmDocumentType.TransactionMetric]: { processorEvent: ProcessorEvent.metric, getQuery: (rollupInterval) => ({ diff --git a/x-pack/plugins/apm/server/lib/helpers/get_document_sources.ts b/x-pack/plugins/apm/server/lib/helpers/get_document_sources.ts index 8631e2c0ba8a47..2b66a0b5818881 100644 --- a/x-pack/plugins/apm/server/lib/helpers/get_document_sources.ts +++ b/x-pack/plugins/apm/server/lib/helpers/get_document_sources.ts @@ -5,7 +5,6 @@ * 2.0. */ import { kqlQuery, rangeQuery } from '@kbn/observability-plugin/server'; -import { flatten } from 'lodash'; import { ApmDataSource } from '../../../common/data_source'; import { ApmDocumentType } from '../../../common/document_type'; import { RollupInterval } from '../../../common/rollup'; @@ -17,63 +16,131 @@ export async function getDocumentSources({ start, end, kuery, + enableServiceTransactionMetrics, + enableContinuousRollups, }: { apmEventClient: APMEventClient; start: number; end: number; kuery: string; + enableServiceTransactionMetrics: boolean; + enableContinuousRollups: boolean; }) { - const sources: Array = flatten( - await Promise.all( - [ - ApmDocumentType.ServiceTransactionMetric as const, - ApmDocumentType.TransactionMetric as const, - ].map(async (documentType) => { - const docTypeConfig = getConfigForDocumentType(documentType); - const allHasDocs = await Promise.all( - docTypeConfig.rollupIntervals.map(async (rollupInterval) => { - const response = await apmEventClient.search( - 'check_document_type_availability', - { - apm: { - sources: [ - { - documentType, - rollupInterval, - }, - ], - }, - body: { - track_total_hits: 1, - size: 0, - terminate_after: 1, - query: { - bool: { - filter: [...kqlQuery(kuery), ...rangeQuery(start, end)], - }, - }, - }, - } - ); + const currentRange = rangeQuery(start, end); + const diff = end - start; + const kql = kqlQuery(kuery); + const beforeRange = rangeQuery(start - diff, end - diff); - return { + const sourcesToCheck = [ + ...(enableServiceTransactionMetrics + ? [ApmDocumentType.ServiceTransactionMetric as const] + : []), + ApmDocumentType.TransactionMetric as const, + ].flatMap((documentType) => { + const docTypeConfig = getConfigForDocumentType(documentType); + + return ( + enableContinuousRollups + ? docTypeConfig.rollupIntervals + : [RollupInterval.OneMinute] + ).flatMap((rollupInterval) => { + const searchParams = { + apm: { + sources: [ + { documentType, rollupInterval, - hasDocs: response.hits.total.value > 0, - }; - }) - ); + }, + ], + }, + body: { + track_total_hits: 1, + size: 0, + terminate_after: 1, + }, + }; + + return { + documentType, + rollupInterval, + before: { + ...searchParams, + body: { + ...searchParams.body, + query: { + bool: { + filter: [...kql, ...beforeRange], + }, + }, + }, + }, + current: { + ...searchParams, + body: { + ...searchParams.body, + query: { + bool: { + filter: [...kql, ...currentRange], + }, + }, + }, + }, + }; + }); + }); + + const allSearches = sourcesToCheck.flatMap(({ before, current }) => [ + before, + current, + ]); + + const allResponses = ( + await apmEventClient.msearch('get_document_availability', ...allSearches) + ).responses; + + const checkedSources = sourcesToCheck.map((source, index) => { + const responseBefore = allResponses[index * 2]; + const responseAfter = allResponses[index * 2 + 1]; + const { documentType, rollupInterval } = source; + + const hasDataBefore = responseBefore.hits.total.value > 0; + const hasDataAfter = responseAfter.hits.total.value > 0; - return allHasDocs; - }) - ) + return { + documentType, + rollupInterval, + hasDataBefore, + hasDataAfter, + }; + }); + + const hasAnyDataBefore = checkedSources.some( + (source) => source.hasDataBefore ); - sources.push({ + const sources: Array = + checkedSources.map((source) => { + const { documentType, hasDataAfter, hasDataBefore, rollupInterval } = + source; + + const hasData = hasDataBefore || hasDataAfter; + + return { + documentType, + rollupInterval, + // If there is any data before, we require that data is available before + // this time range to mark this source as available. If we don't do that, + // users that upgrade to a version that starts generating service tx metrics + // will see a mostly empty screen for a while after upgrading. + // If we only check before, users with a new deployment will use raw transaction + // events. + hasDocs: hasAnyDataBefore ? hasDataBefore : hasData, + }; + }); + + return sources.concat({ documentType: ApmDocumentType.TransactionEvent, rollupInterval: RollupInterval.None, hasDocs: true, }); - - return sources; } diff --git a/x-pack/plugins/apm/server/lib/helpers/transactions/index.ts b/x-pack/plugins/apm/server/lib/helpers/transactions/index.ts index 0c10603d29062d..cf95500f253183 100644 --- a/x-pack/plugins/apm/server/lib/helpers/transactions/index.ts +++ b/x-pack/plugins/apm/server/lib/helpers/transactions/index.ts @@ -30,7 +30,7 @@ export async function getHasTransactionsEvents({ start?: number; end?: number; apmEventClient: APMEventClient; - kuery: string; + kuery?: string; }) { const response = await apmEventClient.search( 'get_has_aggregated_transactions', @@ -69,7 +69,7 @@ export async function getSearchTransactionsEvents({ start?: number; end?: number; apmEventClient: APMEventClient; - kuery: string; + kuery?: string; }): Promise { switch (config.searchAggregatedTransactions) { case SearchAggregatedTransactionSetting.always: @@ -91,7 +91,11 @@ export async function getSearchTransactionsEvents({ } export function getDurationFieldForTransactions( - typeOrSearchAgggregatedTransactions: ApmDocumentType | boolean + typeOrSearchAgggregatedTransactions: + | ApmDocumentType.ServiceTransactionMetric + | ApmDocumentType.TransactionMetric + | ApmDocumentType.TransactionEvent + | boolean ) { let type: ApmDocumentType; if (typeOrSearchAgggregatedTransactions === true) { diff --git a/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.test.ts b/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.test.ts index 1066eb8a987d8f..cebf71f1bad972 100644 --- a/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.test.ts +++ b/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.test.ts @@ -65,7 +65,7 @@ describe('registerTransactionDurationRuleType', () => { 'Avg. latency is 5,500 ms in the last 5 mins for opbeans-java. Alert when > 3,000 ms.', transactionType: 'request', serviceName: 'opbeans-java', - threshold: 3000000, + threshold: 3000, triggerValue: '5,500 ms', viewInAppUrl: 'http://localhost:5601/eyr/app/apm/services/opbeans-java?transactionType=request&environment=ENVIRONMENT_ALL', diff --git a/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.ts b/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.ts index 75e1aef3570881..803945568494ba 100644 --- a/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.ts +++ b/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.ts @@ -281,7 +281,7 @@ export function registerTransactionDurationRuleType({ [TRANSACTION_TYPE]: transactionType, [PROCESSOR_EVENT]: ProcessorEvent.transaction, [ALERT_EVALUATION_VALUE]: transactionDuration, - [ALERT_EVALUATION_THRESHOLD]: thresholdMicroseconds, + [ALERT_EVALUATION_THRESHOLD]: ruleParams.threshold, [ALERT_REASON]: reason, ...sourceFields, }, @@ -292,7 +292,7 @@ export function registerTransactionDurationRuleType({ interval: `${ruleParams.windowSize}${ruleParams.windowUnit}`, reason, serviceName, - threshold: thresholdMicroseconds, + threshold: ruleParams.threshold, transactionType, triggerValue: transactionDurationFormatted, viewInAppUrl, diff --git a/x-pack/plugins/apm/server/routes/default_api_types.ts b/x-pack/plugins/apm/server/routes/default_api_types.ts index 629fc9c56f70a9..4b58ec7e4e9b9c 100644 --- a/x-pack/plugins/apm/server/routes/default_api_types.ts +++ b/x-pack/plugins/apm/server/routes/default_api_types.ts @@ -22,7 +22,7 @@ export const probabilityRt = t.type({ }); export const kueryRt = t.type({ kuery: t.string }); -export const dataSourceRt = t.type({ +export const serviceTransactionDataSourceRt = t.type({ documentType: t.union([ t.literal(ApmDocumentType.ServiceTransactionMetric), t.literal(ApmDocumentType.TransactionMetric), diff --git a/x-pack/plugins/apm/server/routes/environments/get_environments.ts b/x-pack/plugins/apm/server/routes/environments/get_environments.ts index f04d67fe7d339f..056bfa731880bc 100644 --- a/x-pack/plugins/apm/server/routes/environments/get_environments.ts +++ b/x-pack/plugins/apm/server/routes/environments/get_environments.ts @@ -17,7 +17,7 @@ import { Environment } from '../../../common/environment_rt'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; /** - * This is used for getting the list of environments for the environments selector, + * This is used for getting the list of environments for the environment selector, * filtered by range. */ export async function getEnvironments({ diff --git a/x-pack/plugins/apm/server/routes/environments/route.ts b/x-pack/plugins/apm/server/routes/environments/route.ts index 32b7d2a5117d59..8757d7f99f5440 100644 --- a/x-pack/plugins/apm/server/routes/environments/route.ts +++ b/x-pack/plugins/apm/server/routes/environments/route.ts @@ -7,6 +7,7 @@ import * as t from 'io-ts'; import { maxSuggestions } from '@kbn/observability-plugin/common'; +import { Environment } from '../../../common/environment_rt'; import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; import { getEnvironments } from './get_environments'; import { rangeRt } from '../default_api_types'; @@ -27,11 +28,7 @@ const environmentsRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - environments: Array< - | 'ENVIRONMENT_NOT_DEFINED' - | 'ENVIRONMENT_ALL' - | t.Branded - >; + environments: Environment[]; }> => { const apmEventClient = await getApmEventClient(resources); const { context, params, config } = resources; diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_http_requests.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_http_requests.ts index f5821692c11d64..9ec1dc3946e1bd 100644 --- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_http_requests.ts +++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_http_requests.ts @@ -17,11 +17,16 @@ import { SPAN_TYPE, SPAN_SUBTYPE, } from '../../../common/es_fields/apm'; +import { + MobileSpanSubtype, + MobileSpanType, +} from '../../../common/mobile/constants'; import { environmentQuery } from '../../../common/utils/environment_query'; import { getBucketSize } from '../../../common/utils/get_bucket_size'; import { getOffsetInMs } from '../../../common/utils/get_offset_in_ms'; import { offsetPreviousPeriodCoordinates } from '../../../common/utils/offset_previous_period_coordinate'; import { Maybe } from '../../../typings/common'; + import { Coordinate } from '../../../typings/timeseries'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; @@ -64,7 +69,7 @@ async function getHttpRequestsTimeseries({ const aggs = { requests: { - filter: { term: { [SPAN_SUBTYPE]: 'http' } }, + filter: { term: { [SPAN_SUBTYPE]: MobileSpanSubtype.Http } }, }, }; @@ -76,7 +81,7 @@ async function getHttpRequestsTimeseries({ query: { bool: { filter: [ - { exists: { field: SPAN_SUBTYPE } }, + ...termQuery(SPAN_TYPE, MobileSpanType.External), ...termQuery(SERVICE_NAME, serviceName), ...termQuery(SPAN_TYPE, 'external'), ...termQuery(TRANSACTION_NAME, transactionName), diff --git a/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts index fb1d0eed0a151f..d3314b609f148a 100644 --- a/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts @@ -32,6 +32,7 @@ export interface IEnvOptions { start: number; end: number; serviceGroupKuery?: string; + kuery?: string; } async function getConnectionData({ @@ -42,6 +43,7 @@ async function getConnectionData({ start, end, serviceGroupKuery, + kuery, }: IEnvOptions) { return withApmSpan('get_service_map_connections', async () => { const { traceIds } = await getTraceSampleIds({ @@ -52,6 +54,7 @@ async function getConnectionData({ start, end, serviceGroupKuery, + kuery, }); const chunks = chunk(traceIds, config.serviceMapMaxTracesPerRequest); @@ -114,7 +117,6 @@ export function getServiceMap( getServiceStats(options), anomaliesPromise, ]); - return transformServiceMapResponses({ ...connectionData, services: servicesData, diff --git a/x-pack/plugins/apm/server/routes/service_map/get_service_stats.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_stats.ts index 1f43a35d3b1efe..95c62a323205a6 100644 --- a/x-pack/plugins/apm/server/routes/service_map/get_service_stats.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_stats.ts @@ -30,6 +30,7 @@ export async function getServiceStats({ maxNumberOfServices, serviceGroupKuery, serviceName, + kuery, }: IEnvOptions & { maxNumberOfServices: number }) { const params = { apm: { @@ -49,6 +50,7 @@ export async function getServiceStats({ ...environmentQuery(environment), ...termsQuery(SERVICE_NAME, serviceName), ...kqlQuery(serviceGroupKuery), + ...kqlQuery(kuery), ], }, }, diff --git a/x-pack/plugins/apm/server/routes/service_map/get_trace_sample_ids.ts b/x-pack/plugins/apm/server/routes/service_map/get_trace_sample_ids.ts index 42935dbdcda887..56b29c0b3169a6 100644 --- a/x-pack/plugins/apm/server/routes/service_map/get_trace_sample_ids.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_trace_sample_ids.ts @@ -36,6 +36,7 @@ export async function getTraceSampleIds({ start, end, serviceGroupKuery, + kuery, }: { serviceName?: string; environment: string; @@ -44,6 +45,7 @@ export async function getTraceSampleIds({ start: number; end: number; serviceGroupKuery?: string; + kuery?: string; }) { const query = { bool: { @@ -51,27 +53,29 @@ export async function getTraceSampleIds({ ...rangeQuery(start, end), ...environmentQuery(environment), ...kqlQuery(serviceGroupKuery), + ...kqlQuery(kuery), ...termQuery(SERVICE_NAME, serviceName), ], }, }; - const isGlobalServiceMap = !serviceName && !serviceGroupKuery; + const isUnfilteredGlobalServiceMap = + !serviceName && !serviceGroupKuery && !kuery; let events = [ProcessorEvent.span, ProcessorEvent.transaction]; // perf optimization that is only possible on the global service map with no filters - if (isGlobalServiceMap) { + if (isUnfilteredGlobalServiceMap) { events = [ProcessorEvent.span]; query.bool.filter.push({ exists: { field: SPAN_DESTINATION_SERVICE_RESOURCE }, }); } - const fingerprintBucketSize = isGlobalServiceMap + const fingerprintBucketSize = isUnfilteredGlobalServiceMap ? config.serviceMapFingerprintGlobalBucketSize : config.serviceMapFingerprintBucketSize; - const traceIdBucketSize = isGlobalServiceMap + const traceIdBucketSize = isUnfilteredGlobalServiceMap ? config.serviceMapTraceIdGlobalBucketSize : config.serviceMapTraceIdBucketSize; diff --git a/x-pack/plugins/apm/server/routes/service_map/route.ts b/x-pack/plugins/apm/server/routes/service_map/route.ts index 69f4422ad337a1..c65dca01c4385b 100644 --- a/x-pack/plugins/apm/server/routes/service_map/route.ts +++ b/x-pack/plugins/apm/server/routes/service_map/route.ts @@ -17,7 +17,7 @@ import { getServiceMap } from './get_service_map'; import { getServiceMapDependencyNodeInfo } from './get_service_map_dependency_node_info'; import { getServiceMapServiceNodeInfo } from './get_service_map_service_node_info'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { environmentRt, rangeRt } from '../default_api_types'; +import { environmentRt, rangeRt, kueryRt } from '../default_api_types'; import { getServiceGroup } from '../service_groups/get_service_group'; import { offsetRt } from '../../../common/comparison_rt'; import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; @@ -29,6 +29,7 @@ const serviceMapRoute = createApmServerRoute({ t.partial({ serviceName: t.string, serviceGroup: t.string, + kuery: kueryRt.props.kuery, }), environmentRt, rangeRt, @@ -108,6 +109,7 @@ const serviceMapRoute = createApmServerRoute({ environment, start, end, + kuery, }, } = params; @@ -133,7 +135,7 @@ const serviceMapRoute = createApmServerRoute({ config, start, end, - kuery: '', + kuery, }); return getServiceMap({ mlClient, @@ -147,6 +149,7 @@ const serviceMapRoute = createApmServerRoute({ end, maxNumberOfServices, serviceGroupKuery: serviceGroup?.kuery, + kuery, }); }, }); @@ -190,7 +193,6 @@ const serviceMapServiceNodeRoute = createApmServerRoute({ config, start, end, - kuery: '', }); const commonProps = { diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts index f4ede557dc7458..88f2e55682868e 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts @@ -41,7 +41,10 @@ interface AggregationParams { end: number; serviceGroup: ServiceGroup | null; randomSampler: RandomSampler; - documentType: ApmDocumentType; + documentType: + | ApmDocumentType.ServiceTransactionMetric + | ApmDocumentType.TransactionMetric + | ApmDocumentType.TransactionEvent; rollupInterval: RollupInterval; } diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_services_from_error_and_metric_documents.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_services_from_error_and_metric_documents.ts deleted file mode 100644 index 62830ace6a0681..00000000000000 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_services_from_error_and_metric_documents.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { kqlQuery, rangeQuery } from '@kbn/observability-plugin/server'; -import { ProcessorEvent } from '@kbn/observability-plugin/common'; -import { AgentName } from '../../../../typings/es_schemas/ui/fields/agent'; -import { - AGENT_NAME, - SERVICE_ENVIRONMENT, - SERVICE_NAME, -} from '../../../../common/es_fields/apm'; -import { environmentQuery } from '../../../../common/utils/environment_query'; -import { serviceGroupQuery } from '../../../lib/service_group_query'; -import { ServiceGroup } from '../../../../common/service_groups'; -import { RandomSampler } from '../../../lib/helpers/get_random_sampler'; -import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; - -export async function getServicesFromErrorAndMetricDocuments({ - environment, - apmEventClient, - maxNumServices, - kuery, - start, - end, - serviceGroup, - randomSampler, -}: { - apmEventClient: APMEventClient; - environment: string; - maxNumServices: number; - kuery: string; - start: number; - end: number; - serviceGroup: ServiceGroup | null; - randomSampler: RandomSampler; -}) { - const response = await apmEventClient.search( - 'get_services_from_error_and_metric_documents', - { - apm: { - events: [ProcessorEvent.metric, ProcessorEvent.error], - }, - body: { - track_total_hits: false, - size: 0, - query: { - bool: { - filter: [ - ...rangeQuery(start, end), - ...environmentQuery(environment), - ...kqlQuery(kuery), - ...serviceGroupQuery(serviceGroup), - ], - }, - }, - aggs: { - sample: { - random_sampler: randomSampler, - aggs: { - services: { - terms: { - field: SERVICE_NAME, - size: maxNumServices, - }, - aggs: { - environments: { - terms: { - field: SERVICE_ENVIRONMENT, - }, - }, - latest: { - top_metrics: { - metrics: [{ field: AGENT_NAME } as const], - sort: { '@timestamp': 'desc' }, - }, - }, - }, - }, - }, - }, - }, - }, - } - ); - - return { - services: - response.aggregations?.sample.services.buckets.map((bucket) => { - return { - serviceName: bucket.key as string, - environments: bucket.environments.buckets.map( - (envBucket) => envBucket.key as string - ), - agentName: bucket.latest.top[0].metrics[AGENT_NAME] as AgentName, - }; - }) ?? [], - maxServiceCountExceeded: - (response.aggregations?.sample.services.sum_other_doc_count ?? 0) > 0, - }; -} diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts index f2cbeddffa86db..5fddc6a3d6f5ef 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts @@ -6,7 +6,7 @@ */ import { Logger } from '@kbn/logging'; -import { ApmDocumentType } from '../../../../common/document_type'; +import { ApmServiceTransactionDocumentType } from '../../../../common/document_type'; import { RollupInterval } from '../../../../common/rollup'; import { ServiceGroup } from '../../../../common/service_groups'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; @@ -15,7 +15,7 @@ import { MlClient } from '../../../lib/helpers/get_ml_client'; import { RandomSampler } from '../../../lib/helpers/get_random_sampler'; import { withApmSpan } from '../../../utils/with_apm_span'; import { getHealthStatuses } from './get_health_statuses'; -import { getServicesFromErrorAndMetricDocuments } from './get_services_from_error_and_metric_documents'; +import { getServicesWithoutTransactions } from './get_services_without_transactions'; import { getServicesAlerts } from './get_service_alerts'; import { getServiceTransactionStats } from './get_service_transaction_stats'; import { mergeServiceStats } from './merge_service_stats'; @@ -46,7 +46,7 @@ export async function getServicesItems({ end: number; serviceGroup: ServiceGroup | null; randomSampler: RandomSampler; - documentType: ApmDocumentType; + documentType: ApmServiceTransactionDocumentType; rollupInterval: RollupInterval; }) { return withApmSpan('get_services_items', async () => { @@ -64,7 +64,7 @@ export async function getServicesItems({ const [ { serviceStats, serviceOverflowCount }, - { services, maxServiceCountExceeded }, + { services: servicesWithoutTransactions, maxServiceCountExceeded }, healthStatuses, alertCounts, ] = await Promise.all([ @@ -72,7 +72,7 @@ export async function getServicesItems({ ...commonParams, apmEventClient, }), - getServicesFromErrorAndMetricDocuments({ + getServicesWithoutTransactions({ ...commonParams, apmEventClient, }), @@ -90,7 +90,7 @@ export async function getServicesItems({ items: mergeServiceStats({ serviceStats, - servicesFromErrorAndMetricDocuments: services, + servicesWithoutTransactions, healthStatuses, alertCounts, }) ?? [], diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_services_without_transactions.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_services_without_transactions.ts new file mode 100644 index 00000000000000..60d3bc0d7df185 --- /dev/null +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_services_without_transactions.ts @@ -0,0 +1,124 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { kqlQuery, rangeQuery } from '@kbn/observability-plugin/server'; +import { ProcessorEvent } from '@kbn/observability-plugin/common'; +import { AgentName } from '../../../../typings/es_schemas/ui/fields/agent'; +import { + AGENT_NAME, + SERVICE_ENVIRONMENT, + SERVICE_NAME, +} from '../../../../common/es_fields/apm'; +import { environmentQuery } from '../../../../common/utils/environment_query'; +import { serviceGroupQuery } from '../../../lib/service_group_query'; +import { ServiceGroup } from '../../../../common/service_groups'; +import { RandomSampler } from '../../../lib/helpers/get_random_sampler'; +import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +import { ApmDocumentType } from '../../../../common/document_type'; +import { RollupInterval } from '../../../../common/rollup'; + +export async function getServicesWithoutTransactions({ + environment, + apmEventClient, + maxNumServices, + kuery, + start, + end, + serviceGroup, + randomSampler, + documentType, + rollupInterval, +}: { + apmEventClient: APMEventClient; + environment: string; + maxNumServices: number; + kuery: string; + start: number; + end: number; + serviceGroup: ServiceGroup | null; + randomSampler: RandomSampler; + documentType: ApmDocumentType; + rollupInterval: RollupInterval; +}) { + const isServiceTransactionMetric = + documentType === ApmDocumentType.ServiceTransactionMetric; + + const response = await apmEventClient.search( + isServiceTransactionMetric + ? 'get_services_from_service_summary' + : 'get_services_from_error_and_metric_documents', + { + apm: isServiceTransactionMetric + ? { + sources: [ + { + documentType: ApmDocumentType.ServiceSummaryMetric, + rollupInterval, + }, + ], + } + : { + events: [ProcessorEvent.metric, ProcessorEvent.error], + }, + body: { + track_total_hits: false, + size: 0, + query: { + bool: { + filter: [ + ...rangeQuery(start, end), + ...environmentQuery(environment), + ...kqlQuery(kuery), + ...serviceGroupQuery(serviceGroup), + ], + }, + }, + aggs: { + sample: { + random_sampler: randomSampler, + aggs: { + services: { + terms: { + field: SERVICE_NAME, + size: maxNumServices, + }, + aggs: { + environments: { + terms: { + field: SERVICE_ENVIRONMENT, + }, + }, + latest: { + top_metrics: { + metrics: [{ field: AGENT_NAME } as const], + sort: { '@timestamp': 'desc' }, + }, + }, + }, + }, + }, + }, + }, + }, + } + ); + + return { + services: + response.aggregations?.sample.services.buckets.map((bucket) => { + return { + serviceName: bucket.key as string, + environments: bucket.environments.buckets.map( + (envBucket) => envBucket.key as string + ), + agentName: bucket.latest.top[0].metrics[AGENT_NAME] as AgentName, + }; + }) ?? [], + maxServiceCountExceeded: + (response.aggregations?.sample.services.sum_other_doc_count ?? 0) > 0, + }; +} diff --git a/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.test.ts b/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.test.ts index d08e23ef4b49a8..d06905d17bb181 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.test.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.test.ts @@ -40,7 +40,7 @@ describe('mergeServiceStats', () => { throughput: 4, }), ], - servicesFromErrorAndMetricDocuments: [ + servicesWithoutTransactions: [ { environments: ['production'], serviceName: 'opbeans-java', @@ -93,7 +93,7 @@ describe('mergeServiceStats', () => { environments: ['staging'], }), ], - servicesFromErrorAndMetricDocuments: [ + servicesWithoutTransactions: [ { environments: ['production'], serviceName: 'opbeans-java', @@ -142,7 +142,7 @@ describe('mergeServiceStats', () => { environments: ['staging'], }), ], - servicesFromErrorAndMetricDocuments: [], + servicesWithoutTransactions: [], healthStatuses: [ { healthStatus: ServiceHealthStatus.healthy, @@ -179,7 +179,7 @@ describe('mergeServiceStats', () => { environments: ['staging'], }), ], - servicesFromErrorAndMetricDocuments: [ + servicesWithoutTransactions: [ { environments: ['production'], serviceName: 'opbeans-java', diff --git a/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts b/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts index 10d22c730bf9d1..a5c867b4f69ddc 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts @@ -9,30 +9,29 @@ import { asMutableArray } from '../../../../common/utils/as_mutable_array'; import { joinByKey } from '../../../../common/utils/join_by_key'; import { getServicesAlerts } from './get_service_alerts'; import { getHealthStatuses } from './get_health_statuses'; -import { getServicesFromErrorAndMetricDocuments } from './get_services_from_error_and_metric_documents'; +import { getServicesWithoutTransactions } from './get_services_without_transactions'; import { getServiceTransactionStats } from './get_service_transaction_stats'; export function mergeServiceStats({ serviceStats, - servicesFromErrorAndMetricDocuments, + servicesWithoutTransactions, healthStatuses, alertCounts, }: { serviceStats: Awaited< ReturnType >['serviceStats']; - servicesFromErrorAndMetricDocuments: Awaited< - ReturnType + servicesWithoutTransactions: Awaited< + ReturnType >['services']; healthStatuses: Awaited>; alertCounts: Awaited>; }) { const foundServiceNames = serviceStats.map(({ serviceName }) => serviceName); - const servicesWithOnlyMetricDocuments = - servicesFromErrorAndMetricDocuments.filter( - ({ serviceName }) => !foundServiceNames.includes(serviceName) - ); + const servicesWithOnlyMetricDocuments = servicesWithoutTransactions.filter( + ({ serviceName }) => !foundServiceNames.includes(serviceName) + ); const allServiceNames = foundServiceNames.concat( servicesWithOnlyMetricDocuments.map(({ serviceName }) => serviceName) @@ -47,7 +46,7 @@ export function mergeServiceStats({ return joinByKey( asMutableArray([ ...serviceStats, - ...servicesFromErrorAndMetricDocuments, + ...servicesWithoutTransactions, ...matchedHealthStatuses, ...alertCounts, ] as const), diff --git a/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts index 0ba8bfb7da922a..a410036d4c52e8 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts @@ -7,7 +7,7 @@ import { kqlQuery, rangeQuery } from '@kbn/observability-plugin/server'; import { keyBy } from 'lodash'; -import { ApmDocumentType } from '../../../../common/document_type'; +import { ApmServiceTransactionDocumentType } from '../../../../common/document_type'; import { SERVICE_NAME, TRANSACTION_TYPE, @@ -19,7 +19,7 @@ import { } from '../../../../common/transaction_types'; import { environmentQuery } from '../../../../common/utils/environment_query'; import { getOffsetInMs } from '../../../../common/utils/get_offset_in_ms'; -import { calculateThroughputWithRange } from '../../../lib/helpers/calculate_throughput'; +import { calculateThroughputWithInterval } from '../../../lib/helpers/calculate_throughput'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; import { RandomSampler } from '../../../lib/helpers/get_random_sampler'; import { getDurationFieldForTransactions } from '../../../lib/helpers/transactions'; @@ -46,7 +46,7 @@ export async function getServiceTransactionDetailedStats({ environment: string; kuery: string; apmEventClient: APMEventClient; - documentType: ApmDocumentType; + documentType: ApmServiceTransactionDocumentType; rollupInterval: RollupInterval; bucketSizeInSeconds: number; offset?: string; @@ -159,9 +159,8 @@ export async function getServiceTransactionDetailedStats({ throughput: topTransactionTypeBucket.timeseries.buckets.map( (dateBucket) => ({ x: dateBucket.key + offsetInMs, - y: calculateThroughputWithRange({ - start, - end, + y: calculateThroughputWithInterval({ + bucketSize: bucketSizeInSeconds, value: dateBucket.doc_count, }), }) @@ -189,7 +188,7 @@ export async function getServiceDetailedStatsPeriods({ environment: string; kuery: string; apmEventClient: APMEventClient; - documentType: ApmDocumentType; + documentType: ApmServiceTransactionDocumentType; rollupInterval: RollupInterval; bucketSizeInSeconds: number; offset?: string; diff --git a/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts index faa12d1defe1f7..932d727ee69871 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { ApmDocumentType } from '../../../../common/document_type'; +import { ApmServiceTransactionDocumentType } from '../../../../common/document_type'; import { RollupInterval } from '../../../../common/rollup'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; import { RandomSampler } from '../../../lib/helpers/get_random_sampler'; @@ -28,7 +28,7 @@ export async function getServicesDetailedStatistics({ environment: string; kuery: string; apmEventClient: APMEventClient; - documentType: ApmDocumentType; + documentType: ApmServiceTransactionDocumentType; rollupInterval: RollupInterval; bucketSizeInSeconds: number; offset?: string; diff --git a/x-pack/plugins/apm/server/routes/services/route.ts b/x-pack/plugins/apm/server/routes/services/route.ts index 6fbc7744368db4..d8647bf981e34e 100644 --- a/x-pack/plugins/apm/server/routes/services/route.ts +++ b/x-pack/plugins/apm/server/routes/services/route.ts @@ -32,7 +32,7 @@ import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; import { withApmSpan } from '../../utils/with_apm_span'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { - dataSourceRt, + serviceTransactionDataSourceRt, environmentRt, kueryRt, probabilityRt, @@ -64,7 +64,7 @@ const servicesRoute = createApmServerRoute({ t.partial({ serviceGroup: t.string }), t.intersection([ probabilityRt, - dataSourceRt, + serviceTransactionDataSourceRt, environmentRt, kueryRt, rangeRt, @@ -179,7 +179,7 @@ const servicesDetailedStatisticsRoute = createApmServerRoute({ environmentRt, kueryRt, rangeRt, - t.intersection([offsetRt, probabilityRt, dataSourceRt]), + t.intersection([offsetRt, probabilityRt, serviceTransactionDataSourceRt]), t.type({ bucketSizeInSeconds: toNumberRt, }), diff --git a/x-pack/plugins/apm/server/routes/source_maps/create_apm_source_map.ts b/x-pack/plugins/apm/server/routes/source_maps/create_apm_source_map.ts index f4a49d475ceefa..442b9299587a6f 100644 --- a/x-pack/plugins/apm/server/routes/source_maps/create_apm_source_map.ts +++ b/x-pack/plugins/apm/server/routes/source_maps/create_apm_source_map.ts @@ -6,7 +6,6 @@ */ import { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; -import { isElasticsearchVersionConflictError } from '@kbn/fleet-plugin/server/errors/utils'; import { Logger } from '@kbn/core/server'; import { APM_SOURCE_MAP_INDEX } from '../settings/apm_indices/get_apm_indices'; import { ApmSourceMap } from './create_apm_source_map_index_template'; @@ -44,18 +43,11 @@ export async function createApmSourceMap({ service: { name: serviceName, version: serviceVersion }, }; - try { - const id = getSourceMapId({ serviceName, serviceVersion, bundleFilepath }); - logger.debug(`Create APM source map: "${id}"`); - return await internalESClient.create({ - index: APM_SOURCE_MAP_INDEX, - id, - body: doc, - }); - } catch (e) { - // we ignore 409 errors from the create (document already exists) - if (!isElasticsearchVersionConflictError(e)) { - throw e; - } - } + const id = getSourceMapId({ serviceName, serviceVersion, bundleFilepath }); + logger.debug(`Create APM source map: "${id}"`); + return await internalESClient.index({ + index: APM_SOURCE_MAP_INDEX, + id, + body: doc, + }); } diff --git a/x-pack/plugins/apm/server/routes/time_range_metadata/route.ts b/x-pack/plugins/apm/server/routes/time_range_metadata/route.ts index 66cbebe5ec2181..eaff14fd7c6475 100644 --- a/x-pack/plugins/apm/server/routes/time_range_metadata/route.ts +++ b/x-pack/plugins/apm/server/routes/time_range_metadata/route.ts @@ -17,7 +17,11 @@ export const timeRangeMetadataRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/time_range_metadata', params: t.type({ query: t.intersection([ - t.type({ useSpanName: toBooleanRt }), + t.type({ + useSpanName: toBooleanRt, + enableServiceTransactionMetrics: toBooleanRt, + enableContinuousRollups: toBooleanRt, + }), kueryRt, rangeRt, ]), @@ -29,7 +33,14 @@ export const timeRangeMetadataRoute = createApmServerRoute({ const apmEventClient = await getApmEventClient(resources); const { - query: { useSpanName, start, end, kuery }, + query: { + useSpanName, + start, + end, + kuery, + enableServiceTransactionMetrics, + enableContinuousRollups, + }, } = resources.params; const [isUsingServiceDestinationMetrics, sources] = await Promise.all([ @@ -45,6 +56,8 @@ export const timeRangeMetadataRoute = createApmServerRoute({ start, end, kuery, + enableServiceTransactionMetrics, + enableContinuousRollups, }), ]); diff --git a/x-pack/plugins/banners/kibana.json b/x-pack/plugins/banners/kibana.json deleted file mode 100644 index 4864a51c46f7ba..00000000000000 --- a/x-pack/plugins/banners/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "banners", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "enabledOnAnonymousPages": true, - "requiredPlugins": ["licensing"], - "optionalPlugins": ["screenshotMode"], - "requiredBundles": ["kibanaReact"], - "configPath": ["xpack", "banners"] -} diff --git a/x-pack/plugins/banners/kibana.jsonc b/x-pack/plugins/banners/kibana.jsonc new file mode 100644 index 00000000000000..9f4f661654eeda --- /dev/null +++ b/x-pack/plugins/banners/kibana.jsonc @@ -0,0 +1,24 @@ +{ + "type": "plugin", + "id": "@kbn/banners-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "banners", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "banners" + ], + "enabledOnAnonymousPages": true, + "requiredPlugins": [ + "licensing" + ], + "optionalPlugins": [ + "screenshotMode" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/canvas/common/lib/handlebars.test.js b/x-pack/plugins/canvas/common/lib/handlebars.test.js index 5a0ee7f2746e6d..1670a9f70067c2 100644 --- a/x-pack/plugins/canvas/common/lib/handlebars.test.js +++ b/x-pack/plugins/canvas/common/lib/handlebars.test.js @@ -10,11 +10,11 @@ import { Handlebars } from './handlebars'; describe('handlebars', () => { it('registers math function and returns argument error', () => { - const template = Handlebars.compile("test math: {{math rows 'mean(price * quantity)' 2}}"); + const template = Handlebars.compileAST("test math: {{math rows 'mean(price * quantity)' 2}}"); expect(template()).toBe('test math: MATH ERROR: first argument must be an array'); }); it('evaluates math function successfully', () => { - const template = Handlebars.compile("test math: {{math rows 'mean(price * quantity)' 2}}"); + const template = Handlebars.compileAST("test math: {{math rows 'mean(price * quantity)' 2}}"); expect(template(testTable)).toBe('test math: 82164.33'); }); }); diff --git a/x-pack/plugins/canvas/kibana.json b/x-pack/plugins/canvas/kibana.json deleted file mode 100644 index f63c3522a8df7f..00000000000000 --- a/x-pack/plugins/canvas/kibana.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "canvas", - "owner": { - "name": "Kibana Presentation", - "githubTeam": "kibana-presentation" - }, - "description": "Adds Canvas application to Kibana", - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "canvas"], - "server": true, - "ui": true, - "requiredPlugins": [ - "bfetch", - "charts", - "data", - "dataViews", - "embeddable", - "expressionError", - "expressionImage", - "expressionMetric", - "expressionRepeatImage", - "expressionRevealImage", - "expressionShape", - "expressions", - "features", - "inspector", - "presentationUtil", - "visualizations", - "uiActions", - "share" - ], - "optionalPlugins": ["home", "reporting", "spaces", "usageCollection"], - "requiredBundles": [ - "discover", - "kibanaReact", - "kibanaUtils", - "lens", - "maps", - "savedObjects", - "visualizations", - "fieldFormats" - ] -} diff --git a/x-pack/plugins/canvas/kibana.jsonc b/x-pack/plugins/canvas/kibana.jsonc new file mode 100644 index 00000000000000..3ef7326dcd460b --- /dev/null +++ b/x-pack/plugins/canvas/kibana.jsonc @@ -0,0 +1,51 @@ +{ + "type": "plugin", + "id": "@kbn/canvas-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Adds Canvas application to Kibana", + "plugin": { + "id": "canvas", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "canvas" + ], + "requiredPlugins": [ + "bfetch", + "charts", + "data", + "dataViews", + "embeddable", + "expressionError", + "expressionImage", + "expressionMetric", + "expressionRepeatImage", + "expressionRevealImage", + "expressionShape", + "expressions", + "features", + "inspector", + "presentationUtil", + "visualizations", + "uiActions", + "share" + ], + "optionalPlugins": [ + "home", + "reporting", + "spaces", + "usageCollection" + ], + "requiredBundles": [ + "discover", + "kibanaReact", + "kibanaUtils", + "lens", + "maps", + "savedObjects", + "visualizations", + "fieldFormats" + ] + } +} diff --git a/x-pack/plugins/canvas/shareable_runtime/webpack.config.js b/x-pack/plugins/canvas/shareable_runtime/webpack.config.js index abe7113c26d1cc..47b4fb71fb56fb 100644 --- a/x-pack/plugins/canvas/shareable_runtime/webpack.config.js +++ b/x-pack/plugins/canvas/shareable_runtime/webpack.config.js @@ -5,7 +5,7 @@ * 2.0. */ -require('../../../../src/setup_node_env'); +require('@kbn/babel-register').install(); const path = require('path'); const webpack = require('webpack'); @@ -21,14 +21,6 @@ const { const isProd = process.env.NODE_ENV === 'production'; -const nodeModulesButNotKbnPackages = (_path) => { - if (!_path.includes('node_modules')) { - return false; - } - - return !_path.includes(`node_modules${path.sep}@kbn${path.sep}`); -}; - module.exports = { context: KIBANA_ROOT, entry: { @@ -45,7 +37,6 @@ module.exports = { core_app_image_assets: path.resolve(KIBANA_ROOT, 'src/core/public/styles/core_app/images'), }, extensions: ['.js', '.json', '.ts', '.tsx', '.scss'], - symlinks: false, }, module: { rules: [ @@ -127,7 +118,7 @@ module.exports = { }, { test: /\.scss$/, - exclude: [nodeModulesButNotKbnPackages, /\.module\.s(a|c)ss$/], + exclude: [/node_modules/, /\.module\.s(a|c)ss$/], use: [ { loader: 'style-loader', diff --git a/x-pack/plugins/canvas/tsconfig.json b/x-pack/plugins/canvas/tsconfig.json index 706ebb978805ec..c946d46687f7c2 100644 --- a/x-pack/plugins/canvas/tsconfig.json +++ b/x-pack/plugins/canvas/tsconfig.json @@ -76,6 +76,7 @@ "@kbn/storybook", "@kbn/core-apps-server-internal", "@kbn/flot-charts", + "@kbn/babel-register", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/cases/common/api/cases/case.ts b/x-pack/plugins/cases/common/api/cases/case.ts index 2ecc7143f4a895..4eaf633fb98c7c 100644 --- a/x-pack/plugins/cases/common/api/cases/case.ts +++ b/x-pack/plugins/cases/common/api/cases/case.ts @@ -8,7 +8,7 @@ import * as rt from 'io-ts'; import { NumberFromString } from '../saved_object'; -import { UserRT } from '../user'; +import { UserRt } from '../user'; import { CommentResponseRt } from './comment'; import { CasesStatusResponseRt, CaseStatusRt } from './status'; import { CaseConnectorRt } from '../connectors/connector'; @@ -97,7 +97,7 @@ export const CaseUserActionExternalServiceRt = rt.type({ external_title: rt.string, external_url: rt.string, pushed_at: rt.string, - pushed_by: UserRT, + pushed_by: UserRt, }); export const CaseExternalServiceBasicRt = rt.intersection([ @@ -114,12 +114,12 @@ export const CaseAttributesRt = rt.intersection([ rt.type({ duration: rt.union([rt.number, rt.null]), closed_at: rt.union([rt.string, rt.null]), - closed_by: rt.union([UserRT, rt.null]), + closed_by: rt.union([UserRt, rt.null]), created_at: rt.string, - created_by: UserRT, + created_by: UserRt, external_service: CaseFullExternalServiceRt, updated_at: rt.union([rt.string, rt.null]), - updated_by: rt.union([UserRT, rt.null]), + updated_by: rt.union([UserRt, rt.null]), }), ]); diff --git a/x-pack/plugins/cases/common/api/cases/comment.ts b/x-pack/plugins/cases/common/api/cases/comment.ts index b768b8f0b593fa..2788d1c4022d29 100644 --- a/x-pack/plugins/cases/common/api/cases/comment.ts +++ b/x-pack/plugins/cases/common/api/cases/comment.ts @@ -9,16 +9,16 @@ import * as rt from 'io-ts'; import { jsonValueRt } from '../runtime_types'; import { SavedObjectFindOptionsRt } from '../saved_object'; -import { UserRT } from '../user'; +import { UserRt } from '../user'; export const CommentAttributesBasicRt = rt.type({ created_at: rt.string, - created_by: UserRT, + created_by: UserRt, owner: rt.string, pushed_at: rt.union([rt.string, rt.null]), - pushed_by: rt.union([UserRT, rt.null]), + pushed_by: rt.union([UserRt, rt.null]), updated_at: rt.union([rt.string, rt.null]), - updated_by: rt.union([UserRT, rt.null]), + updated_by: rt.union([UserRt, rt.null]), }); export enum CommentType { diff --git a/x-pack/plugins/cases/common/api/cases/configure.ts b/x-pack/plugins/cases/common/api/cases/configure.ts index bf67624df85085..e6f62a1b8dd01e 100644 --- a/x-pack/plugins/cases/common/api/cases/configure.ts +++ b/x-pack/plugins/cases/common/api/cases/configure.ts @@ -7,7 +7,7 @@ import * as rt from 'io-ts'; -import { UserRT } from '../user'; +import { UserRt } from '../user'; import { CaseConnectorRt, ConnectorMappingsRt } from '../connectors'; // TODO: we will need to add this type rt.literal('close-by-third-party') @@ -44,9 +44,9 @@ export const CaseConfigureAttributesRt = rt.intersection([ CasesConfigureBasicRt, rt.type({ created_at: rt.string, - created_by: UserRT, + created_by: UserRt, updated_at: rt.union([rt.string, rt.null]), - updated_by: rt.union([UserRT, rt.null]), + updated_by: rt.union([UserRt, rt.null]), }), ]); diff --git a/x-pack/plugins/cases/common/api/cases/user_actions/common.ts b/x-pack/plugins/cases/common/api/cases/user_actions/common.ts index 271eec5c6f363b..fac254e33094a6 100644 --- a/x-pack/plugins/cases/common/api/cases/user_actions/common.ts +++ b/x-pack/plugins/cases/common/api/cases/user_actions/common.ts @@ -6,7 +6,7 @@ */ import * as rt from 'io-ts'; -import { UserRT } from '../../user'; +import { UserRt } from '../../user'; /** * These values are used in a number of places including to define the accepted values in the @@ -42,7 +42,7 @@ export const ActionsRt = rt.keyof(Actions); export const UserActionCommonAttributesRt = rt.type({ created_at: rt.string, - created_by: UserRT, + created_by: UserRt, owner: rt.string, action: ActionsRt, }); diff --git a/x-pack/plugins/cases/common/api/helpers.ts b/x-pack/plugins/cases/common/api/helpers.ts index 746f2bd6972abd..db5a333c7546ea 100644 --- a/x-pack/plugins/cases/common/api/helpers.ts +++ b/x-pack/plugins/cases/common/api/helpers.ts @@ -19,6 +19,7 @@ import { INTERNAL_GET_CASE_USER_ACTIONS_STATS_URL, INTERNAL_BULK_GET_ATTACHMENTS_URL, INTERNAL_CONNECTORS_URL, + INTERNAL_CASE_USERS_URL, } from '../constants'; export const getCaseDetailsUrl = (id: string): string => { @@ -72,3 +73,7 @@ export const getCaseBulkGetAttachmentsUrl = (id: string): string => { export const getCaseConnectorsUrl = (id: string): string => { return INTERNAL_CONNECTORS_URL.replace('{case_id}', id); }; + +export const getCaseUsersUrl = (id: string): string => { + return INTERNAL_CASE_USERS_URL.replace('{case_id}', id); +}; diff --git a/x-pack/plugins/cases/common/api/user.ts b/x-pack/plugins/cases/common/api/user.ts index 63280d230b7778..420e3248faa9c9 100644 --- a/x-pack/plugins/cases/common/api/user.ts +++ b/x-pack/plugins/cases/common/api/user.ts @@ -7,7 +7,7 @@ import * as rt from 'io-ts'; -export const UserRT = rt.intersection([ +export const UserRt = rt.intersection([ rt.type({ email: rt.union([rt.undefined, rt.null, rt.string]), full_name: rt.union([rt.undefined, rt.null, rt.string]), @@ -16,6 +16,14 @@ export const UserRT = rt.intersection([ rt.partial({ profile_uid: rt.string }), ]); -export const UsersRt = rt.array(UserRT); +export const UsersRt = rt.array(UserRt); -export type User = rt.TypeOf; +export type User = rt.TypeOf; + +export const GetCaseUsersResponseRt = rt.type({ + assignees: rt.array(UserRt), + unassignedUsers: rt.array(UserRt), + participants: rt.array(UserRt), +}); + +export type GetCaseUsersResponse = rt.TypeOf; diff --git a/x-pack/plugins/cases/common/constants.ts b/x-pack/plugins/cases/common/constants.ts index c359353f80b807..601599104641b6 100644 --- a/x-pack/plugins/cases/common/constants.ts +++ b/x-pack/plugins/cases/common/constants.ts @@ -96,6 +96,7 @@ export const INTERNAL_CONNECTORS_URL = `${CASES_INTERNAL_URL}/{case_id}/_connect export const INTERNAL_BULK_GET_CASES_URL = `${CASES_INTERNAL_URL}/_bulk_get` as const; export const INTERNAL_GET_CASE_USER_ACTIONS_STATS_URL = `${CASES_INTERNAL_URL}/{case_id}/user_actions/_stats` as const; +export const INTERNAL_CASE_USERS_URL = `${CASES_INTERNAL_URL}/{case_id}/_users` as const; /** * Action routes @@ -119,18 +120,21 @@ export const GENERAL_CASES_OWNER = APP_ID; export const OWNER_INFO = { [SECURITY_SOLUTION_OWNER]: { + id: SECURITY_SOLUTION_OWNER, appId: 'securitySolutionUI', label: 'Security', iconType: 'logoSecurity', appRoute: '/app/security', }, [OBSERVABILITY_OWNER]: { + id: OBSERVABILITY_OWNER, appId: 'observability-overview', label: 'Observability', iconType: 'logoObservability', appRoute: '/app/observability', }, [GENERAL_CASES_OWNER]: { + id: GENERAL_CASES_OWNER, appId: 'management', label: 'Stack', iconType: 'casesApp', diff --git a/x-pack/plugins/cases/kibana.json b/x-pack/plugins/cases/kibana.json deleted file mode 100644 index af7cdd7a99bedc..00000000000000 --- a/x-pack/plugins/cases/kibana.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "configPath":[ - "xpack", - "cases" - ], - "description":"The Case management system in Kibana", - "extraPublicDirs":[ - "common" - ], - "id":"cases", - "kibanaVersion":"kibana", - "optionalPlugins":[ - "home", - "taskManager", - "usageCollection" - ], - "owner":{ - "githubTeam":"response-ops", - "name":"ResponseOps" - }, - "requiredPlugins":[ - "actions", - "data", - "embeddable", - "esUiShared", - "lens", - "licensing", - "features", - "kibanaReact", - "kibanaUtils", - "triggersActionsUi", - "management", - "spaces", - "security", - "notifications" - ], - "requiredBundles": [ - "savedObjects" - ], - "server":true, - "ui":true, - "version":"8.0.0" -} diff --git a/x-pack/plugins/cases/kibana.jsonc b/x-pack/plugins/cases/kibana.jsonc new file mode 100644 index 00000000000000..1f474ccf8e9d43 --- /dev/null +++ b/x-pack/plugins/cases/kibana.jsonc @@ -0,0 +1,42 @@ +{ + "type": "plugin", + "id": "@kbn/cases-plugin", + "owner": "@elastic/response-ops", + "description": "The Case management system in Kibana", + "plugin": { + "id": "cases", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "cases" + ], + "requiredPlugins": [ + "actions", + "data", + "embeddable", + "esUiShared", + "lens", + "licensing", + "features", + "kibanaReact", + "kibanaUtils", + "triggersActionsUi", + "management", + "security", + "notifications" + ], + "optionalPlugins": [ + "home", + "taskManager", + "usageCollection", + "spaces" + ], + "requiredBundles": [ + "savedObjects" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/cases/package.json b/x-pack/plugins/cases/package.json index a982c98768fd13..c7a8e9d31ae8b4 100644 --- a/x-pack/plugins/cases/package.json +++ b/x-pack/plugins/cases/package.json @@ -1,7 +1,7 @@ { "author": "Elastic", - "name": "cases", - "version": "8.0.0", + "name": "@kbn/cases-plugin", + "version": "1.0.0", "private": true, - "license": "Elastic-License" + "license": "Elastic License 2.0" } diff --git a/x-pack/plugins/cases/public/common/use_cases_toast.test.tsx b/x-pack/plugins/cases/public/common/use_cases_toast.test.tsx index cabca3ea69f7a1..6c33c86d29d510 100644 --- a/x-pack/plugins/cases/public/common/use_cases_toast.test.tsx +++ b/x-pack/plugins/cases/public/common/use_cases_toast.test.tsx @@ -346,7 +346,10 @@ describe('Use cases toast hook', () => { result.current.showSuccessToast('my title'); - expect(successMock).toHaveBeenCalledWith('my title'); + expect(successMock).toHaveBeenCalledWith({ + className: 'eui-textBreakWord', + title: 'my title', + }); }); }); }); diff --git a/x-pack/plugins/cases/public/common/use_cases_toast.tsx b/x-pack/plugins/cases/public/common/use_cases_toast.tsx index d866f9791fc2d6..3d90005546464d 100644 --- a/x-pack/plugins/cases/public/common/use_cases_toast.tsx +++ b/x-pack/plugins/cases/public/common/use_cases_toast.tsx @@ -167,7 +167,7 @@ export const useCasesToast = () => { } }, showSuccessToast: (title: string) => { - toasts.addSuccess(title); + toasts.addSuccess({ title, className: 'eui-textBreakWord' }); }, }; }; diff --git a/x-pack/plugins/cases/public/components/actions/assignees/use_assignees_action.test.tsx b/x-pack/plugins/cases/public/components/actions/assignees/use_assignees_action.test.tsx index 91c47edc276c7f..11b91c483d1513 100644 --- a/x-pack/plugins/cases/public/components/actions/assignees/use_assignees_action.test.tsx +++ b/x-pack/plugins/cases/public/components/actions/assignees/use_assignees_action.test.tsx @@ -111,9 +111,10 @@ describe('useAssigneesAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - 'Edited case' - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: 'Edited case', + className: 'eui-textBreakWord', + }); }); }); @@ -136,9 +137,10 @@ describe('useAssigneesAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - 'Edited 2 cases' - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: 'Edited 2 cases', + className: 'eui-textBreakWord', + }); }); }); }); diff --git a/x-pack/plugins/cases/public/components/actions/copy_id/use_copy_id_action.test.tsx b/x-pack/plugins/cases/public/components/actions/copy_id/use_copy_id_action.test.tsx index 7cc4f7677286bb..0c33980b3ab63d 100644 --- a/x-pack/plugins/cases/public/components/actions/copy_id/use_copy_id_action.test.tsx +++ b/x-pack/plugins/cases/public/components/actions/copy_id/use_copy_id_action.test.tsx @@ -83,9 +83,10 @@ describe('useCopyIDAction', () => { await waitFor(() => { expect(onActionSuccess).toHaveBeenCalled(); - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - 'Copied Case ID to clipboard' - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: 'Copied Case ID to clipboard', + className: 'eui-textBreakWord', + }); }); }); }); diff --git a/x-pack/plugins/cases/public/components/actions/delete/use_delete_action.test.tsx b/x-pack/plugins/cases/public/components/actions/delete/use_delete_action.test.tsx index 3e89fc83ca92b9..88592672088170 100644 --- a/x-pack/plugins/cases/public/components/actions/delete/use_delete_action.test.tsx +++ b/x-pack/plugins/cases/public/components/actions/delete/use_delete_action.test.tsx @@ -155,9 +155,10 @@ describe('useDeleteAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - 'Deleted case' - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: 'Deleted case', + className: 'eui-textBreakWord', + }); }); }); @@ -180,9 +181,10 @@ describe('useDeleteAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - 'Deleted 2 cases' - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: 'Deleted 2 cases', + className: 'eui-textBreakWord', + }); }); }); }); diff --git a/x-pack/plugins/cases/public/components/actions/severity/use_severity_action.test.tsx b/x-pack/plugins/cases/public/components/actions/severity/use_severity_action.test.tsx index 42fea8e679608c..695b90624fdd6b 100644 --- a/x-pack/plugins/cases/public/components/actions/severity/use_severity_action.test.tsx +++ b/x-pack/plugins/cases/public/components/actions/severity/use_severity_action.test.tsx @@ -136,9 +136,10 @@ describe('useSeverityAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - expectedMessage - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: expectedMessage, + className: 'eui-textBreakWord', + }); }); } ); @@ -168,9 +169,10 @@ describe('useSeverityAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - expectedMessage - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: expectedMessage, + className: 'eui-textBreakWord', + }); }); } ); diff --git a/x-pack/plugins/cases/public/components/actions/status/use_status_action.test.tsx b/x-pack/plugins/cases/public/components/actions/status/use_status_action.test.tsx index 03d3da5101d386..201783db6bd951 100644 --- a/x-pack/plugins/cases/public/components/actions/status/use_status_action.test.tsx +++ b/x-pack/plugins/cases/public/components/actions/status/use_status_action.test.tsx @@ -126,9 +126,10 @@ describe('useStatusAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - expectedMessage - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: expectedMessage, + className: 'eui-textBreakWord', + }); }); } ); @@ -157,9 +158,10 @@ describe('useStatusAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - expectedMessage - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: expectedMessage, + className: 'eui-textBreakWord', + }); }); } ); diff --git a/x-pack/plugins/cases/public/components/actions/tags/use_tags_action.test.tsx b/x-pack/plugins/cases/public/components/actions/tags/use_tags_action.test.tsx index 1c4af4705bf388..c4aa68a578f2d5 100644 --- a/x-pack/plugins/cases/public/components/actions/tags/use_tags_action.test.tsx +++ b/x-pack/plugins/cases/public/components/actions/tags/use_tags_action.test.tsx @@ -105,9 +105,10 @@ describe('useTagsAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - 'Edited case' - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: 'Edited case', + className: 'eui-textBreakWord', + }); }); }); @@ -130,9 +131,10 @@ describe('useTagsAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - 'Edited 2 cases' - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: 'Edited 2 cases', + className: 'eui-textBreakWord', + }); }); }); }); diff --git a/x-pack/plugins/cases/public/components/actions/use_items_action.test.tsx b/x-pack/plugins/cases/public/components/actions/use_items_action.test.tsx index a53eca39562e8e..1ce613b9ded837 100644 --- a/x-pack/plugins/cases/public/components/actions/use_items_action.test.tsx +++ b/x-pack/plugins/cases/public/components/actions/use_items_action.test.tsx @@ -221,9 +221,10 @@ describe('useItemsAction', () => { }); await waitFor(() => { - expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith( - 'My toaster title' - ); + expect(appMockRender.coreStart.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: 'My toaster title', + className: 'eui-textBreakWord', + }); }); }); diff --git a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx index 909bb1dd24ea00..e1e6e5ec42de81 100644 --- a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx @@ -426,6 +426,20 @@ describe.skip('AllCasesListGeneric', () => { }); }); + it('should render only Name, CreatedOn and Severity columns when isSelectorView=true', async () => { + const wrapper = mount( + + + + ); + await waitFor(() => { + expect(wrapper.find('[data-test-subj="tableHeaderCell_title_0"]').exists()).toBe(true); + expect(wrapper.find('[data-test-subj="tableHeaderCell_createdAt_1"]').exists()).toBe(true); + expect(wrapper.find('[data-test-subj="tableHeaderCell_severity_2"]').exists()).toBe(true); + expect(wrapper.find('[data-test-subj="tableHeaderCell_assignees_1"]').exists()).toBe(false); + }); + }); + it('should sort by severity', async () => { const result = appMockRenderer.render(); @@ -698,12 +712,12 @@ describe.skip('AllCasesListGeneric', () => { queryParams: DEFAULT_QUERY_PARAMS, }); - userEvent.click(getByTestId('options-filter-popover-button-Solution')); + userEvent.click(getByTestId('solution-filter-popover-button')); await waitForEuiPopoverOpen(); userEvent.click( - getByTestId(`options-filter-popover-item-${SECURITY_SOLUTION_OWNER}`), + getByTestId(`solution-filter-popover-item-${SECURITY_SOLUTION_OWNER}`), undefined, { skipPointerEventsCheck: true, @@ -725,7 +739,7 @@ describe.skip('AllCasesListGeneric', () => { }); userEvent.click( - getByTestId(`options-filter-popover-item-${SECURITY_SOLUTION_OWNER}`), + getByTestId(`solution-filter-popover-item-${SECURITY_SOLUTION_OWNER}`), undefined, { skipPointerEventsCheck: true, @@ -754,7 +768,7 @@ describe.skip('AllCasesListGeneric', () => { ); - expect(queryByTestId('options-filter-popover-button-Solution')).toBeFalsy(); + expect(queryByTestId('solution-filter-popover-button')).toBeFalsy(); }); it('should call useGetCases with the correct owner on initial render', async () => { diff --git a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx index ab50f16083f8bb..7666d518fe9b4c 100644 --- a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx @@ -14,11 +14,13 @@ import styled, { css } from 'styled-components'; import type { Case, CaseStatusWithAllStatus, FilterOptions } from '../../../common/ui/types'; import { SortFieldCase, StatusAll } from '../../../common/ui/types'; import { CaseStatuses, caseStatuses } from '../../../common/api'; +import { OWNER_INFO } from '../../../common/constants'; +import type { CasesOwners } from '../../client/helpers/can_use_cases'; import { useAvailableCasesOwners } from '../app/use_available_owners'; import { useCasesColumns } from './use_cases_columns'; import { CasesTableFilters } from './table_filters'; -import type { EuiBasicTableOnChange } from './types'; +import type { EuiBasicTableOnChange, Solution } from './types'; import { CasesTable } from './table'; import { useCasesContext } from '../cases_context/use_cases_context'; @@ -48,6 +50,17 @@ const getSortField = (field: string): SortFieldCase => // @ts-ignore SortFieldCase[field] ?? SortFieldCase.title; +const isValidSolution = (solution: string): solution is CasesOwners => + Object.keys(OWNER_INFO).includes(solution); + +const mapToReadableSolutionName = (solution: string): Solution => { + if (isValidSolution(solution)) { + return OWNER_INFO[solution]; + } + + return { id: solution, label: solution, iconType: '' }; +}; + export interface AllCasesListProps { hiddenStatuses?: CaseStatusWithAllStatus[]; isSelectorView?: boolean; @@ -228,6 +241,10 @@ export const AllCasesList = React.memo( [] ); + const availableSolutionsLabels = availableSolutions.map((solution) => + mapToReadableSolutionName(solution) + ); + return ( <> ( countOpenCases={data.countOpenCases} countInProgressCases={data.countInProgressCases} onFilterChanged={onFilterChangedCallback} - availableSolutions={hasOwner ? [] : availableSolutions} + availableSolutions={hasOwner ? [] : availableSolutionsLabels} initial={{ search: filterOptions.search, searchFields: filterOptions.searchFields, @@ -254,8 +271,8 @@ export const AllCasesList = React.memo( severity: filterOptions.severity, }} hiddenStatuses={hiddenStatuses} - displayCreateCaseButton={isSelectorView} onCreateCasePressed={onRowClick} + isSelectorView={isSelectorView} isLoading={isLoadingCurrentUserProfile} currentUserProfile={currentUserProfile} /> diff --git a/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.tsx b/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.tsx index 0ba5a65bf32078..c04ea59dfebc59 100644 --- a/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.tsx @@ -7,7 +7,7 @@ import React, { useState, useCallback } from 'react'; import { - EuiButton, + EuiButtonEmpty, EuiModal, EuiModalBody, EuiModalFooter, @@ -29,7 +29,7 @@ export interface AllCasesSelectorModalProps { const Modal = styled(EuiModal)` ${({ theme }) => ` - min-width: ${theme.eui.euiBreakpoints.l}; + min-width: ${theme.eui.euiBreakpoints.m}; max-width: ${theme.eui.euiBreakpoints.xl}; `} `; @@ -68,13 +68,13 @@ export const AllCasesSelectorModal = React.memo( /> - {i18n.CANCEL} - + diff --git a/x-pack/plugins/cases/public/components/all_cases/solution_filter.test.tsx b/x-pack/plugins/cases/public/components/all_cases/solution_filter.test.tsx new file mode 100644 index 00000000000000..dcb469448b03ff --- /dev/null +++ b/x-pack/plugins/cases/public/components/all_cases/solution_filter.test.tsx @@ -0,0 +1,127 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl'; + +import type { AppMockRenderer } from '../../common/mock'; +import { createAppMockRenderer } from '../../common/mock'; +import type { Solution } from './types'; +import { + OWNER_INFO, + SECURITY_SOLUTION_OWNER, + OBSERVABILITY_OWNER, +} from '../../../common/constants'; + +import { SolutionFilter } from './solution_filter'; +import userEvent from '@testing-library/user-event'; + +describe('SolutionFilter ', () => { + let appMockRender: AppMockRenderer; + const onSelectedOptionsChanged = jest.fn(); + const solutions: Solution[] = [ + { + id: SECURITY_SOLUTION_OWNER, + label: OWNER_INFO[SECURITY_SOLUTION_OWNER].label, + iconType: OWNER_INFO[SECURITY_SOLUTION_OWNER].iconType, + }, + { + id: OBSERVABILITY_OWNER, + label: OWNER_INFO[OBSERVABILITY_OWNER].label, + iconType: OWNER_INFO[OBSERVABILITY_OWNER].iconType, + }, + ]; + + beforeEach(() => { + appMockRender = createAppMockRenderer(); + jest.clearAllMocks(); + }); + + it('renders button correctly', () => { + const { getByTestId } = appMockRender.render( + + ); + + expect(getByTestId('solution-filter-popover-button')).toBeInTheDocument(); + }); + + it('renders empty label correctly', async () => { + const { getByTestId, getByText } = appMockRender.render( + + ); + + userEvent.click(getByTestId('solution-filter-popover-button')); + + await waitForEuiPopoverOpen(); + + expect(getByText('No options available')).toBeInTheDocument(); + }); + + it('renders options correctly', async () => { + const { getByTestId } = appMockRender.render( + + ); + + expect(getByTestId('solution-filter-popover-button')).toBeInTheDocument(); + + userEvent.click(getByTestId('solution-filter-popover-button')); + + await waitForEuiPopoverOpen(); + + expect(getByTestId(`solution-filter-popover-item-${solutions[0].id}`)).toBeInTheDocument(); + expect(getByTestId(`solution-filter-popover-item-${solutions[0].id}`)).toBeInTheDocument(); + }); + + it('should call onSelectionChange with selected solution id', async () => { + const { getByTestId } = appMockRender.render( + + ); + + userEvent.click(getByTestId('solution-filter-popover-button')); + + await waitForEuiPopoverOpen(); + + userEvent.click(getByTestId(`solution-filter-popover-item-${solutions[0].id}`)); + + expect(onSelectedOptionsChanged).toHaveBeenCalledWith([solutions[0].id]); + }); + + it('should call onSelectionChange with empty array when solution option is deselected', async () => { + const { getByTestId } = appMockRender.render( + + ); + + userEvent.click(getByTestId('solution-filter-popover-button')); + + await waitForEuiPopoverOpen(); + + userEvent.click(getByTestId(`solution-filter-popover-item-${solutions[1].id}`)); + + expect(onSelectedOptionsChanged).toHaveBeenCalledWith([]); + }); +}); diff --git a/x-pack/plugins/cases/public/components/all_cases/solution_filter.tsx b/x-pack/plugins/cases/public/components/all_cases/solution_filter.tsx new file mode 100644 index 00000000000000..b776895e2fe9e0 --- /dev/null +++ b/x-pack/plugins/cases/public/components/all_cases/solution_filter.tsx @@ -0,0 +1,126 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback, useState } from 'react'; +import { + EuiFilterButton, + EuiFilterSelectItem, + EuiFlexGroup, + EuiFlexItem, + EuiPanel, + EuiPopover, + EuiText, + EuiIcon, +} from '@elastic/eui'; +import styled from 'styled-components'; + +import * as i18n from './translations'; +import type { Solution } from './types'; + +interface FilterPopoverProps { + onSelectedOptionsChanged: (value: string[]) => void; + options: Solution[]; + optionsEmptyLabel?: string; + selectedOptions: string[]; +} + +const ScrollableDiv = styled.div` + max-height: 250px; + overflow: auto; +`; + +const toggleSelectedGroup = (group: string, selectedGroups: string[]): string[] => { + const selectedGroupIndex = selectedGroups.indexOf(group); + if (selectedGroupIndex >= 0) { + return [ + ...selectedGroups.slice(0, selectedGroupIndex), + ...selectedGroups.slice(selectedGroupIndex + 1), + ]; + } + return [...selectedGroups, group]; +}; + +/** + * Popover for selecting a field to filter on + * + * @param buttonLabel label on dropdwon button + * @param onSelectedOptionsChanged change listener to be notified when option selection changes + * @param options to display for filtering + * @param optionsEmptyLabel shows when options empty + * @param selectedOptions manage state of selectedOptions + */ +export const SolutionFilterComponent = ({ + onSelectedOptionsChanged, + options, + optionsEmptyLabel, + selectedOptions, +}: FilterPopoverProps) => { + const [isPopoverOpen, setIsPopoverOpen] = useState(false); + + const setIsPopoverOpenCb = useCallback(() => setIsPopoverOpen(!isPopoverOpen), [isPopoverOpen]); + const toggleSelectedGroupCb = useCallback( + (option) => onSelectedOptionsChanged(toggleSelectedGroup(option, selectedOptions)), + [selectedOptions, onSelectedOptionsChanged] + ); + + return ( + 0} + numActiveFilters={selectedOptions.length} + aria-label={i18n.SOLUTION} + > + {i18n.SOLUTION} + + } + isOpen={isPopoverOpen} + closePopover={setIsPopoverOpenCb} + panelPaddingSize="none" + repositionOnScroll + > + + {options.map((option, index) => ( + + + + + + {option.label} + + + ))} + + {options.length === 0 && optionsEmptyLabel != null && ( + + + + {optionsEmptyLabel} + + + + )} + + ); +}; + +SolutionFilterComponent.displayName = 'SolutionFilterComponent'; + +export const SolutionFilter = React.memo(SolutionFilterComponent); + +SolutionFilter.displayName = 'SolutionFilter'; diff --git a/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx b/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx index 6c0ce7569b1c69..ccfcf715a67ba5 100644 --- a/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx @@ -6,16 +6,20 @@ */ import React from 'react'; -import { mount } from 'enzyme'; import { screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl'; import { licensingMock } from '@kbn/licensing-plugin/public/mocks'; +import { waitForComponentToUpdate } from '../../common/test_utils'; import { CaseStatuses } from '../../../common/api'; -import { OBSERVABILITY_OWNER, SECURITY_SOLUTION_OWNER } from '../../../common/constants'; +import { + OWNER_INFO, + SECURITY_SOLUTION_OWNER, + OBSERVABILITY_OWNER, +} from '../../../common/constants'; import type { AppMockRenderer } from '../../common/mock'; -import { createAppMockRenderer, TestProviders } from '../../common/mock'; +import { createAppMockRenderer } from '../../common/mock'; import { DEFAULT_FILTER_OPTIONS } from '../../containers/use_get_cases'; import { CasesTableFilters } from './table_filters'; import { useGetTags } from '../../containers/use_get_tags'; @@ -52,37 +56,31 @@ describe('CasesTableFilters ', () => { }); it('should render the case status filter dropdown', () => { - const wrapper = mount( - - - - ); + appMockRender.render(); - expect(wrapper.find(`[data-test-subj="case-status-filter"]`).first().exists()).toBeTruthy(); + expect(screen.getByTestId('case-status-filter')).toBeInTheDocument(); }); it('should render the case severity filter dropdown', () => { - const result = appMockRender.render(); - expect(result.getByTestId('case-severity-filter')).toBeTruthy(); + appMockRender.render(); + expect(screen.getByTestId('case-severity-filter')).toBeTruthy(); }); it('should call onFilterChange when the severity filter changes', async () => { - const result = appMockRender.render(); - userEvent.click(result.getByTestId('case-severity-filter')); + appMockRender.render(); + userEvent.click(screen.getByTestId('case-severity-filter')); await waitForEuiPopoverOpen(); - userEvent.click(result.getByTestId('case-severity-filter-high')); + userEvent.click(screen.getByTestId('case-severity-filter-high')); expect(onFilterChanged).toBeCalledWith({ severity: 'high' }); }); - it('should call onFilterChange when selected tags change', () => { - const wrapper = mount( - - - - ); - wrapper.find(`[data-test-subj="options-filter-popover-button-Tags"]`).last().simulate('click'); - wrapper.find(`[data-test-subj="options-filter-popover-item-coke"]`).last().simulate('click'); + it('should call onFilterChange when selected tags change', async () => { + appMockRender.render(); + + userEvent.click(screen.getByTestId('options-filter-popover-button-Tags')); + await waitForEuiPopoverOpen(); + userEvent.click(screen.getByTestId('options-filter-popover-item-coke')); expect(onFilterChanged).toBeCalledWith({ tags: ['coke'] }); }); @@ -109,29 +107,21 @@ describe('CasesTableFilters ', () => { `); }); - it('should call onFilterChange when search changes', () => { - const wrapper = mount( - - - - ); - - wrapper - .find(`[data-test-subj="search-cases"]`) - .last() - .simulate('keyup', { key: 'Enter', target: { value: 'My search' } }); + it('should call onFilterChange when search changes', async () => { + appMockRender.render(); + + await userEvent.type(screen.getByTestId('search-cases'), 'My search{enter}'); + expect(onFilterChanged).toBeCalledWith({ search: 'My search' }); }); - it('should call onFilterChange when changing status', () => { - const wrapper = mount( - - - - ); + it('should call onFilterChange when changing status', async () => { + appMockRender.render(); + + userEvent.click(screen.getByTestId('case-status-filter')); + await waitForEuiPopoverOpen(); + userEvent.click(screen.getByTestId('case-status-filter-closed')); - wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); - wrapper.find('button[data-test-subj="case-status-filter-closed"]').simulate('click'); expect(onFilterChanged).toBeCalledWith({ status: CaseStatuses.closed }); }); @@ -143,11 +133,8 @@ describe('CasesTableFilters ', () => { tags: ['pepsi', 'rc'], }, }; - mount( - - - - ); + + appMockRender.render(); expect(onFilterChanged).toHaveBeenCalledWith({ tags: ['pepsi'] }); }); @@ -186,165 +173,104 @@ describe('CasesTableFilters ', () => { }); it('StatusFilterWrapper should have a fixed width of 180px', () => { - const wrapper = mount( - - - - ); - - expect(wrapper.find('[data-test-subj="status-filter-wrapper"]').first()).toHaveStyleRule( - 'flex-basis', - '180px', - { - modifier: '&&', - } - ); + appMockRender.render(); + + expect(screen.getByTestId('status-filter-wrapper')).toHaveStyleRule('flex-basis', '180px', { + modifier: '&&', + }); }); describe('Solution filter', () => { + const securitySolution = { + id: SECURITY_SOLUTION_OWNER, + label: OWNER_INFO[SECURITY_SOLUTION_OWNER].label, + iconType: OWNER_INFO[SECURITY_SOLUTION_OWNER].iconType, + }; + const observabilitySolution = { + id: OBSERVABILITY_OWNER, + label: OWNER_INFO[OBSERVABILITY_OWNER].label, + iconType: OWNER_INFO[OBSERVABILITY_OWNER].iconType, + }; + it('shows Solution filter when provided more than 1 availableSolutions', () => { - const wrapper = mount( - - - + appMockRender.render( + ); - expect( - wrapper.find(`[data-test-subj="options-filter-popover-button-Solution"]`).exists() - ).toBeTruthy(); + expect(screen.getByTestId('solution-filter-popover-button')).toBeInTheDocument(); }); it('does not show Solution filter when provided less than 1 availableSolutions', () => { - const wrapper = mount( - - - + appMockRender.render( + ); - expect( - wrapper.find(`[data-test-subj="options-filter-popover-button-Solution"]`).exists() - ).toBeFalsy(); + expect(screen.queryByTestId('solution-filter-popover-button')).not.toBeInTheDocument(); }); - it('should call onFilterChange when selected solution changes', () => { - const wrapper = mount( - - - + it('should call onFilterChange when selected solution changes', async () => { + appMockRender.render( + ); - wrapper - .find(`[data-test-subj="options-filter-popover-button-Solution"]`) - .last() - .simulate('click'); + userEvent.click(screen.getByTestId('solution-filter-popover-button')); + + await waitForEuiPopoverOpen(); - wrapper - .find(`[data-test-subj="options-filter-popover-item-${SECURITY_SOLUTION_OWNER}"]`) - .last() - .simulate('click'); + userEvent.click( + screen.getByTestId(`solution-filter-popover-item-${SECURITY_SOLUTION_OWNER}`) + ); expect(onFilterChanged).toBeCalledWith({ owner: [SECURITY_SOLUTION_OWNER] }); }); - it('should deselect all solutions', () => { - const wrapper = mount( - - - + it('should deselect all solutions', async () => { + appMockRender.render( + ); - wrapper - .find(`[data-test-subj="options-filter-popover-button-Solution"]`) - .last() - .simulate('click'); + userEvent.click(screen.getByTestId('solution-filter-popover-button')); - wrapper - .find(`[data-test-subj="options-filter-popover-item-${SECURITY_SOLUTION_OWNER}"]`) - .last() - .simulate('click'); + await waitForEuiPopoverOpen(); + + userEvent.click( + screen.getByTestId(`solution-filter-popover-item-${SECURITY_SOLUTION_OWNER}`) + ); expect(onFilterChanged).toBeCalledWith({ owner: [SECURITY_SOLUTION_OWNER] }); - wrapper - .find(`[data-test-subj="options-filter-popover-item-${SECURITY_SOLUTION_OWNER}"]`) - .last() - .simulate('click'); + userEvent.click( + screen.getByTestId(`solution-filter-popover-item-${SECURITY_SOLUTION_OWNER}`) + ); expect(onFilterChanged).toBeCalledWith({ owner: [] }); }); it('does not select a solution on initial render', () => { - const wrapper = mount( - - - - ); - - expect( - wrapper.find(`[data-test-subj="options-filter-popover-button-Solution"]`).first().props() - ).toEqual(expect.objectContaining({ hasActiveFilters: false })); - }); - }); - - describe('create case button', () => { - it('should not render the create case button when displayCreateCaseButton and onCreateCasePressed are not passed', () => { - const wrapper = mount( - - - + appMockRender.render( + ); - expect(wrapper.find(`[data-test-subj="cases-table-add-case-filter-bar"]`).length).toBe(0); - }); - - it('should render the create case button when displayCreateCaseButton and onCreateCasePressed are passed', () => { - const onCreateCasePressed = jest.fn(); - const wrapper = mount( - - - - ); - expect(wrapper.find(`[data-test-subj="cases-table-add-case-filter-bar"]`)).toBeTruthy(); - }); - it('should call the onCreateCasePressed when create case is clicked', () => { - const onCreateCasePressed = jest.fn(); - const wrapper = mount( - - - + expect(screen.getByTestId('solution-filter-popover-button')).not.toHaveAttribute( + 'hasActiveFilters' ); - wrapper - .find(`button[data-test-subj="cases-table-add-case-filter-bar"]`) - .first() - .simulate('click'); - wrapper.update(); - // NOTE: intentionally checking no arguments are passed - expect(onCreateCasePressed).toHaveBeenCalledWith(); }); }); describe('assignees filter', () => { it('should hide the assignees filters on basic license', async () => { - const result = appMockRender.render(); + appMockRender.render(); - expect(result.queryByTestId('options-filter-popover-button-assignees')).toBeNull(); + expect(screen.queryByTestId('options-filter-popover-button-assignees')).toBeNull(); }); it('should show the assignees filters on platinum license', async () => { @@ -353,9 +279,45 @@ describe('CasesTableFilters ', () => { }); appMockRender = createAppMockRenderer({ license }); - const result = appMockRender.render(); + appMockRender.render(); + + expect(screen.getByTestId('options-filter-popover-button-assignees')).toBeInTheDocument(); + }); + }); + + describe('create case button', () => { + it('should not render the create case button when isSelectorView is false and onCreateCasePressed are not passed', () => { + appMockRender.render(); + expect(screen.queryByTestId('cases-table-add-case-filter-bar')).not.toBeInTheDocument(); + }); + + it('should render the create case button when isSelectorView is true and onCreateCasePressed are passed', () => { + const onCreateCasePressed = jest.fn(); + appMockRender.render( + + ); + expect(screen.getByTestId('cases-table-add-case-filter-bar')).toBeInTheDocument(); + }); - expect(result.getByTestId('options-filter-popover-button-assignees')).toBeInTheDocument(); + it('should call the onCreateCasePressed when create case is clicked', async () => { + const onCreateCasePressed = jest.fn(); + appMockRender.render( + + ); + + userEvent.click(screen.getByTestId('cases-table-add-case-filter-bar')); + + await waitForComponentToUpdate(); + // NOTE: intentionally checking no arguments are passed + expect(onCreateCasePressed).toHaveBeenCalledWith(); }); }); }); diff --git a/x-pack/plugins/cases/public/components/all_cases/table_filters.tsx b/x-pack/plugins/cases/public/components/all_cases/table_filters.tsx index 5032922a06d125..41c46d5137e980 100644 --- a/x-pack/plugins/cases/public/components/all_cases/table_filters.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/table_filters.tsx @@ -15,6 +15,7 @@ import { StatusAll } from '../../../common/ui/types'; import { CaseStatuses } from '../../../common/api'; import type { FilterOptions } from '../../containers/types'; import { FilterPopover } from '../filter_popover'; +import { SolutionFilter } from './solution_filter'; import { StatusFilter } from './status_filter'; import * as i18n from './translations'; import { SeverityFilter } from './severity_filter'; @@ -24,6 +25,7 @@ import { AssigneesFilterPopover } from './assignees_filter'; import type { CurrentUserProfile } from '../types'; import { useCasesFeatures } from '../../common/use_cases_features'; import type { AssigneesFilteringSelection } from '../user_profiles/types'; +import type { Solution } from './types'; interface CasesTableFiltersProps { countClosedCases: number | null; @@ -32,8 +34,8 @@ interface CasesTableFiltersProps { onFilterChanged: (filterOptions: Partial) => void; initial: FilterOptions; hiddenStatuses?: CaseStatusWithAllStatus[]; - availableSolutions: string[]; - displayCreateCaseButton?: boolean; + availableSolutions: Solution[]; + isSelectorView?: boolean; onCreateCasePressed?: () => void; isLoading: boolean; currentUserProfile: CurrentUserProfile; @@ -60,7 +62,7 @@ const CasesTableFiltersComponent = ({ initial = DEFAULT_FILTER_OPTIONS, hiddenStatuses, availableSolutions, - displayCreateCaseButton, + isSelectorView = false, onCreateCasePressed, isLoading, currentUserProfile, @@ -156,6 +158,18 @@ const CasesTableFiltersComponent = ({ + {isSelectorView && onCreateCasePressed ? ( + + + {i18n.CREATE_CASE_TITLE} + + + ) : null} - {caseAssignmentAuthorized ? ( + {caseAssignmentAuthorized && !isSelectorView ? ( {availableSolutions.length > 1 && ( - - {displayCreateCaseButton && onCreateCasePressed ? ( - - - {i18n.CREATE_CASE_TITLE} - - - ) : null} ); }; diff --git a/x-pack/plugins/cases/public/components/all_cases/types.ts b/x-pack/plugins/cases/public/components/all_cases/types.ts index 50145221775705..7cf9c410ec073c 100644 --- a/x-pack/plugins/cases/public/components/all_cases/types.ts +++ b/x-pack/plugins/cases/public/components/all_cases/types.ts @@ -24,3 +24,8 @@ export interface EuiBasicTableOnChange { }; sort?: EuiBasicTableSortTypes; } +export interface Solution { + id: string; + label: string; + iconType: string; +} diff --git a/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.test.tsx b/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.test.tsx index f11794bcf13e26..060ac64cafb086 100644 --- a/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.test.tsx @@ -97,7 +97,6 @@ describe('useCasesColumns ', () => { "name": "Updated on", "render": [Function], "sortable": true, - "width": undefined, }, Object { "name": "External Incident", @@ -148,38 +147,7 @@ describe('useCasesColumns ', () => { "name": "Name", "render": [Function], "sortable": true, - "width": undefined, - }, - Object { - "field": "assignees", - "name": "Assignees", - "render": [Function], - "width": undefined, - }, - Object { - "field": "tags", - "name": "Tags", - "render": [Function], - "width": undefined, - }, - Object { - "align": "right", - "field": "totalAlerts", - "name": "Alerts", - "render": [Function], - "width": "55px", - }, - Object { - "align": "right", - "field": "owner", - "name": "Solution", - "render": [Function], - }, - Object { - "align": "right", - "field": "totalComment", - "name": "Comments", - "render": [Function], + "width": "55%", }, Object { "field": "createdAt", @@ -187,24 +155,6 @@ describe('useCasesColumns ', () => { "render": [Function], "sortable": true, }, - Object { - "field": "updatedAt", - "name": "Updated on", - "render": [Function], - "sortable": true, - "width": "80px", - }, - Object { - "name": "External Incident", - "render": [Function], - "width": "80px", - }, - Object { - "field": "status", - "name": "Status", - "render": [Function], - "sortable": true, - }, Object { "field": "severity", "name": "Severity", @@ -280,7 +230,6 @@ describe('useCasesColumns ', () => { "name": "Updated on", "render": [Function], "sortable": true, - "width": undefined, }, Object { "name": "External Incident", @@ -365,7 +314,6 @@ describe('useCasesColumns ', () => { "name": "Updated on", "render": [Function], "sortable": true, - "width": undefined, }, Object { "name": "External Incident", @@ -445,7 +393,6 @@ describe('useCasesColumns ', () => { "name": "Updated on", "render": [Function], "sortable": true, - "width": undefined, }, Object { "name": "External Incident", @@ -530,7 +477,6 @@ describe('useCasesColumns ', () => { "name": "Updated on", "render": [Function], "sortable": true, - "width": undefined, }, Object { "name": "External Incident", @@ -575,32 +521,7 @@ describe('useCasesColumns ', () => { "name": "Name", "render": [Function], "sortable": true, - "width": undefined, - }, - Object { - "field": "tags", - "name": "Tags", - "render": [Function], - "width": undefined, - }, - Object { - "align": "right", - "field": "totalAlerts", - "name": "Alerts", - "render": [Function], - "width": "55px", - }, - Object { - "align": "right", - "field": "owner", - "name": "Solution", - "render": [Function], - }, - Object { - "align": "right", - "field": "totalComment", - "name": "Comments", - "render": [Function], + "width": "55%", }, Object { "field": "createdAt", @@ -608,24 +529,6 @@ describe('useCasesColumns ', () => { "render": [Function], "sortable": true, }, - Object { - "field": "updatedAt", - "name": "Updated on", - "render": [Function], - "sortable": true, - "width": "80px", - }, - Object { - "name": "External Incident", - "render": [Function], - "width": "80px", - }, - Object { - "field": "status", - "name": "Status", - "render": [Function], - "sortable": true, - }, Object { "field": "severity", "name": "Severity", @@ -657,32 +560,7 @@ describe('useCasesColumns ', () => { "name": "Name", "render": [Function], "sortable": true, - "width": undefined, - }, - Object { - "field": "tags", - "name": "Tags", - "render": [Function], - "width": undefined, - }, - Object { - "align": "right", - "field": "totalAlerts", - "name": "Alerts", - "render": [Function], - "width": "55px", - }, - Object { - "align": "right", - "field": "owner", - "name": "Solution", - "render": [Function], - }, - Object { - "align": "right", - "field": "totalComment", - "name": "Comments", - "render": [Function], + "width": "55%", }, Object { "field": "createdAt", @@ -690,24 +568,6 @@ describe('useCasesColumns ', () => { "render": [Function], "sortable": true, }, - Object { - "field": "updatedAt", - "name": "Updated on", - "render": [Function], - "sortable": true, - "width": "80px", - }, - Object { - "name": "External Incident", - "render": [Function], - "width": "80px", - }, - Object { - "field": "status", - "name": "Status", - "render": [Function], - "sortable": true, - }, Object { "field": "severity", "name": "Severity", @@ -776,7 +636,6 @@ describe('useCasesColumns ', () => { "name": "Updated on", "render": [Function], "sortable": true, - "width": undefined, }, Object { "name": "External Incident", diff --git a/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.tsx b/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.tsx index a2760c71a8ef5f..1f267eca40a843 100644 --- a/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.tsx @@ -118,7 +118,7 @@ export const useCasesColumns = ({ render: (title: string, theCase: Case) => { if (theCase.id != null && theCase.title != null) { const caseDetailsLinkComponent = isSelectorView ? ( - + theCase.title ) : ( @@ -137,70 +137,72 @@ export const useCasesColumns = ({ } return getEmptyTagValue(); }, - width: !isSelectorView ? '20%' : undefined, + width: !isSelectorView ? '20%' : '55%', }, ]; - if (caseAssignmentAuthorized) { + if (caseAssignmentAuthorized && !isSelectorView) { columns.push({ field: 'assignees', name: i18n.ASSIGNEES, render: (assignees: Case['assignees']) => ( ), - width: !isSelectorView ? '180px' : undefined, + width: '180px', }); } - columns.push({ - field: 'tags', - name: i18n.TAGS, - render: (tags: Case['tags']) => { - if (tags != null && tags.length > 0) { - const clampedBadges = ( - - {tags.map((tag: string, i: number) => ( - - {tag} - - ))} - - ); + if (!isSelectorView) { + columns.push({ + field: 'tags', + name: i18n.TAGS, + render: (tags: Case['tags']) => { + if (tags != null && tags.length > 0) { + const clampedBadges = ( + + {tags.map((tag: string, i: number) => ( + + {tag} + + ))} + + ); - const unclampedBadges = ( - - {tags.map((tag: string, i: number) => ( - - {tag} - - ))} - - ); + const unclampedBadges = ( + + {tags.map((tag: string, i: number) => ( + + {tag} + + ))} + + ); - return ( - - {clampedBadges} - - ); - } - return getEmptyTagValue(); - }, - width: !isSelectorView ? '15%' : undefined, - }); + return ( + + {clampedBadges} + + ); + } + return getEmptyTagValue(); + }, + width: '15%', + }); + } - if (isAlertsEnabled) { + if (isAlertsEnabled && !isSelectorView) { columns.push({ align: RIGHT_ALIGNMENT, field: 'totalAlerts', @@ -213,7 +215,7 @@ export const useCasesColumns = ({ }); } - if (showSolutionColumn) { + if (showSolutionColumn && !isSelectorView) { columns.push({ align: RIGHT_ALIGNMENT, field: 'owner', @@ -234,15 +236,17 @@ export const useCasesColumns = ({ }); } - columns.push({ - align: RIGHT_ALIGNMENT, - field: 'totalComment', - name: i18n.COMMENTS, - render: (totalComment: Case['totalComment']) => - totalComment != null - ? renderStringField(`${totalComment}`, `case-table-column-commentCount`) - : getEmptyTagValue(), - }); + if (!isSelectorView) { + columns.push({ + align: RIGHT_ALIGNMENT, + field: 'totalComment', + name: i18n.COMMENTS, + render: (totalComment: Case['totalComment']) => + totalComment != null + ? renderStringField(`${totalComment}`, `case-table-column-commentCount`) + : getEmptyTagValue(), + }); + } if (filterStatus === CaseStatuses.closed) { columns.push({ @@ -278,67 +282,70 @@ export const useCasesColumns = ({ }); } + if (!isSelectorView) { + columns.push({ + field: 'updatedAt', + name: i18n.UPDATED_ON, + sortable: true, + render: (updatedAt: Case['updatedAt']) => { + if (updatedAt != null) { + return ( + + + + ); + } + return getEmptyTagValue(); + }, + }); + } + + if (!isSelectorView) { + columns.push( + { + name: i18n.EXTERNAL_INCIDENT, + render: (theCase: Case) => { + if (theCase.id != null) { + return ; + } + return getEmptyTagValue(); + }, + width: isSelectorView ? '80px' : undefined, + }, + { + field: 'status', + name: i18n.STATUS, + sortable: true, + render: (status: Case['status']) => { + if (status != null) { + return ; + } + + return getEmptyTagValue(); + }, + } + ); + } columns.push({ - field: 'updatedAt', - name: i18n.UPDATED_ON, + field: 'severity', + name: i18n.SEVERITY, sortable: true, - render: (updatedAt: Case['updatedAt']) => { - if (updatedAt != null) { + render: (severity: Case['severity']) => { + if (severity != null) { + const severityData = severities[severity ?? CaseSeverity.LOW]; return ( - - - + + {severityData.label} + ); } return getEmptyTagValue(); }, - width: isSelectorView ? '80px' : undefined, }); - columns.push( - { - name: i18n.EXTERNAL_INCIDENT, - render: (theCase: Case) => { - if (theCase.id != null) { - return ; - } - return getEmptyTagValue(); - }, - width: isSelectorView ? '80px' : undefined, - }, - { - field: 'status', - name: i18n.STATUS, - sortable: true, - render: (status: Case['status']) => { - if (status != null) { - return ; - } - - return getEmptyTagValue(); - }, - }, - { - field: 'severity', - name: i18n.SEVERITY, - sortable: true, - render: (severity: Case['severity']) => { - if (severity != null) { - const severityData = severities[severity ?? CaseSeverity.LOW]; - return ( - - {severityData.label} - - ); - } - return getEmptyTagValue(); - }, - } - ); - if (isSelectorView) { columns.push({ align: RIGHT_ALIGNMENT, @@ -351,7 +358,6 @@ export const useCasesColumns = ({ assignCaseAction(theCase); }} size="s" - fill={true} > {i18n.SELECT} diff --git a/x-pack/plugins/cases/public/components/case_action_bar/actions.test.tsx b/x-pack/plugins/cases/public/components/case_action_bar/actions.test.tsx index 195d02f7931cf2..e04070fecf9ff0 100644 --- a/x-pack/plugins/cases/public/components/case_action_bar/actions.test.tsx +++ b/x-pack/plugins/cases/public/components/case_action_bar/actions.test.tsx @@ -46,8 +46,11 @@ describe('CaseView actions', () => { ); expect(wrapper.find('[data-test-subj="confirm-delete-case-modal"]').exists()).toBeFalsy(); - wrapper.find('button[data-test-subj="property-actions-ellipses"]').first().simulate('click'); - wrapper.find('button[data-test-subj="property-actions-trash"]').simulate('click'); + wrapper + .find('button[data-test-subj="property-actions-case-ellipses"]') + .first() + .simulate('click'); + wrapper.find('button[data-test-subj="property-actions-case-trash"]').simulate('click'); expect(wrapper.find('[data-test-subj="confirm-delete-case-modal"]').exists()).toBeTruthy(); }); @@ -67,8 +70,11 @@ describe('CaseView actions', () => { ); - wrapper.find('button[data-test-subj="property-actions-ellipses"]').first().simulate('click'); - wrapper.find('button[data-test-subj="property-actions-copyClipboard"]').simulate('click'); + wrapper + .find('button[data-test-subj="property-actions-case-ellipses"]') + .first() + .simulate('click'); + wrapper.find('button[data-test-subj="property-actions-case-copyClipboard"]').simulate('click'); expect(navigator.clipboard.writeText).toHaveBeenCalledWith(basicCase.id); @@ -85,9 +91,14 @@ describe('CaseView actions', () => { ); expect(wrapper.find('[data-test-subj="confirm-delete-case-modal"]').exists()).toBeFalsy(); - wrapper.find('button[data-test-subj="property-actions-ellipses"]').first().simulate('click'); - expect(wrapper.find('[data-test-subj="property-actions-trash"]').exists()).toBeFalsy(); - expect(wrapper.find('[data-test-subj="property-actions-copyClipboard"]').exists()).toBeTruthy(); + wrapper + .find('button[data-test-subj="property-actions-case-ellipses"]') + .first() + .simulate('click'); + expect(wrapper.find('[data-test-subj="property-actions-case-trash"]').exists()).toBeFalsy(); + expect( + wrapper.find('[data-test-subj="property-actions-case-copyClipboard"]').exists() + ).toBeTruthy(); }); it('toggle delete modal and confirm', async () => { @@ -101,8 +112,11 @@ describe('CaseView actions', () => { ); - wrapper.find('button[data-test-subj="property-actions-ellipses"]').first().simulate('click'); - wrapper.find('button[data-test-subj="property-actions-trash"]').simulate('click'); + wrapper + .find('button[data-test-subj="property-actions-case-ellipses"]') + .first() + .simulate('click'); + wrapper.find('button[data-test-subj="property-actions-case-trash"]').simulate('click'); expect(wrapper.find('[data-test-subj="confirm-delete-case-modal"]').exists()).toBeTruthy(); wrapper.find('button[data-test-subj="confirmModalConfirmButton"]').simulate('click'); @@ -126,9 +140,12 @@ describe('CaseView actions', () => { expect(wrapper.find('[data-test-subj="confirm-delete-case-modal"]').exists()).toBeFalsy(); - wrapper.find('button[data-test-subj="property-actions-ellipses"]').first().simulate('click'); + wrapper + .find('button[data-test-subj="property-actions-case-ellipses"]') + .first() + .simulate('click'); expect( - wrapper.find('[data-test-subj="property-actions-popout"]').first().prop('aria-label') + wrapper.find('[data-test-subj="property-actions-case-popout"]').first().prop('aria-label') ).toEqual(i18n.VIEW_INCIDENT(basicPush.externalTitle)); }); }); diff --git a/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx b/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx index d464946b60f821..87cd1fc732a30d 100644 --- a/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx +++ b/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx @@ -84,7 +84,7 @@ const ActionsComponent: React.FC = ({ caseData, currentExternal return ( - + {isModalVisible ? ( { ); - userEvent.click(screen.getByTestId('property-actions-ellipses')); + userEvent.click(screen.getByTestId('property-actions-case-ellipses')); expect(queryByText('Delete case')).not.toBeInTheDocument(); - expect(queryByTestId('property-actions-trash')).not.toBeInTheDocument(); - expect(queryByTestId('property-actions-copyClipboard')).toBeInTheDocument(); + expect(queryByTestId('property-actions-case-trash')).not.toBeInTheDocument(); + expect(queryByTestId('property-actions-case-copyClipboard')).toBeInTheDocument(); }); it('should show the the delete item in the menu when the user does have delete privileges', () => { @@ -220,7 +220,7 @@ describe('CaseActionBar', () => { ); - userEvent.click(screen.getByTestId('property-actions-ellipses')); + userEvent.click(screen.getByTestId('property-actions-case-ellipses')); expect(queryByText('Delete case')).toBeInTheDocument(); }); @@ -239,10 +239,10 @@ describe('CaseActionBar', () => { ); - userEvent.click(screen.getByTestId('property-actions-ellipses')); + userEvent.click(screen.getByTestId('property-actions-case-ellipses')); await waitFor(() => { - expect(screen.getByTestId('property-actions-popout')).toBeInTheDocument(); + expect(screen.getByTestId('property-actions-case-popout')).toBeInTheDocument(); }); }); @@ -253,8 +253,8 @@ describe('CaseActionBar', () => { ); - userEvent.click(screen.getByTestId('property-actions-ellipses')); + userEvent.click(screen.getByTestId('property-actions-case-ellipses')); - expect(screen.queryByTestId('property-actions-popout')).not.toBeInTheDocument(); + expect(screen.queryByTestId('property-actions-case-popout')).not.toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cases/public/components/create/assignees.tsx b/x-pack/plugins/cases/public/components/create/assignees.tsx index 8634d60d70e851..3c5b0bc9b119dc 100644 --- a/x-pack/plugins/cases/public/components/create/assignees.tsx +++ b/x-pack/plugins/cases/public/components/create/assignees.tsx @@ -9,10 +9,12 @@ import { isEmpty } from 'lodash'; import React, { memo, useCallback, useState } from 'react'; import type { EuiComboBoxOptionOption } from '@elastic/eui'; import { + EuiFlexGroup, + EuiFlexItem, + EuiHighlight, EuiComboBox, EuiFormRow, EuiLink, - EuiSelectableListItem, EuiTextColor, } from '@elastic/eui'; import type { UserProfileWithAvatar, UserProfile } from '@kbn/user-profile-components'; @@ -113,18 +115,42 @@ const AssigneesFieldComponent: React.FC = React.memo( const renderOption = useCallback( (option: EuiComboBoxOptionOption, searchValue: string, contentClassName: string) => { - const { user, data, value } = option as EuiComboBoxOptionOption & - UserProfileWithAvatar; + const { user, data } = option as EuiComboBoxOptionOption & UserProfileWithAvatar; + + const displayName = getUserDisplayName(user); return ( - } - className={contentClassName} - append={{user.email}} + - {getUserDisplayName(user)} - + + + + + + + {displayName} + + + {user.email && user.email !== displayName ? ( + + + + {user.email} + + + + ) : null} + + ); }, [] @@ -165,6 +191,7 @@ const AssigneesFieldComponent: React.FC = React.memo( onChange={onComboChange} onSearchChange={onSearchComboChange} renderOption={renderOption} + rowHeight={35} /> ); diff --git a/x-pack/plugins/cases/public/components/filter_popover/index.test.tsx b/x-pack/plugins/cases/public/components/filter_popover/index.test.tsx new file mode 100644 index 00000000000000..a6c6de8f197707 --- /dev/null +++ b/x-pack/plugins/cases/public/components/filter_popover/index.test.tsx @@ -0,0 +1,113 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl'; + +import type { AppMockRenderer } from '../../common/mock'; +import { createAppMockRenderer } from '../../common/mock'; + +import { FilterPopover } from '.'; +import userEvent from '@testing-library/user-event'; + +describe('FilterPopover ', () => { + let appMockRender: AppMockRenderer; + const onSelectedOptionsChanged = jest.fn(); + const tags: string[] = ['coke', 'pepsi']; + + beforeEach(() => { + appMockRender = createAppMockRenderer(); + jest.clearAllMocks(); + }); + + it('renders button label correctly', () => { + const { getByTestId } = appMockRender.render( + + ); + + expect(getByTestId('options-filter-popover-button-Tags')).toBeInTheDocument(); + }); + + it('renders empty label correctly', async () => { + const { getByTestId, getByText } = appMockRender.render( + + ); + + userEvent.click(getByTestId('options-filter-popover-button-Tags')); + + await waitForEuiPopoverOpen(); + + expect(getByText('No options available')).toBeInTheDocument(); + }); + + it('renders string type options correctly', async () => { + const { getByTestId } = appMockRender.render( + + ); + + userEvent.click(getByTestId('options-filter-popover-button-Tags')); + + await waitForEuiPopoverOpen(); + + expect(getByTestId(`options-filter-popover-item-${tags[0]}`)).toBeInTheDocument(); + expect(getByTestId(`options-filter-popover-item-${tags[1]}`)).toBeInTheDocument(); + }); + + it('should call onSelectionChange with selected option', async () => { + const { getByTestId } = appMockRender.render( + + ); + + userEvent.click(getByTestId('options-filter-popover-button-Tags')); + + await waitForEuiPopoverOpen(); + + userEvent.click(getByTestId(`options-filter-popover-item-${tags[0]}`)); + + expect(onSelectedOptionsChanged).toHaveBeenCalledWith([tags[0]]); + }); + + it('should call onSelectionChange with empty array when option is deselected', async () => { + const { getByTestId } = appMockRender.render( + + ); + + userEvent.click(getByTestId('options-filter-popover-button-Tags')); + + await waitForEuiPopoverOpen(); + + userEvent.click(getByTestId(`options-filter-popover-item-${tags[0]}`)); + + expect(onSelectedOptionsChanged).toHaveBeenCalledWith([]); + }); +}); diff --git a/x-pack/plugins/cases/public/components/property_actions/index.tsx b/x-pack/plugins/cases/public/components/property_actions/index.tsx index 61f4c4b6f2cfe8..4de52d551bf2fa 100644 --- a/x-pack/plugins/cases/public/components/property_actions/index.tsx +++ b/x-pack/plugins/cases/public/components/property_actions/index.tsx @@ -17,86 +17,101 @@ export interface PropertyActionButtonProps { iconType: string; label: string; color?: EuiButtonProps['color']; + customDataTestSubj?: string; } const ComponentId = 'property-actions'; const PropertyActionButton = React.memo( - ({ disabled = false, onClick, iconType, label, color }) => ( - - {label} - - ) + ({ disabled = false, onClick, iconType, label, color, customDataTestSubj }) => { + const dataTestSubjPrepend = makeDataTestSubjPrepend(customDataTestSubj); + + return ( + + {label} + + ); + } ); PropertyActionButton.displayName = 'PropertyActionButton'; export interface PropertyActionsProps { propertyActions: PropertyActionButtonProps[]; + customDataTestSubj?: string; } -export const PropertyActions = React.memo(({ propertyActions }) => { - const [showActions, setShowActions] = useState(false); +export const PropertyActions = React.memo( + ({ propertyActions, customDataTestSubj }) => { + const [showActions, setShowActions] = useState(false); - const onButtonClick = useCallback(() => { - setShowActions((prevShowActions) => !prevShowActions); - }, []); + const onButtonClick = useCallback(() => { + setShowActions((prevShowActions) => !prevShowActions); + }, []); - const onClosePopover = useCallback((cb?: () => void) => { - setShowActions(false); - if (cb != null) { - cb(); - } - }, []); - - return ( - + const onClosePopover = useCallback((cb?: () => void) => { + setShowActions(false); + if (cb != null) { + cb(); } - id="settingsPopover" - isOpen={showActions} - closePopover={onClosePopover} - repositionOnScroll - > - + } + id="settingsPopover" + isOpen={showActions} + closePopover={onClosePopover} + repositionOnScroll > - {propertyActions.map((action, key) => ( - - - onClosePopover(action.onClick)} - /> - - - ))} - - - ); -}); + + {propertyActions.map((action, key) => ( + + + onClosePopover(action.onClick)} + customDataTestSubj={customDataTestSubj} + /> + + + ))} + + + ); + } +); PropertyActions.displayName = 'PropertyActions'; + +const makeDataTestSubjPrepend = (customDataTestSubj?: string) => { + return customDataTestSubj == null ? ComponentId : `${ComponentId}-${customDataTestSubj}`; +}; diff --git a/x-pack/plugins/cases/public/components/user_actions/comment/comment.test.tsx b/x-pack/plugins/cases/public/components/user_actions/comment/comment.test.tsx index 77f1af32529e4e..2ecc4b32d0837a 100644 --- a/x-pack/plugins/cases/public/components/user_actions/comment/comment.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/comment/comment.test.tsx @@ -223,13 +223,13 @@ describe('createCommentUserActionBuilder', () => { ); expect(result.getByText('Solve this fast!')).toBeInTheDocument(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-pencil')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-pencil')); + expect(result.queryByTestId('property-actions-user-action-pencil')).toBeInTheDocument(); + userEvent.click(result.getByTestId('property-actions-user-action-pencil')); await waitFor(() => { expect(builderArgs.handleManageMarkdownEditId).toHaveBeenCalledWith('basic-comment-id'); @@ -254,13 +254,13 @@ describe('createCommentUserActionBuilder', () => { ); expect(result.getByText('Solve this fast!')).toBeInTheDocument(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-quote')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-quote')); + expect(result.queryByTestId('property-actions-user-action-quote')).toBeInTheDocument(); + userEvent.click(result.getByTestId('property-actions-user-action-quote')); await waitFor(() => { expect(builderArgs.handleManageQuote).toHaveBeenCalledWith('Solve this fast!'); @@ -769,14 +769,14 @@ describe('createCommentUserActionBuilder', () => { }); const deleteAttachment = async (result: RenderResult, deleteIcon: string, buttonLabel: string) => { - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId(`property-actions-${deleteIcon}`)).toBeInTheDocument(); + expect(result.queryByTestId(`property-actions-user-action-${deleteIcon}`)).toBeInTheDocument(); - userEvent.click(result.getByTestId(`property-actions-${deleteIcon}`)); + userEvent.click(result.getByTestId(`property-actions-user-action-${deleteIcon}`)); await waitFor(() => { expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); diff --git a/x-pack/plugins/cases/public/components/user_actions/description.test.tsx b/x-pack/plugins/cases/public/components/user_actions/description.test.tsx index 9fddcbb3cce6a2..5b519b6739bdd4 100644 --- a/x-pack/plugins/cases/public/components/user_actions/description.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/description.test.tsx @@ -58,13 +58,13 @@ describe('createDescriptionUserActionBuilder ', () => { ); - expect(res.getByTestId('property-actions')).toBeInTheDocument(); + expect(res.getByTestId('property-actions-description')).toBeInTheDocument(); - userEvent.click(res.getByTestId('property-actions-ellipses')); + userEvent.click(res.getByTestId('property-actions-description-ellipses')); await waitForEuiPopoverOpen(); - expect(res.queryByTestId('property-actions-pencil')).toBeInTheDocument(); - userEvent.click(res.getByTestId('property-actions-pencil')); + expect(res.queryByTestId('property-actions-description-pencil')).toBeInTheDocument(); + userEvent.click(res.getByTestId('property-actions-description-pencil')); await waitFor(() => { expect(builderArgs.handleManageMarkdownEditId).toHaveBeenCalledWith('description'); @@ -84,13 +84,13 @@ describe('createDescriptionUserActionBuilder ', () => { ); - expect(res.getByTestId('property-actions')).toBeInTheDocument(); + expect(res.getByTestId('property-actions-description')).toBeInTheDocument(); - userEvent.click(res.getByTestId('property-actions-ellipses')); + userEvent.click(res.getByTestId('property-actions-description-ellipses')); await waitForEuiPopoverOpen(); - expect(res.queryByTestId('property-actions-quote')).toBeInTheDocument(); - userEvent.click(res.getByTestId('property-actions-quote')); + expect(res.queryByTestId('property-actions-description-quote')).toBeInTheDocument(); + userEvent.click(res.getByTestId('property-actions-description-quote')); await waitFor(() => { expect(builderArgs.handleManageQuote).toHaveBeenCalledWith('Security banana Issue'); diff --git a/x-pack/plugins/cases/public/components/user_actions/index.test.tsx b/x-pack/plugins/cases/public/components/user_actions/index.test.tsx index 2cfc535940f45d..8923a45c48c2ab 100644 --- a/x-pack/plugins/cases/public/components/user_actions/index.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/index.test.tsx @@ -197,13 +197,13 @@ describe(`UserActions`, () => { wrapper .find( - `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-ellipses"]` + `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-user-action-ellipses"]` ) .first() .simulate('click'); wrapper .find( - `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-pencil"]` + `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-user-action-pencil"]` ) .first() .simulate('click'); @@ -241,14 +241,14 @@ describe(`UserActions`, () => { wrapper .find( - `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-ellipses"]` + `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-user-action-ellipses"]` ) .first() .simulate('click'); wrapper .find( - `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-pencil"]` + `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-user-action-pencil"]` ) .first() .simulate('click'); @@ -293,12 +293,16 @@ describe(`UserActions`, () => { ); wrapper - .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-ellipses"]`) + .find( + `[data-test-subj="description-action"] [data-test-subj="property-actions-description-ellipses"]` + ) .first() .simulate('click'); wrapper - .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-pencil"]`) + .find( + `[data-test-subj="description-action"] [data-test-subj="property-actions-description-pencil"]` + ) .first() .simulate('click'); @@ -341,12 +345,16 @@ describe(`UserActions`, () => { expect(wrapper.find(`.euiMarkdownEditorTextArea`).text()).not.toContain(quoteableText); wrapper - .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-ellipses"]`) + .find( + `[data-test-subj="description-action"] [data-test-subj="property-actions-description-ellipses"]` + ) .first() .simulate('click'); wrapper - .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-quote"]`) + .find( + `[data-test-subj="description-action"] [data-test-subj="property-actions-description-quote"]` + ) .first() .simulate('click'); @@ -402,14 +410,14 @@ describe(`UserActions`, () => { wrapper .find( - `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-ellipses"]` + `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-user-action-ellipses"]` ) .first() .simulate('click'); wrapper .find( - `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-pencil"]` + `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="property-actions-user-action-pencil"]` ) .first() .simulate('click'); @@ -463,12 +471,16 @@ describe(`UserActions`, () => { .simulate('change', { target: { value: newComment } }); wrapper - .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-ellipses"]`) + .find( + `[data-test-subj="description-action"] [data-test-subj="property-actions-description-ellipses"]` + ) .first() .simulate('click'); wrapper - .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-pencil"]`) + .find( + `[data-test-subj="description-action"] [data-test-subj="property-actions-description-pencil"]` + ) .first() .simulate('click'); diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/alert_property_actions.test.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/alert_property_actions.test.tsx index dc8a57b8477f63..79636d52572baa 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/alert_property_actions.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/alert_property_actions.test.tsx @@ -34,26 +34,26 @@ describe('AlertPropertyActions', () => { it('renders the correct number of actions', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.getByTestId('property-actions-group').children.length).toBe(1); - expect(result.queryByTestId('property-actions-minusInCircle')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action-group').children.length).toBe(1); + expect(result.queryByTestId('property-actions-user-action-minusInCircle')).toBeInTheDocument(); }); it('renders the modal info correctly for one alert', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-minusInCircle')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-minusInCircle')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-minusInCircle')); + userEvent.click(result.getByTestId('property-actions-user-action-minusInCircle')); await waitFor(() => { expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); @@ -66,14 +66,14 @@ describe('AlertPropertyActions', () => { it('renders the modal info correctly for multiple alert', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-minusInCircle')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-minusInCircle')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-minusInCircle')); + userEvent.click(result.getByTestId('property-actions-user-action-minusInCircle')); await waitFor(() => { expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); @@ -86,14 +86,14 @@ describe('AlertPropertyActions', () => { it('remove alerts correctly', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-minusInCircle')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-minusInCircle')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-minusInCircle')); + userEvent.click(result.getByTestId('property-actions-user-action-minusInCircle')); await waitFor(() => { expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); @@ -107,13 +107,13 @@ describe('AlertPropertyActions', () => { appMock = createAppMockRenderer({ permissions: noCasesPermissions() }); const result = appMock.render(); - expect(result.queryByTestId('property-actions')).not.toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); }); it('does show the property actions with only delete permissions', async () => { appMock = createAppMockRenderer({ permissions: onlyDeleteCasesPermission() }); const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/description_property_actions.test.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/description_property_actions.test.tsx index bfaa349caf46f4..4a164c5e1fbdaf 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/description_property_actions.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/description_property_actions.test.tsx @@ -29,27 +29,27 @@ describe('DescriptionPropertyActions', () => { it('renders the correct number of actions', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-description')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-description-ellipses')); await waitForEuiPopoverOpen(); - expect(result.getByTestId('property-actions-group').children.length).toBe(2); - expect(result.queryByTestId('property-actions-pencil')).toBeInTheDocument(); - expect(result.queryByTestId('property-actions-quote')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-description-group').children.length).toBe(2); + expect(result.queryByTestId('property-actions-description-pencil')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-description-quote')).toBeInTheDocument(); }); it('edits the description correctly', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-description')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-description-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-pencil')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-description-pencil')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-pencil')); + userEvent.click(result.getByTestId('property-actions-description-pencil')); expect(props.onEdit).toHaveBeenCalled(); }); @@ -57,14 +57,14 @@ describe('DescriptionPropertyActions', () => { it('quotes the description correctly', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-description')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-description-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-quote')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-description-quote')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-quote')); + userEvent.click(result.getByTestId('property-actions-description-quote')); expect(props.onQuote).toHaveBeenCalled(); }); @@ -73,6 +73,6 @@ describe('DescriptionPropertyActions', () => { appMock = createAppMockRenderer({ permissions: noCasesPermissions() }); const result = appMock.render(); - expect(result.queryByTestId('property-actions')).not.toBeInTheDocument(); + expect(result.queryByTestId('property-actions-description')).not.toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/description_property_actions.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/description_property_actions.tsx index 5ef72a55901407..1b948f57e64488 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/description_property_actions.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/description_property_actions.tsx @@ -45,7 +45,13 @@ const DescriptionPropertyActionsComponent: React.FC = ({ isLoading, onEdi ]; }, [permissions.update, permissions.create, onEdit, onQuote]); - return ; + return ( + + ); }; DescriptionPropertyActionsComponent.displayName = 'DescriptionPropertyActions'; diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/property_actions.test.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/property_actions.test.tsx index c7cfdb25bb3590..ca310ab5121aa3 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/property_actions.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/property_actions.test.tsx @@ -36,19 +36,19 @@ describe('UserActionPropertyActions', () => { const result = appMock.render(); expect(result.getByTestId('user-action-title-loading')).toBeInTheDocument(); - expect(result.queryByTestId('property-actions')).not.toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); }); it('renders the property actions', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.getByTestId('property-actions-group').children.length).toBe(1); - expect(result.queryByTestId('property-actions-pencil')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action-group').children.length).toBe(1); + expect(result.queryByTestId('property-actions-user-action-pencil')).toBeInTheDocument(); }); it('does not render if properties are empty', async () => { @@ -56,7 +56,7 @@ describe('UserActionPropertyActions', () => { ); - expect(result.queryByTestId('property-actions')).not.toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); expect(result.queryByTestId('user-action-title-loading')).not.toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/property_actions.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/property_actions.tsx index abf897404711a7..975a8670ab0969 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/property_actions.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/property_actions.tsx @@ -13,9 +13,14 @@ import { PropertyActions } from '../../property_actions'; interface Props { isLoading: boolean; propertyActions: PropertyActionButtonProps[]; + customDataTestSubj?: string; } -const UserActionPropertyActionsComponent: React.FC = ({ isLoading, propertyActions }) => { +const UserActionPropertyActionsComponent: React.FC = ({ + isLoading, + propertyActions, + customDataTestSubj = 'user-action', +}) => { if (propertyActions.length === 0) { return null; } @@ -25,7 +30,10 @@ const UserActionPropertyActionsComponent: React.FC = ({ isLoading, proper {isLoading ? ( ) : ( - + )} ); diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx index a756f43893e03e..9e391fa6e7042b 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx @@ -33,26 +33,26 @@ describe('RegisteredAttachmentsPropertyActions', () => { it('renders the correct number of actions', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.getByTestId('property-actions-group').children.length).toBe(1); - expect(result.queryByTestId('property-actions-trash')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action-group').children.length).toBe(1); + expect(result.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); }); it('renders the modal info correctly', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-trash')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-trash')); + userEvent.click(result.getByTestId('property-actions-user-action-trash')); await waitFor(() => { expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); @@ -65,14 +65,14 @@ describe('RegisteredAttachmentsPropertyActions', () => { it('remove attachments correctly', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-trash')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-trash')); + userEvent.click(result.getByTestId('property-actions-user-action-trash')); await waitFor(() => { expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); @@ -86,13 +86,13 @@ describe('RegisteredAttachmentsPropertyActions', () => { appMock = createAppMockRenderer({ permissions: noCasesPermissions() }); const result = appMock.render(); - expect(result.queryByTestId('property-actions')).not.toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); }); it('does show the property actions with only delete permissions', async () => { appMock = createAppMockRenderer({ permissions: onlyDeleteCasesPermission() }); const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/user_comment_property_actions.test.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/user_comment_property_actions.test.tsx index 557dae707c20f2..643662dfbc3f76 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/user_comment_property_actions.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/user_comment_property_actions.test.tsx @@ -35,28 +35,28 @@ describe('UserCommentPropertyActions', () => { it('renders the correct number of actions', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.getByTestId('property-actions-group').children.length).toBe(3); - expect(result.queryByTestId('property-actions-pencil')).toBeInTheDocument(); - expect(result.queryByTestId('property-actions-trash')).toBeInTheDocument(); - expect(result.queryByTestId('property-actions-quote')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action-group').children.length).toBe(3); + expect(result.queryByTestId('property-actions-user-action-pencil')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-quote')).toBeInTheDocument(); }); it('edits the comment correctly', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-pencil')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-pencil')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-pencil')); + userEvent.click(result.getByTestId('property-actions-user-action-pencil')); expect(props.onEdit).toHaveBeenCalled(); }); @@ -64,14 +64,14 @@ describe('UserCommentPropertyActions', () => { it('quotes the comment correctly', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-quote')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-quote')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-quote')); + userEvent.click(result.getByTestId('property-actions-user-action-quote')); expect(props.onQuote).toHaveBeenCalled(); }); @@ -79,14 +79,14 @@ describe('UserCommentPropertyActions', () => { it('deletes the comment correctly', async () => { const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-ellipses')); + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-trash')).toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-trash')); + userEvent.click(result.getByTestId('property-actions-user-action-trash')); await waitFor(() => { expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); @@ -100,13 +100,13 @@ describe('UserCommentPropertyActions', () => { appMock = createAppMockRenderer({ permissions: noCasesPermissions() }); const result = appMock.render(); - expect(result.queryByTestId('property-actions')).not.toBeInTheDocument(); + expect(result.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); }); it('does show the property actions with only delete permissions', async () => { appMock = createAppMockRenderer({ permissions: onlyDeleteCasesPermission() }); const result = appMock.render(); - expect(result.getByTestId('property-actions')).toBeInTheDocument(); + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cases/public/containers/use_bulk_update_case.test.tsx b/x-pack/plugins/cases/public/containers/use_bulk_update_case.test.tsx index be89dc92f9d060..06d641e753dceb 100644 --- a/x-pack/plugins/cases/public/containers/use_bulk_update_case.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_bulk_update_case.test.tsx @@ -74,7 +74,10 @@ describe('useUpdateCases', () => { await waitForNextUpdate(); - expect(addSuccess).toHaveBeenCalledWith('Success title'); + expect(addSuccess).toHaveBeenCalledWith({ + title: 'Success title', + className: 'eui-textBreakWord', + }); }); it('shows a toast error when the api return an error', async () => { diff --git a/x-pack/plugins/cases/public/containers/use_delete_cases.test.tsx b/x-pack/plugins/cases/public/containers/use_delete_cases.test.tsx index 2059b7331e2983..6df1c886f146e8 100644 --- a/x-pack/plugins/cases/public/containers/use_delete_cases.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_delete_cases.test.tsx @@ -74,7 +74,10 @@ describe('useDeleteCases', () => { await waitForNextUpdate(); - expect(addSuccess).toHaveBeenCalledWith('Success title'); + expect(addSuccess).toHaveBeenCalledWith({ + title: 'Success title', + className: 'eui-textBreakWord', + }); }); it('shows a toast error when the api return an error', async () => { diff --git a/x-pack/plugins/cases/public/containers/use_post_push_to_service.tsx b/x-pack/plugins/cases/public/containers/use_post_push_to_service.tsx index 3a5e8bddcea63b..d13500dcbc5fad 100644 --- a/x-pack/plugins/cases/public/containers/use_post_push_to_service.tsx +++ b/x-pack/plugins/cases/public/containers/use_post_push_to_service.tsx @@ -77,7 +77,10 @@ export const usePostPushToService = (): UsePostPushToService => { if (!cancel.current) { dispatch({ type: 'FETCH_SUCCESS' }); - toasts.addSuccess(i18n.SUCCESS_SEND_TO_EXTERNAL_SERVICE(connector.name)); + toasts.addSuccess({ + title: i18n.SUCCESS_SEND_TO_EXTERNAL_SERVICE(connector.name), + className: 'eui-textBreakWord', + }); } return response; diff --git a/x-pack/plugins/cases/public/containers/utils.test.ts b/x-pack/plugins/cases/public/containers/utils.test.ts index fbb9f7a72d1d01..c87c81a02f8186 100644 --- a/x-pack/plugins/cases/public/containers/utils.test.ts +++ b/x-pack/plugins/cases/public/containers/utils.test.ts @@ -58,6 +58,7 @@ describe('utils', () => { expect(toast).toEqual({ title: 'Alerts in "My case" have been synced', + className: 'eui-textBreakWord', }); }); @@ -74,6 +75,7 @@ describe('utils', () => { expect(toast).toEqual({ title: 'Updated "My case"', + className: 'eui-textBreakWord', }); }); @@ -85,6 +87,7 @@ describe('utils', () => { expect(toast).toEqual({ title: 'Updated "My case"', + className: 'eui-textBreakWord', }); }); @@ -100,6 +103,7 @@ describe('utils', () => { expect(toast).toEqual({ title: 'Updated "My case"', text: 'Updated the statuses of attached alerts.', + className: 'eui-textBreakWord', }); }); @@ -114,6 +118,7 @@ describe('utils', () => { expect(toast).toEqual({ title: 'Updated "My case"', + className: 'eui-textBreakWord', }); }); @@ -128,6 +133,7 @@ describe('utils', () => { expect(toast).toEqual({ title: 'Updated "My case"', + className: 'eui-textBreakWord', }); }); @@ -142,6 +148,7 @@ describe('utils', () => { expect(toast).toEqual({ title: 'Updated "My case"', + className: 'eui-textBreakWord', }); }); }); diff --git a/x-pack/plugins/cases/public/containers/utils.ts b/x-pack/plugins/cases/public/containers/utils.ts index f0c37ddb9e424c..a2d5c91417ec1c 100644 --- a/x-pack/plugins/cases/public/containers/utils.ts +++ b/x-pack/plugins/cases/public/containers/utils.ts @@ -115,6 +115,7 @@ export const createUpdateSuccessToaster = ( const toast: ToastInputFields = { title: i18n.UPDATED_CASE(caseAfterUpdate.title), + className: 'eui-textBreakWord', }; if (valueToUpdateIsSettings(key, value) && value?.syncAlerts && caseHasAlerts) { diff --git a/x-pack/plugins/cases/server/authorization/__snapshots__/audit_logger.test.ts.snap b/x-pack/plugins/cases/server/authorization/__snapshots__/audit_logger.test.ts.snap index 193451e9d146a1..4c7c643c80fa91 100644 --- a/x-pack/plugins/cases/server/authorization/__snapshots__/audit_logger.test.ts.snap +++ b/x-pack/plugins/cases/server/authorization/__snapshots__/audit_logger.test.ts.snap @@ -2268,6 +2268,90 @@ Object { } `; +exports[`audit_logger log function event structure creates the correct audit event for operation: "getUserActionUsers" with an error and entity 1`] = ` +Object { + "error": Object { + "code": "Error", + "message": "an error", + }, + "event": Object { + "action": "case_user_action_get_users", + "category": Array [ + "database", + ], + "outcome": "failure", + "type": Array [ + "access", + ], + }, + "kibana": Object { + "saved_object": Object { + "id": "1", + "type": "cases-user-actions", + }, + }, + "message": "Failed attempt to access cases-user-actions [id=1] as owner \\"awesome\\"", +} +`; + +exports[`audit_logger log function event structure creates the correct audit event for operation: "getUserActionUsers" with an error but no entity 1`] = ` +Object { + "error": Object { + "code": "Error", + "message": "an error", + }, + "event": Object { + "action": "case_user_action_get_users", + "category": Array [ + "database", + ], + "outcome": "failure", + "type": Array [ + "access", + ], + }, + "message": "Failed attempt to access a user actions as any owners", +} +`; + +exports[`audit_logger log function event structure creates the correct audit event for operation: "getUserActionUsers" without an error but with an entity 1`] = ` +Object { + "event": Object { + "action": "case_user_action_get_users", + "category": Array [ + "database", + ], + "outcome": "success", + "type": Array [ + "access", + ], + }, + "kibana": Object { + "saved_object": Object { + "id": "5", + "type": "cases-user-actions", + }, + }, + "message": "User has accessed cases-user-actions [id=5] as owner \\"super\\"", +} +`; + +exports[`audit_logger log function event structure creates the correct audit event for operation: "getUserActionUsers" without an error or entity 1`] = ` +Object { + "event": Object { + "action": "case_user_action_get_users", + "category": Array [ + "database", + ], + "outcome": "success", + "type": Array [ + "access", + ], + }, + "message": "User has accessed a user actions as any owners", +} +`; + exports[`audit_logger log function event structure creates the correct audit event for operation: "getUserActions" with an error and entity 1`] = ` Object { "error": Object { diff --git a/x-pack/plugins/cases/server/authorization/authorization.test.ts b/x-pack/plugins/cases/server/authorization/authorization.test.ts index 0945555689fbff..d02b8f011cf750 100644 --- a/x-pack/plugins/cases/server/authorization/authorization.test.ts +++ b/x-pack/plugins/cases/server/authorization/authorization.test.ts @@ -69,6 +69,38 @@ describe('authorization', () => { await expect(authPromise).resolves.not.toThrow(); }); + it('creates an Authorization object without spaces', async () => { + expect.assertions(2); + + const authPromise = Authorization.create({ + request, + securityAuth: securityStart.authz, + features: featuresStart, + auditLogger: new AuthorizationAuditLogger(mockLogger), + logger: loggingSystemMock.createLogger(), + }); + + await expect(authPromise).resolves.toBeDefined(); + await expect(authPromise).resolves.not.toThrow(); + }); + + it('if spaces are disabled it does not filtered out disabled features', async () => { + (spacesStart.spacesService.getActiveSpace as jest.Mock).mockImplementation(() => { + return { disabledFeatures: ['1'] } as Space; + }); + + const auth = await Authorization.create({ + request, + securityAuth: securityStart.authz, + features: featuresStart, + auditLogger: new AuthorizationAuditLogger(mockLogger), + logger: loggingSystemMock.createLogger(), + }); + + // @ts-expect-error: featureCaseOwners is a private method of the auth class + expect([...auth.featureCaseOwners.values()]).toEqual(['a']); + }); + it('throws and error when a failure occurs', async () => { expect.assertions(1); diff --git a/x-pack/plugins/cases/server/authorization/authorization.ts b/x-pack/plugins/cases/server/authorization/authorization.ts index 14ecaa6111f8c8..e3dc970b381827 100644 --- a/x-pack/plugins/cases/server/authorization/authorization.ts +++ b/x-pack/plugins/cases/server/authorization/authorization.ts @@ -57,19 +57,21 @@ export class Authorization { }: { request: KibanaRequest; securityAuth?: SecurityPluginStart['authz']; - spaces: SpacesPluginStart; + spaces?: SpacesPluginStart; features: FeaturesPluginStart; auditLogger: AuthorizationAuditLogger; logger: Logger; }): Promise { - const getSpace = async (): Promise => { - return spaces.spacesService.getActiveSpace(request); + const getSpace = async (): Promise => { + return spaces?.spacesService.getActiveSpace(request); }; // Since we need to do async operations, this static method handles that before creating the Auth class let caseOwners: Set; + try { - const disabledFeatures = new Set((await getSpace()).disabledFeatures ?? []); + const maybeSpace = await getSpace(); + const disabledFeatures = new Set(maybeSpace?.disabledFeatures ?? []); caseOwners = new Set( features diff --git a/x-pack/plugins/cases/server/authorization/index.ts b/x-pack/plugins/cases/server/authorization/index.ts index cbfef6f4713e3d..83529478d1d106 100644 --- a/x-pack/plugins/cases/server/authorization/index.ts +++ b/x-pack/plugins/cases/server/authorization/index.ts @@ -367,4 +367,12 @@ export const Operations: Record>((acc, profile) => { - acc.set(profile.uid, profile); - return acc; - }, new Map()); + return userProfiles; }; diff --git a/x-pack/plugins/cases/server/client/cases/utils.ts b/x-pack/plugins/cases/server/client/cases/utils.ts index 06d2f1da636290..6ab60805ad5b1a 100644 --- a/x-pack/plugins/cases/server/client/cases/utils.ts +++ b/x-pack/plugins/cases/server/client/cases/utils.ts @@ -8,6 +8,7 @@ import { uniqBy, isEmpty } from 'lodash'; import type { UserProfile } from '@kbn/security-plugin/common'; import type { IBasePath } from '@kbn/core-http-browser'; +import type { SecurityPluginStart } from '@kbn/security-plugin/server'; import { CASE_VIEW_PAGE_TABS } from '../../../common/types'; import { isPushedUserAction } from '../../../common/utils/user_actions'; import type { @@ -430,3 +431,22 @@ export const getDurationForUpdate = ({ }; } }; + +export const getUserProfiles = async ( + securityStartPlugin: SecurityPluginStart, + uids: Set +): Promise> => { + if (uids.size <= 0) { + return new Map(); + } + + const userProfiles = + (await securityStartPlugin.userProfiles.bulkGet({ + uids, + })) ?? []; + + return userProfiles.reduce>((acc, profile) => { + acc.set(profile.uid, profile); + return acc; + }, new Map()); +}; diff --git a/x-pack/plugins/cases/server/client/factory.ts b/x-pack/plugins/cases/server/client/factory.ts index b214b40e34701c..c12ce99910ac7f 100644 --- a/x-pack/plugins/cases/server/client/factory.ts +++ b/x-pack/plugins/cases/server/client/factory.ts @@ -26,6 +26,7 @@ import type { LensServerPluginSetup } from '@kbn/lens-plugin/server'; import type { SpacesPluginStart } from '@kbn/spaces-plugin/server'; import type { LicensingPluginStart } from '@kbn/licensing-plugin/server'; import type { NotificationsPluginStart } from '@kbn/notifications-plugin/server'; +import { DEFAULT_SPACE_ID } from '@kbn/spaces-plugin/common'; import { SAVED_OBJECT_TYPES } from '../../common/constants'; import { Authorization } from '../authorization/authorization'; import { @@ -49,7 +50,7 @@ import { EmailNotificationService } from '../services/notifications/email_notifi interface CasesClientFactoryArgs { securityPluginSetup: SecurityPluginSetup; securityPluginStart: SecurityPluginStart; - spacesPluginStart: SpacesPluginStart; + spacesPluginStart?: SpacesPluginStart; featuresPluginStart: FeaturesPluginStart; actionsPluginStart: ActionsPluginStart; licensingPluginStart: LicensingPluginStart; @@ -144,7 +145,8 @@ export class CasesClientFactory { externalReferenceAttachmentTypeRegistry: this.options.externalReferenceAttachmentTypeRegistry, securityStartPlugin: this.options.securityPluginStart, publicBaseUrl: this.options.publicBaseUrl, - spaceId: this.options.spacesPluginStart.spacesService.getSpaceId(request), + spaceId: + this.options.spacesPluginStart?.spacesService.getSpaceId(request) ?? DEFAULT_SPACE_ID, savedObjectsSerializer, }); } @@ -197,7 +199,8 @@ export class CasesClientFactory { notifications: this.options.notifications, security: this.options.securityPluginStart, publicBaseUrl: this.options.publicBaseUrl, - spaceId: this.options.spacesPluginStart.spacesService.getSpaceId(request), + spaceId: + this.options.spacesPluginStart?.spacesService.getSpaceId(request) ?? DEFAULT_SPACE_ID, }); return { diff --git a/x-pack/plugins/cases/server/client/mocks.ts b/x-pack/plugins/cases/server/client/mocks.ts index 2c17182f49a07a..b7e34a4ea2af50 100644 --- a/x-pack/plugins/cases/server/client/mocks.ts +++ b/x-pack/plugins/cases/server/client/mocks.ts @@ -95,6 +95,7 @@ const createUserActionsSubClientMock = (): UserActionsSubClientMock => { getAll: jest.fn(), getConnectors: jest.fn(), stats: jest.fn(), + getUsers: jest.fn(), }; }; diff --git a/x-pack/plugins/cases/server/client/user_actions/client.ts b/x-pack/plugins/cases/server/client/user_actions/client.ts index 2676955719adb8..eb9581be49cff5 100644 --- a/x-pack/plugins/cases/server/client/user_actions/client.ts +++ b/x-pack/plugins/cases/server/client/user_actions/client.ts @@ -10,12 +10,14 @@ import type { CaseUserActionStatsResponse, UserActionFindResponse, CaseUserActionsDeprecatedResponse, + GetCaseUsersResponse, } from '../../../common/api'; import type { CasesClientArgs } from '../types'; import { get } from './get'; import { getConnectors } from './connectors'; import { getStats } from './stats'; -import type { GetConnectorsRequest, UserActionFind, UserActionGet } from './types'; +import { getUsers } from './users'; +import type { GetConnectorsRequest, UserActionFind, UserActionGet, GetUsersRequest } from './types'; import { find } from './find'; import type { CasesClient } from '../client'; @@ -32,11 +34,14 @@ export interface UserActionsSubClient { * Retrieves all the connectors used within a given case */ getConnectors(params: GetConnectorsRequest): Promise; - /** * Retrieves the total of comments and user actions in a given case */ stats(params: UserActionGet): Promise; + /** + * Retrieves all users participating in a case + */ + getUsers(params: GetUsersRequest): Promise; } /** @@ -51,6 +56,7 @@ export const createUserActionsSubClient = ( getAll: (params) => get(params, clientArgs), getConnectors: (params) => getConnectors(params, clientArgs), stats: (params) => getStats(params, casesClient, clientArgs), + getUsers: (params) => getUsers(params, casesClient, clientArgs), }; return Object.freeze(attachmentSubClient); diff --git a/x-pack/plugins/cases/server/client/user_actions/types.ts b/x-pack/plugins/cases/server/client/user_actions/types.ts index 5249bc27d1e587..352ade17d62d82 100644 --- a/x-pack/plugins/cases/server/client/user_actions/types.ts +++ b/x-pack/plugins/cases/server/client/user_actions/types.ts @@ -18,6 +18,7 @@ export interface UserActionGet { } export type GetConnectorsRequest = UserActionGet; +export type GetUsersRequest = UserActionGet; export interface UserActionFind { params: UserActionFindRequest; diff --git a/x-pack/plugins/cases/server/client/user_actions/users.ts b/x-pack/plugins/cases/server/client/user_actions/users.ts new file mode 100644 index 00000000000000..3a1bd7a6bb333b --- /dev/null +++ b/x-pack/plugins/cases/server/client/user_actions/users.ts @@ -0,0 +1,139 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { UserProfile } from '@kbn/security-plugin/common'; +import type { GetCaseUsersResponse, User } from '../../../common/api'; +import { GetCaseUsersResponseRt } from '../../../common/api'; +import type { OwnerEntity } from '../../authorization'; +import { Operations } from '../../authorization'; +import { createCaseError } from '../../common/error'; +import type { CasesClient } from '../client'; +import type { CasesClientArgs } from '../types'; +import type { GetUsersRequest } from './types'; +import { getUserProfiles } from '../cases/utils'; + +export const getUsers = async ( + { caseId }: GetUsersRequest, + casesClient: CasesClient, + clientArgs: CasesClientArgs +): Promise => { + const { + services: { userActionService }, + logger, + authorization, + securityStartPlugin, + } = clientArgs; + + try { + // ensure that we have authorization for reading the case + const theCase = await casesClient.cases.resolve({ id: caseId, includeComments: false }); + + const { participants, assignedAndUnassignedUsers } = await userActionService.getUsers({ + caseId, + }); + + const entities: OwnerEntity[] = participants.map((participant) => ({ + id: participant.id, + owner: participant.owner, + })); + + await authorization.ensureAuthorized({ + entities, + operation: Operations.getUserActionUsers, + }); + + const participantsUids = participants + .filter((participant) => participant.user.profile_uid != null) + .map((participant) => participant.user.profile_uid) as string[]; + + const assigneesUids = theCase.case.assignees.map((assignee) => assignee.uid); + + const userProfileUids = new Set([ + ...assignedAndUnassignedUsers, + ...participantsUids, + ...assigneesUids, + ]); + + const userProfiles = await getUserProfiles(securityStartPlugin, userProfileUids); + + const participantsResponse = convertUserInfoToResponse( + userProfiles, + participants.map((participant) => ({ + uid: participant.user.profile_uid, + user: participant.user, + })) + ); + + const assigneesResponse = convertUserInfoToResponse(userProfiles, theCase.case.assignees); + + /** + * To avoid duplicates, a user that is + * a participant or an assignee should not be + * part of the assignedAndUnassignedUsers Set + */ + const unassignedUsers = removeAllFromSet(assignedAndUnassignedUsers, [ + ...participantsUids, + ...assigneesUids, + ]); + + const unassignedUsersResponse = convertUserInfoToResponse( + userProfiles, + [...unassignedUsers.values()].map((uid) => ({ + uid, + })) + ); + + const results = { + participants: participantsResponse, + assignees: assigneesResponse, + unassignedUsers: unassignedUsersResponse, + }; + + return GetCaseUsersResponseRt.encode(results); + } catch (error) { + throw createCaseError({ + message: `Failed to retrieve the case users case id: ${caseId}: ${error}`, + error, + logger, + }); + } +}; + +const convertUserInfoToResponse = ( + userProfiles: Map, + usersInfo: Array<{ uid: string | undefined; user?: User }> +): User[] => { + const response = []; + + for (const info of usersInfo) { + response.push(getUserInformation(userProfiles, info.uid, info.user)); + } + + return response; +}; + +const getUserInformation = ( + userProfiles: Map, + uid: string | undefined, + userInfo?: User +): User => { + const userProfile = uid != null ? userProfiles.get(uid) : undefined; + + return { + email: userProfile?.user.email ?? userInfo?.email, + full_name: userProfile?.user.full_name ?? userInfo?.full_name, + username: userProfile?.user.username ?? userInfo?.username, + profile_uid: userProfile?.uid ?? uid ?? userInfo?.profile_uid, + }; +}; + +const removeAllFromSet = (originalSet: Set, values: string[]) => { + const newSet = new Set(originalSet); + values.forEach((value) => newSet.delete(value)); + + return newSet; +}; diff --git a/x-pack/plugins/cases/server/plugin.ts b/x-pack/plugins/cases/server/plugin.ts index ac26cfc7b81a0f..bf9033a33552f8 100644 --- a/x-pack/plugins/cases/server/plugin.ts +++ b/x-pack/plugins/cases/server/plugin.ts @@ -72,7 +72,7 @@ export interface PluginsStart { licensing: LicensingPluginStart; taskManager?: TaskManagerStartContract; security: SecurityPluginStart; - spaces: SpacesPluginStart; + spaces?: SpacesPluginStart; notifications: NotificationsPluginStart; } diff --git a/x-pack/plugins/cases/server/routes/api/get_internal_routes.ts b/x-pack/plugins/cases/server/routes/api/get_internal_routes.ts index 41d9904de01bda..fd7e08f222c9a4 100644 --- a/x-pack/plugins/cases/server/routes/api/get_internal_routes.ts +++ b/x-pack/plugins/cases/server/routes/api/get_internal_routes.ts @@ -13,6 +13,7 @@ import { bulkGetCasesRoute } from './internal/bulk_get_cases'; import { suggestUserProfilesRoute } from './internal/suggest_user_profiles'; import type { CaseRoute } from './types'; import { bulkGetAttachmentsRoute } from './internal/bulk_get_attachments'; +import { getCaseUsersRoute } from './internal/get_case_users'; export const getInternalRoutes = (userProfileService: UserProfileService) => [ @@ -22,4 +23,5 @@ export const getInternalRoutes = (userProfileService: UserProfileService) => bulkGetCasesRoute, getCaseUserActionStatsRoute, bulkGetAttachmentsRoute, + getCaseUsersRoute, ] as CaseRoute[]; diff --git a/x-pack/plugins/cases/server/routes/api/internal/get_case_users.ts b/x-pack/plugins/cases/server/routes/api/internal/get_case_users.ts new file mode 100644 index 00000000000000..56b031e548a54e --- /dev/null +++ b/x-pack/plugins/cases/server/routes/api/internal/get_case_users.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { schema } from '@kbn/config-schema'; +import { INTERNAL_CASE_USERS_URL } from '../../../../common/constants'; +import { createCaseError } from '../../../common/error'; +import { createCasesRoute } from '../create_cases_route'; + +export const getCaseUsersRoute = createCasesRoute({ + method: 'get', + path: INTERNAL_CASE_USERS_URL, + params: { + params: schema.object({ + case_id: schema.string(), + }), + }, + handler: async ({ context, request, response }) => { + try { + const casesContext = await context.cases; + const casesClient = await casesContext.getCasesClient(); + const caseId = request.params.case_id; + + return response.ok({ + body: await casesClient.userActions.getUsers({ caseId }), + }); + } catch (error) { + throw createCaseError({ + message: `Failed to retrieve users in route case id: ${request.params.case_id}: ${error}`, + error, + }); + } + }, +}); diff --git a/x-pack/plugins/cases/server/saved_object_types/comments.ts b/x-pack/plugins/cases/server/saved_object_types/comments.ts index 95df2007da00b5..c795b7d960e610 100644 --- a/x-pack/plugins/cases/server/saved_object_types/comments.ts +++ b/x-pack/plugins/cases/server/saved_object_types/comments.ts @@ -84,16 +84,14 @@ export const createCaseCommentSavedObjectType = ({ }, externalReferenceMetadata: { dynamic: false, - type: 'object', - enabled: false, + properties: {}, }, persistableStateAttachmentTypeId: { type: 'keyword', }, persistableStateAttachmentState: { dynamic: false, - type: 'object', - enabled: false, + properties: {}, }, pushed_at: { type: 'date', diff --git a/x-pack/plugins/cases/server/saved_object_types/user_actions.ts b/x-pack/plugins/cases/server/saved_object_types/user_actions.ts index 3060ca219ca427..067ecaaf8fe1e5 100644 --- a/x-pack/plugins/cases/server/saved_object_types/user_actions.ts +++ b/x-pack/plugins/cases/server/saved_object_types/user_actions.ts @@ -60,6 +60,12 @@ export const createCaseUserActionSavedObjectType = ( persistableStateAttachmentTypeId: { type: 'keyword' }, }, }, + assignees: { + properties: { + // assignees.uid + uid: { type: 'keyword' }, + }, + }, }, }, owner: { diff --git a/x-pack/plugins/cases/server/services/mocks.ts b/x-pack/plugins/cases/server/services/mocks.ts index ee65ce172c596a..eb2bfd0fc8c47a 100644 --- a/x-pack/plugins/cases/server/services/mocks.ts +++ b/x-pack/plugins/cases/server/services/mocks.ts @@ -125,6 +125,7 @@ export const createUserActionServiceMock = (): CaseUserActionServiceMock => { getUniqueConnectors: jest.fn(), getUserActionIdsForCases: jest.fn(), getCaseUserActionStats: jest.fn(), + getUsers: jest.fn(), }; // the cast here is required because jest.Mocked tries to include private members and would throw an error diff --git a/x-pack/plugins/cases/server/services/user_actions/index.ts b/x-pack/plugins/cases/server/services/user_actions/index.ts index 159cb40a5f1f86..252e3985a74836 100644 --- a/x-pack/plugins/cases/server/services/user_actions/index.ts +++ b/x-pack/plugins/cases/server/services/user_actions/index.ts @@ -18,6 +18,7 @@ import type { CaseUserActionAttributesWithoutConnectorId, CaseUserActionDeprecatedResponse, CaseUserActionInjectedAttributes, + User, } from '../../../common/api'; import { ActionTypes } from '../../../common/api'; import { @@ -98,6 +99,29 @@ interface UserActionsStatsAggsResult { }; } +interface ParticipantsAggsResult { + participants: { + buckets: Array<{ + key: string; + docs: { + hits: { + hits: SavedObjectsRawDoc[]; + }; + }; + }>; + }; + assignees: { + buckets: Array<{ + key: string; + }>; + }; +} + +interface GetUsersResponse { + participants: Array<{ id: string; owner: string; user: User }>; + assignedAndUnassignedUsers: Set; +} + export class CaseUserActionService { private readonly _creator: UserActionPersister; private readonly _finder: UserActionFinder; @@ -715,4 +739,90 @@ export class CaseUserActionService { }, }; } + + public async getUsers({ caseId }: { caseId: string }): Promise { + const response = await this.context.unsecuredSavedObjectsClient.find< + CaseUserActionAttributesWithoutConnectorId, + ParticipantsAggsResult + >({ + type: CASE_USER_ACTION_SAVED_OBJECT, + hasReference: { type: CASE_SAVED_OBJECT, id: caseId }, + page: 1, + perPage: 1, + sortField: defaultSortField, + aggs: CaseUserActionService.buildParticipantsAgg(), + }); + + const assignedAndUnassignedUsers: GetUsersResponse['assignedAndUnassignedUsers'] = + new Set(); + const participants: GetUsersResponse['participants'] = []; + const participantsBuckets = response.aggregations?.participants.buckets ?? []; + const assigneesBuckets = response.aggregations?.assignees.buckets ?? []; + + for (const bucket of participantsBuckets) { + const rawDoc = bucket.docs.hits.hits[0]; + const user = + this.context.savedObjectsSerializer.rawToSavedObject( + rawDoc + ); + + /** + * We are interested only for the created_by + * and the owner. For that reason, there is no + * need to call transformToExternalModel which + * injects the references ids to the document. + */ + participants.push({ + id: user.id, + user: user.attributes.created_by, + owner: user.attributes.owner, + }); + } + + /** + * The users set includes any + * user that got assigned in the + * case even if they removed as + * assignee at some point in time. + */ + for (const bucket of assigneesBuckets) { + assignedAndUnassignedUsers.add(bucket.key); + } + + return { participants, assignedAndUnassignedUsers }; + } + + private static buildParticipantsAgg(): Record { + return { + participants: { + terms: { + field: `${CASE_USER_ACTION_SAVED_OBJECT}.attributes.created_by.username`, + size: MAX_DOCS_PER_PAGE, + order: { _key: 'asc' }, + missing: 'Unknown', + }, + aggregations: { + docs: { + top_hits: { + size: 1, + sort: [ + { + [`${CASE_USER_ACTION_SAVED_OBJECT}.created_at`]: { + order: 'desc', + }, + }, + ], + }, + }, + }, + }, + assignees: { + terms: { + field: `${CASE_USER_ACTION_SAVED_OBJECT}.attributes.payload.assignees.uid`, + size: MAX_DOCS_PER_PAGE, + order: { _key: 'asc' }, + }, + }, + }; + } } diff --git a/x-pack/plugins/cases/server/services/user_profiles/index.ts b/x-pack/plugins/cases/server/services/user_profiles/index.ts index 937e7449f89c7d..2113c116e27873 100644 --- a/x-pack/plugins/cases/server/services/user_profiles/index.ts +++ b/x-pack/plugins/cases/server/services/user_profiles/index.ts @@ -14,6 +14,7 @@ import type { KibanaRequest, Logger } from '@kbn/core/server'; import type { SecurityPluginSetup, SecurityPluginStart } from '@kbn/security-plugin/server'; import type { UserProfile } from '@kbn/security-plugin/common'; import type { SpacesPluginStart } from '@kbn/spaces-plugin/server'; +import { DEFAULT_SPACE_ID } from '@kbn/spaces-plugin/common'; import type { LicensingPluginStart } from '@kbn/licensing-plugin/server'; import { excess, SuggestUserProfilesRequestRt, throwErrors } from '../../../common/api'; @@ -28,7 +29,7 @@ const MIN_PROFILES_SIZE = 0; interface UserProfileOptions { securityPluginSetup: SecurityPluginSetup; securityPluginStart: SecurityPluginStart; - spaces: SpacesPluginStart; + spaces?: SpacesPluginStart; licensingPluginStart: LicensingPluginStart; } @@ -110,7 +111,7 @@ export class UserProfileService { size, owners, securityPluginStart: this.options.securityPluginStart, - spaceId: spaces.spacesService.getSpaceId(request), + spaceId: spaces?.spacesService.getSpaceId(request) ?? DEFAULT_SPACE_ID, }); } catch (error) { throw createCaseError({ diff --git a/x-pack/plugins/cloud/kibana.json b/x-pack/plugins/cloud/kibana.json deleted file mode 100644 index 85434abc87ede7..00000000000000 --- a/x-pack/plugins/cloud/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "cloud", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "cloud"], - "optionalPlugins": ["usageCollection"], - "server": true, - "ui": true -} diff --git a/x-pack/plugins/cloud/kibana.jsonc b/x-pack/plugins/cloud/kibana.jsonc new file mode 100644 index 00000000000000..17edf376bf5cb3 --- /dev/null +++ b/x-pack/plugins/cloud/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "cloud", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "cloud" + ], + "optionalPlugins": [ + "usageCollection" + ] + } +} diff --git a/x-pack/plugins/cloud_defend/.i18nrc.json b/x-pack/plugins/cloud_defend/.i18nrc.json index c1b9cf0f87f0c2..db34d44f64c5a2 100755 --- a/x-pack/plugins/cloud_defend/.i18nrc.json +++ b/x-pack/plugins/cloud_defend/.i18nrc.json @@ -3,5 +3,5 @@ "paths": { "cloudDefend": "." }, - "translations": ["translations/ja-JP.json"] + "translations": [] } diff --git a/x-pack/plugins/cloud_defend/kibana.json b/x-pack/plugins/cloud_defend/kibana.json deleted file mode 100755 index af91d3eec34a0c..00000000000000 --- a/x-pack/plugins/cloud_defend/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "cloudDefend", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Cloud Native Integrations", - "githubTeam": "sec-cloudnative-integrations" - }, - "description": "Defend for Containers", - "server": false, - "ui": true, - "requiredPlugins": ["fleet", "kibanaReact"], - "optionalPlugins": [] -} diff --git a/x-pack/plugins/cloud_defend/kibana.jsonc b/x-pack/plugins/cloud_defend/kibana.jsonc new file mode 100644 index 00000000000000..f561c33a5f8320 --- /dev/null +++ b/x-pack/plugins/cloud_defend/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-defend-plugin", + "owner": "@elastic/sec-cloudnative-integrations", + "description": "Defend for Containers", + "plugin": { + "id": "cloudDefend", + "server": false, + "browser": true, + "requiredPlugins": [ + "fleet", + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/cloud_integrations/cloud_chat/kibana.json b/x-pack/plugins/cloud_integrations/cloud_chat/kibana.json deleted file mode 100755 index 76f7e34e71e56c..00000000000000 --- a/x-pack/plugins/cloud_integrations/cloud_chat/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "cloudChat", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "description": "Chat available on Elastic Cloud deployments for quicker assistance.", - "server": true, - "ui": true, - "configPath": ["xpack", "cloud_integrations", "chat"], - "requiredPlugins": ["cloud"], - "optionalPlugins": ["security"] -} diff --git a/x-pack/plugins/cloud_integrations/cloud_chat/kibana.jsonc b/x-pack/plugins/cloud_integrations/cloud_chat/kibana.jsonc new file mode 100644 index 00000000000000..a8bbc4a8966ef8 --- /dev/null +++ b/x-pack/plugins/cloud_integrations/cloud_chat/kibana.jsonc @@ -0,0 +1,22 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-chat-plugin", + "owner": "@elastic/kibana-core", + "description": "Chat available on Elastic Cloud deployments for quicker assistance.", + "plugin": { + "id": "cloudChat", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "cloud_integrations", + "chat" + ], + "requiredPlugins": [ + "cloud" + ], + "optionalPlugins": [ + "security" + ] + } +} diff --git a/x-pack/plugins/cloud_integrations/cloud_data_migration/kibana.json b/x-pack/plugins/cloud_integrations/cloud_data_migration/kibana.json deleted file mode 100755 index 6709e20f2d127c..00000000000000 --- a/x-pack/plugins/cloud_integrations/cloud_data_migration/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "cloudDataMigration", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Platform Onboarding", - "githubTeam": "platform-onboarding" - }, - "description": "Static migration page where self-managed users can see text/copy about migrating to Elastic Cloud", - "server": true, - "ui": true, - "configPath": ["xpack", "cloud_integrations", "data_migration"], - "requiredPlugins": ["cloud", "management", "kibanaReact", "features"], - "requiredBundles": [ "kibanaReact" ] -} diff --git a/x-pack/plugins/cloud_integrations/cloud_data_migration/kibana.jsonc b/x-pack/plugins/cloud_integrations/cloud_data_migration/kibana.jsonc new file mode 100644 index 00000000000000..99fd8b066ddd2d --- /dev/null +++ b/x-pack/plugins/cloud_integrations/cloud_data_migration/kibana.jsonc @@ -0,0 +1,25 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-data-migration-plugin", + "owner": "@elastic/platform-onboarding", + "description": "Static migration page where self-managed users can see text/copy about migrating to Elastic Cloud", + "plugin": { + "id": "cloudDataMigration", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "cloud_integrations", + "data_migration" + ], + "requiredPlugins": [ + "cloud", + "management", + "kibanaReact", + "features" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/cloud_integrations/cloud_data_migration/public/application/components/app.tsx b/x-pack/plugins/cloud_integrations/cloud_data_migration/public/application/components/app.tsx index d48cb672e05c36..2823a44c09a234 100755 --- a/x-pack/plugins/cloud_integrations/cloud_data_migration/public/application/components/app.tsx +++ b/x-pack/plugins/cloud_integrations/cloud_data_migration/public/application/components/app.tsx @@ -72,7 +72,7 @@ export const CloudDataMigrationApp = ({ http, breadcrumbService }: CloudDataMigr

    @@ -86,7 +86,7 @@ export const CloudDataMigrationApp = ({ http, breadcrumbService }: CloudDataMigr } @@ -97,8 +97,8 @@ export const CloudDataMigrationApp = ({ http, breadcrumbService }: CloudDataMigr label={ } @@ -109,8 +109,8 @@ export const CloudDataMigrationApp = ({ http, breadcrumbService }: CloudDataMigr label={ } @@ -121,8 +121,8 @@ export const CloudDataMigrationApp = ({ http, breadcrumbService }: CloudDataMigr label={ } @@ -141,7 +141,7 @@ export const CloudDataMigrationApp = ({ http, breadcrumbService }: CloudDataMigr >
    diff --git a/x-pack/plugins/cloud_integrations/cloud_experiments/kibana.json b/x-pack/plugins/cloud_integrations/cloud_experiments/kibana.json deleted file mode 100755 index 6dc3e8fe34c870..00000000000000 --- a/x-pack/plugins/cloud_integrations/cloud_experiments/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "cloudExperiments", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Kibana Core", - "githubTeam": "@elastic/kibana-core" - }, - "description": "Provides the necessary APIs to implement A/B testing scenarios, fetching the variations in configuration and reporting back metrics to track conversion rates of the experiments.", - "server": true, - "ui": true, - "configPath": ["xpack", "cloud_integrations", "experiments"], - "requiredPlugins": ["cloud", "dataViews"], - "optionalPlugins": ["usageCollection"] -} diff --git a/x-pack/plugins/cloud_integrations/cloud_experiments/kibana.jsonc b/x-pack/plugins/cloud_integrations/cloud_experiments/kibana.jsonc new file mode 100644 index 00000000000000..743bf70001dd63 --- /dev/null +++ b/x-pack/plugins/cloud_integrations/cloud_experiments/kibana.jsonc @@ -0,0 +1,23 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-experiments-plugin", + "owner": "@elastic/kibana-core", + "description": "Provides the necessary APIs to implement A/B testing scenarios, fetching the variations in configuration and reporting back metrics to track conversion rates of the experiments.", + "plugin": { + "id": "cloudExperiments", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "cloud_integrations", + "experiments" + ], + "requiredPlugins": [ + "cloud", + "dataViews" + ], + "optionalPlugins": [ + "usageCollection" + ] + } +} diff --git a/x-pack/plugins/cloud_integrations/cloud_full_story/kibana.json b/x-pack/plugins/cloud_integrations/cloud_full_story/kibana.json deleted file mode 100755 index 39e31a89bc631d..00000000000000 --- a/x-pack/plugins/cloud_integrations/cloud_full_story/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "cloudFullStory", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "description": "When Kibana runs on Elastic Cloud, this plugin registers FullStory as a shipper for telemetry.", - "server": true, - "ui": true, - "configPath": ["xpack", "cloud_integrations", "full_story"], - "requiredPlugins": ["cloud"], - "optionalPlugins": ["security"] -} diff --git a/x-pack/plugins/cloud_integrations/cloud_full_story/kibana.jsonc b/x-pack/plugins/cloud_integrations/cloud_full_story/kibana.jsonc new file mode 100644 index 00000000000000..53a42a6e903f2a --- /dev/null +++ b/x-pack/plugins/cloud_integrations/cloud_full_story/kibana.jsonc @@ -0,0 +1,22 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-full-story-plugin", + "owner": "@elastic/kibana-core", + "description": "When Kibana runs on Elastic Cloud, this plugin registers FullStory as a shipper for telemetry.", + "plugin": { + "id": "cloudFullStory", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "cloud_integrations", + "full_story" + ], + "requiredPlugins": [ + "cloud" + ], + "optionalPlugins": [ + "security" + ] + } +} diff --git a/x-pack/plugins/cloud_integrations/cloud_gain_sight/kibana.json b/x-pack/plugins/cloud_integrations/cloud_gain_sight/kibana.json deleted file mode 100755 index af46d352bee600..00000000000000 --- a/x-pack/plugins/cloud_integrations/cloud_gain_sight/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "cloudGainsight", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "description": "When Kibana runs on Elastic Cloud, this plugin registers Gainsight as a shipper for telemetry.", - "server": true, - "ui": true, - "configPath": ["xpack", "cloud_integrations", "gain_sight"], - "requiredPlugins": ["cloud"], - "optionalPlugins": [] -} diff --git a/x-pack/plugins/cloud_integrations/cloud_gain_sight/kibana.jsonc b/x-pack/plugins/cloud_integrations/cloud_gain_sight/kibana.jsonc new file mode 100644 index 00000000000000..a33915fd2b2649 --- /dev/null +++ b/x-pack/plugins/cloud_integrations/cloud_gain_sight/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-gainsight-plugin", + "owner": "@elastic/kibana-core", + "description": "When Kibana runs on Elastic Cloud, this plugin registers Gainsight as a shipper for telemetry.", + "plugin": { + "id": "cloudGainsight", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "cloud_integrations", + "gain_sight" + ], + "requiredPlugins": [ + "cloud" + ] + } +} diff --git a/x-pack/plugins/cloud_integrations/cloud_links/kibana.json b/x-pack/plugins/cloud_integrations/cloud_links/kibana.json deleted file mode 100755 index 5e3faef59fd668..00000000000000 --- a/x-pack/plugins/cloud_integrations/cloud_links/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "cloudLinks", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Kibana Core", - "githubTeam": "@kibana-core" - }, - "description": "Adds the links to the Elastic Cloud console", - "server": false, - "ui": true, - "requiredPlugins": [], - "optionalPlugins": ["cloud", "security"] -} diff --git a/x-pack/plugins/cloud_integrations/cloud_links/kibana.jsonc b/x-pack/plugins/cloud_integrations/cloud_links/kibana.jsonc new file mode 100644 index 00000000000000..36fa7445213bae --- /dev/null +++ b/x-pack/plugins/cloud_integrations/cloud_links/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-links-plugin", + "owner": "@elastic/kibana-core", + "description": "Adds the links to the Elastic Cloud console", + "plugin": { + "id": "cloudLinks", + "server": false, + "browser": true, + "optionalPlugins": [ + "cloud", + "security" + ] + } +} diff --git a/x-pack/plugins/cloud_security_posture/README.md b/x-pack/plugins/cloud_security_posture/README.md index 7a4646d08ba07d..a655d292c39eeb 100755 --- a/x-pack/plugins/cloud_security_posture/README.md +++ b/x-pack/plugins/cloud_security_posture/README.md @@ -49,3 +49,8 @@ yarn test:ftr --config x-pack/test/cloud_security_posture_functional/config.ts > **Note** > in development, run them separately with `ftr:runner` and `ftr:server` + +```bash +yarn test:ftr:server --config x-pack/test/api_integration/config.ts +yarn test:ftr:runner --include-tag=cloud_security_posture --config x-pack/test/api_integration/config.ts +``` \ No newline at end of file diff --git a/x-pack/plugins/cloud_security_posture/kibana.json b/x-pack/plugins/cloud_security_posture/kibana.json deleted file mode 100755 index 257f5b3ffda843..00000000000000 --- a/x-pack/plugins/cloud_security_posture/kibana.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "cloudSecurityPosture", - "version": "1.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "cloudSecurityPosture"], - "owner": { - "name": "Cloud Security Posture", - "githubTeam": "cloud-posture-security" - }, - "description": "The cloud security posture plugin", - "server": true, - "ui": true, - "requiredPlugins": [ - "navigation", - "data", - "fleet", - "unifiedSearch", - "taskManager", - "security", - "charts", - "discover", - "cloud", - "licensing" - ], - "requiredBundles": ["kibanaReact", "usageCollection"], - "optionalPlugins": ["usageCollection"] -} diff --git a/x-pack/plugins/cloud_security_posture/kibana.jsonc b/x-pack/plugins/cloud_security_posture/kibana.jsonc new file mode 100644 index 00000000000000..7908a5cc7af829 --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/kibana.jsonc @@ -0,0 +1,34 @@ +{ + "type": "plugin", + "id": "@kbn/cloud-security-posture-plugin", + "owner": "@elastic/kibana-cloud-security-posture", + "description": "The cloud security posture plugin", + "plugin": { + "id": "cloudSecurityPosture", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "cloudSecurityPosture" + ], + "requiredPlugins": [ + "navigation", + "data", + "fleet", + "unifiedSearch", + "taskManager", + "security", + "charts", + "discover", + "cloud", + "licensing" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaReact", + "usageCollection" + ] + } +} diff --git a/x-pack/plugins/cloud_security_posture/public/components/cloud_posture_page.tsx b/x-pack/plugins/cloud_security_posture/public/components/cloud_posture_page.tsx index 905d5ae8c29427..de9728d5d52b5c 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/cloud_posture_page.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/cloud_posture_page.tsx @@ -14,7 +14,6 @@ import { EuiFlexGroup, EuiFlexItem, EuiLink, - useEuiTheme, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { NoDataPage, NoDataPageProps } from '@kbn/kibana-react-plugin/public'; @@ -75,19 +74,14 @@ export const CspNoDataPage = ({ actionDescription, testId, }: CspNoDataPageProps) => { - const { euiTheme } = useEuiTheme(); return ( :nth-child(3) { display: block; margin: auto; width: 450px; - button { - margin: 0 auto; - margin-top: ${euiTheme.size.base}; - } } `} pageTitle={pageTitle} diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings.test.tsx index 02f2ec8ffee736..1112c0f46bc3a7 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings.test.tsx @@ -177,7 +177,7 @@ describe('', () => { renderFindingsPage(); expectIdsInDoc({ - be: [TEST_SUBJECTS.FINDINGS_CONTAINER], + be: [TEST_SUBJECTS.LATEST_FINDINGS_CONTAINER], notToBe: [ NO_FINDINGS_STATUS_TEST_SUBJ.INDEX_TIMEOUT, NO_FINDINGS_STATUS_TEST_SUBJ.NO_AGENTS_DEPLOYED, diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/resource_tab.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/resource_tab.tsx index 771caa5a070d89..86ea3f67acd79c 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/resource_tab.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/resource_tab.tsx @@ -92,7 +92,7 @@ export const ResourceTab = ({ data }: { data: CspFinding }) => { listItems={accordion.listItems} type="column" style={{ - marginTop: euiTheme.size.l, + paddingTop: euiTheme.size.l, }} titleProps={{ style: { width: '35%' } }} descriptionProps={{ style: { width: '65%' } }} diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_container.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_container.tsx index 66b11d05f3db2f..d5cea85a034101 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_container.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_container.tsx @@ -90,7 +90,7 @@ export const LatestFindingsContainer = ({ dataView }: FindingsBaseProps) => { }; return ( -
    +
    { diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.tsx index 34f29fa6473a21..96ee0f5319d67c 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.tsx @@ -98,7 +98,7 @@ const FindingsTableComponent = ({ <> { }; return ( -
    +
    { diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.tsx index fb7ce817246a90..84c89d086a5f61 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.tsx @@ -64,7 +64,10 @@ const FindingsByResourceTableComponent = ({ const columns = useMemo( () => [ - getNonSortableColumn(findingsByResourceColumns.resource_id), + { + ...getNonSortableColumn(findingsByResourceColumns.resource_id), + ['data-test-subj']: TEST_SUBJECTS.FINDINGS_BY_RESOURCE_TABLE_RESOURCE_ID_COLUMN, + }, createColumnWithFilters( getNonSortableColumn(findingsByResourceColumns['resource.sub_type']), { onAddFilter } @@ -102,6 +105,7 @@ const FindingsByResourceTableComponent = ({ return ( { }); }; return ( -
    +
    { diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_group_by_selector.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_group_by_selector.tsx index efbda89eb3e4d3..d997dce43b2b5e 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_group_by_selector.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_group_by_selector.tsx @@ -12,6 +12,7 @@ import { i18n } from '@kbn/i18n'; import { INTERNAL_FEATURE_FLAGS } from '../../../../common/constants'; import type { FindingsGroupByKind } from '../types'; import { findingsNavigation } from '../../../common/navigation/constants'; +import * as TEST_SUBJECTS from '../test_subjects'; const getGroupByOptions = (): Array> => [ { @@ -56,6 +57,7 @@ export const FindingsGroupBySelector = ({ type }: Props) => { return (
    } singleSelection={{ asPlainText: true }} options={groupByOptions} diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts b/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts index 153811865c5c3a..d7a2e89fad9fbe 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts @@ -9,10 +9,19 @@ export const FINDINGS_TABLE = 'findings_table'; export const FINDINGS_BY_RESOURCE_TABLE_NO_FINDINGS_EMPTY_STATE = 'findings-by-resource-table-no-findings-empty-state'; export const FINDINGS_CONTAINER = 'findings_container'; +export const FINDINGS_BY_RESOURCE_CONTAINER = 'findings_by_resource_container'; +export const FINDINGS_BY_RESOURCE_TABLE_RESOURCE_ID_COLUMN = + 'findings_by_resource_table_resource_id_column'; +export const FINDINGS_BY_RESOURCE_TABLE = 'findings_by_resource_table'; + export const LATEST_FINDINGS_TABLE_NO_FINDINGS_EMPTY_STATE = 'latest-findings-table-no-findings-empty-state'; export const getFindingsByResourceTableRowTestId = (id: string) => `findings_resource_table_row_${id}`; +export const LATEST_FINDINGS_CONTAINER = 'latest_findings_container'; +export const LATEST_FINDINGS_TABLE = 'latest_findings_table'; + +export const FINDINGS_GROUP_BY_SELECTOR = 'findings_group_by_selector'; export const getFindingsTableRowTestId = (id: string) => `findings_table_row_${id}`; export const getFindingsTableCellTestId = (columnId: string, rowId: string) => @@ -21,6 +30,7 @@ export const getFindingsTableCellTestId = (columnId: string, rowId: string) => export const FINDINGS_TABLE_CELL_ADD_FILTER = 'findings_table_cell_add_filter'; export const FINDINGS_TABLE_CELL_ADD_NEGATED_FILTER = 'findings_table_cell_add_negated_filter'; +export const RESOURCES_FINDINGS_CONTAINER = 'resources_findings_container'; export const RESOURCES_FINDINGS_TABLE_EMPTY_STATE = 'resource_findings_table_empty_state'; export const RESOURCES_FINDINGS_TABLE = 'resource_findings_table'; export const getResourceFindingsTableRowTestId = (id: string) => diff --git a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/accounts_stats_collector.ts b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/accounts_stats_collector.ts index 1402b45f3d2234..53e7aa66f5e3c9 100644 --- a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/accounts_stats_collector.ts +++ b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/accounts_stats_collector.ts @@ -6,7 +6,10 @@ */ import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; import type { Logger } from '@kbn/core/server'; -import type { SearchRequest } from '@elastic/elasticsearch/lib/api/types'; +import type { + AggregationsMultiBucketBase, + SearchRequest, +} from '@elastic/elasticsearch/lib/api/types'; import { getIdentifierRuntimeMapping } from '../../get_identifier_runtime_mapping'; import { calculatePostureScore } from '../../../../common/utils/helpers'; import type { CspmAccountsStats } from './types'; @@ -15,11 +18,6 @@ import { LATEST_FINDINGS_INDEX_DEFAULT_NS } from '../../../../common/constants'; interface Value { value: number; } - -interface DocCount { - doc_count: number; -} - interface BenchmarkName { metrics: { 'rule.benchmark.name': string }; } @@ -40,8 +38,8 @@ interface AccountsStats { interface AccountEntity { key: string; // account_id doc_count: number; // latest findings doc count - passed_findings_count: DocCount; - failed_findings_count: DocCount; + passed_findings_count: AggregationsMultiBucketBase; + failed_findings_count: AggregationsMultiBucketBase; benchmark_name: { top: BenchmarkName[] }; benchmark_id: { top: BenchmarkId[] }; benchmark_version: { top: BenchmarkVersion[] }; @@ -53,8 +51,8 @@ interface AccountEntity { }; } -const getAccountsStatsQuery = (index: string): SearchRequest => ({ - index, +const getAccountsStatsQuery = (): SearchRequest => ({ + index: LATEST_FINDINGS_INDEX_DEFAULT_NS, runtime_mappings: getIdentifierRuntimeMapping(), query: { match_all: {}, @@ -225,7 +223,7 @@ export const getAccountsStats = async ( if (isIndexExists) { const accountsStatsResponse = await esClient.search( - getAccountsStatsQuery(LATEST_FINDINGS_INDEX_DEFAULT_NS) + getAccountsStatsQuery() ); const cspmAccountsStats = accountsStatsResponse.aggregations @@ -237,7 +235,7 @@ export const getAccountsStats = async ( return []; } catch (e) { - logger.error(`Failed to get resources stats ${e}`); + logger.error(`Failed to get account stats ${e}`); return []; } }; diff --git a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/register.ts b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/register.ts index 9eeb3338a9035a..8e8482fd5a495c 100644 --- a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/register.ts +++ b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/register.ts @@ -12,6 +12,7 @@ import { getResourcesStats } from './resources_stats_collector'; import { cspmUsageSchema } from './schema'; import { CspmUsage } from './types'; import { getAccountsStats } from './accounts_stats_collector'; +import { getRulesStats } from './rules_stats_collector'; export function registerCspmUsageCollector( logger: Logger, @@ -27,16 +28,18 @@ export function registerCspmUsageCollector( type: 'cloud_security_posture', isReady: () => true, fetch: async (collectorFetchContext: CollectorFetchContext) => { - const [indicesStats, accountsStats, resourcesStats] = await Promise.all([ + const [indicesStats, accountsStats, resourcesStats, rulesStats] = await Promise.all([ getIndicesStats(collectorFetchContext.esClient, logger), getAccountsStats(collectorFetchContext.esClient, logger), getResourcesStats(collectorFetchContext.esClient, logger), + getRulesStats(collectorFetchContext.esClient, logger), ]); return { indices: indicesStats, accounts_stats: accountsStats, resources_stats: resourcesStats, + rules_stats: rulesStats, }; }, schema: cspmUsageSchema, diff --git a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/rules_stats_collector.ts b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/rules_stats_collector.ts new file mode 100644 index 00000000000000..b4f21061893e58 --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/rules_stats_collector.ts @@ -0,0 +1,258 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; +import type { Logger } from '@kbn/core/server'; +import type { + AggregationsMultiBucketBase, + SearchRequest, +} from '@elastic/elasticsearch/lib/api/types'; +import type { CspmRulesStats } from './types'; +import { LATEST_FINDINGS_INDEX_DEFAULT_NS } from '../../../../common/constants'; + +interface BenchmarkName { + metrics: { 'rule.benchmark.name': string }; +} + +interface BenchmarkId { + metrics: { 'rule.benchmark.id': string }; +} + +interface BenchmarkVersion { + metrics: { 'rule.benchmark.version': string }; +} +interface RuleName { + metrics: { 'rule.name': string }; +} +interface RuleSection { + metrics: { 'rule.section': string }; +} +interface RuleVersion { + metrics: { 'rule.version': string }; +} +interface RuleNumber { + metrics: { 'rule.benchmark.rule_number': string }; +} +interface PostureType { + metrics: { 'rule.benchmark.posture_type': string }; +} + +interface RulesStats { + rules: { + buckets: RuleEntity[]; + }; +} + +interface RuleEntity { + key: string; // rule_id + rule_name: { top: RuleName[] }; + rule_section: { top: RuleSection[] }; + rule_version: { top: RuleVersion[] }; + rule_number: { top: RuleNumber[] }; + posture_type: { top: PostureType[] }; + benchmark_id: { top: BenchmarkId[] }; + benchmark_name: { top: BenchmarkName[] }; + benchmark_version: { top: BenchmarkVersion[] }; + passed_findings_count: AggregationsMultiBucketBase; + failed_findings_count: AggregationsMultiBucketBase; +} + +const getRulesStatsQuery = (): SearchRequest => ({ + index: LATEST_FINDINGS_INDEX_DEFAULT_NS, + query: { + match_all: {}, + }, + aggs: { + rules: { + terms: { + field: 'rule.id', + order: { + _count: 'desc', + }, + size: 100, + }, + aggs: { + rule_name: { + top_metrics: { + metrics: { + field: 'rule.name', + }, + size: 1, + sort: { + '@timestamp': 'desc', + }, + }, + }, + rule_section: { + top_metrics: { + metrics: { + field: 'rule.section', + }, + size: 1, + sort: { + '@timestamp': 'desc', + }, + }, + }, + rule_version: { + top_metrics: { + metrics: { + field: 'rule.version', + }, + size: 1, + sort: { + '@timestamp': 'desc', + }, + }, + }, + posture_type: { + top_metrics: { + metrics: { + field: 'rule.benchmark.posture_type', + }, + size: 1, + sort: { + '@timestamp': 'desc', + }, + }, + }, + rule_number: { + top_metrics: { + metrics: { + field: 'rule.benchmark.rule_number', + }, + size: 1, + sort: { + '@timestamp': 'desc', + }, + }, + }, + benchmark_id: { + top_metrics: { + metrics: { + field: 'rule.benchmark.id', + }, + size: 1, + sort: { + '@timestamp': 'desc', + }, + }, + }, + benchmark_version: { + top_metrics: { + metrics: { + field: 'rule.benchmark.version', + }, + size: 1, + sort: { + '@timestamp': 'desc', + }, + }, + }, + benchmark_name: { + top_metrics: { + metrics: { + field: 'rule.benchmark.name', + }, + size: 1, + sort: { + '@timestamp': 'desc', + }, + }, + }, + passed_findings_count: { + filter: { + bool: { + filter: [ + { + bool: { + should: [ + { + term: { + 'result.evaluation': 'passed', + }, + }, + ], + minimum_should_match: 1, + }, + }, + ], + }, + }, + }, + failed_findings_count: { + filter: { + bool: { + filter: [ + { + bool: { + should: [ + { + term: { + 'result.evaluation': 'failed', + }, + }, + ], + minimum_should_match: 1, + }, + }, + ], + }, + }, + }, + }, + }, + }, + + size: 0, + _source: false, +}); + +const getCspmRulesStats = (aggregatedRulesStats: RulesStats, logger: Logger): CspmRulesStats[] => { + const rules = aggregatedRulesStats.rules.buckets; + + const cspmRulesStats = rules.map((rule) => ({ + rule_id: rule.key, + rule_name: rule.rule_name.top[0].metrics['rule.name'], + rule_section: rule.rule_section.top[0].metrics['rule.section'], + rule_version: rule.rule_version.top[0].metrics['rule.version'], + rule_number: rule.rule_number.top[0].metrics['rule.benchmark.rule_number'], + posture_type: rule.posture_type.top[0].metrics['rule.benchmark.posture_type'], + benchmark_name: rule.benchmark_name.top[0].metrics['rule.benchmark.name'], + benchmark_id: rule.benchmark_id.top[0].metrics['rule.benchmark.id'], + passed_findings_count: rule.passed_findings_count.doc_count, + benchmark_version: rule.benchmark_version.top[0].metrics['rule.benchmark.version'], + failed_findings_count: rule.failed_findings_count.doc_count, + })); + + return cspmRulesStats; +}; + +export const getRulesStats = async ( + esClient: ElasticsearchClient, + logger: Logger +): Promise => { + try { + const isIndexExists = await esClient.indices.exists({ + index: LATEST_FINDINGS_INDEX_DEFAULT_NS, + }); + + if (isIndexExists) { + const rulesStatsResponse = await esClient.search(getRulesStatsQuery()); + + const cspmRulesStats = rulesStatsResponse.aggregations + ? getCspmRulesStats(rulesStatsResponse.aggregations, logger) + : []; + + return cspmRulesStats; + } + + return []; + } catch (e) { + logger.error(`Failed to get rules stats ${e}`); + return []; + } +}; diff --git a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/schema.ts b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/schema.ts index b7ed05f4532ced..47bfaca74e4572 100644 --- a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/schema.ts +++ b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/schema.ts @@ -81,4 +81,20 @@ export const cspmUsageSchema: MakeSchemaFrom = { pods_count: { type: 'short' }, }, }, + rules_stats: { + type: 'array', + items: { + rule_id: { type: 'keyword' }, + rule_name: { type: 'keyword' }, + rule_section: { type: 'keyword' }, + rule_version: { type: 'keyword' }, + rule_number: { type: 'keyword' }, + posture_type: { type: 'keyword' }, + benchmark_id: { type: 'keyword' }, + benchmark_name: { type: 'keyword' }, + benchmark_version: { type: 'keyword' }, + passed_findings_count: { type: 'long' }, + failed_findings_count: { type: 'long' }, + }, + }, }; diff --git a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/types.ts b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/types.ts index 58e2932c231bb1..fcbd6cd9c36e20 100644 --- a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/types.ts +++ b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/types.ts @@ -9,6 +9,7 @@ export interface CspmUsage { indices: CspmIndicesStats; resources_stats: CspmResourcesStats[]; accounts_stats: CspmAccountsStats[]; + rules_stats: CspmRulesStats[]; } export interface CspmIndicesStats { @@ -46,3 +47,16 @@ export interface CspmAccountsStats { nodes_count: number; pods_count: number; } +export interface CspmRulesStats { + rule_id: string; + rule_name: string; + rule_section: string; + rule_version: string; + rule_number: string; + posture_type: string; + benchmark_id: string; + benchmark_name: string; + benchmark_version: string; + passed_findings_count: number; + failed_findings_count: number; +} diff --git a/x-pack/plugins/cross_cluster_replication/kibana.json b/x-pack/plugins/cross_cluster_replication/kibana.json deleted file mode 100644 index 0a594cf1cc2ac7..00000000000000 --- a/x-pack/plugins/cross_cluster_replication/kibana.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "crossClusterReplication", - "version": "kibana", - "server": true, - "ui": true, - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": [ - "home", - "licensing", - "licenseApiGuard", - "management", - "remoteClusters", - "indexManagement", - "features" - ], - "optionalPlugins": ["usageCollection"], - "configPath": ["xpack", "ccr"], - "requiredBundles": ["kibanaReact", "esUiShared", "data"] -} diff --git a/x-pack/plugins/cross_cluster_replication/kibana.jsonc b/x-pack/plugins/cross_cluster_replication/kibana.jsonc new file mode 100644 index 00000000000000..f4f89e665432b5 --- /dev/null +++ b/x-pack/plugins/cross_cluster_replication/kibana.jsonc @@ -0,0 +1,31 @@ +{ + "type": "plugin", + "id": "@kbn/cross-cluster-replication-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "crossClusterReplication", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "ccr" + ], + "requiredPlugins": [ + "home", + "licensing", + "licenseApiGuard", + "management", + "remoteClusters", + "indexManagement", + "features" + ], + "optionalPlugins": [ + "usageCollection" + ], + "requiredBundles": [ + "kibanaReact", + "esUiShared", + "data" + ] + } +} diff --git a/x-pack/plugins/cross_cluster_replication/public/__jest__/client_integration/follower_indices_list.test.js b/x-pack/plugins/cross_cluster_replication/public/__jest__/client_integration/follower_indices_list.test.js index f5b8c48d97a677..dd62cafd3b958b 100644 --- a/x-pack/plugins/cross_cluster_replication/public/__jest__/client_integration/follower_indices_list.test.js +++ b/x-pack/plugins/cross_cluster_replication/public/__jest__/client_integration/follower_indices_list.test.js @@ -309,7 +309,8 @@ describe('', () => { }); }); - describe('detail panel', () => { + // FLAKY: https://github.com/elastic/kibana/issues/100951 + describe.skip('detail panel', () => { test('should open a detail panel when clicking on a follower index', async () => { expect(exists('followerIndexDetail')).toBe(false); diff --git a/x-pack/plugins/custom_branding/kibana.json b/x-pack/plugins/custom_branding/kibana.json deleted file mode 100755 index df29e4bfb1f1ac..00000000000000 --- a/x-pack/plugins/custom_branding/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "customBranding", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "global-experience", - "githubTeam": "kibana-global-experience" - }, - "description": " Enables customization of Kibana", - "server": true, - "ui": true, - "requiredPlugins": ["licensing", "licenseApiGuard"], - "optionalPlugins": [] -} diff --git a/x-pack/plugins/custom_branding/kibana.jsonc b/x-pack/plugins/custom_branding/kibana.jsonc new file mode 100644 index 00000000000000..5351902cb3a5d7 --- /dev/null +++ b/x-pack/plugins/custom_branding/kibana.jsonc @@ -0,0 +1,15 @@ +{ + "type": "plugin", + "id": "@kbn/custom-branding-plugin", + "owner": "@elastic/appex-sharedux", + "description": " Enables customization of Kibana", + "plugin": { + "id": "customBranding", + "server": true, + "browser": true, + "requiredPlugins": [ + "licensing", + "licenseApiGuard" + ] + } +} diff --git a/x-pack/plugins/dashboard_enhanced/kibana.json b/x-pack/plugins/dashboard_enhanced/kibana.json deleted file mode 100644 index 0d5daf1574c5dc..00000000000000 --- a/x-pack/plugins/dashboard_enhanced/kibana.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "dashboardEnhanced", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "version": "kibana", - "server": true, - "ui": true, - "configPath": ["xpack", "dashboardEnhanced"], - "requiredPlugins": [ - "dashboard", - "data", - "embeddable", - "share", - "uiActionsEnhanced", - "unifiedSearch" - ], - "requiredBundles": [ - "embeddable", - "embeddableEnhanced", - "kibanaReact", - "kibanaUtils", - "imageEmbeddable" - ] -} diff --git a/x-pack/plugins/dashboard_enhanced/kibana.jsonc b/x-pack/plugins/dashboard_enhanced/kibana.jsonc new file mode 100644 index 00000000000000..30b70b7c9067fd --- /dev/null +++ b/x-pack/plugins/dashboard_enhanced/kibana.jsonc @@ -0,0 +1,29 @@ +{ + "type": "plugin", + "id": "@kbn/dashboard-enhanced-plugin", + "owner": "@elastic/kibana-presentation", + "plugin": { + "id": "dashboardEnhanced", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "dashboardEnhanced" + ], + "requiredPlugins": [ + "dashboard", + "data", + "embeddable", + "share", + "uiActionsEnhanced", + "unifiedSearch" + ], + "requiredBundles": [ + "embeddable", + "embeddableEnhanced", + "kibanaReact", + "kibanaUtils", + "imageEmbeddable" + ] + } +} diff --git a/x-pack/plugins/data_visualizer/kibana.json b/x-pack/plugins/data_visualizer/kibana.json deleted file mode 100644 index 98d27ba9f04813..00000000000000 --- a/x-pack/plugins/data_visualizer/kibana.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "id": "dataVisualizer", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "data", - "usageCollection", - "embeddable", - "share", - "discover", - "fileUpload", - "uiActions", - "charts", - "unifiedSearch" - ], - "optionalPlugins": [ - "security", - "maps", - "home", - "lens", - "dataViewFieldEditor", - "customIntegrations", - "cloud" - ], - "requiredBundles": [ - "kibanaReact", - "kibanaUtils", - "maps", - "esUiShared", - "fieldFormats", - "uiActions", - "lens", - "cloudChat" - ], - "owner": { - "name": "Machine Learning UI", - "githubTeam": "ml-ui" - }, - "description": "The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index." -} diff --git a/x-pack/plugins/data_visualizer/kibana.jsonc b/x-pack/plugins/data_visualizer/kibana.jsonc new file mode 100644 index 00000000000000..f1fdb5ce383325 --- /dev/null +++ b/x-pack/plugins/data_visualizer/kibana.jsonc @@ -0,0 +1,42 @@ +{ + "type": "plugin", + "id": "@kbn/data-visualizer-plugin", + "owner": "@elastic/ml-ui", + "description": "The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index.", + "plugin": { + "id": "dataVisualizer", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "usageCollection", + "embeddable", + "share", + "discover", + "fileUpload", + "uiActions", + "charts", + "unifiedSearch" + ], + "optionalPlugins": [ + "security", + "maps", + "home", + "lens", + "dataViewFieldEditor", + "customIntegrations", + "cloud" + ], + "requiredBundles": [ + "kibanaReact", + "kibanaUtils", + "maps", + "esUiShared", + "fieldFormats", + "uiActions", + "lens", + "cloudChat", + "savedSearch" + ] + } +} diff --git a/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts b/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts index fb782a02a08d4d..5afa3869abd881 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; import { DataViewField } from '@kbn/data-views-plugin/public'; import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '@kbn/field-types'; -import { SupportedFieldType } from '../../../../common/types'; +import type { SupportedFieldType } from '../../../../common/types'; import { SUPPORTED_FIELD_TYPES } from '../../../../common/constants'; export const getJobTypeLabel = (type: string) => { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/actions_panel/actions_panel.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/actions_panel/actions_panel.tsx index 58d730cff80e83..b92bdeea23a15f 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/actions_panel/actions_panel.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/actions_panel/actions_panel.tsx @@ -7,7 +7,7 @@ import { css } from '@emotion/react'; import { flatten } from 'lodash'; -import React, { FC, useState, useEffect } from 'react'; +import React, { FC, Fragment, useState, useEffect } from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; @@ -120,11 +120,11 @@ export const ActionsPanel: FC = ({ discoverLink || (Array.isArray(asyncHrefCards) && asyncHrefCards.length > 0); const dvActionsPanel = css({ - [useEuiBreakpoint(['xs', 's', 'm', 'l', 'xl'])]: { + [useEuiBreakpoint(['xl', 'xxl'])]: { width: ACTIONS_PANEL_WIDTH, }, + width: '100%', }); - // Note we use display:none for the DataRecognizer section as it needs to be // passed the recognizerResults object, and then run the recognizer check which // controls whether the recognizer section is ultimately displayed. @@ -164,16 +164,17 @@ export const ActionsPanel: FC = ({ {Array.isArray(asyncHrefCards) && asyncHrefCards.map((link) => ( - <> + - + ))}
    ) : null; diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx index 9f969fac23a38b..1508683fd1a433 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx @@ -36,6 +36,7 @@ import { } from '@kbn/ml-date-picker'; import { useStorage } from '@kbn/ml-local-storage'; +import type { SavedSearch } from '@kbn/saved-search-plugin/public'; import { useCurrentEuiTheme } from '../../../common/hooks/use_current_eui_theme'; import { DV_FROZEN_TIER_PREFERENCE, @@ -57,7 +58,7 @@ import { DataVisualizerIndexBasedPageUrlState, } from '../../types/index_data_visualizer_state'; import { SEARCH_QUERY_LANGUAGE, SearchQueryLanguage } from '../../types/combined_query'; -import { SupportedFieldType, SavedSearchSavedObject } from '../../../../../common/types'; +import type { SupportedFieldType } from '../../../../../common/types'; import { useDataVisualizerKibana } from '../../../kibana_context'; import { FieldCountPanel } from '../../../common/components/field_count_panel'; import { DocumentCountContent } from '../../../common/components/document_count_content'; @@ -129,7 +130,7 @@ export const getDefaultDataVisualizerListState = ( export interface IndexDataVisualizerViewProps { currentDataView: DataView; - currentSavedSearch: SavedSearchSavedObject | null; + currentSavedSearch: SavedSearch | null; currentSessionId?: string; getAdditionalLinks?: GetAdditionalLinks; } @@ -178,12 +179,6 @@ export const IndexDataVisualizerView: FC = (dataVi const { currentDataView, currentSessionId, getAdditionalLinks } = dataVisualizerProps; - useEffect(() => { - if (dataVisualizerProps?.currentSavedSearch !== undefined) { - setCurrentSavedSearch(dataVisualizerProps?.currentSavedSearch); - } - }, [dataVisualizerProps?.currentSavedSearch]); - useEffect(() => { if (!currentDataView.isTimeBased()) { toasts.addWarning({ @@ -474,15 +469,14 @@ export const IndexDataVisualizerView: FC = (dataVi [currentDataView.timeFieldName] ); + const isWithinLargeBreakpoint = useIsWithinMaxBreakpoint('l'); const dvPageHeader = css({ - [useEuiBreakpoint(['xs', 's', 'm', 'l', 'xl'])]: { + [useEuiBreakpoint(['xs', 's', 'm', 'l'])]: { flexDirection: 'column', alignItems: 'flex-start', }, }); - const isWithinXl = useIsWithinMaxBreakpoint('xl'); - return ( @@ -505,7 +499,7 @@ export const IndexDataVisualizerView: FC = (dataVi - {isWithinXl ? : null} + {isWithinLargeBreakpoint ? : null} = (dataVi - + = (dataVi /> - {isWithinXl ? : null} + {isWithinLargeBreakpoint ? : null} { + const { searchQueryLanguage, searchString, searchQuery, queryOrAggregateQuery } = useMemo(() => { const filterManager = data.query.filterManager; const searchData = getEsQueryFromSavedSearch({ dataView: currentDataView, @@ -123,6 +123,7 @@ export const useDataVisualizerGridData = ( }; } else { return { + queryOrAggregateQuery: searchData.queryOrAggregateQuery, searchQuery: searchData.searchQuery, searchString: searchData.searchString, searchQueryLanguage: searchData.queryLanguage, @@ -563,6 +564,7 @@ export const useDataVisualizerGridData = ( progress: combinedProgress, overallStatsProgress, configs, + queryOrAggregateQuery, searchQueryLanguage, searchString, searchQuery, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx index f7c70625f0e659..7633d63286f8e9 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx @@ -11,7 +11,6 @@ import { useHistory, useLocation } from 'react-router-dom'; import { parse, stringify } from 'query-string'; import { isEqual } from 'lodash'; import { encode } from '@kbn/rison'; -import { SimpleSavedObject } from '@kbn/core/public'; import { i18n } from '@kbn/i18n'; import { Storage } from '@kbn/kibana-utils-plugin/public'; import { @@ -33,14 +32,15 @@ import { type Dictionary, type SetUrlState, } from '@kbn/ml-url-state'; +import { getSavedSearch, type SavedSearch } from '@kbn/saved-search-plugin/public'; import { getCoreStart, getPluginsStart } from '../../kibana_services'; import { - IndexDataVisualizerViewProps, + type IndexDataVisualizerViewProps, IndexDataVisualizerView, } from './components/index_data_visualizer_view'; import { useDataVisualizerKibana } from '../kibana_context'; -import { GetAdditionalLinks } from '../common/components/results_links'; -import { DATA_VISUALIZER_APP_LOCATOR, IndexDataVisualizerLocatorParams } from './locator'; +import type { GetAdditionalLinks } from '../common/components/results_links'; +import { DATA_VISUALIZER_APP_LOCATOR, type IndexDataVisualizerLocatorParams } from './locator'; import { DATA_VISUALIZER_INDEX_VIEWER } from './constants/index_data_visualizer_viewer'; import { INDEX_DATA_VISUALIZER_NAME } from '../common/constants'; import { DV_STORAGE_KEYS } from './types/storage'; @@ -100,9 +100,7 @@ export const DataVisualizerStateContextProvider: FC(undefined); - const [currentSavedSearch, setCurrentSavedSearch] = useState | null>( - null - ); + const [currentSavedSearch, setCurrentSavedSearch] = useState(null); const [currentSessionId, setCurrentSessionId] = useState(undefined); @@ -161,21 +159,21 @@ export const DataVisualizerStateContextProvider: FC ref.type === 'index-pattern')?.id; - if (dataViewId !== undefined && savedSearch) { - try { - const dataView = await dataViews.get(dataViewId); - setCurrentSavedSearch(savedSearch); - setCurrentDataView(dataView); - } catch (e) { - toasts.addError(e, { - title: i18n.translate('xpack.dataVisualizer.index.dataViewErrorMessage', { - defaultMessage: 'Error finding data view', - }), - }); - } + const savedSearch = await getSavedSearch(savedSearchId, { + search, + savedObjectsClient, + }); + const dataView = savedSearch.searchSource.getField('index'); + + if (!dataView) { + toasts.addDanger({ + title: i18n.translate('xpack.dataVisualizer.index.dataViewErrorMessage', { + defaultMessage: 'Error finding data view', + }), + }); } + setCurrentSavedSearch(savedSearch); + setCurrentDataView(dataView); } catch (e) { toasts.addError(e, { title: i18n.translate('xpack.dataVisualizer.index.savedSearchErrorMessage', { @@ -192,7 +190,7 @@ export const DataVisualizerStateContextProvider: FC 49', language: 'lucene' } as Query, + filter: [ + { + meta: { + alias: null, + disabled: false, + negate: false, + params: [ + { + meta: { + alias: null, + disabled: false, + field: 'airline', + index: 'cb8808e0-9bfb-11ed-bb38-2b1bd55401e7', + key: 'airline', + negate: false, + params: { + query: 'ACA', + }, + type: 'phrase', + }, + query: { + match_phrase: { + airline: 'ACA', + }, + }, + }, + { + meta: { + alias: null, + disabled: false, + field: 'airline', + index: 'cb8808e0-9bfb-11ed-bb38-2b1bd55401e7', + key: 'airline', + negate: false, + params: { + query: 'FFT', + }, + type: 'phrase', + }, + query: { + match_phrase: { + airline: 'FFT', + }, + }, + }, + ] as FilterMetaParams, + // @ts-expect-error SavedSearch needs to be updated with CombinedFilterMeta + relation: 'OR', + type: 'combined', + index: 'cb8808e0-9bfb-11ed-bb38-2b1bd55401e7', + }, + query: {}, + $state: { + store: FilterStateStore.APP_STATE, + }, + }, + ], + }), +} as unknown as SavedSearch; + // @ts-expect-error We don't need the full object here const luceneSavedSearchObj: SavedSearchSavedObject = { attributes: { @@ -75,12 +145,27 @@ const kqlSavedSearch: SavedSearch = { title: 'farequote_filter_and_kuery', description: '', columns: ['_source'], - // @ts-expect-error this isn't a valid SavedSearch object... but does anyone care? - kibanaSavedObjectMeta: { - searchSourceJSON: - '{"highlightAll":true,"version":true,"query":{"query":"responsetime > 49","language":"kuery"},"filter":[{"meta":{"index":"90a978e0-1c80-11ec-b1d7-f7e5cf21b9e0","negate":false,"disabled":false,"alias":null,"type":"phrase","key":"airline","value":"ASA","params":{"query":"ASA","type":"phrase"}},"query":{"match":{"airline":{"query":"ASA","type":"phrase"}}},"$state":{"store":"appState"}}],"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.index"}', - }, -}; + searchSource: createSearchSourceMock({ + index: mockDataView, + query: { query: 'responsetime > 49', language: 'kuery' } as Query, + filter: [ + { + meta: { + index: '90a978e0-1c80-11ec-b1d7-f7e5cf21b9e0', + negate: false, + disabled: false, + alias: null, + type: 'phrase', + key: 'airline', + value: 'ASA', + params: { query: 'ASA', type: 'phrase' }, + }, + query: { match: { airline: { query: 'ASA', type: 'phrase' } } }, + $state: { store: FilterStateStore.APP_STATE }, + }, + ], + }), +} as unknown as SavedSearch; describe('getQueryFromSavedSearchObject()', () => { it('should return parsed searchSourceJSON with query and filter', () => { @@ -107,26 +192,24 @@ describe('getQueryFromSavedSearchObject()', () => { version: true, }); expect(getQueryFromSavedSearchObject(kqlSavedSearch)).toEqual({ + query: { query: 'responsetime > 49', language: 'kuery' }, + index: 'test-mock-data-view', filter: [ { - $state: { store: 'appState' }, meta: { - alias: null, - disabled: false, index: '90a978e0-1c80-11ec-b1d7-f7e5cf21b9e0', - key: 'airline', negate: false, - params: { query: 'ASA', type: 'phrase' }, + disabled: false, + alias: null, type: 'phrase', + key: 'airline', value: 'ASA', + params: { query: 'ASA', type: 'phrase' }, }, query: { match: { airline: { query: 'ASA', type: 'phrase' } } }, + $state: { store: 'appState' }, }, ], - highlightAll: true, - indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.index', - query: { language: 'kuery', query: 'responsetime > 49' }, - version: true, }); }); it('should return undefined if invalid searchSourceJSON', () => { @@ -222,27 +305,55 @@ describe('getEsQueryFromSavedSearch()', () => { expect( getEsQueryFromSavedSearch({ dataView: mockDataView, - savedSearch: luceneSavedSearchObj, + savedSearch: luceneSavedSearch, uiSettings: mockUiSettings, }) ).toEqual({ queryLanguage: 'lucene', + queryOrAggregateQuery: { + language: 'lucene', + query: 'responsetime > 49', + }, searchQuery: { bool: { - filter: [{ match_phrase: { airline: { query: 'ASA' } } }], - must: [{ query_string: { query: 'responsetime:>50' } }], + filter: [ + { + bool: { + should: [ + { + bool: { + must: [], + filter: [{ match_phrase: { airline: 'ACA' } }], + should: [], + must_not: [], + }, + }, + { + bool: { + must: [], + filter: [{ match_phrase: { airline: 'FFT' } }], + should: [], + must_not: [], + }, + }, + ], + minimum_should_match: 1, + }, + }, + ], + must: [{ query_string: { query: 'responsetime > 49' } }], must_not: [], should: [], }, }, - searchString: 'responsetime:>50', + searchString: 'responsetime > 49', }); }); it('should override original saved search with the provided query ', () => { expect( getEsQueryFromSavedSearch({ dataView: mockDataView, - savedSearch: luceneSavedSearchObj, + savedSearch: luceneSavedSearch, uiSettings: mockUiSettings, query: { query: 'responsetime:>100', @@ -251,9 +362,34 @@ describe('getEsQueryFromSavedSearch()', () => { }) ).toEqual({ queryLanguage: 'lucene', + queryOrAggregateQuery: { language: 'lucene', query: 'responsetime:>100' }, searchQuery: { bool: { - filter: [{ match_phrase: { airline: { query: 'ASA' } } }], + filter: [ + { + bool: { + should: [ + { + bool: { + must: [], + filter: [{ match_phrase: { airline: 'ACA' } }], + should: [], + must_not: [], + }, + }, + { + bool: { + must: [], + filter: [{ match_phrase: { airline: 'FFT' } }], + should: [], + must_not: [], + }, + }, + ], + minimum_should_match: 1, + }, + }, + ], must: [{ query_string: { query: 'responsetime:>100' } }], must_not: [], should: [], @@ -267,7 +403,7 @@ describe('getEsQueryFromSavedSearch()', () => { expect( getEsQueryFromSavedSearch({ dataView: mockDataView, - savedSearch: luceneSavedSearchObj, + savedSearch: luceneSavedSearch, uiSettings: mockUiSettings, query: { query: 'responsetime:>100', @@ -299,6 +435,7 @@ describe('getEsQueryFromSavedSearch()', () => { }) ).toEqual({ queryLanguage: 'lucene', + queryOrAggregateQuery: { language: 'lucene', query: 'responsetime:>100' }, searchQuery: { bool: { filter: [], diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts index a4678c5ec5dec2..c3473c170b3707 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts @@ -16,13 +16,13 @@ import { buildEsQuery, Query, Filter, + AggregateQuery, } from '@kbn/es-query'; import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { SearchSource } from '@kbn/data-plugin/common'; import { DataView } from '@kbn/data-views-plugin/public'; -import { SavedSearch } from '@kbn/discover-plugin/public'; -import { getEsQueryConfig } from '@kbn/data-plugin/common'; -import { FilterManager } from '@kbn/data-plugin/public'; +import type { SavedSearch } from '@kbn/saved-search-plugin/public'; +import { getEsQueryConfig, isQuery, SearchSource } from '@kbn/data-plugin/common'; +import { FilterManager, mapAndFlattenFilters } from '@kbn/data-plugin/public'; import { SEARCH_QUERY_LANGUAGE, SearchQueryLanguage } from '../types/combined_query'; import { isSavedSearchSavedObject, SavedSearchSavedObject } from '../../../../common/types'; @@ -45,10 +45,12 @@ export function getDefaultQuery() { * from a saved search or saved search object */ export function getQueryFromSavedSearchObject(savedSearch: SavedSearchSavedObject | SavedSearch) { - const search = isSavedSearchSavedObject(savedSearch) - ? savedSearch?.attributes?.kibanaSavedObjectMeta - : // @ts-ignore - savedSearch?.kibanaSavedObjectMeta; + if (!isSavedSearchSavedObject(savedSearch)) { + return savedSearch.searchSource.getSerializedFields(); + } + const search = + savedSearch?.attributes?.kibanaSavedObjectMeta ?? // @ts-ignore + savedSearch?.kibanaSavedObjectMeta; const parsed = typeof search?.searchSourceJSON === 'string' @@ -75,14 +77,14 @@ export function getQueryFromSavedSearchObject(savedSearch: SavedSearchSavedObjec * Should also form a valid query if only the query or filters is provided */ export function createMergedEsQuery( - query?: Query, + query?: Query | AggregateQuery | undefined, filters?: Filter[], dataView?: DataView, uiSettings?: IUiSettingsClient ) { let combinedQuery: QueryDslQueryContainer = getDefaultQuery(); - if (query && query.language === SEARCH_QUERY_LANGUAGE.KUERY) { + if (isQuery(query) && query.language === SEARCH_QUERY_LANGUAGE.KUERY) { const ast = fromKueryExpression(query.query); if (query.query !== '') { combinedQuery = toElasticsearchQuery(ast, dataView); @@ -114,6 +116,14 @@ export function createMergedEsQuery( return combinedQuery; } +function getSavedSearchSource(savedSearch: SavedSearch) { + return savedSearch && + 'searchSource' in savedSearch && + savedSearch?.searchSource instanceof SearchSource + ? savedSearch.searchSource + : undefined; +} + /** * Extract query data from the saved search object * with overrides from the provided query data and/or filters @@ -128,7 +138,7 @@ export function getEsQueryFromSavedSearch({ }: { dataView: DataView; uiSettings: IUiSettingsClient; - savedSearch: SavedSearchSavedObject | SavedSearch | null | undefined; + savedSearch: SavedSearch | null | undefined; query?: Query; filters?: Filter[]; filterManager?: FilterManager; @@ -138,17 +148,13 @@ export function getEsQueryFromSavedSearch({ const userQuery = query; const userFilters = filters; + const savedSearchSource = getSavedSearchSource(savedSearch); + // If saved search has a search source with nested parent // e.g. a search coming from Dashboard saved search embeddable // which already combines both the saved search's original query/filters and the Dashboard's // then no need to process any further - if ( - savedSearch && - 'searchSource' in savedSearch && - savedSearch?.searchSource instanceof SearchSource && - savedSearch.searchSource.getParent() !== undefined && - userQuery - ) { + if (savedSearchSource && savedSearchSource.getParent() !== undefined && userQuery) { // Flattened query from search source may contain a clause that narrows the time range // which might interfere with global time pickers so we need to remove const savedQuery = @@ -168,13 +174,9 @@ export function getEsQueryFromSavedSearch({ }; } - // If saved search is an json object with the original query and filter - // retrieve the parsed query and filter - const savedSearchData = getQueryFromSavedSearchObject(savedSearch); - // If no saved search available, use user's query and filters - if (!savedSearchData && userQuery) { - if (filterManager && userFilters) filterManager.addFilters(userFilters, false); + if (!savedSearch && userQuery) { + if (filterManager && userFilters) filterManager.addFilters(userFilters); const combinedQuery = createMergedEsQuery( userQuery, @@ -190,13 +192,14 @@ export function getEsQueryFromSavedSearch({ }; } - // If saved search available, merge saved search with latest user query or filters + // If saved search available, merge saved search with the latest user query or filters // which might differ from extracted saved search data - if (savedSearchData) { + if (savedSearchSource) { const globalFilters = filterManager?.getGlobalFilters(); - const currentQuery = userQuery ?? savedSearchData?.query; - const currentFilters = userFilters ?? savedSearchData?.filter; - + // FIXME: Add support for AggregateQuery type #150091 + const currentQuery = userQuery ?? (savedSearchSource.getField('query') as Query); + const currentFilters = + userFilters ?? mapAndFlattenFilters(savedSearchSource.getField('filter') as Filter[]); if (filterManager) filterManager.setFilters(currentFilters); if (globalFilters) filterManager?.addFilters(globalFilters); @@ -209,8 +212,9 @@ export function getEsQueryFromSavedSearch({ return { searchQuery: combinedQuery, - searchString: currentQuery.query, - queryLanguage: currentQuery.language as SearchQueryLanguage, + searchString: currentQuery?.query ?? '', + queryLanguage: (currentQuery?.language as SearchQueryLanguage) ?? 'kuery', + queryOrAggregateQuery: currentQuery, }; } } diff --git a/x-pack/plugins/data_visualizer/tsconfig.json b/x-pack/plugins/data_visualizer/tsconfig.json index fd61172e31587d..7472c3910f7fea 100644 --- a/x-pack/plugins/data_visualizer/tsconfig.json +++ b/x-pack/plugins/data_visualizer/tsconfig.json @@ -56,6 +56,7 @@ "@kbn/ml-date-picker", "@kbn/ml-is-defined", "@kbn/ml-query-utils", + "@kbn/saved-search-plugin", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/discover_enhanced/kibana.json b/x-pack/plugins/discover_enhanced/kibana.json deleted file mode 100644 index d1c8242987424d..00000000000000 --- a/x-pack/plugins/discover_enhanced/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "discoverEnhanced", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["uiActions", "embeddable", "discover"], - "optionalPlugins": ["share", "usageCollection"], - "configPath": ["xpack", "discoverEnhanced"], - "requiredBundles": ["kibanaUtils", "data", "lens"], - "owner": { - "name": "Data Discovery", - "githubTeam": "kibana-data-discovery" - } -} diff --git a/x-pack/plugins/discover_enhanced/kibana.jsonc b/x-pack/plugins/discover_enhanced/kibana.jsonc new file mode 100644 index 00000000000000..73243ee5d59d34 --- /dev/null +++ b/x-pack/plugins/discover_enhanced/kibana.jsonc @@ -0,0 +1,28 @@ +{ + "type": "plugin", + "id": "@kbn/discover-enhanced-plugin", + "owner": "@elastic/kibana-data-discovery", + "plugin": { + "id": "discoverEnhanced", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "discoverEnhanced" + ], + "requiredPlugins": [ + "uiActions", + "embeddable", + "discover" + ], + "optionalPlugins": [ + "share", + "usageCollection" + ], + "requiredBundles": [ + "kibanaUtils", + "data", + "lens" + ] + } +} diff --git a/x-pack/plugins/drilldowns/url_drilldown/kibana.json b/x-pack/plugins/drilldowns/url_drilldown/kibana.json deleted file mode 100644 index 8e7c290cfd1854..00000000000000 --- a/x-pack/plugins/drilldowns/url_drilldown/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "urlDrilldown", - "version": "kibana", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Adds drilldown implementations to Kibana", - "requiredPlugins": ["embeddable", "uiActions", "uiActionsEnhanced"], - "requiredBundles": ["kibanaUtils", "kibanaReact", "imageEmbeddable"] -} diff --git a/x-pack/plugins/drilldowns/url_drilldown/kibana.jsonc b/x-pack/plugins/drilldowns/url_drilldown/kibana.jsonc new file mode 100644 index 00000000000000..32db8081e72507 --- /dev/null +++ b/x-pack/plugins/drilldowns/url_drilldown/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/url-drilldown-plugin", + "owner": "@elastic/kibana-app-services", + "description": "Adds drilldown implementations to Kibana", + "plugin": { + "id": "urlDrilldown", + "server": false, + "browser": true, + "requiredPlugins": [ + "embeddable", + "uiActions", + "uiActionsEnhanced" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact", + "imageEmbeddable" + ] + } +} diff --git a/x-pack/plugins/ecs_data_quality_dashboard/README.md b/x-pack/plugins/ecs_data_quality_dashboard/README.md new file mode 100755 index 00000000000000..78c68dc00035d7 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/README.md @@ -0,0 +1,10 @@ +# ECS Data Quality Dashboard + +This plugin implements (server) APIs used to render the content of the _Data Quality_ dashboard. + +- The Data Quality dashboard checks the mappings and values in indices for [ECS](https://github.com/elastic/ecs) compliance +- Results are added to a new case, or exported as markdown + +## Maintainers + +Maintained by the Security Solution _Threat Hunting Investigations_ team diff --git a/x-pack/plugins/ecs_data_quality_dashboard/common/constants.ts b/x-pack/plugins/ecs_data_quality_dashboard/common/constants.ts new file mode 100755 index 00000000000000..51455c071b5193 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/common/constants.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const PLUGIN_ID = 'ecsDataQualityDashboard'; +export const PLUGIN_NAME = 'ecsDataQualityDashboard'; + +export const BASE_PATH = '/internal/ecs_data_quality_dashboard'; +export const GET_INDEX_STATS = `${BASE_PATH}/stats/{pattern}`; +export const GET_INDEX_MAPPINGS = `${BASE_PATH}/mappings/{pattern}`; +export const GET_UNALLOWED_FIELD_VALUES = `${BASE_PATH}/unallowed_field_values`; +export const GET_ILM_EXPLAIN = `${BASE_PATH}/ilm_explain/{pattern}`; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/jest.config.js b/x-pack/plugins/ecs_data_quality_dashboard/jest.config.js new file mode 100644 index 00000000000000..cc9c79fe6d1e51 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/jest.config.js @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +module.exports = { + collectCoverageFrom: [ + '/x-pack/plugins/ecs_data_quality_dashboard/{common,lib,server}/**/*.{ts,tsx}', + ], + coverageDirectory: + '/target/kibana-coverage/jest/x-pack/plugins/ecs_data_quality_dashboard', + coverageReporters: ['text', 'html'], + rootDir: '../../..', + roots: ['/x-pack/plugins/ecs_data_quality_dashboard'], + preset: '@kbn/test', +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/kibana.jsonc b/x-pack/plugins/ecs_data_quality_dashboard/kibana.jsonc new file mode 100644 index 00000000000000..b946a7342a1b07 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/ecs-data-quality-dashboard-plugin", + "owner": "@elastic/security-threat-hunting-investigations", + "description": "APIs used to assess the quality of data in Elasticsearch indexes", + "plugin": { + "id": "ecsDataQualityDashboard", + "server": true, + "browser": false, + "requiredPlugins": [ + "data" + ] + } +} diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/request.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/request.ts new file mode 100644 index 00000000000000..827f08683e0b8d --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/request.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { httpServerMock } from '@kbn/core/server/mocks'; + +export const requestMock = { + create: httpServerMock.createKibanaRequest, +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/request_context.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/request_context.ts new file mode 100644 index 00000000000000..19fb44f7f8bace --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/request_context.ts @@ -0,0 +1,56 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { coreMock } from '@kbn/core/server/mocks'; +import { licensingMock } from '@kbn/licensing-plugin/server/mocks'; + +export const createMockClients = () => { + const core = coreMock.createRequestHandlerContext(); + const license = licensingMock.createLicenseMock(); + + return { + core, + clusterClient: core.elasticsearch.client, + savedObjectsClient: core.savedObjects.client, + + licensing: { + ...licensingMock.createRequestHandlerContext({ license }), + license, + }, + + config: createMockConfig(), + appClient: createAppClientMock(), + }; +}; + +type MockClients = ReturnType; + +const convertRequestContextMock = (context: T) => { + return coreMock.createCustomRequestHandlerContext(context); +}; + +const createMockConfig = () => ({}); + +const createAppClientMock = () => ({}); + +const createRequestContextMock = (clients: MockClients = createMockClients()) => { + return { + core: clients.core, + }; +}; + +const createTools = () => { + const clients = createMockClients(); + const context = createRequestContextMock(clients); + + return { clients, context }; +}; + +export const requestContextMock = { + create: createRequestContextMock, + convertContext: convertRequestContextMock, + createTools, +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/response.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/response.ts new file mode 100644 index 00000000000000..8efe2407f22454 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/response.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { httpServerMock } from '@kbn/core/server/mocks'; + +export const responseMock = { + create: httpServerMock.createResponseFactory, +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/server.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/server.ts new file mode 100644 index 00000000000000..7ac44e1beedf1d --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/server.ts @@ -0,0 +1,95 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { httpServiceMock } from '@kbn/core/server/mocks'; +import type { RequestHandler, RouteConfig, KibanaRequest } from '@kbn/core/server'; +import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; + +import { requestMock } from './request'; +import { responseMock as responseFactoryMock } from './response'; +import { requestContextMock } from './request_context'; +import { responseAdapter } from './test_adapters'; + +interface Route { + config: RouteConfig; + handler: RequestHandler; +} + +const getRoute = (routerMock: MockServer['router']): Route => { + const routeCalls = [ + ...routerMock.get.mock.calls, + ...routerMock.post.mock.calls, + ...routerMock.put.mock.calls, + ...routerMock.patch.mock.calls, + ...routerMock.delete.mock.calls, + ]; + + const [route] = routeCalls; + if (!route) { + throw new Error('No route registered!'); + } + + const [config, handler] = route; + return { config, handler }; +}; + +const buildResultMock = () => ({ ok: jest.fn((x) => x), badRequest: jest.fn((x) => x) }); + +class MockServer { + constructor( + public readonly router = httpServiceMock.createRouter(), + private responseMock = responseFactoryMock.create(), + private contextMock = requestContextMock.convertContext(requestContextMock.create()), + private resultMock = buildResultMock() + ) {} + + public validate(request: KibanaRequest) { + this.validateRequest(request); + return this.resultMock; + } + + public async inject(request: KibanaRequest, context: RequestHandlerContext = this.contextMock) { + const validatedRequest = this.validateRequest(request); + const [rejection] = this.resultMock.badRequest.mock.calls; + if (rejection) { + throw new Error(`Request was rejected with message: '${rejection}'`); + } + + await this.getRoute().handler(context, validatedRequest, this.responseMock); + return responseAdapter(this.responseMock); + } + + private getRoute(): Route { + return getRoute(this.router); + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private maybeValidate(part: any, validator?: any): any { + return typeof validator === 'function' ? validator(part, this.resultMock) : part; + } + + private validateRequest(request: KibanaRequest): KibanaRequest { + const validations = this.getRoute().config.validate; + if (!validations) { + return request; + } + + const validatedRequest = requestMock.create({ + path: request.route.path, + method: request.route.method, + body: this.maybeValidate(request.body, validations.body), + query: this.maybeValidate(request.query, validations.query), + params: this.maybeValidate(request.params, validations.params), + }); + + return validatedRequest; + } +} +const createMockServer = () => new MockServer(); + +export const serverMock = { + create: createMockServer, +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/test_adapters.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/test_adapters.ts new file mode 100644 index 00000000000000..4de81ca9316929 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/test_adapters.ts @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { responseMock } from './response'; + +type ResponseMock = ReturnType; +type Method = keyof ResponseMock; + +type MockCall = any; // eslint-disable-line @typescript-eslint/no-explicit-any + +interface ResponseCall { + body: any; // eslint-disable-line @typescript-eslint/no-explicit-any + status: number; +} + +/** + * @internal + */ +export interface Response extends ResponseCall { + calls: ResponseCall[]; +} + +const buildResponses = (method: Method, calls: MockCall[]): ResponseCall[] => { + if (!calls.length) return []; + + switch (method) { + case 'ok': + return calls.map(([call]) => ({ status: 200, body: call.body })); + case 'custom': + return calls.map(([call]) => ({ + status: call.statusCode, + body: JSON.parse(call.body), + })); + case 'customError': + return calls.map(([call]) => ({ + status: call.statusCode, + body: call.body, + })); + default: + throw new Error(`Encountered unexpected call to response.${method}`); + } +}; + +export const responseAdapter = (response: ResponseMock): Response => { + const methods = Object.keys(response) as Method[]; + const calls = methods + .reduce((responses, method) => { + const methodMock = response[method]; + return [...responses, ...buildResponses(method, methodMock.mock.calls)]; + }, []) + .sort((call, other) => other.status - call.status); + + const [{ body, status }] = calls; + + return { + body, + status, + calls, + }; +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/helpers/get_unallowed_field_requests.test.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/helpers/get_unallowed_field_requests.test.ts new file mode 100644 index 00000000000000..32ab83c1ccee29 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/helpers/get_unallowed_field_requests.test.ts @@ -0,0 +1,112 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getMSearchRequestBody, getMSearchRequestHeader } from './get_unallowed_field_requests'; + +describe('getMSearchRequest', () => { + test('getMSearchRequestHeader', () => { + expect(getMSearchRequestHeader('auditbeat')).toMatchInlineSnapshot(` + Object { + "expand_wildcards": Array [ + "open", + ], + "index": "auditbeat", + } + `); + }); + + test('getMSearchRequestBody', () => { + expect( + getMSearchRequestBody({ + indexName: 'auditbeat', + indexFieldName: 'event.category', + allowedValues: ['process'], + }) + ).toMatchInlineSnapshot(` + Object { + "aggregations": Object { + "event.category": Object { + "terms": Object { + "field": "event.category", + "order": Object { + "_count": "desc", + }, + }, + }, + }, + "query": Object { + "bool": Object { + "filter": Array [ + Object { + "bool": Object { + "filter": Array [], + "must": Array [], + "must_not": Array [ + Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "match_phrase": Object { + "event.category": "process", + }, + }, + ], + }, + }, + ], + "should": Array [], + }, + }, + ], + }, + }, + "runtime_mappings": Object {}, + "size": 0, + } + `); + }); + + test('getMSearchRequestBody - without allowedValues', () => { + expect( + getMSearchRequestBody({ + indexName: 'auditbeat', + indexFieldName: 'event.category', + allowedValues: [], + }) + ).toMatchInlineSnapshot(` + Object { + "aggregations": Object { + "event.category": Object { + "terms": Object { + "field": "event.category", + "order": Object { + "_count": "desc", + }, + }, + }, + }, + "query": Object { + "bool": Object { + "filter": Array [ + Object { + "bool": Object { + "filter": Array [], + "must": Array [], + "must_not": Array [], + "should": Array [], + }, + }, + ], + }, + }, + "runtime_mappings": Object {}, + "size": 0, + } + `); + }); +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/helpers/get_unallowed_field_requests.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/helpers/get_unallowed_field_requests.ts new file mode 100644 index 00000000000000..c5b30da92295ee --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/helpers/get_unallowed_field_requests.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + MsearchMultisearchHeader, + MsearchMultisearchBody, +} from '@elastic/elasticsearch/lib/api/types'; +import { AllowedValuesInputs } from '../schemas/get_unallowed_field_values'; + +export const getMSearchRequestHeader = (indexName: string): MsearchMultisearchHeader => ({ + expand_wildcards: ['open'], + index: indexName, +}); + +export const getMSearchRequestBody = ({ + indexName, + indexFieldName, + allowedValues, +}: { + indexName: string; + indexFieldName: string; + allowedValues: AllowedValuesInputs; +}): MsearchMultisearchBody => ({ + aggregations: { + [indexFieldName]: { + terms: { + field: indexFieldName, + order: { + _count: 'desc', + }, + }, + }, + }, + query: { + bool: { + filter: [ + { + bool: { + must: [], + filter: [], + should: [], + must_not: + allowedValues.length > 0 + ? [ + { + bool: { + should: allowedValues.map((allowedValue) => ({ + match_phrase: { + [indexFieldName]: allowedValue, + }, + })), + minimum_should_match: 1, + }, + }, + ] + : [], + }, + }, + ], + }, + }, + runtime_mappings: {}, + size: 0, +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/index.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/index.ts new file mode 100755 index 00000000000000..e7b580e50a7625 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PluginInitializerContext } from '@kbn/core/server'; +import { EcsDataQualityDashboardPlugin } from './plugin'; + +// This exports static code and TypeScript types, +// as well as, Kibana Platform `plugin()` initializer. + +export function plugin(initializerContext: PluginInitializerContext) { + return new EcsDataQualityDashboardPlugin(initializerContext); +} + +export type { + EcsDataQualityDashboardPluginSetup, + EcsDataQualityDashboardPluginStart, +} from './types'; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/lib/build_response/index.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/build_response/index.ts new file mode 100644 index 00000000000000..bbec702c74915b --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/build_response/index.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { CustomHttpResponseOptions, KibanaResponseFactory } from '@kbn/core-http-server'; + +const statusToErrorMessage = ( + statusCode: number +): + | 'Bad Request' + | 'Unauthorized' + | 'Forbidden' + | 'Not Found' + | 'Conflict' + | 'Internal Error' + | '(unknown error)' => { + switch (statusCode) { + case 400: + return 'Bad Request'; + case 401: + return 'Unauthorized'; + case 403: + return 'Forbidden'; + case 404: + return 'Not Found'; + case 409: + return 'Conflict'; + case 500: + return 'Internal Error'; + default: + return '(unknown error)'; + } +}; + +/** Creates responses */ +export class ResponseFactory { + /** constructor */ + constructor(private response: KibanaResponseFactory) {} + + /** error */ + error({ statusCode, body, headers }: CustomHttpResponseOptions) { + const contentType: CustomHttpResponseOptions['headers'] = { + 'content-type': 'application/json', + }; + const defaultedHeaders: CustomHttpResponseOptions['headers'] = { + ...contentType, + ...(headers ?? {}), + }; + + return this.response.custom({ + body: Buffer.from( + JSON.stringify({ + message: body ?? statusToErrorMessage(statusCode), + status_code: statusCode, + }) + ), + headers: defaultedHeaders, + statusCode, + }); + } +} + +/** builds a response */ +export const buildResponse = (response: KibanaResponseFactory): ResponseFactory => + new ResponseFactory(response); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_ilm_explain.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_ilm_explain.ts new file mode 100644 index 00000000000000..cb7d5535e217d7 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_ilm_explain.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IlmExplainLifecycleResponse } from '@elastic/elasticsearch/lib/api/types'; +import type { IScopedClusterClient } from '@kbn/core/server'; + +export const fetchILMExplain = async ( + client: IScopedClusterClient, + indexPattern: string +): Promise => + client.asCurrentUser.ilm.explainLifecycle({ + index: indexPattern, + }); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_mappings.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_mappings.ts new file mode 100644 index 00000000000000..aa5ca64dd565e1 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_mappings.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IndicesGetMappingIndexMappingRecord } from '@elastic/elasticsearch/lib/api/types'; +import type { IScopedClusterClient } from '@kbn/core/server'; + +export const fetchMappings = async ( + client: IScopedClusterClient, + indexPattern: string +): Promise> => + client.asCurrentUser.indices.getMapping({ + expand_wildcards: ['open'], + index: indexPattern, + }); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_stats.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_stats.ts new file mode 100644 index 00000000000000..2fe27f77b6154f --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/fetch_stats.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IndicesStatsResponse } from '@elastic/elasticsearch/lib/api/types'; +import type { IScopedClusterClient } from '@kbn/core/server'; + +export const fetchStats = async ( + client: IScopedClusterClient, + indexPattern: string +): Promise => + client.asCurrentUser.indices.stats({ + expand_wildcards: ['open'], + index: indexPattern, + }); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/lib/get_unallowed_field_values.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/get_unallowed_field_values.ts new file mode 100644 index 00000000000000..2079a58ce5b8df --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/get_unallowed_field_values.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { ElasticsearchClient } from '@kbn/core/server'; + +import { MsearchRequestItem } from '@elastic/elasticsearch/lib/api/types'; +import { + getMSearchRequestBody, + getMSearchRequestHeader, +} from '../helpers/get_unallowed_field_requests'; +import { GetUnallowedFieldValuesInputs } from '../schemas/get_unallowed_field_values'; + +export const getUnallowedFieldValues = ( + esClient: ElasticsearchClient, + items: GetUnallowedFieldValuesInputs +) => { + const searches: MsearchRequestItem[] = items.reduce( + (acc, { indexName, indexFieldName, allowedValues }) => + acc.concat([ + getMSearchRequestHeader(indexName), + getMSearchRequestBody({ indexName, indexFieldName, allowedValues }), + ]), + [] + ); + + return esClient.msearch({ + searches, + }); +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/lib/index.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/index.ts new file mode 100644 index 00000000000000..79b8d9b4f13c24 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/index.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export * from './fetch_mappings'; +export * from './fetch_stats'; +export * from './get_unallowed_field_values'; +export * from './fetch_ilm_explain'; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/plugin.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/plugin.ts new file mode 100755 index 00000000000000..d93766d2f3a7ef --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/plugin.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PluginInitializerContext, CoreSetup, CoreStart, Plugin, Logger } from '@kbn/core/server'; + +import { EcsDataQualityDashboardPluginSetup, EcsDataQualityDashboardPluginStart } from './types'; +import { + getILMExplainRoute, + getIndexMappingsRoute, + getIndexStatsRoute, + getUnallowedFieldValuesRoute, +} from './routes'; + +export class EcsDataQualityDashboardPlugin + implements Plugin +{ + private readonly logger: Logger; + + constructor(initializerContext: PluginInitializerContext) { + this.logger = initializerContext.logger.get(); + } + + public setup(core: CoreSetup) { + this.logger.debug('ecsDataQualityDashboard: Setup'); // this would be deleted when plugin is removed + const router = core.http.createRouter(); // this would be deleted when plugin is removed + + // Register server side APIs + getIndexMappingsRoute(router); + getIndexStatsRoute(router); + getUnallowedFieldValuesRoute(router); + getILMExplainRoute(router); + return {}; + } + + public start(core: CoreStart) { + this.logger.debug('ecsDataQualityDashboard: Started'); + return {}; + } + + public stop() {} +} diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_ilm_explain.test.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_ilm_explain.test.ts new file mode 100644 index 00000000000000..737ddf781f1a97 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_ilm_explain.test.ts @@ -0,0 +1,113 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { GET_ILM_EXPLAIN } from '../../common/constants'; + +import { fetchILMExplain } from '../lib'; + +import { serverMock } from '../__mocks__/server'; +import { requestMock } from '../__mocks__/request'; +import { requestContextMock } from '../__mocks__/request_context'; +import { getILMExplainRoute } from './get_ilm_explain'; + +jest.mock('../lib', () => ({ + fetchILMExplain: jest.fn(), +})); + +describe('getILMExplainRoute route', () => { + let server: ReturnType; + let { context } = requestContextMock.createTools(); + const req = requestMock.create({ + method: 'get', + path: GET_ILM_EXPLAIN, + params: { + pattern: '.internal.alerts-security.alerts-default-000001', + }, + }); + + beforeEach(() => { + jest.clearAllMocks(); + + server = serverMock.create(); + ({ context } = requestContextMock.createTools()); + + getILMExplainRoute(server.router); + }); + + test('Returns index ilm information', async () => { + const mockIlmExplain = { + indices: { + '.internal.alerts-security.alerts-default-000001': { + index: '.internal.alerts-security.alerts-default-000001', + managed: true, + policy: '.alerts-ilm-policy', + index_creation_date_millis: 1673997720742, + time_since_index_creation: '13.96d', + lifecycle_date_millis: 1673997720742, + age: '13.96d', + phase: 'hot', + phase_time_millis: 1673997721040, + action: 'rollover', + action_time_millis: 1673997721040, + step: 'check-rollover-ready', + step_time_millis: 1673997721040, + phase_execution: { + policy: '.alerts-ilm-policy', + phase_definition: { + min_age: '0ms', + actions: { + rollover: { + max_primary_shard_size: '50gb', + max_age: '30d', + }, + }, + }, + version: 1, + modified_date_in_millis: 1673996949964, + }, + }, + }, + }; + + (fetchILMExplain as jest.Mock).mockResolvedValue(mockIlmExplain); + + const response = await server.inject(req, requestContextMock.convertContext(context)); + expect(response.status).toEqual(200); + expect(response.body).toEqual(mockIlmExplain.indices); + }); + + test('Handles error', async () => { + const errorMessage = 'Error!'; + (fetchILMExplain as jest.Mock).mockRejectedValue({ message: errorMessage }); + + const response = await server.inject(req, requestContextMock.convertContext(context)); + expect(response.status).toEqual(500); + expect(response.body).toEqual({ message: errorMessage, status_code: 500 }); + }); +}); + +describe('request validation', () => { + let server: ReturnType; + + beforeEach(() => { + server = serverMock.create(); + + getILMExplainRoute(server.router); + }); + + test('disallows invalid pattern', () => { + const request = requestMock.create({ + method: 'get', + path: GET_ILM_EXPLAIN, + params: { + pattern: 123, + }, + }); + const result = server.validate(request); + + expect(result.badRequest).toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_ilm_explain.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_ilm_explain.ts new file mode 100644 index 00000000000000..dab234eecaae71 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_ilm_explain.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IRouter } from '@kbn/core/server'; +import { transformError } from '@kbn/securitysolution-es-utils'; + +import { GET_ILM_EXPLAIN } from '../../common/constants'; +import { fetchILMExplain } from '../lib'; +import { buildResponse } from '../lib/build_response'; +import { buildRouteValidation } from '../schemas/common'; +import { GetILMExplainParams } from '../schemas/get_ilm_explain'; + +export const getILMExplainRoute = (router: IRouter) => { + router.get( + { + path: GET_ILM_EXPLAIN, + validate: { params: buildRouteValidation(GetILMExplainParams) }, + }, + async (context, request, response) => { + const resp = buildResponse(response); + + try { + const { client } = (await context.core).elasticsearch; + const decodedIndexName = decodeURIComponent(request.params.pattern); + + const ilmExplain = await fetchILMExplain(client, decodedIndexName); + + return response.ok({ + body: ilmExplain.indices, + }); + } catch (err) { + const error = transformError(err); + + return resp.error({ + body: error.message, + statusCode: error.statusCode, + }); + } + } + ); +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_mappings.test.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_mappings.test.ts new file mode 100644 index 00000000000000..6c76c843962996 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_mappings.test.ts @@ -0,0 +1,80 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { GET_INDEX_MAPPINGS } from '../../common/constants'; + +import { fetchMappings } from '../lib'; + +import { serverMock } from '../__mocks__/server'; +import { requestMock } from '../__mocks__/request'; +import { requestContextMock } from '../__mocks__/request_context'; +import { getIndexMappingsRoute } from './get_index_mappings'; + +jest.mock('../lib', () => ({ + fetchMappings: jest.fn(), +})); + +describe('getIndexMappingsRoute route', () => { + let server: ReturnType; + let { context } = requestContextMock.createTools(); + const req = requestMock.create({ + method: 'get', + path: GET_INDEX_MAPPINGS, + params: { + pattern: 'auditbeat-*', + }, + }); + + beforeEach(() => { + jest.clearAllMocks(); + + server = serverMock.create(); + ({ context } = requestContextMock.createTools()); + + getIndexMappingsRoute(server.router); + }); + + test('Returns index stats', async () => { + const mockIndices = { 'auditbeat-7.15.1-2022.12.06-000001': {} }; + (fetchMappings as jest.Mock).mockResolvedValue(mockIndices); + + const response = await server.inject(req, requestContextMock.convertContext(context)); + expect(response.status).toEqual(200); + expect(response.body).toEqual(mockIndices); + }); + + test('Handles error', async () => { + const errorMessage = 'Error!'; + (fetchMappings as jest.Mock).mockRejectedValue({ message: errorMessage }); + + const response = await server.inject(req, requestContextMock.convertContext(context)); + expect(response.status).toEqual(500); + expect(response.body).toEqual({ message: errorMessage, status_code: 500 }); + }); +}); + +describe('request validation', () => { + let server: ReturnType; + + beforeEach(() => { + server = serverMock.create(); + + getIndexMappingsRoute(server.router); + }); + + test('disallows invalid pattern', () => { + const request = requestMock.create({ + method: 'get', + path: GET_INDEX_MAPPINGS, + params: { + pattern: 123, + }, + }); + const result = server.validate(request); + + expect(result.badRequest).toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_mappings.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_mappings.ts new file mode 100755 index 00000000000000..8b81daebeec8d5 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_mappings.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IRouter } from '@kbn/core/server'; +import { transformError } from '@kbn/securitysolution-es-utils'; + +import { fetchMappings } from '../lib'; +import { buildResponse } from '../lib/build_response'; +import { GET_INDEX_MAPPINGS } from '../../common/constants'; +import { GetIndexMappingsParams } from '../schemas/get_index_mappings'; +import { buildRouteValidation } from '../schemas/common'; + +export const getIndexMappingsRoute = (router: IRouter) => { + router.get( + { + path: GET_INDEX_MAPPINGS, + validate: { params: buildRouteValidation(GetIndexMappingsParams) }, + }, + async (context, request, response) => { + const resp = buildResponse(response); + + try { + const { client } = (await context.core).elasticsearch; + const decodedIndexName = decodeURIComponent(request.params.pattern); + + const mappings = await fetchMappings(client, decodedIndexName); + + return response.ok({ + body: mappings, + }); + } catch (err) { + const error = transformError(err); + + return resp.error({ + body: error.message, + statusCode: error.statusCode, + }); + } + } + ); +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_stats.test.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_stats.test.ts new file mode 100644 index 00000000000000..8a988ef636e80a --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_stats.test.ts @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { GET_INDEX_STATS } from '../../common/constants'; + +import { fetchStats } from '../lib'; + +import { serverMock } from '../__mocks__/server'; +import { requestMock } from '../__mocks__/request'; +import { requestContextMock } from '../__mocks__/request_context'; +import { getIndexStatsRoute } from './get_index_stats'; + +jest.mock('../lib', () => ({ + fetchStats: jest.fn(), +})); + +describe('getIndexStatsRoute route', () => { + let server: ReturnType; + let { context } = requestContextMock.createTools(); + const req = requestMock.create({ + method: 'get', + path: GET_INDEX_STATS, + params: { + pattern: 'auditbeat-*', + }, + }); + + beforeEach(() => { + jest.clearAllMocks(); + + server = serverMock.create(); + ({ context } = requestContextMock.createTools()); + + getIndexStatsRoute(server.router); + }); + + test('Returns index stats', async () => { + const mockIndices = { 'auditbeat-7.15.1-2022.12.06-000001': {} }; + (fetchStats as jest.Mock).mockResolvedValue({ + indices: mockIndices, + }); + + const response = await server.inject(req, requestContextMock.convertContext(context)); + expect(response.status).toEqual(200); + expect(response.body).toEqual(mockIndices); + }); + + test('Handles error', async () => { + const errorMessage = 'Error!'; + (fetchStats as jest.Mock).mockRejectedValue({ message: errorMessage }); + + const response = await server.inject(req, requestContextMock.convertContext(context)); + expect(response.status).toEqual(500); + expect(response.body).toEqual({ message: errorMessage, status_code: 500 }); + }); +}); + +describe('request validation', () => { + let server: ReturnType; + + beforeEach(() => { + server = serverMock.create(); + + getIndexStatsRoute(server.router); + }); + + test('disallows invalid pattern', () => { + const request = requestMock.create({ + method: 'get', + path: GET_INDEX_STATS, + params: { + pattern: 123, + }, + }); + const result = server.validate(request); + + expect(result.badRequest).toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_stats.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_stats.ts new file mode 100644 index 00000000000000..221a07699f69c0 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_index_stats.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IRouter } from '@kbn/core/server'; +import { transformError } from '@kbn/securitysolution-es-utils'; + +import { fetchStats } from '../lib'; +import { buildResponse } from '../lib/build_response'; +import { GET_INDEX_STATS } from '../../common/constants'; +import { buildRouteValidation } from '../schemas/common'; +import { GetIndexStatsParams } from '../schemas/get_index_stats'; + +export const getIndexStatsRoute = (router: IRouter) => { + router.get( + { + path: GET_INDEX_STATS, + validate: { params: buildRouteValidation(GetIndexStatsParams) }, + }, + async (context, request, response) => { + const resp = buildResponse(response); + + try { + const { client } = (await context.core).elasticsearch; + const decodedIndexName = decodeURIComponent(request.params.pattern); + + const stats = await fetchStats(client, decodedIndexName); + + return response.ok({ + body: stats.indices, + }); + } catch (err) { + const error = transformError(err); + + return resp.error({ + body: error.message, + statusCode: error.statusCode, + }); + } + } + ); +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_unallowed_field_values.test.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_unallowed_field_values.test.ts new file mode 100644 index 00000000000000..bb593561116997 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_unallowed_field_values.test.ts @@ -0,0 +1,132 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { GET_UNALLOWED_FIELD_VALUES } from '../../common/constants'; + +import { getUnallowedFieldValues } from '../lib'; + +import { serverMock } from '../__mocks__/server'; +import { requestMock } from '../__mocks__/request'; +import { requestContextMock } from '../__mocks__/request_context'; +import { getUnallowedFieldValuesRoute } from './get_unallowed_field_values'; + +jest.mock('../lib', () => ({ + getUnallowedFieldValues: jest.fn(), +})); + +describe('getUnallowedFieldValuesRoute route', () => { + let server: ReturnType; + let { context } = requestContextMock.createTools(); + const req = requestMock.create({ + method: 'post', + path: GET_UNALLOWED_FIELD_VALUES, + body: [ + { + indexName: 'auditbeat-*', + indexFieldName: 'event.category', + allowedValues: ['process'], + }, + ], + }); + + beforeEach(() => { + jest.clearAllMocks(); + + server = serverMock.create(); + ({ context } = requestContextMock.createTools()); + + getUnallowedFieldValuesRoute(server.router); + }); + + test('Returns unallowedValues', async () => { + const responses = { + responses: [ + { + took: 3, + timed_out: false, + _shards: { + total: 1, + successful: 1, + skipped: 0, + failed: 0, + }, + hits: { + total: { + value: 1394, + relation: 'eq', + }, + max_score: null, + hits: [], + }, + aggregations: { + unallowedValues: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'file', + doc_count: 1346, + }, + { + key: 'package', + doc_count: 44, + }, + { + key: 'host', + doc_count: 4, + }, + ], + }, + }, + status: 200, + }, + ], + }; + (getUnallowedFieldValues as jest.Mock).mockResolvedValue({ + responses, + took: 3, + }); + + const response = await server.inject(req, requestContextMock.convertContext(context)); + expect(response.status).toEqual(200); + expect(response.body).toEqual(responses); + }); + + test('Handles error', async () => { + const errorMessage = 'Error!'; + (getUnallowedFieldValues as jest.Mock).mockRejectedValue({ message: errorMessage }); + + const response = await server.inject(req, requestContextMock.convertContext(context)); + expect(response.status).toEqual(500); + expect(response.body).toEqual({ message: errorMessage, status_code: 500 }); + }); +}); + +describe('request validation', () => { + let server: ReturnType; + + beforeEach(() => { + server = serverMock.create(); + + getUnallowedFieldValuesRoute(server.router); + }); + + test('disallows invalid pattern', () => { + const request = requestMock.create({ + method: 'post', + path: GET_UNALLOWED_FIELD_VALUES, + body: [ + { + indexFieldName: 'event.category', + allowedValues: [{ name: 'process' }], + }, + ], + }); + const result = server.validate(request); + + expect(result.badRequest).toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_unallowed_field_values.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_unallowed_field_values.ts new file mode 100644 index 00000000000000..be504a812e16bf --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_unallowed_field_values.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IRouter } from '@kbn/core/server'; +import { transformError } from '@kbn/securitysolution-es-utils'; + +import { getUnallowedFieldValues } from '../lib'; +import { buildResponse } from '../lib/build_response'; +import { GET_UNALLOWED_FIELD_VALUES } from '../../common/constants'; +import { buildRouteValidation } from '../schemas/common'; +import { GetUnallowedFieldValuesBody } from '../schemas/get_unallowed_field_values'; + +export const getUnallowedFieldValuesRoute = (router: IRouter) => { + router.post( + { + path: GET_UNALLOWED_FIELD_VALUES, + validate: { body: buildRouteValidation(GetUnallowedFieldValuesBody) }, + }, + async (context, request, response) => { + const resp = buildResponse(response); + const esClient = (await context.core).elasticsearch.client.asCurrentUser; + + try { + const items = request.body; + + const { responses } = await getUnallowedFieldValues(esClient, items); + return response.ok({ + body: responses, + }); + } catch (err) { + const error = transformError(err); + + return resp.error({ + body: error.message, + statusCode: error.statusCode, + }); + } + } + ); +}; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/routes/index.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/index.ts new file mode 100644 index 00000000000000..6622471d463e3e --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/routes/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +export { getIndexMappingsRoute } from './get_index_mappings'; +export { getIndexStatsRoute } from './get_index_stats'; +export { getUnallowedFieldValuesRoute } from './get_unallowed_field_values'; +export { getILMExplainRoute } from './get_ilm_explain'; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/common.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/common.ts new file mode 100644 index 00000000000000..00e97a9326c5e6 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/common.ts @@ -0,0 +1,38 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { fold } from 'fp-ts/lib/Either'; +import { pipe } from 'fp-ts/lib/pipeable'; +import type * as rt from 'io-ts'; +import { exactCheck, formatErrors } from '@kbn/securitysolution-io-ts-utils'; +import type { + RouteValidationFunction, + RouteValidationResultFactory, + RouteValidationError, +} from '@kbn/core/server'; + +type RequestValidationResult = + | { + value: T; + error?: undefined; + } + | { + value?: undefined; + error: RouteValidationError; + }; + +export const buildRouteValidation = + >(schema: T): RouteValidationFunction => + (inputValue: unknown, validationResult: RouteValidationResultFactory) => + pipe( + schema.decode(inputValue), + (decoded) => exactCheck(inputValue, decoded), + fold>( + (errors: rt.Errors) => validationResult.badRequest(formatErrors(errors).join()), + (validatedInput: A) => validationResult.ok(validatedInput) + ) + ); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_ilm_explain.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_ilm_explain.ts new file mode 100644 index 00000000000000..794b354c083a8d --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_ilm_explain.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import * as t from 'io-ts'; + +export const GetILMExplainParams = t.type({ + pattern: t.string, +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_index_mappings.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_index_mappings.ts new file mode 100644 index 00000000000000..e912eadaef6805 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_index_mappings.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import * as t from 'io-ts'; + +export const GetIndexMappingsParams = t.type({ + pattern: t.string, +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_index_stats.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_index_stats.ts new file mode 100644 index 00000000000000..ee4a2694ec5008 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_index_stats.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import * as t from 'io-ts'; + +export const GetIndexStatsParams = t.type({ + pattern: t.string, +}); diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_unallowed_field_values.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_unallowed_field_values.ts new file mode 100644 index 00000000000000..0d11adcd7945c5 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/get_unallowed_field_values.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import * as t from 'io-ts'; + +export const AllowedValues = t.array(t.string); + +export type AllowedValuesInputs = t.TypeOf; + +export const GetUnallowedFieldValuesBody = t.array( + t.type({ + indexName: t.string, + indexFieldName: t.string, + allowedValues: AllowedValues, + }) +); + +export type GetUnallowedFieldValuesInputs = t.TypeOf; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/types.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/types.ts new file mode 100755 index 00000000000000..0e7c1c68af6539 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/types.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/** The plugin setup interface */ +export interface EcsDataQualityDashboardPluginSetup {} // eslint-disable-line @typescript-eslint/no-empty-interface + +/** The plugin start interface */ +export interface EcsDataQualityDashboardPluginStart {} // eslint-disable-line @typescript-eslint/no-empty-interface diff --git a/x-pack/plugins/ecs_data_quality_dashboard/tsconfig.json b/x-pack/plugins/ecs_data_quality_dashboard/tsconfig.json new file mode 100644 index 00000000000000..98177ac09c3844 --- /dev/null +++ b/x-pack/plugins/ecs_data_quality_dashboard/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + }, + "include": [ + "common/**/*", + "server/lib/**/*", + "server/**/*", + // have to declare *.json explicitly due to https://github.com/microsoft/TypeScript/issues/25636 + "server/**/*.json", + "../../../typings/**/*" + ], + "kbn_references": [ + "@kbn/core", + "@kbn/core-http-server", + "@kbn/licensing-plugin", + "@kbn/core-http-request-handler-context-server", + "@kbn/securitysolution-es-utils", + "@kbn/securitysolution-io-ts-utils", + ], + "exclude": [ + "target/**/*", + ] +} diff --git a/x-pack/plugins/embeddable_enhanced/kibana.json b/x-pack/plugins/embeddable_enhanced/kibana.json deleted file mode 100644 index 36cd0440b64dd9..00000000000000 --- a/x-pack/plugins/embeddable_enhanced/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "embeddableEnhanced", - "version": "kibana", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Extends embeddable plugin with more functionality", - "requiredPlugins": ["embeddable", "kibanaReact", "uiActions", "uiActionsEnhanced"] -} diff --git a/x-pack/plugins/embeddable_enhanced/kibana.jsonc b/x-pack/plugins/embeddable_enhanced/kibana.jsonc new file mode 100644 index 00000000000000..79c79ee89d6494 --- /dev/null +++ b/x-pack/plugins/embeddable_enhanced/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/embeddable-enhanced-plugin", + "owner": "@elastic/kibana-presentation", + "description": "Extends embeddable plugin with more functionality", + "plugin": { + "id": "embeddableEnhanced", + "server": false, + "browser": true, + "requiredPlugins": [ + "embeddable", + "kibanaReact", + "uiActions", + "uiActionsEnhanced" + ] + } +} diff --git a/x-pack/plugins/encrypted_saved_objects/kibana.json b/x-pack/plugins/encrypted_saved_objects/kibana.json deleted file mode 100644 index 4812afe8c20725..00000000000000 --- a/x-pack/plugins/encrypted_saved_objects/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "encryptedSavedObjects", - "owner": { - "name": "Platform Security", - "githubTeam": "kibana-security" - }, - "description": "This plugin provides encryption and decryption utilities for saved objects containing sensitive information.", - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "encryptedSavedObjects"], - "optionalPlugins": ["security"], - "server": true, - "ui": false -} diff --git a/x-pack/plugins/encrypted_saved_objects/kibana.jsonc b/x-pack/plugins/encrypted_saved_objects/kibana.jsonc new file mode 100644 index 00000000000000..7e0cc158363ec2 --- /dev/null +++ b/x-pack/plugins/encrypted_saved_objects/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/encrypted-saved-objects-plugin", + "owner": "@elastic/kibana-security", + "description": "This plugin provides encryption and decryption utilities for saved objects containing sensitive information.", + "plugin": { + "id": "encryptedSavedObjects", + "server": true, + "browser": false, + "configPath": [ + "xpack", + "encryptedSavedObjects" + ], + "optionalPlugins": [ + "security" + ] + } +} diff --git a/x-pack/plugins/enterprise_search/common/connectors/native_connectors.ts b/x-pack/plugins/enterprise_search/common/connectors/native_connectors.ts index a19b1e2bb7c190..ad35e96b32f77a 100644 --- a/x-pack/plugins/enterprise_search/common/connectors/native_connectors.ts +++ b/x-pack/plugins/enterprise_search/common/connectors/native_connectors.ts @@ -19,6 +19,7 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record = { title: i18n.translate('xpack.enterpriseSearch.guideConfig.title', { - defaultMessage: 'Search my data', + defaultMessage: 'Build search experiences with Elasticsearch', }), description: i18n.translate('xpack.enterpriseSearch.guideConfig.description', { - defaultMessage: - 'Build custom search experiences with your data using Elastic’s out-of-the-box web crawler, connectors, and robust APIs. Gain deep insights from the built-in search analytics to curate results and optimize relevance.', + defaultMessage: `We'll help you build a search experience with your data using Elastic's web crawler, connectors, and APIs.`, }), guideName: 'Enterprise Search', steps: [ @@ -26,17 +25,10 @@ const guideConfig: Omit = { title: i18n.translate('xpack.enterpriseSearch.guideConfig.addDataStep.title', { defaultMessage: 'Add data', }), - descriptionList: [ - i18n.translate('xpack.enterpriseSearch.guideConfig.addDataStep.description1', { - defaultMessage: 'Select an ingestion method.', - }), - i18n.translate('xpack.enterpriseSearch.guideConfig.addDataStep.description2', { - defaultMessage: 'Create a new Elasticsearch index.', - }), - i18n.translate('xpack.enterpriseSearch.guideConfig.addDataStep.description3', { - defaultMessage: 'Configure your ingestion settings.', - }), - ], + description: i18n.translate('xpack.enterpriseSearch.guideConfig.addDataStep.description', { + defaultMessage: + 'Ingest your data, create an index, and enrich your data with customizable ingest and inference pipelines.', + }), location: { appID: 'enterpriseSearchContent', path: '/search_indices/new_index', @@ -47,27 +39,12 @@ const guideConfig: Omit = { title: i18n.translate('xpack.enterpriseSearch.guideConfig.searchExperienceStep.title', { defaultMessage: 'Build a search experience', }), - descriptionList: [ - i18n.translate( - 'xpack.enterpriseSearch.guideConfig.searchExperienceStep.descriptionList.item1', - { - defaultMessage: 'Learn more about Elastic’s Search UI framework.', - } - ), - i18n.translate( - 'xpack.enterpriseSearch.guideConfig.searchExperienceStep.descriptionList.item2', - { - defaultMessage: 'Try the Search UI tutorial for Elasticsearch.', - } - ), - i18n.translate( - 'xpack.enterpriseSearch.guideConfig.searchExperienceStep.descriptionList.item3', - { - defaultMessage: - 'Build a world-class search experience for your customers, employees, or users.', - } - ), - ], + description: i18n.translate( + 'xpack.enterpriseSearch.guideConfig.searchExperienceStep.description', + { + defaultMessage: `Learn more about Elastic's Search UI, try our Search UI tutorial for Elasticsearch, and build a search experience.`, + } + ), location: { appID: 'searchExperiences', path: '', @@ -82,8 +59,7 @@ const guideConfig: Omit = { description: i18n.translate( 'xpack.enterpriseSearch.guideConfig.searchExperienceStep.manualCompletionPopoverDescription', { - defaultMessage: - 'Take your time to explore how to use Search UI to build world-class search experiences. When you’re ready, click the Setup guide button to continue.', + defaultMessage: `Take your time to explore how to use Search UI to build world-class search experiences. When you're ready, click the Setup guide button to continue.`, } ), readyToCompleteOnNavigation: true, diff --git a/x-pack/plugins/enterprise_search/common/types/connectors.ts b/x-pack/plugins/enterprise_search/common/types/connectors.ts index 87ccbad824e1f4..d400259cc56ce5 100644 --- a/x-pack/plugins/enterprise_search/common/types/connectors.ts +++ b/x-pack/plugins/enterprise_search/common/types/connectors.ts @@ -7,10 +7,13 @@ export interface KeyValuePair { label: string; + order?: number | null; value: string | null; } -export type ConnectorConfiguration = Record; +export type ConnectorConfiguration = Record & { + extract_full_html?: { label: string; value: boolean }; +}; export interface ConnectorScheduling { enabled: boolean; diff --git a/x-pack/plugins/enterprise_search/common/types/engines.ts b/x-pack/plugins/enterprise_search/common/types/engines.ts index 3926be635c5bdb..ae230a2531c0c1 100644 --- a/x-pack/plugins/enterprise_search/common/types/engines.ts +++ b/x-pack/plugins/enterprise_search/common/types/engines.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { HealthStatus } from '@elastic/elasticsearch/lib/api/types'; +import { HealthStatus, FieldCapsResponse } from '@elastic/elasticsearch/lib/api/types'; export interface EnterpriseSearchEnginesResponse { meta: { @@ -37,3 +37,14 @@ export interface EnterpriseSearchEngineIndex { name: string; source: 'api' | 'connector' | 'crawler'; } + +export interface EnterpriseSearchEngineFieldCapabilities { + created: string; + field_capabilities: FieldCapsResponse; + name: string; + updated: string; +} +export interface EnterpriseSearchSchemaField { + field_name: string; + field_type: string[]; +} diff --git a/x-pack/plugins/enterprise_search/kibana.json b/x-pack/plugins/enterprise_search/kibana.json deleted file mode 100644 index 9b546a39d4b73e..00000000000000 --- a/x-pack/plugins/enterprise_search/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "enterpriseSearch", - "version": "kibana", - "kibanaVersion": "kibana", - "requiredPlugins": ["features", "spaces", "security", "licensing", "data", "discover", "charts", "infra", "cloud", "esUiShared", "guidedOnboarding"], - "configPath": ["enterpriseSearch"], - "optionalPlugins": ["usageCollection", "home", "customIntegrations", "ml"], - "server": true, - "ui": true, - "requiredBundles": ["kibanaReact", "cloudChat"], - "owner": { - "name": "Enterprise Search", - "githubTeam": "enterprise-search-frontend" - }, - "description": "Adds dashboards for discovering and managing Enterprise Search products." -} diff --git a/x-pack/plugins/enterprise_search/kibana.jsonc b/x-pack/plugins/enterprise_search/kibana.jsonc new file mode 100644 index 00000000000000..2580839f69ea97 --- /dev/null +++ b/x-pack/plugins/enterprise_search/kibana.jsonc @@ -0,0 +1,37 @@ +{ + "type": "plugin", + "id": "@kbn/enterprise-search-plugin", + "owner": "@elastic/enterprise-search-frontend", + "description": "Adds dashboards for discovering and managing Enterprise Search products.", + "plugin": { + "id": "enterpriseSearch", + "server": true, + "browser": true, + "configPath": [ + "enterpriseSearch" + ], + "requiredPlugins": [ + "features", + "spaces", + "security", + "licensing", + "data", + "discover", + "charts", + "infra", + "cloud", + "esUiShared", + "guidedOnboarding" + ], + "optionalPlugins": [ + "usageCollection", + "home", + "customIntegrations", + "ml" + ], + "requiredBundles": [ + "kibanaReact", + "cloudChat" + ] + } +} diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_events.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_events.tsx index d847f50f3ca3de..e690605a7b5b57 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_events.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_events.tsx @@ -15,6 +15,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { ENTERPRISE_SEARCH_ANALYTICS_LOGS_SOURCE_ID } from '../../../../../common/constants'; import { AnalyticsCollection } from '../../../../../common/types/analytics'; +import { docLinks } from '../../../shared/doc_links'; import { generateEncodedPath } from '../../../shared/encode_path_params'; import { KibanaLogic } from '../../../shared/kibana'; @@ -97,7 +98,7 @@ export const AnalyticsCollectionEvents: React.FC } footer={ - + {i18n.translate( 'xpack.enterpriseSearch.analytics.collections.collectionsView.eventsTab.emptyState.footer', { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/cancel_syncs_api_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/cancel_syncs_api_logic.ts index 53324ceb9f6350..b4f1b349f44f59 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/cancel_syncs_api_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/cancel_syncs_api_logic.ts @@ -7,7 +7,7 @@ import { i18n } from '@kbn/i18n'; -import { createApiLogic } from '../../../shared/api_logic/create_api_logic'; +import { Actions, createApiLogic } from '../../../shared/api_logic/create_api_logic'; import { HttpLogic } from '../../../shared/http'; export interface CancelSyncsApiArgs { @@ -25,3 +25,5 @@ export const CancelSyncsApiLogic = createApiLogic(['cancel_syncs_api_logic'], ca defaultMessage: 'Successfully canceled syncs', }), }); + +export type CancelSyncsActions = Actions; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/update_connector_configuration_api_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/update_connector_configuration_api_logic.test.ts index b0524098f7e4dc..a169a22a661ada 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/update_connector_configuration_api_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/update_connector_configuration_api_logic.test.ts @@ -20,7 +20,7 @@ describe('updateConnectorConfigurationLogic', () => { it('calls correct api', async () => { const promise = Promise.resolve('result'); http.post.mockReturnValue(promise); - const configuration = { configurationKey: { label: 'hello', value: 'yeahhhh' } }; + const configuration = { configurationKey: 'yeahhhh' }; const result = postConnectorConfiguration({ configuration, connectorId: 'anIndexId', @@ -31,7 +31,7 @@ describe('updateConnectorConfigurationLogic', () => { '/internal/enterprise_search/connectors/anIndexId/configuration', { body: JSON.stringify(configuration) } ); - await expect(result).resolves.toEqual({ configuration, indexName: 'anIndexName' }); + await expect(result).resolves.toEqual({ configuration: 'result', indexName: 'anIndexName' }); }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/update_connector_configuration_api_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/update_connector_configuration_api_logic.ts index 79294d60b5af0c..267bd325895b37 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/update_connector_configuration_api_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/update_connector_configuration_api_logic.ts @@ -8,11 +8,11 @@ import { i18n } from '@kbn/i18n'; import { ConnectorConfiguration } from '../../../../../common/types/connectors'; -import { createApiLogic } from '../../../shared/api_logic/create_api_logic'; +import { Actions, createApiLogic } from '../../../shared/api_logic/create_api_logic'; import { HttpLogic } from '../../../shared/http'; export interface PostConnectorConfigurationArgs { - configuration: ConnectorConfiguration; + configuration: Record; connectorId: string; indexName: string; } @@ -29,10 +29,10 @@ export const postConnectorConfiguration = async ({ }: PostConnectorConfigurationArgs) => { const route = `/internal/enterprise_search/connectors/${connectorId}/configuration`; - await HttpLogic.values.http.post(route, { + const responseConfig = await HttpLogic.values.http.post(route, { body: JSON.stringify(configuration), }); - return { configuration, indexName }; + return { configuration: responseConfig, indexName }; }; export const ConnectorConfigurationApiLogic = createApiLogic( @@ -46,3 +46,8 @@ export const ConnectorConfigurationApiLogic = createApiLogic( ), } ); + +export type PostConnectorConfigurationActions = Actions< + PostConnectorConfigurationArgs, + PostConnectorConfigurationResponse +>; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/crawler/update_html_extraction_api_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/crawler/update_html_extraction_api_logic.test.ts new file mode 100644 index 00000000000000..163a29e07f42ec --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/crawler/update_html_extraction_api_logic.test.ts @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { mockHttpValues } from '../../../__mocks__/kea_logic'; + +import { updateHtmlExtraction } from './update_html_extraction_api_logic'; + +describe('UpdateHtmlExtractionApiLogic', () => { + const { http } = mockHttpValues; + beforeEach(() => { + jest.clearAllMocks(); + }); + describe('updateHtmlExtraction', () => { + it('calls correct api', async () => { + const indexName = 'elastic-co-crawler'; + + http.get.mockReturnValue(Promise.resolve()); + + const result = updateHtmlExtraction({ htmlExtraction: true, indexName }); + + expect(http.put).toHaveBeenCalledWith( + `/internal/enterprise_search/indices/${indexName}/crawler/html_extraction`, + { + body: JSON.stringify({ + extract_full_html: true, + }), + } + ); + await expect(result).resolves.toEqual({ htmlExtraction: true }); + }); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/crawler/update_html_extraction_api_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/crawler/update_html_extraction_api_logic.ts new file mode 100644 index 00000000000000..e6ddcc5f820710 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/crawler/update_html_extraction_api_logic.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Actions } from '../../../shared/api_logic/create_api_logic'; + +import { createApiLogic } from '../../../shared/api_logic/create_api_logic'; +import { HttpLogic } from '../../../shared/http'; + +export interface UpdateHtmlExtractionArgs { + htmlExtraction: boolean; + indexName: string; +} + +export interface UpdateHtmlExtractionResponse { + htmlExtraction: boolean; +} + +export const updateHtmlExtraction = async ({ + htmlExtraction, + indexName, +}: UpdateHtmlExtractionArgs) => { + const route = `/internal/enterprise_search/indices/${indexName}/crawler/html_extraction`; + + const params = { extract_full_html: htmlExtraction }; + + await HttpLogic.values.http.put(route, { + body: JSON.stringify(params), + }); + return { htmlExtraction }; +}; + +export const UpdateHtmlExtractionApiLogic = createApiLogic( + ['update_html_extraction_api_logic'], + updateHtmlExtraction +); + +export type UpdateHtmlExtractionActions = Actions< + UpdateHtmlExtractionArgs, + UpdateHtmlExtractionResponse +>; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/engines/fetch_engine_field_capabilities_api_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/engines/fetch_engine_field_capabilities_api_logic.test.ts new file mode 100644 index 00000000000000..5eb05fbed4c8f5 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/engines/fetch_engine_field_capabilities_api_logic.test.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { mockHttpValues } from '../../../__mocks__/kea_logic'; + +import { nextTick } from '@kbn/test-jest-helpers'; + +import { fetchEngineFieldCapabilities } from './fetch_engine_field_capabilities_api_logic'; + +describe('FetchEngineFieldCapabilitiesApiLogic', () => { + const { http } = mockHttpValues; + beforeEach(() => { + jest.clearAllMocks(); + }); + describe('fetchEngineFieldCapabilities', () => { + it('requests the field_capabilities api', async () => { + const promise = Promise.resolve({ result: 'result' }); + http.get.mockReturnValue(promise); + const result = fetchEngineFieldCapabilities({ engineName: 'foobar' }); + await nextTick(); + expect(http.get).toHaveBeenCalledWith( + '/internal/enterprise_search/engines/foobar/field_capabilities' + ); + await expect(result).resolves.toEqual({ result: 'result' }); + }); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/engines/fetch_engine_field_capabilities_api_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/engines/fetch_engine_field_capabilities_api_logic.ts new file mode 100644 index 00000000000000..7f5d196a5a02d8 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/engines/fetch_engine_field_capabilities_api_logic.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EnterpriseSearchEngineFieldCapabilities } from '../../../../../common/types/engines'; +import { Actions, createApiLogic } from '../../../shared/api_logic/create_api_logic'; +import { HttpLogic } from '../../../shared/http'; + +export interface FetchEngineFieldCapabilitiesApiParams { + engineName: string; +} + +export type FetchEngineFieldCapabilitiesApiResponse = EnterpriseSearchEngineFieldCapabilities; + +export const fetchEngineFieldCapabilities = async ({ + engineName, +}: FetchEngineFieldCapabilitiesApiParams): Promise => { + const route = `/internal/enterprise_search/engines/${engineName}/field_capabilities`; + + return await HttpLogic.values.http.get(route); +}; + +export const FetchEngineFieldCapabilitiesApiLogic = createApiLogic( + ['fetch_engine_field_capabilities_api_logic'], + fetchEngineFieldCapabilities +); + +export type FetchEngineFieldCapabilitiesApiLogicActions = Actions< + FetchEngineFieldCapabilitiesApiParams, + FetchEngineFieldCapabilitiesApiResponse +>; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/index/fetch_index_api_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/index/fetch_index_api_logic.ts index 9ba818bc6c57a1..e8d67f62288890 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/index/fetch_index_api_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/index/fetch_index_api_logic.ts @@ -6,24 +6,28 @@ */ import { ElasticsearchIndexWithIngestion } from '../../../../../common/types/indices'; -import { createApiLogic } from '../../../shared/api_logic/create_api_logic'; +import { Actions, createApiLogic } from '../../../shared/api_logic/create_api_logic'; import { HttpLogic } from '../../../shared/http'; export interface FetchIndexApiParams { indexName: string; } -export type FetchIndexApiResponse = ElasticsearchIndexWithIngestion; +export type FetchIndexApiResponse = ElasticsearchIndexWithIngestion & { + has_in_progress_syncs?: boolean; +}; export const fetchIndex = async ({ indexName, }: FetchIndexApiParams): Promise => { const route = `/internal/enterprise_search/indices/${indexName}`; - return await HttpLogic.values.http.get(route); + return await HttpLogic.values.http.get(route); }; export const FetchIndexApiLogic = createApiLogic(['fetch_index_api_logic'], fetchIndex, { clearFlashMessagesOnMakeRequest: false, showErrorFlash: false, }); + +export type FetchIndexActions = Actions; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/add_indices_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/add_indices_flyout.tsx index 852e3698b968cb..22ab72ba3a405b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/add_indices_flyout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/add_indices_flyout.tsx @@ -99,7 +99,12 @@ export const AddIndicesFlyout: React.FC = ({ onClose }) = - + {i18n.translate( 'xpack.enterpriseSearch.content.engine.indices.addIndicesFlyout.submitButton', { defaultMessage: 'Add selected' } @@ -107,7 +112,11 @@ export const AddIndicesFlyout: React.FC = ({ onClose }) = - + {i18n.translate( 'xpack.enterpriseSearch.content.engine.indices.addIndicesFlyout.cancelButton', { defaultMessage: 'Cancel' } diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_indices.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_indices.tsx index 0bcdde5e47647d..745a6ed5e131e3 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_indices.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_indices.tsx @@ -10,6 +10,7 @@ import React, { useState } from 'react'; import { useActions, useValues } from 'kea'; import { + EuiTableActionsColumnType, EuiBasicTableColumn, EuiButton, EuiConfirmModal, @@ -28,6 +29,7 @@ import { indexHealthToHealthColor } from '../../../shared/constants/health_color import { generateEncodedPath } from '../../../shared/encode_path_params'; import { KibanaLogic } from '../../../shared/kibana'; import { EuiLinkTo } from '../../../shared/react_router_helpers'; +import { TelemetryLogic } from '../../../shared/telemetry/telemetry_logic'; import { SEARCH_INDEX_PATH, EngineViewTabs } from '../../routes'; import { IngestionMethod } from '../../types'; @@ -40,6 +42,7 @@ import { EngineIndicesLogic } from './engine_indices_logic'; import { EngineViewHeaderActions } from './engine_view_header_actions'; export const EngineIndices: React.FC = () => { + const { sendEnterpriseSearchTelemetry } = useActions(TelemetryLogic); const { engineData, engineName, isLoadingEngine, addIndicesFlyoutOpen } = useValues(EngineIndicesLogic); const { removeIndexFromEngine, openAddIndicesFlyout, closeAddIndicesFlyout } = @@ -50,6 +53,33 @@ export const EngineIndices: React.FC = () => { if (!engineData) return null; const { indices } = engineData; + const removeIndexAction: EuiTableActionsColumnType['actions'][0] = { + color: 'danger', + 'data-test-subj': 'engine-remove-index-btn', + description: i18n.translate( + 'xpack.enterpriseSearch.content.engine.indices.actions.removeIndex.title', + { + defaultMessage: 'Remove this index from engine', + } + ), + icon: 'minusInCircle', + isPrimary: false, + name: (index: EnterpriseSearchEngineIndex) => + i18n.translate('xpack.enterpriseSearch.content.engine.indices.actions.removeIndex.caption', { + defaultMessage: 'Remove index {indexName}', + values: { + indexName: index.name, + }, + }), + onClick: (index: EnterpriseSearchEngineIndex) => { + setConfirmRemoveIndex(index.name); + sendEnterpriseSearchTelemetry({ + action: 'clicked', + metric: 'entSearchContent-engines-indices-removeIndex', + }); + }, + type: 'icon', + }; const columns: Array> = [ { field: 'name', @@ -136,30 +166,7 @@ export const EngineIndices: React.FC = () => { ), type: 'icon', }, - { - color: 'danger', - 'data-test-subj': 'engine-remove-index-btn', - description: i18n.translate( - 'xpack.enterpriseSearch.content.engine.indices.actions.removeIndex.title', - { - defaultMessage: 'Remove this index from engine', - } - ), - icon: 'minusInCircle', - isPrimary: false, - name: (index) => - i18n.translate( - 'xpack.enterpriseSearch.content.engine.indices.actions.removeIndex.caption', - { - defaultMessage: 'Remove index {indexName}', - values: { - indexName: index.name, - }, - } - ), - onClick: (index) => setConfirmRemoveIndex(index.name), - type: 'icon', - }, + ...(indices.length > 1 ? [removeIndexAction] : []), ], name: i18n.translate('xpack.enterpriseSearch.content.engine.indices.actions.columnTitle', { defaultMessage: 'Actions', @@ -180,6 +187,7 @@ export const EngineIndices: React.FC = () => { { onConfirm={() => { removeIndexFromEngine(removeIndexConfirm); setConfirmRemoveIndex(null); + sendEnterpriseSearchTelemetry({ + action: 'clicked', + metric: 'entSearchContent-engines-indices-removeIndexConfirm', + }); }} title={i18n.translate( 'xpack.enterpriseSearch.content.engine.indices.removeIndexConfirm.title', diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview.tsx new file mode 100644 index 00000000000000..20e60db46db808 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview.tsx @@ -0,0 +1,101 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { useValues } from 'kea'; + +import { EuiFlexGroup, EuiFlexItem, EuiIcon, EuiPanel, EuiStat } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +import { generateEncodedPath } from '../../../shared/encode_path_params'; +import { EuiLinkTo } from '../../../shared/react_router_helpers'; +import { EngineViewTabs, ENGINE_TAB_PATH } from '../../routes'; +import { EnterpriseSearchEnginesPageTemplate } from '../layout/engines_page_template'; + +import { EngineOverviewLogic } from './engine_overview_logic'; +import { EngineViewHeaderActions } from './engine_view_header_actions'; + +export const EngineOverview: React.FC = () => { + const { engineName, indicesCount, documentsCount, fieldsCount, isLoadingEngine } = + useValues(EngineOverviewLogic); + + return ( + ], + }} + engineName={engineName} + > + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.test.ts new file mode 100644 index 00000000000000..0a012a07fd9daf --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.test.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { LogicMounter } from '../../../__mocks__/kea_logic'; + +import { Status } from '../../../../../common/types/api'; + +import { EngineOverviewLogic, EngineOverviewValues } from './engine_overview_logic'; + +const DEFAULT_VALUES: EngineOverviewValues = { + documentsCount: 0, + engineData: undefined, + engineFieldCapabilitiesApiStatus: Status.IDLE, + engineFieldCapabilitiesData: undefined, + engineName: '', + fieldsCount: 0, + indices: [], + indicesCount: 0, + isLoadingEngine: true, +}; + +describe('EngineOverviewLogic', () => { + const { mount } = new LogicMounter(EngineOverviewLogic); + + beforeEach(() => { + jest.clearAllMocks(); + jest.useRealTimers(); + + mount(); + }); + + it('has expected default values', () => { + expect(EngineOverviewLogic.values).toEqual(DEFAULT_VALUES); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.ts new file mode 100644 index 00000000000000..f6a8508d131b19 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.ts @@ -0,0 +1,89 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { kea, MakeLogicType } from 'kea'; + +import { Status } from '../../../../../common/types/api'; +import { EnterpriseSearchEngineIndex } from '../../../../../common/types/engines'; + +import { FetchEngineFieldCapabilitiesApiLogic } from '../../api/engines/fetch_engine_field_capabilities_api_logic'; + +import { EngineNameLogic } from './engine_name_logic'; +import { EngineViewLogic } from './engine_view_logic'; + +export interface EngineOverviewActions { + fetchEngineFieldCapabilities: typeof FetchEngineFieldCapabilitiesApiLogic.actions.makeRequest; +} +export interface EngineOverviewValues { + documentsCount: number; + engineData: typeof EngineViewLogic.values.engineData; + engineFieldCapabilitiesApiStatus: typeof FetchEngineFieldCapabilitiesApiLogic.values.status; + engineFieldCapabilitiesData: typeof FetchEngineFieldCapabilitiesApiLogic.values.data; + engineName: typeof EngineNameLogic.values.engineName; + fieldsCount: number; + indices: EnterpriseSearchEngineIndex[]; + indicesCount: number; + isLoadingEngine: typeof EngineViewLogic.values.isLoadingEngine; +} + +export const EngineOverviewLogic = kea>({ + actions: {}, + connect: { + actions: [ + EngineNameLogic, + ['setEngineName'], + FetchEngineFieldCapabilitiesApiLogic, + ['makeRequest as fetchEngineFieldCapabilities'], + ], + values: [ + EngineNameLogic, + ['engineName'], + EngineViewLogic, + ['engineData', 'isLoadingEngine'], + FetchEngineFieldCapabilitiesApiLogic, + ['data as engineFieldCapabilitiesData', 'status as engineFieldCapabilitiesApiStatus'], + ], + }, + events: ({ actions, values }) => ({ + afterMount: () => { + if (values.engineFieldCapabilitiesApiStatus !== Status.SUCCESS && !!values.engineName) { + actions.fetchEngineFieldCapabilities({ + engineName: values.engineName, + }); + } + }, + }), + listeners: ({ actions }) => ({ + setEngineName: ({ engineName }) => { + actions.fetchEngineFieldCapabilities({ engineName }); + }, + }), + path: ['enterprise_search', 'content', 'engine_overview_logic'], + reducers: {}, + selectors: ({ selectors }) => ({ + documentsCount: [ + () => [selectors.indices], + (indices: EngineOverviewValues['indices']) => + indices.reduce((sum, { count }) => sum + count, 0), + ], + fieldsCount: [ + () => [selectors.engineFieldCapabilitiesData], + (engineFieldCapabilitiesData: EngineOverviewValues['engineFieldCapabilitiesData']) => + Object.values(engineFieldCapabilitiesData?.field_capabilities?.fields ?? {}).filter( + (value) => !Object.values(value).some((field) => !!field.metadata_field) + ).length, + ], + indices: [ + () => [selectors.engineData], + (engineData: EngineOverviewValues['engineData']) => engineData?.indices ?? [], + ], + indicesCount: [ + () => [selectors.indices], + (indices: EngineOverviewValues['indices']) => indices.length, + ], + }), +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_schema.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_schema.tsx new file mode 100644 index 00000000000000..b64c144f78dcfe --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_schema.tsx @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useEffect } from 'react'; + +import { useActions, useValues } from 'kea'; + +import { EuiBasicTable, EuiBasicTableColumn } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +import { EnterpriseSearchSchemaField } from '../../../../../common/types/engines'; +import { EngineViewTabs } from '../../routes'; +import { EnterpriseSearchEnginesPageTemplate } from '../layout/engines_page_template'; + +import { EngineIndicesLogic } from './engine_indices_logic'; + +import { EngineViewLogic } from './engine_view_logic'; + +export const EngineSchema: React.FC = () => { + const { engineName } = useValues(EngineIndicesLogic); + const { isLoadingEngineSchema, schemaFields } = useValues(EngineViewLogic); + const { fetchEngineSchema } = useActions(EngineViewLogic); + const columns: Array> = [ + { + field: 'field_name', + name: i18n.translate('xpack.enterpriseSearch.content.engine.schema.field_name.columnTitle', { + defaultMessage: 'Field name', + }), + }, + { + field: 'field_type', + name: i18n.translate('xpack.enterpriseSearch.content.engine.schema.field_type.columnTitle', { + defaultMessage: 'Field Type', + }), + }, + ]; + + useEffect(() => { + fetchEngineSchema({ engineName }); + }, [engineName]); + return ( + + <> + + + + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view.tsx index e6057a2d1b2bd2..f62096ac756b92 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view.tsx @@ -21,6 +21,8 @@ import { EnterpriseSearchEnginesPageTemplate } from '../layout/engines_page_temp import { EngineAPI } from './engine_api/engine_api'; import { EngineError } from './engine_error'; import { EngineIndices } from './engine_indices'; +import { EngineOverview } from './engine_overview'; +import { EngineSchema } from './engine_schema'; import { EngineViewHeaderActions } from './engine_view_header_actions'; import { EngineViewLogic } from './engine_view_logic'; import { EngineHeaderDocsAction } from './header_docs_action'; @@ -66,7 +68,13 @@ export const EngineView: React.FC = () => { ) : null} + + ( diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_header_actions.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_header_actions.tsx index ba563a9c23dbcc..bd48ee8d6d294b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_header_actions.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_header_actions.tsx @@ -13,12 +13,15 @@ import { EuiPopover, EuiButtonIcon, EuiText, EuiContextMenu, EuiIcon } from '@el import { i18n } from '@kbn/i18n'; +import { TelemetryLogic } from '../../../shared/telemetry/telemetry_logic'; + import { EngineViewLogic } from './engine_view_logic'; export const EngineViewHeaderActions: React.FC = () => { const { engineData } = useValues(EngineViewLogic); const { openDeleteEngineModal } = useActions(EngineViewLogic); + const { sendEnterpriseSearchTelemetry } = useActions(TelemetryLogic); const [isActionsPopoverOpen, setIsActionsPopoverOpen] = useState(false); const toggleActionsPopover = () => setIsActionsPopoverOpen((isPopoverOpen) => !isPopoverOpen); @@ -66,6 +69,10 @@ export const EngineViewHeaderActions: React.FC = () => { onClick: () => { if (engineData) { openDeleteEngineModal(); + sendEnterpriseSearchTelemetry({ + action: 'clicked', + metric: 'entSearchContent-engines-engineView-deleteEngine', + }); } }, size: 's', diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_logic.test.ts index 48d85c9f0c6ac7..b4ade46b24b264 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_logic.test.ts @@ -23,6 +23,11 @@ const DEFAULT_VALUES: EngineViewValues = { fetchEngineApiStatus: Status.IDLE, isDeleteModalVisible: false, isLoadingEngine: true, + engineSchemaData: undefined, + fetchEngineSchemaApiError: undefined, + fetchEngineSchemaApiStatus: Status.IDLE, + isLoadingEngineSchema: true, + schemaFields: [], }; describe('EngineViewLogic', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_logic.ts index 1cc3bfc5f4e906..172eb16f592150 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_view_logic.ts @@ -8,6 +8,7 @@ import { kea, MakeLogicType } from 'kea'; import { Status } from '../../../../../common/types/api'; +import { EnterpriseSearchSchemaField } from '../../../../../common/types/engines'; import { KibanaLogic } from '../../../shared/kibana'; @@ -15,6 +16,7 @@ import { FetchEngineApiLogic, FetchEngineApiLogicActions, } from '../../api/engines/fetch_engine_api_logic'; +import { FetchEngineFieldCapabilitiesApiLogic } from '../../api/engines/fetch_engine_field_capabilities_api_logic'; import { ENGINES_PATH } from '../../routes'; @@ -26,23 +28,35 @@ export interface EngineViewActions { closeDeleteEngineModal(): void; deleteSuccess: EnginesListActions['deleteSuccess']; fetchEngine: FetchEngineApiLogicActions['makeRequest']; + fetchEngineSchema: FetchEngineApiLogicActions['makeRequest']; openDeleteEngineModal(): void; } export interface EngineViewValues { engineData: typeof FetchEngineApiLogic.values.data; engineName: typeof EngineNameLogic.values.engineName; + engineSchemaData: typeof FetchEngineFieldCapabilitiesApiLogic.values.data; fetchEngineApiError?: typeof FetchEngineApiLogic.values.error; fetchEngineApiStatus: typeof FetchEngineApiLogic.values.status; + fetchEngineSchemaApiError?: typeof FetchEngineFieldCapabilitiesApiLogic.values.error; + fetchEngineSchemaApiStatus: typeof FetchEngineFieldCapabilitiesApiLogic.values.status; isDeleteModalVisible: boolean; isLoadingEngine: boolean; + isLoadingEngineSchema: boolean; + schemaFields: EnterpriseSearchSchemaField[]; } export const EngineViewLogic = kea>({ + actions: { + closeDeleteEngineModal: true, + openDeleteEngineModal: true, + }, connect: { actions: [ FetchEngineApiLogic, ['makeRequest as fetchEngine'], + FetchEngineFieldCapabilitiesApiLogic, + ['makeRequest as fetchEngineSchema'], EnginesListLogic, ['deleteSuccess'], ], @@ -51,12 +65,14 @@ export const EngineViewLogic = kea ({ deleteSuccess: () => { actions.closeDeleteEngineModal(); @@ -80,5 +96,22 @@ export const EngineViewLogic = kea [selectors.fetchEngineSchemaApiStatus], + (status: EngineViewValues['fetchEngineSchemaApiStatus']) => + [Status.LOADING, Status.IDLE].includes(status), + ], + schemaFields: [ + () => [selectors.engineSchemaData], + (data) => + Object.entries(data?.field_capabilities?.fields ?? {}) + .map(([name]) => + Object.entries({ + field_name: name, + field_type: [...Object.keys(data?.field_capabilities?.fields[name])], + }) + ) + .map((fields) => Object.fromEntries(fields)), + ], }), }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/header_docs_action.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/header_docs_action.tsx index 93544cc2e9bbd7..e20fbc81689a40 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/header_docs_action.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/header_docs_action.tsx @@ -15,8 +15,9 @@ export const EngineHeaderDocsAction: React.FC = () => ( diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/components/tables/engines_table.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/components/tables/engines_table.tsx index b3c5c46b38128d..017564343f11e7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/components/tables/engines_table.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/components/tables/engines_table.tsx @@ -7,7 +7,7 @@ import React from 'react'; -import { useValues } from 'kea'; +import { useValues, useActions } from 'kea'; import { CriteriaWithPagination, @@ -29,6 +29,7 @@ import { FormattedDateTime } from '../../../../../shared/formatted_date_time'; import { KibanaLogic } from '../../../../../shared/kibana'; import { pageToPagination } from '../../../../../shared/pagination/page_to_pagination'; import { EuiLinkTo } from '../../../../../shared/react_router_helpers'; +import { TelemetryLogic } from '../../../../../shared/telemetry/telemetry_logic'; import { ENGINE_PATH } from '../../../../routes'; @@ -50,6 +51,7 @@ export const EnginesListTable: React.FC = ({ viewEngineIndices, }) => { const { navigateToUrl } = useValues(KibanaLogic); + const { sendEnterpriseSearchTelemetry } = useActions(TelemetryLogic); const columns: Array> = [ { field: 'name', @@ -93,6 +95,7 @@ export const EnginesListTable: React.FC = ({ size="s" className="engineListTableFlyoutButton" data-test-subj="engineListTableIndicesFlyoutButton" + data-telemetry-id="entSearchContent-engines-table-viewEngineIndices" onClick={() => viewEngineIndices(engine.name)} > = ({ ), onClick: (engine) => { onDelete(engine); + sendEnterpriseSearchTelemetry({ + action: 'clicked', + metric: 'entSearchContent-engines-table-deleteEngine', + }); }, }, ], diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/create_engine_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/create_engine_flyout.tsx index 06a2509edad539..ae7f7423be7ceb 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/create_engine_flyout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/create_engine_flyout.tsx @@ -36,7 +36,7 @@ import { ElasticsearchIndexWithIngestion } from '../../../../../common/types/ind import { isNotNullish } from '../../../../../common/utils/is_not_nullish'; import { CANCEL_BUTTON_LABEL } from '../../../shared/constants'; - +import { docLinks } from '../../../shared/doc_links'; import { getErrorsFromHttpResponse } from '../../../shared/flash_messages/handle_api_errors'; import { indexToOption, IndicesSelectComboBox } from './components/indices_select_combobox'; @@ -85,7 +85,7 @@ export const CreateEngineFlyout = ({ onClose }: CreateEngineFlyoutProps) => { values={{ enginesDocsLink: ( = ({ engineName, onClose }) => { const { deleteEngine } = useActions(EnginesListLogic); + const { sendEnterpriseSearchTelemetry } = useActions(TelemetryLogic); const { isDeleteLoading } = useValues(EnginesListLogic); return ( = ({ engineName onCancel={onClose} onConfirm={() => { deleteEngine({ engineName }); + sendEnterpriseSearchTelemetry({ + action: 'clicked', + metric: 'entSearchContent-engines-engineView-deleteEngineConfirm', + }); }} cancelButtonText={CANCEL_BUTTON_LABEL} confirmButtonText={i18n.translate( diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/engines_list.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/engines_list.tsx index 76e343e234ff3d..b927e499ff06ce 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/engines_list.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engines/engines_list.tsx @@ -16,6 +16,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage, FormattedNumber } from '@kbn/i18n-react'; import { INPUT_THROTTLE_DELAY_MS } from '../../../shared/constants/timers'; +import { docLinks } from '../../../shared/doc_links'; import { EnterpriseSearchEnginesPageTemplate } from '../layout/engines_page_template'; @@ -102,12 +103,10 @@ export const EnginesList: React.FC = () => { documentationUrl: ( - {' '} - {/* TODO: navigate to documentation url */}{' '} {i18n.translate('xpack.enterpriseSearch.content.engines.documentation', { defaultMessage: 'explore our Engines documentation', })} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/new_index/button_group.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/new_index/button_group.tsx index 1bcaa80deef6df..6722ac17443ae5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/new_index/button_group.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/new_index/button_group.tsx @@ -46,6 +46,7 @@ export const ButtonGroup: React.FC = ({ onChange, options, selected }) => 'buttonGroupOption--selected': isSelected, })} grow={false} + key={index} onClick={() => { onChange(option); }} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_config.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_config.tsx index 00356d85b203f7..35914ddb510b77 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_config.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_config.tsx @@ -30,8 +30,8 @@ export const ConnectorConfigurationConfig: React.FC = ({ children }) => { const { configView, isEditing } = useValues(ConnectorConfigurationLogic); const { setIsEditing } = useActions(ConnectorConfigurationLogic); - const displayList = configView.map(({ label, value }) => ({ - description: value ?? '--', + const displayList = configView.map(({ label, isPasswordField, value }) => ({ + description: isPasswordField && !!value ? '********' : value || '--', title: label, })); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_form.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_form.tsx index 29df3ccc5212b9..5f24dc3fec76b0 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_form.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_form.tsx @@ -17,6 +17,7 @@ import { EuiFlexItem, EuiButton, EuiButtonEmpty, + EuiFieldPassword, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -41,17 +42,30 @@ export const ConnectorConfigurationForm = () => { }} component="form" > - {localConfigView.map(({ key, label, value }) => ( - - { - setLocalConfigEntry({ key, label, value: event.target.value }); - }} - /> - - ))} + {localConfigView.map((configEntry) => { + const { key, isPasswordField, label, value } = configEntry; + return ( + + {isPasswordField ? ( + { + setLocalConfigEntry({ ...configEntry, value: event.target.value }); + }} + /> + ) : ( + { + setLocalConfigEntry({ ...configEntry, value: event.target.value }); + }} + /> + )} + + ); + })} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts index 632d60fac3cad6..d54604804976ba 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts @@ -56,7 +56,7 @@ describe('ConnectorConfigurationLogic', () => { expect(ConnectorConfigurationLogic.values).toEqual({ ...DEFAULT_VALUES, configState: { foo: { label: 'newBar', value: 'oldBar' } }, - configView: [{ key: 'foo', label: 'newBar', value: 'oldBar' }], + configView: [{ isPasswordField: false, key: 'foo', label: 'newBar', value: 'oldBar' }], }); }); it('should set config on setConfigState', () => { @@ -66,20 +66,21 @@ describe('ConnectorConfigurationLogic', () => { expect(ConnectorConfigurationLogic.values).toEqual({ ...DEFAULT_VALUES, configState: { foo: { label: 'thirdBar', value: 'fourthBar' } }, - configView: [{ key: 'foo', label: 'thirdBar', value: 'fourthBar' }], + configView: [{ isPasswordField: false, key: 'foo', label: 'thirdBar', value: 'fourthBar' }], }); }); describe('setLocalConfigEntry', () => { it('should set local config entry and sort keys', () => { ConnectorConfigurationLogic.actions.setConfigState({ bar: { label: 'foo', value: 'foofoo' }, - foo: { label: 'thirdBar', value: 'fourthBar' }, + password: { label: 'thirdBar', value: 'fourthBar' }, }); ConnectorConfigurationLogic.actions.setLocalConfigState({ bar: { label: 'foo', value: 'foofoo' }, - foo: { label: 'thirdBar', value: 'fourthBar' }, + password: { label: 'thirdBar', value: 'fourthBar' }, }); ConnectorConfigurationLogic.actions.setLocalConfigEntry({ + isPasswordField: false, key: 'bar', label: 'foo', value: 'fafa', @@ -88,19 +89,19 @@ describe('ConnectorConfigurationLogic', () => { ...DEFAULT_VALUES, configState: { bar: { label: 'foo', value: 'foofoo' }, - foo: { label: 'thirdBar', value: 'fourthBar' }, + password: { label: 'thirdBar', value: 'fourthBar' }, }, configView: [ - { key: 'bar', label: 'foo', value: 'foofoo' }, - { key: 'foo', label: 'thirdBar', value: 'fourthBar' }, + { isPasswordField: false, key: 'bar', label: 'foo', value: 'foofoo' }, + { isPasswordField: true, key: 'password', label: 'thirdBar', value: 'fourthBar' }, ], localConfigState: { bar: { label: 'foo', value: 'fafa' }, - foo: { label: 'thirdBar', value: 'fourthBar' }, + password: { label: 'thirdBar', value: 'fourthBar' }, }, localConfigView: [ - { key: 'bar', label: 'foo', value: 'fafa' }, - { key: 'foo', label: 'thirdBar', value: 'fourthBar' }, + { isPasswordField: false, key: 'bar', label: 'foo', value: 'fafa' }, + { isPasswordField: true, key: 'password', label: 'thirdBar', value: 'fourthBar' }, ], }); }); @@ -111,7 +112,7 @@ describe('ConnectorConfigurationLogic', () => { expect(ConnectorConfigurationLogic.values).toEqual({ ...DEFAULT_VALUES, configState: connectorIndex.connector.configuration, - configView: [{ key: 'foo', label: 'bar', value: 'barbar' }], + configView: [{ isPasswordField: false, key: 'foo', label: 'bar', value: 'barbar' }], index: connectorIndex, }); }); @@ -133,14 +134,14 @@ describe('ConnectorConfigurationLogic', () => { expect(ConnectorConfigurationLogic.values).toEqual({ ...DEFAULT_VALUES, configState: connectorIndex.connector.configuration, - configView: [{ key: 'foo', label: 'bar', value: 'barbar' }], + configView: [{ isPasswordField: false, key: 'foo', label: 'bar', value: 'barbar' }], index: { ...connectorIndex, connector: { ...connectorIndex.connector, status: ConnectorStatus.NEEDS_CONFIGURATION }, }, isEditing: true, localConfigState: connectorIndex.connector.configuration, - localConfigView: [{ key: 'foo', label: 'bar', value: 'barbar' }], + localConfigView: [{ isPasswordField: false, key: 'foo', label: 'bar', value: 'barbar' }], shouldStartInEditMode: true, }); }); @@ -154,7 +155,7 @@ describe('ConnectorConfigurationLogic', () => { }); ConnectorConfigurationLogic.actions.saveConfig(); expect(ConnectorConfigurationLogic.actions.makeRequest).toHaveBeenCalledWith({ - configuration: { foo: { label: 'bar', value: 'Barbara' } }, + configuration: { foo: 'Barbara' }, connectorId: '2', indexName: 'connector', }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts index bc705db85ed814..5abebb3c1bee5e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts @@ -8,12 +8,11 @@ import { kea, MakeLogicType } from 'kea'; import { ConnectorConfiguration, ConnectorStatus } from '../../../../../../common/types/connectors'; -import { Actions } from '../../../../shared/api_logic/create_api_logic'; +import { isNotNullish } from '../../../../../../common/utils/is_not_nullish'; import { ConnectorConfigurationApiLogic, - PostConnectorConfigurationArgs, - PostConnectorConfigurationResponse, + PostConnectorConfigurationActions, } from '../../../api/connector/update_connector_configuration_api_logic'; import { CachedFetchIndexApiLogic, @@ -23,7 +22,7 @@ import { FetchIndexApiResponse } from '../../../api/index/fetch_index_api_logic' import { isConnectorIndex } from '../../../utils/indices'; type ConnectorConfigurationActions = Pick< - Actions, + PostConnectorConfigurationActions, 'apiSuccess' | 'makeRequest' > & { fetchIndexApiSuccess: CachedFetchIndexApiLogicActions['apiSuccess']; @@ -50,11 +49,43 @@ interface ConnectorConfigurationValues { } interface ConfigEntry { + isPasswordField: boolean; key: string; label: string; + order?: number; value: string; } +/** + * + * Sorts the connector configuration by specified order (if present) + * otherwise by alphabetic order of keys + * + */ +function sortConnectorConfiguration(config: ConnectorConfiguration): ConfigEntry[] { + return Object.keys(config) + .map( + (key) => + ({ + key, + ...config[key], + } as ConfigEntry) + ) + .sort((a, b) => { + if (isNotNullish(a.order)) { + if (isNotNullish(b.order)) { + return a.order - b.order; + } + return -1; + } + if (isNotNullish(b.order)) { + // a doesn't have an order, but b has an order so takes precedence + return 1; + } + return a.key.localeCompare(b.key); + }); +} + export const ConnectorConfigurationLogic = kea< MakeLogicType >({ @@ -116,7 +147,17 @@ export const ConnectorConfigurationLogic = kea< saveConfig: () => { if (isConnectorIndex(values.index)) { actions.makeRequest({ - configuration: values.localConfigState, + configuration: Object.keys(values.localConfigState) + .map((key) => + values.localConfigState[key] + ? { key, value: values.localConfigState[key]?.value ?? '' } + : null + ) + .filter(isNotNullish) + .reduce( + (prev: Record, { key, value }) => ({ ...prev, [key]: value }), + {} + ), connectorId: values.index.connector.id, indexName: values.index.connector.index_name, }); @@ -147,9 +188,9 @@ export const ConnectorConfigurationLogic = kea< localConfigState: [ {}, { - setLocalConfigEntry: (configState, { key, label, value }) => ({ + setLocalConfigEntry: (configState, { key, label, order, value }) => ({ ...configState, - [key]: { label, value }, + [key]: { label, order, value }, }), setLocalConfigState: (_, { configState }) => configState, }, @@ -165,25 +206,21 @@ export const ConnectorConfigurationLogic = kea< selectors: ({ selectors }) => ({ configView: [ () => [selectors.configState], - (configState) => - Object.keys(configState) - .map((key) => ({ - key, - label: configState[key].label, - value: configState[key].value, - })) - .sort((a, b) => a.key.localeCompare(b.key)), + (configState: ConnectorConfiguration) => + sortConnectorConfiguration(configState).map((config) => ({ + ...config, + isPasswordField: + config.key.includes('password') || config.label.toLowerCase().includes('password'), + })), ], localConfigView: [ () => [selectors.localConfigState], (configState) => - Object.keys(configState) - .map((key) => ({ - key, - label: configState[key].label, - value: configState[key].value, - })) - .sort((a, b) => a.key.localeCompare(b.key)), + sortConnectorConfiguration(configState).map((config) => ({ + ...config, + isPasswordField: + config.key.includes('password') || config.label.toLowerCase().includes('password'), + })), ], }), }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/connector_rules.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/connector_rules.tsx index 685db26dbbd07d..1ef84d54a13dd1 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/connector_rules.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/connector_rules.tsx @@ -80,7 +80,7 @@ export const ConnectorSyncRules: React.FC = () => { {i18n.translate('xpack.enterpriseSearch.index.connector.syncRules.description', { defaultMessage: `Include or exclude high level items, file types and (file or folder) paths to synchronize from {indexName}. Everything is included by default. Each document is - tested against the reules below and the first rule that matches will be applied.`, + tested against the rules below and the first rule that matches will be applied.`, values: { indexName, }, @@ -142,7 +142,8 @@ export const ConnectorSyncRules: React.FC = () => { {i18n.translate( 'xpack.enterpriseSearch.content.index.connector.syncRules.basicRulesDescription', { - defaultMessage: 'These filters apply to documents in post-processing.', + defaultMessage: + 'These rules apply to documents during the integration filtering phase.', } )}

    @@ -174,7 +175,8 @@ export const ConnectorSyncRules: React.FC = () => { {i18n.translate( 'xpack.enterpriseSearch.content.index.connector.syncRules.advancedFiltersDescription', { - defaultMessage: 'These filters apply to documents at the data source.', + defaultMessage: + 'These rules apply before the data is obtained from the data source.', } )}

    diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/editable_basic_rules_table.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/editable_basic_rules_table.tsx index 55b5be00b86c50..b153c6b3454315 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/editable_basic_rules_table.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/editable_basic_rules_table.tsx @@ -79,7 +79,7 @@ export const SyncRulesTable: React.FC = () => { {i18n.translate('xpack.enterpriseSearch.content.index.connector.syncRules.description', { defaultMessage: - 'Add a sync rule to customize what data is synchronized from {indexName}. Everything is included by default, and documents are validated against the configured set of indexing rules starting from the top listed down.', + 'Add a sync rule to customize what data is synchronized from {indexName}. Everything is included by default, and documents are validated against the configured set of sync rules in the listed order.', values: { indexName }, })} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/sync_rules_callouts.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/sync_rules_callouts.tsx index 8cadc7c74ab39a..fe28ea499964e6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/sync_rules_callouts.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/sync_rules_callouts.tsx @@ -51,7 +51,7 @@ export const SyncRulesStateCallouts: React.FC = ({ 'xpack.enterpriseSearch.index.connector.syncRules.validatingDescription', { defaultMessage: - 'Draft rules need to be validated before they can take effect. This may take a few minutes.', + 'Draft rules need to be validated before they can be activated. This may take a few minutes.', } )}
    @@ -90,7 +90,7 @@ export const SyncRulesStateCallouts: React.FC = ({ 'xpack.enterpriseSearch.index.connector.syncRules.invalidDescription', { defaultMessage: - 'Draft rules did not validate. Edit the draft rules before they can take effect.', + 'Draft rules did not validate. Edit the draft rules before they can be activated.', } )}
    @@ -128,7 +128,7 @@ export const SyncRulesStateCallouts: React.FC = ({ {i18n.translate( 'xpack.enterpriseSearch.index.connector.syncRules.validatedDescription', { - defaultMessage: 'Apply draft rules to take effect on the next sync.', + defaultMessage: 'Activate draft rules to take effect on the next sync.', } )}
    @@ -145,7 +145,7 @@ export const SyncRulesStateCallouts: React.FC = ({ {i18n.translate( 'xpack.enterpriseSearch.index.connector.syncRules.successCallout.applyDraftRulesTitle', { - defaultMessage: 'Apply draft rules', + defaultMessage: 'Activate draft rules', } )} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_configuration/crawler_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_configuration/crawler_configuration.tsx new file mode 100644 index 00000000000000..4741525a85b72d --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_configuration/crawler_configuration.tsx @@ -0,0 +1,107 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { useActions, useValues } from 'kea'; + +import { + EuiFlexGroup, + EuiFlexItem, + EuiLink, + EuiSpacer, + EuiSplitPanel, + EuiSwitch, + EuiText, + EuiTitle, +} from '@elastic/eui'; + +import { i18n } from '@kbn/i18n'; + +import { Status } from '../../../../../../../common/types/api'; + +import { IndexViewLogic } from '../../index_view_logic'; + +import { CrawlerConfigurationLogic } from './crawler_configuration_logic'; + +export const CrawlerConfiguration: React.FC = () => { + const { htmlExtraction } = useValues(IndexViewLogic); + const { status } = useValues(CrawlerConfigurationLogic); + const { updateHtmlExtraction } = useActions(CrawlerConfigurationLogic); + return ( + <> + + + + +

    + {i18n.translate( + 'xpack.enterpriseSearch.content.crawler.crawlerConfiguration.extractHTML.title', + { defaultMessage: 'Store full HTML' } + )} +

    +
    + + +

    + {i18n.translate( + 'xpack.enterpriseSearch.content.crawler.crawlerConfiguration.extractHTML.addExtraFieldDescription', + { + defaultMessage: + 'Add an extra field in all documents with the value of the full HTML of the page being crawled.', + } + )} +

    +
    + + +

    + {i18n.translate( + 'xpack.enterpriseSearch.content.crawler.crawlerConfiguration.extractHTML.increasedSizeWarning', + { + defaultMessage: + 'This may dramatically increase the index size if the site being crawled is large.', + } + )} +

    +
    +
    + + + + updateHtmlExtraction(event.target.checked)} + /> + + + + {i18n.translate( + 'xpack.enterpriseSearch.content.crawler.crawlerConfiguration.extractHTML.learnMoreLink', + { + defaultMessage: 'Learn more about storing full HTML.', + } + )} + + + + +
    + + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_configuration/crawler_configuration_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_configuration/crawler_configuration_logic.ts new file mode 100644 index 00000000000000..9298ca3b32585b --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_configuration/crawler_configuration_logic.ts @@ -0,0 +1,85 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { kea, MakeLogicType } from 'kea'; + +import { Status } from '../../../../../../../common/types/api'; +import { Connector } from '../../../../../../../common/types/connectors'; + +import { + UpdateHtmlExtractionActions, + UpdateHtmlExtractionApiLogic, +} from '../../../../api/crawler/update_html_extraction_api_logic'; +import { CachedFetchIndexApiLogicActions } from '../../../../api/index/cached_fetch_index_api_logic'; +import { isCrawlerIndex } from '../../../../utils/indices'; +import { IndexViewLogic } from '../../index_view_logic'; + +interface CrawlerConfigurationLogicActions { + apiError: UpdateHtmlExtractionActions['apiError']; + apiSuccess: UpdateHtmlExtractionActions['apiSuccess']; + fetchIndex: () => void; + fetchIndexApiSuccess: CachedFetchIndexApiLogicActions['apiSuccess']; + htmlExtraction: boolean; + makeRequest: UpdateHtmlExtractionActions['makeRequest']; + updateHtmlExtraction(htmlExtraction: boolean): { htmlExtraction: boolean }; +} + +interface CrawlerConfigurationLogicValues { + connector: Connector | undefined; + indexName: string; + localHtmlExtraction: boolean | null; + status: Status; +} + +export const CrawlerConfigurationLogic = kea< + MakeLogicType +>({ + actions: { + updateHtmlExtraction: (htmlExtraction) => ({ htmlExtraction }), + }, + connect: { + actions: [ + IndexViewLogic, + ['fetchIndex', 'fetchIndexApiSuccess'], + UpdateHtmlExtractionApiLogic, + ['apiSuccess', 'makeRequest'], + ], + values: [IndexViewLogic, ['connector', 'indexName'], UpdateHtmlExtractionApiLogic, ['status']], + }, + listeners: ({ actions, values }) => ({ + apiSuccess: () => { + actions.fetchIndex(); + }, + updateHtmlExtraction: ({ htmlExtraction }) => { + actions.makeRequest({ htmlExtraction, indexName: values.indexName }); + }, + }), + path: ['enterprise_search', 'search_index', 'crawler', 'configuration'], + reducers: { + localHtmlExtraction: [ + null, + { + apiSuccess: (_, { htmlExtraction }) => htmlExtraction, + fetchIndexApiSuccess: (_, index) => { + if (isCrawlerIndex(index)) { + return index.connector.configuration.extract_full_html?.value ?? null; + } + return null; + }, + }, + ], + }, + selectors: ({ selectors }) => ({ + htmlExtraction: [ + () => [selectors.connector, selectors.localHtmlExtraction], + (connector: Connector | null, localHtmlExtraction: boolean | null) => + localHtmlExtraction !== null + ? localHtmlExtraction + : connector?.configuration.extract_full_html?.value ?? false, + ], + }), +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/authentication_panel_delete_confirmation_modal.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/auth_panel_delete_confirm_modal.tsx similarity index 100% rename from x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/authentication_panel_delete_confirmation_modal.tsx rename to x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/auth_panel_delete_confirm_modal.tsx diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/authentication_panel.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/authentication_panel.tsx index 4fe77b0196771b..f7022a3d483047 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/authentication_panel.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/authentication_panel.tsx @@ -13,8 +13,8 @@ import { EuiFlexGroup, EuiFlexItem, EuiText, EuiTitle } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; +import { AuthenticationPanelDeleteConfirmationModal } from './auth_panel_delete_confirm_modal'; import { AuthenticationPanelActions } from './authentication_panel_actions'; -import { AuthenticationPanelDeleteConfirmationModal } from './authentication_panel_delete_confirmation_modal'; import { AuthenticationPanelEditContent } from './authentication_panel_edit_content'; import { AuthenticationPanelLogic } from './authentication_panel_logic'; import { AuthenticationPanelViewContent } from './authentication_panel_view_content'; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.ts index 26c1f823b479d5..b89e122f03c7fa 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.ts @@ -16,7 +16,6 @@ import { IngestPipelineParams, SyncStatus, } from '../../../../../common/types/connectors'; -import { ElasticsearchIndexWithIngestion } from '../../../../../common/types/indices'; import { Actions } from '../../../shared/api_logic/create_api_logic'; import { flashSuccessToast } from '../../../shared/flash_messages'; @@ -26,6 +25,7 @@ import { CachedFetchIndexApiLogicActions, } from '../../api/index/cached_fetch_index_api_logic'; +import { FetchIndexApiResponse } from '../../api/index/fetch_index_api_logic'; import { ElasticsearchViewIndex, IngestionMethod, IngestionStatus } from '../../types'; import { getIngestionMethod, @@ -70,6 +70,7 @@ export interface IndexViewValues { hasAdvancedFilteringFeature: boolean; hasBasicFilteringFeature: boolean; hasFilteringFeature: boolean; + htmlExtraction: boolean | undefined; index: ElasticsearchViewIndex | undefined; indexData: typeof CachedFetchIndexApiLogic.values.indexData; indexName: string; @@ -214,6 +215,11 @@ export const IndexViewLogic = kea [selectors.hasAdvancedFilteringFeature, selectors.hasBasicFilteringFeature], (advancedFeature: boolean, basicFeature: boolean) => advancedFeature || basicFeature, ], + htmlExtraction: [ + () => [selectors.connector], + (connector: Connector | undefined) => + connector?.configuration.extract_full_html?.value ?? undefined, + ], index: [ () => [selectors.indexData], (data: IndexViewValues['indexData']) => (data ? indexToViewIndex(data) : undefined), @@ -226,11 +232,12 @@ export const IndexViewLogic = kea [selectors.indexData], - (data: ElasticsearchIndexWithIngestion | undefined) => isConnectorIndex(data), + (data: FetchIndexApiResponse | undefined) => isConnectorIndex(data), ], isSyncing: [ - () => [selectors.syncStatus], - (syncStatus: SyncStatus) => syncStatus === SyncStatus.IN_PROGRESS, + () => [selectors.indexData, selectors.syncStatus], + (indexData: FetchIndexApiResponse | null, syncStatus: SyncStatus) => + indexData?.has_in_progress_syncs || syncStatus === SyncStatus.IN_PROGRESS, ], isWaitingForSync: [ () => [selectors.fetchIndexApiData, selectors.localSyncNowValue], diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx index 3c5b44f6f571a9..236a731b43069c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx @@ -52,14 +52,17 @@ export const NameAndDescriptionStats: React.FC = () => { description: setIsFlyoutVisible(true)} />, isLoading: hideStats, title: indexData.connector.name, + descriptionElement: 'div', + titleElement: 'div', }, { description: ( setIsFlyoutVisible(true)} /> ), + descriptionElement: 'div', isLoading: hideStats, title: {indexData.connector.description || ''}, - titleElement: 'p', + titleElement: 'div', }, ]; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipeline_json_badges.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipeline_json_badges.tsx index 9a690ab437dab3..16365012003b07 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipeline_json_badges.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipeline_json_badges.tsx @@ -131,17 +131,17 @@ export const PipelineJSONBadges: React.FC = () => { } const badges: JSX.Element[] = []; if (isManagedPipeline(pipeline)) { - badges.push(); + badges.push(); } else { - badges.push(); + badges.push(); } if (pipelineName === DEFAULT_PIPELINE_NAME) { - badges.push(); + badges.push(); } if (pipelineName?.endsWith('@ml-inference')) { - badges.push(); + badges.push(); } else if (pipelineName?.includes(indexName)) { - badges.push(); + badges.push(); } return {badges}; }; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx index 5c5b691d42ce17..b09a0a9d8a96a7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx @@ -36,6 +36,7 @@ import { ConnectorSchedulingComponent } from './connector/connector_scheduling'; import { ConnectorSyncRules } from './connector/sync_rules/connector_rules'; import { AutomaticCrawlScheduler } from './crawler/automatic_crawl_scheduler/automatic_crawl_scheduler'; import { CrawlCustomSettingsFlyout } from './crawler/crawl_custom_settings_flyout/crawl_custom_settings_flyout'; +import { CrawlerConfiguration } from './crawler/crawler_configuration/crawler_configuration'; import { SearchIndexDomainManagement } from './crawler/domain_management/domain_management'; import { SearchIndexDocuments } from './documents'; import { SearchIndexIndexMappings } from './index_mappings'; @@ -56,6 +57,7 @@ export enum SearchIndexTabId { SCHEDULING = 'scheduling', // crawler indices DOMAIN_MANAGEMENT = 'domain_management', + CRAWLER_CONFIGURATION = 'crawler_configuration', } export const SearchIndex: React.FC = () => { @@ -164,6 +166,16 @@ export const SearchIndex: React.FC = () => { defaultMessage: 'Manage Domains', }), }, + { + content: , + id: SearchIndexTabId.CRAWLER_CONFIGURATION, + name: i18n.translate( + 'xpack.enterpriseSearch.content.searchIndex.crawlerConfigurationTabLabel', + { + defaultMessage: 'Configuration', + } + ), + }, { content: , id: SearchIndexTabId.SCHEDULING, diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/delete_index_modal.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/delete_index_modal.tsx index c7b5ebaf666173..085aacbd59b03f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/delete_index_modal.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/delete_index_modal.tsx @@ -5,11 +5,19 @@ * 2.0. */ -import React from 'react'; +import React, { useState } from 'react'; import { useActions, useValues } from 'kea'; -import { EuiConfirmModal } from '@elastic/eui'; +import { + EuiCallOut, + EuiConfirmModal, + EuiFieldText, + EuiForm, + EuiFormRow, + EuiSpacer, +} from '@elastic/eui'; + import { i18n } from '@kbn/i18n'; import { ingestionMethodToText } from '../../utils/indices'; @@ -20,10 +28,15 @@ export const DeleteIndexModal: React.FC = () => { const { closeDeleteModal, deleteIndex } = useActions(IndicesLogic); const { deleteModalIndexName: indexName, + deleteModalIndexHasInProgressSyncs, deleteModalIngestionMethod: ingestionMethod, isDeleteModalVisible, isDeleteLoading, + isFetchIndexDetailsLoading, } = useValues(IndicesLogic); + + const [inputIndexName, setInputIndexName] = useState(''); + return isDeleteModalVisible ? ( { )} defaultFocusedButton="confirm" buttonColor="danger" - isLoading={isDeleteLoading} + confirmButtonDisabled={inputIndexName.trim() !== indexName} + isLoading={isDeleteLoading || isFetchIndexDetailsLoading} >

    {i18n.translate( 'xpack.enterpriseSearch.content.searchIndices.deleteModal.delete.description', { defaultMessage: - 'Deleting this index will also delete all of its data and its {ingestionMethod} configuration. Any associated search engines will no longer be able to access any data stored in this index.This can not be undone.', + 'Deleting this index will also delete all of its data and its {ingestionMethod} configuration. Any associated search engines will no longer be able to access any data stored in this index.', values: { ingestionMethod: ingestionMethodToText(ingestionMethod), }, } )}

    + {deleteModalIndexHasInProgressSyncs && ( + <> + +

    + {i18n.translate( + 'xpack.enterpriseSearch.content.searchIndices.deleteModal.syncsWarning.description', + { + defaultMessage: + 'This index has in-progress syncs. Deleting the index without stopping these syncs may result in dangling sync job records or the index being re-created.', + } + )} +

    +
    + + + )} +

    + {i18n.translate( + 'xpack.enterpriseSearch.content.searchIndices.deleteModal.syncsWarning.indexNameDescription', + { + defaultMessage: 'This action cannot be undone. Please type {indexName} to confirm.', + values: { indexName }, + } + )} +

    + + + setInputIndexName(e.target.value)} + value={inputIndexName} + /> + +
    ) : ( <> diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.test.ts index acf1eaa9f83319..16ee5faff914a4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.test.ts @@ -29,13 +29,17 @@ import { IndicesLogic } from './indices_logic'; const DEFAULT_VALUES = { data: undefined, deleteModalIndex: null, + deleteModalIndexHasInProgressSyncs: false, deleteModalIndexName: '', deleteModalIngestionMethod: IngestionMethod.API, deleteStatus: Status.IDLE, hasNoIndices: false, + indexDetails: undefined, + indexDetailsStatus: 0, indices: [], isDeleteLoading: false, isDeleteModalVisible: false, + isFetchIndexDetailsLoading: true, isFirstRequest: true, isLoading: true, meta: DEFAULT_META, @@ -80,21 +84,27 @@ describe('IndicesLogic', () => { }); describe('openDeleteModal', () => { it('should set deleteIndexName and set isDeleteModalVisible to true', () => { + IndicesLogic.actions.fetchIndexDetails = jest.fn(); IndicesLogic.actions.openDeleteModal(connectorIndex); expect(IndicesLogic.values).toEqual({ ...DEFAULT_VALUES, - deleteModalIndex: connectorIndex, deleteModalIndexName: 'connector', - deleteModalIngestionMethod: IngestionMethod.CONNECTOR, isDeleteModalVisible: true, }); + expect(IndicesLogic.actions.fetchIndexDetails).toHaveBeenCalledWith({ + indexName: 'connector', + }); }); }); describe('closeDeleteModal', () => { it('should set deleteIndexName to empty and set isDeleteModalVisible to false', () => { IndicesLogic.actions.openDeleteModal(connectorIndex); + IndicesLogic.actions.fetchIndexDetails = jest.fn(); IndicesLogic.actions.closeDeleteModal(); - expect(IndicesLogic.values).toEqual(DEFAULT_VALUES); + expect(IndicesLogic.values).toEqual({ + ...DEFAULT_VALUES, + indexDetailsStatus: Status.LOADING, + }); }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.ts index 282566637e1039..953fce853904b4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.ts @@ -13,11 +13,20 @@ import { ElasticsearchIndexWithIngestion } from '../../../../../common/types/ind import { Actions } from '../../../shared/api_logic/create_api_logic'; import { DEFAULT_META } from '../../../shared/constants'; import { updateMetaPageIndex } from '../../../shared/table_pagination'; +import { + CancelSyncsActions, + CancelSyncsApiLogic, +} from '../../api/connector/cancel_syncs_api_logic'; import { DeleteIndexApiLogic, DeleteIndexApiLogicArgs, DeleteIndexApiLogicValues, } from '../../api/index/delete_index_api_logic'; +import { + FetchIndexActions, + FetchIndexApiLogic, + FetchIndexApiResponse, +} from '../../api/index/fetch_index_api_logic'; import { FetchIndicesAPILogic } from '../../api/index/fetch_indices_api_logic'; import { ElasticsearchViewIndex, IngestionMethod } from '../../types'; import { getIngestionMethod, indexToViewIndex } from '../../utils/indices'; @@ -43,10 +52,12 @@ export interface IndicesActions { returnHiddenIndices: boolean; searchQuery?: string; }; + cancelSuccess: CancelSyncsActions['apiSuccess']; closeDeleteModal(): void; deleteError: Actions['apiError']; deleteIndex: Actions['makeRequest']; deleteSuccess: Actions['apiSuccess']; + fetchIndexDetails: FetchIndexActions['makeRequest']; fetchIndices({ meta, returnHiddenIndices, @@ -63,14 +74,18 @@ export interface IndicesActions { } export interface IndicesValues { data: typeof FetchIndicesAPILogic.values.data; - deleteModalIndex: ElasticsearchViewIndex | null; + deleteModalIndex: FetchIndexApiResponse | null; + deleteModalIndexHasInProgressSyncs: boolean; deleteModalIndexName: string; deleteModalIngestionMethod: IngestionMethod; deleteStatus: typeof DeleteIndexApiLogic.values.status; hasNoIndices: boolean; + indexDetails: FetchIndexApiResponse | null; + indexDetailsStatus: Status; indices: ElasticsearchViewIndex[]; isDeleteLoading: boolean; isDeleteModalVisible: boolean; + isFetchIndexDetailsLoading: boolean; isFirstRequest: boolean; isLoading: boolean; meta: Meta; @@ -92,12 +107,18 @@ export const IndicesLogic = kea>({ }, connect: { actions: [ + CancelSyncsApiLogic, + ['apiSuccess as cancelSuccess'], + FetchIndexApiLogic, + ['makeRequest as fetchIndexDetails'], FetchIndicesAPILogic, ['makeRequest', 'apiSuccess', 'apiError'], DeleteIndexApiLogic, ['apiError as deleteError', 'apiSuccess as deleteSuccess', 'makeRequest as deleteIndex'], ], values: [ + FetchIndexApiLogic, + ['data as indexDetails', 'status as indexDetailsStatus'], FetchIndicesAPILogic, ['data', 'status'], DeleteIndexApiLogic, @@ -105,6 +126,9 @@ export const IndicesLogic = kea>({ ], }, listeners: ({ actions, values }) => ({ + cancelSuccess: async () => { + actions.fetchIndexDetails({ indexName: values.deleteModalIndexName }); + }, deleteSuccess: () => { actions.closeDeleteModal(); actions.fetchIndices(values.searchParams); @@ -113,14 +137,17 @@ export const IndicesLogic = kea>({ await breakpoint(150); actions.makeRequest(input); }, + openDeleteModal: ({ index }) => { + actions.fetchIndexDetails({ indexName: index.name }); + }, }), path: ['enterprise_search', 'content', 'indices_logic'], reducers: () => ({ - deleteModalIndex: [ - null, + deleteModalIndexName: [ + '', { - closeDeleteModal: () => null, - openDeleteModal: (_, { index }) => index, + closeDeleteModal: () => '', + openDeleteModal: (_, { index: { name } }) => name, }, ], isDeleteModalVisible: [ @@ -154,10 +181,18 @@ export const IndicesLogic = kea>({ ], }), selectors: ({ selectors }) => ({ - deleteModalIndexName: [() => [selectors.deleteModalIndex], (index) => index?.name ?? ''], - deleteModalIngestionMethod: [ + deleteModalIndex: [ + () => [selectors.deleteModalIndexName, selectors.indexDetails], + (indexName: string, indexDetails: FetchIndexApiResponse | null) => + indexName === indexDetails?.name ? indexDetails : null, + ], + deleteModalIndexHasInProgressSyncs: [ () => [selectors.deleteModalIndex], - (index: ElasticsearchViewIndex | null) => + (index: FetchIndexApiResponse | null) => (index ? index.has_in_progress_syncs : false), + ], + deleteModalIngestionMethod: [ + () => [selectors.indexDetails], + (index: FetchIndexApiResponse | null) => index ? getIngestionMethod(index) : IngestionMethod.API, ], hasNoIndices: [ @@ -174,6 +209,11 @@ export const IndicesLogic = kea>({ () => [selectors.deleteStatus], (status: IndicesValues['deleteStatus']) => [Status.LOADING].includes(status), ], + isFetchIndexDetailsLoading: [ + () => [selectors.indexDetailsStatus], + (status: IndicesValues['indexDetailsStatus']) => + [Status.IDLE, Status.LOADING].includes(status), + ], isLoading: [ () => [selectors.status, selectors.isFirstRequest], (status, isFirstRequest) => [Status.LOADING, Status.IDLE].includes(status) && isFirstRequest, diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/routes.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/routes.ts index 4185addb31445a..57ff05050ebaea 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/routes.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/routes.ts @@ -32,7 +32,6 @@ export const ENGINE_TAB_PATH = `${ENGINE_PATH}/:tabId`; export enum EngineViewTabs { OVERVIEW = 'overview', INDICES = 'indices', - DOCUMENTS = 'documents', SCHEMA = 'schema', PREVIEW = 'preview', API = 'api', diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts index cc1356fc0c140d..e2dcccec2adeb1 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts @@ -34,6 +34,7 @@ class DocLinks { public appSearchWebCrawler: string; public appSearchWebCrawlerEventLogs: string; public appSearchWebCrawlerReference: string; + public behavioralAnalytics: string; public behavioralAnalyticsEvents: string; public bulkApi: string; public clientsGoIndex: string; @@ -71,6 +72,7 @@ class DocLinks { public elasticsearchMapping: string; public elasticsearchSecureCluster: string; public enterpriseSearchConfig: string; + public enterpriseSearchEngines: string; public enterpriseSearchMailService: string; public enterpriseSearchTroubleshootSetup: string; public enterpriseSearchUsersAccess: string; @@ -149,6 +151,7 @@ class DocLinks { this.appSearchWebCrawler = ''; this.appSearchWebCrawlerEventLogs = ''; this.appSearchWebCrawlerReference = ''; + this.behavioralAnalytics = ''; this.behavioralAnalyticsEvents = ''; this.bulkApi = ''; this.clientsGoIndex = ''; @@ -186,6 +189,7 @@ class DocLinks { this.elasticsearchMapping = ''; this.elasticsearchSecureCluster = ''; this.enterpriseSearchConfig = ''; + this.enterpriseSearchEngines = ''; this.enterpriseSearchMailService = ''; this.enterpriseSearchTroubleshootSetup = ''; this.enterpriseSearchUsersAccess = ''; @@ -266,6 +270,7 @@ class DocLinks { this.appSearchWebCrawler = docLinks.links.appSearch.webCrawler; this.appSearchWebCrawlerEventLogs = docLinks.links.appSearch.webCrawlerEventLogs; this.appSearchWebCrawlerReference = docLinks.links.appSearch.webCrawlerReference; + this.behavioralAnalytics = docLinks.links.enterpriseSearch.behavioralAnalytics; this.behavioralAnalyticsEvents = docLinks.links.enterpriseSearch.behavioralAnalyticsEvents; this.bulkApi = docLinks.links.enterpriseSearch.bulkApi; this.clientsGoIndex = docLinks.links.clients.goIndex; @@ -302,6 +307,7 @@ class DocLinks { this.elasticsearchMapping = docLinks.links.elasticsearch.mapping; this.elasticsearchSecureCluster = docLinks.links.elasticsearch.secureCluster; this.enterpriseSearchConfig = docLinks.links.enterpriseSearch.configuration; + this.enterpriseSearchEngines = docLinks.links.enterpriseSearch.engines; this.enterpriseSearchMailService = docLinks.links.enterpriseSearch.mailService; this.enterpriseSearchTroubleshootSetup = docLinks.links.enterpriseSearch.troubleshootSetup; this.enterpriseSearchUsersAccess = docLinks.links.enterpriseSearch.usersAccess; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx index 17ce1fce0512ff..7bb55a4ac8b2d5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx @@ -468,21 +468,16 @@ describe('useEnterpriseSearchEngineNav', () => { id: 'enterpriseSearchEngineIndices', name: 'Indices', }, - { - href: `/app/enterprise_search/content/engines/${engineName}/documents`, - id: 'enterpriseSearchEngineDocuments', - name: 'Documents', - }, { href: `/app/enterprise_search/content/engines/${engineName}/schema`, id: 'enterpriseSearchEngineSchema', name: 'Schema', }, - { - href: `/app/enterprise_search/content/engines/${engineName}/preview`, - id: 'enterpriseSearchEnginePreview', - name: 'Preview', - }, + // { + // href: `/app/enterprise_search/content/engines/${engineName}/preview`, + // id: 'enterpriseSearchEnginePreview', + // name: 'Preview', + // }, { href: `/app/enterprise_search/content/engines/${engineName}/api`, id: 'enterpriseSearchEngineAPI', diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx index a6e550e7c58b24..db5cc82d166b43 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx @@ -271,17 +271,6 @@ export const useEnterpriseSearchEngineNav = (engineName?: string, isEmptyState?: to: `${enginePath}/${EngineViewTabs.INDICES}`, }), }, - - { - id: 'enterpriseSearchEngineDocuments', - name: i18n.translate('xpack.enterpriseSearch.nav.engine.documentsTitle', { - defaultMessage: 'Documents', - }), - ...generateNavLink({ - shouldNotCreateHref: true, - to: `${enginePath}/${EngineViewTabs.DOCUMENTS}`, - }), - }, { id: 'enterpriseSearchEngineSchema', name: i18n.translate('xpack.enterpriseSearch.nav.engine.schemaTitle', { @@ -292,16 +281,17 @@ export const useEnterpriseSearchEngineNav = (engineName?: string, isEmptyState?: to: `${enginePath}/${EngineViewTabs.SCHEMA}`, }), }, - { - id: 'enterpriseSearchEnginePreview', - name: i18n.translate('xpack.enterpriseSearch.nav.engine.previewTitle', { - defaultMessage: 'Preview', - }), - ...generateNavLink({ - shouldNotCreateHref: true, - to: `${enginePath}/${EngineViewTabs.PREVIEW}`, - }), - }, + // Hidden until Preview page is available + // { + // id: 'enterpriseSearchEnginePreview', + // name: i18n.translate('xpack.enterpriseSearch.nav.engine.previewTitle', { + // defaultMessage: 'Preview', + // }), + // ...generateNavLink({ + // shouldNotCreateHref: true, + // to: `${enginePath}/${EngineViewTabs.PREVIEW}`, + // }), + // }, { id: 'enterpriseSearchEngineAPI', name: i18n.translate('xpack.enterpriseSearch.nav.engine.apiTitle', { diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/amazon_s3.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/amazon_s3.svg new file mode 100644 index 00000000000000..d7f6497c26c951 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/amazon_s3.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/azure_cloud.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/azure_cloud.svg new file mode 100644 index 00000000000000..2a32f39698611e --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/azure_cloud.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/google_cloud.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/google_cloud.svg new file mode 100644 index 00000000000000..937f8382a0caca --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/google_cloud.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/microsoft_sql.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/microsoft_sql.svg new file mode 100644 index 00000000000000..7eabdd8e3e9d88 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/microsoft_sql.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/oracle.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/oracle.svg new file mode 100644 index 00000000000000..29028d24fdf638 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/oracle.svg @@ -0,0 +1,3 @@ + + + diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/postgresql.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/postgresql.svg new file mode 100644 index 00000000000000..28ff5332e9ceb9 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/postgresql.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/server/integrations.ts b/x-pack/plugins/enterprise_search/server/integrations.ts index 6a147552c24d68..b7d15167641874 100644 --- a/x-pack/plugins/enterprise_search/server/integrations.ts +++ b/x-pack/plugins/enterprise_search/server/integrations.ts @@ -471,4 +471,171 @@ export const registerEnterpriseSearchIntegrations = ( shipper: 'enterprise_search', isBeta: false, }); + + customIntegrations.registerCustomIntegration({ + id: 'postgresql', + title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.postgresqlName', { + defaultMessage: 'PostgreSQL', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.workplaceSearch.integrations.postgreSQLDescription', + { + defaultMessage: 'Search over your content on PostgreSQL with Enterprise Search.', + } + ), + categories: ['enterprise_search', 'elastic_stack', 'custom', 'datastore'], + uiInternalPath: '/app/enterprise_search/content/search_indices/new_index?method=connector', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/postgresql.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'oracle', + title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.oracleName', { + defaultMessage: 'Oracle', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.workplaceSearch.integrations.oracleDescription', + { + defaultMessage: 'Search over your content on Oracle with Enterprise Search.', + } + ), + categories: ['enterprise_search', 'elastic_stack', 'custom', 'datastore'], + uiInternalPath: '/app/enterprise_search/content/search_indices/new_index?method=connector', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/oracle.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'ms_sql', + title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.msSqlName', { + defaultMessage: 'Microsoft SQL', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.workplaceSearch.integrations.msSqlDescription', + { + defaultMessage: 'Search over your content on Microsoft SQL Server with Enterprise Search.', + } + ), + categories: ['enterprise_search', 'custom', 'elastic_stack', 'datastore'], + uiInternalPath: '/app/enterprise_search/content/search_indices/new_index?method=connector', + icons: [ + { + type: 'svg', + src: http.basePath.prepend( + '/plugins/enterpriseSearch/assets/source_icons/microsoft_sql.svg' + ), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'ms_sql', + title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.networkDriveName', { + defaultMessage: 'Network Drive', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.workplaceSearch.integrations.netowkrDriveDescription', + { + defaultMessage: 'Search over your Network Drive content with Enterprise Search.', + } + ), + categories: ['enterprise_search', 'custom', 'elastic_stack', 'file_storage'], + uiInternalPath: '/app/enterprise_search/content/search_indices/new_index?method=connector', + icons: [ + { + type: 'svg', + src: http.basePath.prepend( + '/plugins/enterpriseSearch/assets/source_icons/network_drive.svg' + ), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'amazon_s3', + title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.s3', { + defaultMessage: 'Amazon S3', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.workplaceSearch.integrations.s3Description', + { + defaultMessage: 'Search over your content on Amazon S3 with Enterprise Search.', + } + ), + categories: ['enterprise_search', 'datastore', 'elastic_stack'], + uiInternalPath: '/app/enterprise_search/content/search_indices/new_index?method=connector', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/amazon_s3.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'google_cloud_storage', + title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud', { + defaultMessage: 'Google Cloud Storage', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription', + { + defaultMessage: 'Search over your content on Google Cloud Storage with Enterprise Search.', + } + ), + categories: ['enterprise_search', 'elastic_stack', 'custom'], + uiInternalPath: '/app/enterprise_search/content/search_indices/new_index?method=connector', + icons: [ + { + type: 'svg', + src: http.basePath.prepend( + '/plugins/enterpriseSearch/assets/source_icons/google_cloud.svg' + ), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'azure_cloud_storage', + title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.azureCloud', { + defaultMessage: 'Azure Cloud Storage', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.workplaceSearch.integrations.azureCloudDescription', + { + defaultMessage: 'Search over your content on Azure Cloud Storage with Enterprise Search.', + } + ), + categories: ['enterprise_search', 'elastic_stack', 'custom'], + uiInternalPath: '/app/enterprise_search/content/search_indices/new_index?method=connector', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/azure_cloud.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); }; diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/add_connector.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/add_connector.test.ts index e6584c0a8b205d..d51db7398d1461 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/add_connector.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/add_connector.test.ts @@ -17,6 +17,7 @@ import { fetchCrawlerByIndexName } from '../crawler/fetch_crawlers'; import { textAnalysisSettings } from '../indices/text_analysis'; import { addConnector } from './add_connector'; +import { deleteConnectorById } from './delete_connector'; import { fetchConnectorByIndexName } from './fetch_connectors'; jest.mock('../../index_management/setup_indices', () => ({ @@ -24,12 +25,12 @@ jest.mock('../../index_management/setup_indices', () => ({ })); jest.mock('./fetch_connectors', () => ({ fetchConnectorByIndexName: jest.fn() })); +jest.mock('./delete_connector', () => ({ deleteConnectorById: jest.fn() })); jest.mock('../crawler/fetch_crawlers', () => ({ fetchCrawlerByIndexName: jest.fn() })); describe('addConnector lib function', () => { const mockClient = { asCurrentUser: { - delete: jest.fn(), index: jest.fn(), indices: { create: jest.fn(), @@ -262,10 +263,7 @@ describe('addConnector lib function', () => { language: null, }) ).resolves.toEqual({ id: 'fakeId', index_name: 'index_name' }); - expect(mockClient.asCurrentUser.delete).toHaveBeenCalledWith({ - id: 'connectorId', - index: CONNECTORS_INDEX, - }); + expect(deleteConnectorById).toHaveBeenCalledWith(mockClient, 'connectorId'); expect(mockClient.asCurrentUser.index).toHaveBeenCalledWith({ document: { api_key_id: null, diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/delete_connector.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/delete_connector.test.ts index 4e43667c4063bf..0ce9e536328351 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/delete_connector.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/delete_connector.test.ts @@ -11,6 +11,11 @@ import { CONNECTORS_INDEX } from '../..'; import { deleteConnectorById } from './delete_connector'; +jest.mock('./post_cancel_syncs', () => ({ + cancelSyncs: jest.fn(), +})); +import { cancelSyncs } from './post_cancel_syncs'; + describe('deleteConnector lib function', () => { const mockClient = { asCurrentUser: { @@ -21,16 +26,19 @@ describe('deleteConnector lib function', () => { beforeEach(() => { jest.clearAllMocks(); + jest.useFakeTimers(); }); - it('should delete connector', async () => { + it('should delete connector and cancel syncs', async () => { mockClient.asCurrentUser.delete.mockImplementation(() => true); - await expect( - deleteConnectorById(mockClient as unknown as IScopedClusterClient, 'connectorId') - ).resolves.toEqual(true); + + await deleteConnectorById(mockClient as unknown as IScopedClusterClient, 'connectorId'); + expect(cancelSyncs as jest.Mock).toHaveBeenCalledWith(mockClient, 'connectorId'); expect(mockClient.asCurrentUser.delete).toHaveBeenCalledWith({ id: 'connectorId', index: CONNECTORS_INDEX, + refresh: 'wait_for', }); + jest.useRealTimers(); }); }); diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/delete_connector.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/delete_connector.ts index 1ea6af4dd74d32..cd935f32c2c15e 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/delete_connector.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/delete_connector.ts @@ -9,6 +9,14 @@ import { IScopedClusterClient } from '@kbn/core/server'; import { CONNECTORS_INDEX } from '../..'; +import { cancelSyncs } from './post_cancel_syncs'; + export const deleteConnectorById = async (client: IScopedClusterClient, id: string) => { - return await client.asCurrentUser.delete({ id, index: CONNECTORS_INDEX }); + // timeout function to mitigate race condition with external connector running job and recreating index + const timeout = async () => { + const promise = new Promise((resolve) => setTimeout(resolve, 500)); + return promise; + }; + await Promise.all([cancelSyncs(client, id), timeout]); + return await client.asCurrentUser.delete({ id, index: CONNECTORS_INDEX, refresh: 'wait_for' }); }; diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/post_cancel_syncs.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/post_cancel_syncs.test.ts index adac70f88276cf..be8a295398bbbd 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/post_cancel_syncs.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/post_cancel_syncs.test.ts @@ -52,7 +52,6 @@ describe('addConnector lib function', () => { ], }, }, - refresh: true, script: { lang: 'painless', source: `ctx._source['status'] = '${SyncStatus.CANCELED}'; @@ -79,7 +78,6 @@ ctx._source['completed_at'] = '${new Date(Date.now()).toISOString()}';`, ], }, }, - refresh: true, script: { lang: 'painless', source: `ctx._source['status'] = '${SyncStatus.CANCELING}'; @@ -90,7 +88,7 @@ ctx._source['cancelation_requested_at'] = '${new Date(Date.now()).toISOString()} doc: { last_sync_status: SyncStatus.CANCELED, sync_now: false }, id: 'connectorId', index: CONNECTORS_INDEX, - refresh: true, + refresh: 'wait_for', }); }); }); diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/post_cancel_syncs.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/post_cancel_syncs.ts index d76a1df08ec50c..eb9eefebb3c483 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/post_cancel_syncs.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/post_cancel_syncs.ts @@ -32,7 +32,6 @@ export const cancelSyncs = async ( ], }, }, - refresh: true, script: { lang: 'painless', source: `ctx._source['status'] = '${SyncStatus.CANCELED}'; @@ -59,7 +58,6 @@ ctx._source['completed_at'] = '${new Date(Date.now()).toISOString()}';`, ], }, }, - refresh: true, script: { lang: 'painless', source: `ctx._source['status'] = '${SyncStatus.CANCELING}'; @@ -70,6 +68,6 @@ ctx._source['cancelation_requested_at'] = '${new Date(Date.now()).toISOString()} doc: { last_sync_status: SyncStatus.CANCELED, sync_now: false }, id: connectorId, index: CONNECTORS_INDEX, - refresh: true, + refresh: 'wait_for', }); }; diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_configuration.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_configuration.test.ts new file mode 100644 index 00000000000000..b84be491442cc9 --- /dev/null +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_configuration.test.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IScopedClusterClient } from '@kbn/core/server'; + +import { CONNECTORS_INDEX } from '../..'; +import { ConnectorStatus } from '../../../common/types/connectors'; + +import { fetchConnectorById } from './fetch_connectors'; +import { updateConnectorConfiguration } from './update_connector_configuration'; + +jest.mock('./fetch_connectors', () => ({ fetchConnectorById: jest.fn() })); + +describe('updateConnectorConfiguration lib function', () => { + const mockClient = { + asCurrentUser: { + update: jest.fn(), + }, + asInternalUser: {}, + }; + + beforeEach(() => { + jest.clearAllMocks(); + (fetchConnectorById as jest.Mock).mockResolvedValue({ + primaryTerm: 0, + seqNo: 3, + value: { + configuration: { test: { label: 'haha', value: 'this' } }, + id: 'connectorId', + status: ConnectorStatus.NEEDS_CONFIGURATION, + }, + }); + }); + + it('should update configuration', async () => { + await expect( + updateConnectorConfiguration(mockClient as unknown as IScopedClusterClient, 'connectorId', { + test: 'newValue', + }) + ).resolves.toEqual({ test: { label: 'haha', value: 'newValue' } }); + expect(mockClient.asCurrentUser.update).toHaveBeenCalledWith({ + doc: { + configuration: { test: { label: 'haha', value: 'newValue' } }, + status: ConnectorStatus.CONFIGURED, + }, + id: 'connectorId', + if_primary_term: 0, + if_seq_no: 3, + index: CONNECTORS_INDEX, + refresh: 'wait_for', + }); + }); + + it('should reject if connector does not exist', async () => { + (fetchConnectorById as jest.Mock).mockImplementation(() => undefined); + + await expect( + updateConnectorConfiguration(mockClient as unknown as IScopedClusterClient, 'connectorId', { + test: 'newValue', + }) + ).rejects.toEqual(new Error('Could not find connector')); + expect(mockClient.asCurrentUser.update).not.toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_configuration.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_configuration.ts index ed1be0c2b6fa8f..c19fcb2f012978 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_configuration.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_configuration.ts @@ -6,6 +6,7 @@ */ import { IScopedClusterClient } from '@kbn/core/server'; + import { i18n } from '@kbn/i18n'; import { CONNECTORS_INDEX } from '../..'; @@ -15,33 +16,50 @@ import { ConnectorDocument, ConnectorStatus, } from '../../../common/types/connectors'; +import { isNotNullish } from '../../../common/utils/is_not_nullish'; + +import { fetchConnectorById } from './fetch_connectors'; export const updateConnectorConfiguration = async ( client: IScopedClusterClient, connectorId: string, - configuration: ConnectorConfiguration + configuration: Record ) => { - const connectorResult = await client.asCurrentUser.get({ - id: connectorId, - index: CONNECTORS_INDEX, - }); - const connector = connectorResult._source; + const connectorResult = await fetchConnectorById(client, connectorId); + const connector = connectorResult?.value; if (connector) { const status = connector.status === ConnectorStatus.NEEDS_CONFIGURATION ? ConnectorStatus.CONFIGURED : connector.status; - const result = await client.asCurrentUser.index({ - document: { ...connector, configuration, status }, + const updatedConfig = Object.keys(connector.configuration) + .map((key) => + connector.configuration[key] + ? { + ...connector.configuration[key]!, // ugly but needed because typescript refuses to believe this is defined + key, + value: configuration[key] ?? connector.configuration[key]?.value ?? '', + } + : undefined + ) + .filter(isNotNullish) + .reduce((prev: ConnectorConfiguration, curr) => { + const { key, ...config } = curr; + return { ...prev, [curr.key]: config }; + }, {}); + await client.asCurrentUser.update({ + doc: { configuration: updatedConfig, status }, id: connectorId, + if_primary_term: connectorResult?.primaryTerm, + if_seq_no: connectorResult?.seqNo, index: CONNECTORS_INDEX, + refresh: 'wait_for', }); - await client.asCurrentUser.indices.refresh({ index: CONNECTORS_INDEX }); - return result; + return updatedConfig; } else { throw new Error( i18n.translate('xpack.enterpriseSearch.server.connectors.configuration.error', { - defaultMessage: 'Could not find document', + defaultMessage: 'Could not find connector', }) ); } diff --git a/x-pack/plugins/enterprise_search/server/lib/crawler/put_html_extraction.test.ts b/x-pack/plugins/enterprise_search/server/lib/crawler/put_html_extraction.test.ts new file mode 100644 index 00000000000000..d859d9639b2b6a --- /dev/null +++ b/x-pack/plugins/enterprise_search/server/lib/crawler/put_html_extraction.test.ts @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IScopedClusterClient } from '@kbn/core/server'; + +import { CONNECTORS_INDEX } from '../..'; +import { Connector } from '../../../common/types/connectors'; + +import { updateHtmlExtraction } from './put_html_extraction'; + +describe('updateHtmlExtraction lib function', () => { + const mockClient = { + asCurrentUser: { + update: jest.fn(), + }, + asInternalUser: {}, + }; + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should update connector configuration', async () => { + mockClient.asCurrentUser.update.mockResolvedValue(true); + const mockConnector = { + configuration: { test: { label: 'haha', value: 'this' } }, + id: 'connectorId', + }; + + await updateHtmlExtraction( + mockClient as unknown as IScopedClusterClient, + true, + mockConnector as any as Connector + ); + expect(mockClient.asCurrentUser.update).toHaveBeenCalledWith({ + doc: { + configuration: { + ...mockConnector.configuration, + extract_full_html: { label: 'Extract full HTML', value: true }, + }, + }, + id: 'connectorId', + index: CONNECTORS_INDEX, + refresh: 'wait_for', + }); + }); +}); diff --git a/x-pack/plugins/enterprise_search/server/lib/crawler/put_html_extraction.ts b/x-pack/plugins/enterprise_search/server/lib/crawler/put_html_extraction.ts new file mode 100644 index 00000000000000..bf7c18a5758535 --- /dev/null +++ b/x-pack/plugins/enterprise_search/server/lib/crawler/put_html_extraction.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IScopedClusterClient } from '@kbn/core-elasticsearch-server'; + +import { CONNECTORS_INDEX } from '../..'; +import { Connector } from '../../../common/types/connectors'; + +export async function updateHtmlExtraction( + client: IScopedClusterClient, + htmlExtraction: boolean, + connector: Connector +) { + return await client.asCurrentUser.update({ + doc: { + configuration: { + ...connector.configuration, + extract_full_html: { + label: 'Extract full HTML', + value: htmlExtraction, + }, + }, + }, + id: connector.id, + index: CONNECTORS_INDEX, + refresh: 'wait_for', + }); +} diff --git a/x-pack/plugins/enterprise_search/server/lib/indices/fetch_index.test.ts b/x-pack/plugins/enterprise_search/server/lib/indices/fetch_index.test.ts index c9b4979d79a841..56831b5f651ec2 100644 --- a/x-pack/plugins/enterprise_search/server/lib/indices/fetch_index.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/indices/fetch_index.test.ts @@ -65,6 +65,7 @@ describe('fetchIndex lib function', () => { const result = { aliases: [], count: 100, + has_in_progress_syncs: false, health: 'green', hidden: false, name: 'index_name', @@ -114,7 +115,11 @@ describe('fetchIndex lib function', () => { await expect( fetchIndex(mockClient as unknown as IScopedClusterClient, 'index_name') - ).resolves.toEqual({ ...result, connector: { doc: 'doc', service_type: 'some-service-type' } }); + ).resolves.toEqual({ + ...result, + connector: { doc: 'doc', service_type: 'some-service-type' }, + has_in_progress_syncs: true, + }); }); it('should return data and stats for index and crawler if crawler is present', async () => { @@ -144,6 +149,7 @@ describe('fetchIndex lib function', () => { }); it('should return data and stats for index and crawler if a crawler registered as a connector is present', async () => { + mockClient.asCurrentUser.count.mockReturnValue({ count: 0 }); mockClient.asCurrentUser.indices.get.mockImplementation(() => Promise.resolve({ index_name: { aliases: [], data: 'full index' }, @@ -167,6 +173,7 @@ describe('fetchIndex lib function', () => { ).resolves.toEqual({ ...result, connector: { doc: 'doc', service_type: ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE }, + count: 0, crawler: { id: '1234' }, }); }); diff --git a/x-pack/plugins/enterprise_search/server/lib/indices/fetch_index.ts b/x-pack/plugins/enterprise_search/server/lib/indices/fetch_index.ts index 140a1180360edc..7549d59da6ffc5 100644 --- a/x-pack/plugins/enterprise_search/server/lib/indices/fetch_index.ts +++ b/x-pack/plugins/enterprise_search/server/lib/indices/fetch_index.ts @@ -7,13 +7,34 @@ import { IScopedClusterClient } from '@kbn/core/server'; +import { CONNECTORS_JOBS_INDEX } from '../..'; + import { ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE } from '../../../common/constants'; +import { SyncStatus } from '../../../common/types/connectors'; import { ElasticsearchIndexWithIngestion } from '../../../common/types/indices'; import { fetchConnectorByIndexName } from '../connectors/fetch_connectors'; import { fetchCrawlerByIndexName } from '../crawler/fetch_crawlers'; import { mapIndexStats } from './utils/map_index_stats'; +const hasInProgressSyncs = async ( + client: IScopedClusterClient, + connectorId: string +): Promise => { + const inProgressCount = await client.asCurrentUser.count({ + index: CONNECTORS_JOBS_INDEX, + query: { + bool: { + filter: [ + { term: { 'connector.id': connectorId } }, + { term: { status: SyncStatus.IN_PROGRESS } }, + ], + }, + }, + }); + return inProgressCount.count > 0; +}; + export const fetchIndex = async ( client: IScopedClusterClient, index: string @@ -28,12 +49,18 @@ export const fetchIndex = async ( throw new Error('404'); } const indexStats = indices[index]; + + const connector = await fetchConnectorByIndexName(client, index); + const hasInProgressSyncsResult = connector + ? await hasInProgressSyncs(client, connector.id) + : false; + const indexResult = { count, ...mapIndexStats(indexData, indexStats, index), + has_in_progress_syncs: hasInProgressSyncsResult, }; - const connector = await fetchConnectorByIndexName(client, index); if (connector && connector.service_type !== ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE) { return { ...indexResult, diff --git a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/connectors.ts b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/connectors.ts index 8861722205ea0c..249a722fa57dd8 100644 --- a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/connectors.ts +++ b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/connectors.ts @@ -99,10 +99,7 @@ export function registerConnectorRoutes({ router, log }: RouteDependencies) { { path: '/internal/enterprise_search/connectors/{connectorId}/configuration', validate: { - body: schema.recordOf( - schema.string(), - schema.object({ label: schema.string(), value: schema.nullable(schema.string()) }) - ), + body: schema.recordOf(schema.string(), schema.string()), params: schema.object({ connectorId: schema.string(), }), @@ -110,8 +107,12 @@ export function registerConnectorRoutes({ router, log }: RouteDependencies) { }, elasticsearchErrorHandler(log, async (context, request, response) => { const { client } = (await context.core).elasticsearch; - await updateConnectorConfiguration(client, request.params.connectorId, request.body); - return response.ok(); + const configuration = await updateConnectorConfiguration( + client, + request.params.connectorId, + request.body + ); + return response.ok({ body: configuration }); }) ); diff --git a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/crawler/crawler.ts b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/crawler/crawler.ts index c3b034f0b6ce7f..08cea961709fc6 100644 --- a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/crawler/crawler.ts +++ b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/crawler/crawler.ts @@ -6,6 +6,7 @@ */ import { schema } from '@kbn/config-schema'; + import { i18n } from '@kbn/i18n'; import { ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE } from '../../../../common/constants'; @@ -15,6 +16,7 @@ import { addConnector } from '../../../lib/connectors/add_connector'; import { deleteConnectorById } from '../../../lib/connectors/delete_connector'; import { fetchConnectorByIndexName } from '../../../lib/connectors/fetch_connectors'; import { fetchCrawlerByIndexName } from '../../../lib/crawler/fetch_crawlers'; +import { updateHtmlExtraction } from '../../../lib/crawler/put_html_extraction'; import { deleteIndex } from '../../../lib/indices/delete_index'; import { RouteDependencies } from '../../../plugin'; import { createError } from '../../../utils/create_error'; @@ -389,6 +391,44 @@ export function registerCrawlerRoutes(routeDependencies: RouteDependencies) { }) ); + router.put( + { + path: '/internal/enterprise_search/indices/{indexName}/crawler/html_extraction', + validate: { + body: schema.object({ + extract_full_html: schema.boolean(), + }), + params: schema.object({ + indexName: schema.string(), + }), + }, + }, + elasticsearchErrorHandler(log, async (context, request, response) => { + const { client } = (await context.core).elasticsearch; + + const connector = await fetchConnectorByIndexName(client, request.params.indexName); + if ( + connector && + connector.service_type === ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE + ) { + await updateHtmlExtraction(client, request.body.extract_full_html, connector); + return response.ok(); + } else { + return createError({ + errorCode: ErrorCode.RESOURCE_NOT_FOUND, + message: i18n.translate( + 'xpack.enterpriseSearch.server.routes.updateHtmlExtraction.noCrawlerFound', + { + defaultMessage: 'Could not find a crawler for this index', + } + ), + response, + statusCode: 404, + }); + } + }) + ); + registerCrawlerCrawlRulesRoutes(routeDependencies); registerCrawlerEntryPointRoutes(routeDependencies); registerCrawlerSitemapRoutes(routeDependencies); diff --git a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/engines.ts b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/engines.ts index c64c86b35fadb1..2a0469d77cd480 100644 --- a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/engines.ts +++ b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/engines.ts @@ -128,4 +128,14 @@ export function registerEnginesRoutes({ path: '/api/engines/:engine_name/_search', }) ); + + router.get( + { + path: '/internal/enterprise_search/engines/{engine_name}/field_capabilities', + validate: { params: schema.object({ engine_name: schema.string() }) }, + }, + enterpriseSearchRequestHandler.createRequest({ + path: '/api/engines/:engine_name/field_capabilities', + }) + ); } diff --git a/x-pack/plugins/event_log/generated/mappings.json b/x-pack/plugins/event_log/generated/mappings.json index 1e3c5396927b7c..a5212917393f8b 100644 --- a/x-pack/plugins/event_log/generated/mappings.json +++ b/x-pack/plugins/event_log/generated/mappings.json @@ -271,6 +271,31 @@ "outcome": { "type": "keyword", "ignore_above": 1024 + }, + "summary": { + "properties": { + "new": { + "properties": { + "count": { + "type": "long" + } + } + }, + "ongoing": { + "properties": { + "count": { + "type": "long" + } + } + }, + "recovered": { + "properties": { + "count": { + "type": "long" + } + } + } + } } } }, diff --git a/x-pack/plugins/event_log/generated/schemas.ts b/x-pack/plugins/event_log/generated/schemas.ts index 430feda52f1fba..93ee9f2977a366 100644 --- a/x-pack/plugins/event_log/generated/schemas.ts +++ b/x-pack/plugins/event_log/generated/schemas.ts @@ -116,6 +116,25 @@ export const EventSchema = schema.maybe( action_subgroup: ecsString(), status: ecsString(), outcome: ecsString(), + summary: schema.maybe( + schema.object({ + new: schema.maybe( + schema.object({ + count: ecsStringOrNumber(), + }) + ), + ongoing: schema.maybe( + schema.object({ + count: ecsStringOrNumber(), + }) + ), + recovered: schema.maybe( + schema.object({ + count: ecsStringOrNumber(), + }) + ), + }) + ), }) ), alert: schema.maybe( diff --git a/x-pack/plugins/event_log/kibana.json b/x-pack/plugins/event_log/kibana.json deleted file mode 100644 index c437667512cdeb..00000000000000 --- a/x-pack/plugins/event_log/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "eventLog", - "version": "0.0.1", - "kibanaVersion": "kibana", - "owner": { - "name": "Response Ops", - "githubTeam": "response-ops" - }, - "configPath": ["xpack", "eventLog"], - "optionalPlugins": ["spaces"], - "server": true, - "ui": false -} diff --git a/x-pack/plugins/event_log/kibana.jsonc b/x-pack/plugins/event_log/kibana.jsonc new file mode 100644 index 00000000000000..1f05da271664f6 --- /dev/null +++ b/x-pack/plugins/event_log/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/event-log-plugin", + "owner": "@elastic/response-ops", + "plugin": { + "id": "eventLog", + "server": true, + "browser": false, + "configPath": [ + "xpack", + "eventLog" + ], + "optionalPlugins": [ + "spaces" + ] + } +} diff --git a/x-pack/plugins/event_log/scripts/mappings.js b/x-pack/plugins/event_log/scripts/mappings.js index fc4d40ee9f774b..36838a4208a877 100644 --- a/x-pack/plugins/event_log/scripts/mappings.js +++ b/x-pack/plugins/event_log/scripts/mappings.js @@ -54,6 +54,31 @@ exports.EcsCustomPropertyMappings = { type: 'keyword', ignore_above: 1024, }, + summary: { + properties: { + new: { + properties: { + count: { + type: 'long', + }, + }, + }, + ongoing: { + properties: { + count: { + type: 'long', + }, + }, + }, + recovered: { + properties: { + count: { + type: 'long', + }, + }, + }, + }, + }, }, }, alert: { diff --git a/x-pack/plugins/event_log/server/es/context.test.ts b/x-pack/plugins/event_log/server/es/context.test.ts index 8deeb20f900820..3a431920be4e0d 100644 --- a/x-pack/plugins/event_log/server/es/context.test.ts +++ b/x-pack/plugins/event_log/server/es/context.test.ts @@ -10,7 +10,7 @@ import { Logger } from '@kbn/core/server'; import { elasticsearchServiceMock, loggingSystemMock } from '@kbn/core/server/mocks'; import { createReadySignal } from '../lib/ready_signal'; -jest.mock('../lib/../../../../package.json', () => ({ version: '1.2.3' })); +jest.mock('../../../../package.json', () => ({ version: '1.2.3' })); jest.mock('./init'); jest.mock('../lib/ready_signal', () => { const createReadySignalActual = jest.requireActual('../lib/ready_signal'); diff --git a/x-pack/plugins/event_log/server/es/names.test.ts b/x-pack/plugins/event_log/server/es/names.test.ts index 6d2d39224755cf..cf81d9a0af513d 100644 --- a/x-pack/plugins/event_log/server/es/names.test.ts +++ b/x-pack/plugins/event_log/server/es/names.test.ts @@ -7,7 +7,7 @@ import { getEsNames } from './names'; -jest.mock('../lib/../../../../package.json', () => ({ +jest.mock('../../../../package.json', () => ({ version: '1.2.3', })); diff --git a/x-pack/plugins/features/kibana.json b/x-pack/plugins/features/kibana.json deleted file mode 100644 index 550b3899061d4a..00000000000000 --- a/x-pack/plugins/features/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "features", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "requiredPlugins": ["licensing"], - "configPath": ["xpack", "features"], - "server": true, - "ui": true, - "extraPublicDirs": ["common"] -} diff --git a/x-pack/plugins/features/kibana.jsonc b/x-pack/plugins/features/kibana.jsonc new file mode 100644 index 00000000000000..ac9f52175f458a --- /dev/null +++ b/x-pack/plugins/features/kibana.jsonc @@ -0,0 +1,20 @@ +{ + "type": "plugin", + "id": "@kbn/features-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "features", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "features" + ], + "requiredPlugins": [ + "licensing" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/file_upload/kibana.json b/x-pack/plugins/file_upload/kibana.json deleted file mode 100644 index b4ee114645e1cf..00000000000000 --- a/x-pack/plugins/file_upload/kibana.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "id": "fileUpload", - "version": "8.2.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "data", - "usageCollection" - ], - "optionalPlugins": [ - "security" - ], - "requiredBundles": [ - "kibanaReact" - ], - "extraPublicDirs": [ - "common" - ], - "owner": { - "name": "Machine Learning UI", - "githubTeam": "ml-ui" - }, - "description": "The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON." -} diff --git a/x-pack/plugins/file_upload/kibana.jsonc b/x-pack/plugins/file_upload/kibana.jsonc new file mode 100644 index 00000000000000..82b16fe0af18bc --- /dev/null +++ b/x-pack/plugins/file_upload/kibana.jsonc @@ -0,0 +1,24 @@ +{ + "type": "plugin", + "id": "@kbn/file-upload-plugin", + "owner": "@elastic/kibana-gis", + "description": "The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON.", + "plugin": { + "id": "fileUpload", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "usageCollection" + ], + "optionalPlugins": [ + "security" + ], + "requiredBundles": [ + "kibanaReact" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/fleet/common/experimental_features.ts b/x-pack/plugins/fleet/common/experimental_features.ts index bb28867d3bf05f..37acc7b0569170 100644 --- a/x-pack/plugins/fleet/common/experimental_features.ts +++ b/x-pack/plugins/fleet/common/experimental_features.ts @@ -19,6 +19,7 @@ export const allowedExperimentalValues = Object.freeze({ experimentalDataStreamSettings: false, displayAgentMetrics: true, showIntegrationsSubcategories: false, + agentFqdnMode: true, }); type ExperimentalConfigKeys = Array; diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index 0a62474c890569..c4082843e25c99 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -880,24 +880,6 @@ }, "operationId": "update-package", "description": "", - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "pkgName", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "pkgVersion", - "in": "path", - "required": true - } - ], "requestBody": { "content": { "application/json": { @@ -1322,7 +1304,10 @@ "parameters": [ { "schema": { - "type": "array" + "type": "array", + "items": { + "type": "string" + } }, "name": "agentsIds", "in": "query", @@ -1737,6 +1722,14 @@ }, "/agents/{agentId}/actions/{actionId}/cancel": { "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "agentId", + "in": "path", + "required": true + }, { "schema": { "type": "string" @@ -3625,14 +3618,6 @@ } }, "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "packagePolicyId", - "in": "path", - "required": true - }, { "schema": { "type": "boolean" @@ -4273,14 +4258,6 @@ } }, "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "itemId", - "in": "path", - "required": true - }, { "$ref": "#/components/parameters/kbn_xsrf" } @@ -4333,14 +4310,6 @@ } }, "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "itemId", - "in": "path", - "required": true - }, { "$ref": "#/components/parameters/kbn_xsrf" } @@ -4503,14 +4472,6 @@ } }, "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "itemId", - "in": "path", - "required": true - }, { "$ref": "#/components/parameters/kbn_xsrf" } @@ -4569,14 +4530,6 @@ } }, "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "itemId", - "in": "path", - "required": true - }, { "$ref": "#/components/parameters/kbn_xsrf" } @@ -4660,7 +4613,8 @@ }, "in": "header", "name": "kbn-xsrf", - "required": true + "required": true, + "description": "Kibana's anti Cross-Site Request Forgery token. Can be any string value." }, "page_size": { "name": "perPage", @@ -5865,6 +5819,24 @@ }, "agents": { "type": "number" + }, + "agent_features": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "enabled": { + "type": "boolean" + } + }, + "required": [ + "name", + "enabled" + ] + } } }, "required": [ diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index 7b93038b146bcf..654918ddc265df 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -556,17 +556,6 @@ paths: - items operationId: update-package description: '' - parameters: - - schema: - type: string - name: pkgName - in: path - required: true - - schema: - type: string - name: pkgVersion - in: path - required: true requestBody: content: application/json: @@ -833,6 +822,8 @@ paths: parameters: - schema: type: array + items: + type: string name: agentsIds in: query required: true @@ -1082,6 +1073,11 @@ paths: $ref: '#/components/schemas/agent_action' /agents/{agentId}/actions/{actionId}/cancel: parameters: + - schema: + type: string + name: agentId + in: path + required: true - schema: type: string name: actionId @@ -2247,11 +2243,6 @@ paths: required: - id parameters: - - schema: - type: string - name: packagePolicyId - in: path - required: true - schema: type: boolean name: force @@ -2652,11 +2643,6 @@ paths: required: - id parameters: - - schema: - type: string - name: itemId - in: path - required: true - $ref: '#/components/parameters/kbn_xsrf' put: summary: Fleet Server Hosts - Update @@ -2688,11 +2674,6 @@ paths: required: - item parameters: - - schema: - type: string - name: itemId - in: path - required: true - $ref: '#/components/parameters/kbn_xsrf' /proxies: get: @@ -2795,11 +2776,6 @@ paths: required: - id parameters: - - schema: - type: string - name: itemId - in: path - required: true - $ref: '#/components/parameters/kbn_xsrf' put: summary: Fleet Proxies - Update @@ -2835,11 +2811,6 @@ paths: required: - item parameters: - - schema: - type: string - name: itemId - in: path - required: true - $ref: '#/components/parameters/kbn_xsrf' /kubernetes: get: @@ -2894,6 +2865,7 @@ components: in: header name: kbn-xsrf required: true + description: Kibana's anti Cross-Site Request Forgery token. Can be any string value. page_size: name: perPage in: query @@ -3740,6 +3712,18 @@ components: type: number agents: type: number + agent_features: + type: array + items: + type: object + properties: + name: + type: string + enabled: + type: boolean + required: + - name + - enabled required: - id - status diff --git a/x-pack/plugins/fleet/common/openapi/components/headers/kbn_xsrf.yaml b/x-pack/plugins/fleet/common/openapi/components/headers/kbn_xsrf.yaml index 3d8dfae634e68d..60cfcf67567aaf 100644 --- a/x-pack/plugins/fleet/common/openapi/components/headers/kbn_xsrf.yaml +++ b/x-pack/plugins/fleet/common/openapi/components/headers/kbn_xsrf.yaml @@ -3,3 +3,4 @@ schema: in: header name: kbn-xsrf required: true +description: Kibana's anti Cross-Site Request Forgery token. Can be any string value. diff --git a/x-pack/plugins/fleet/common/openapi/components/schemas/agent_policy.yaml b/x-pack/plugins/fleet/common/openapi/components/schemas/agent_policy.yaml index ab001440647600..76b6fba16c8731 100644 --- a/x-pack/plugins/fleet/common/openapi/components/schemas/agent_policy.yaml +++ b/x-pack/plugins/fleet/common/openapi/components/schemas/agent_policy.yaml @@ -35,6 +35,18 @@ allOf: type: number agents: type: number + agent_features: + type: array + items: + type: object + properties: + name: + type: string + enabled: + type: boolean + required: + - name + - enabled required: - id - status diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml index 79eed1f24fe36a..e1a758d55dce22 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml @@ -22,6 +22,8 @@ get: parameters: - schema: type: array + items: + type: string name: agentsIds in: query required: true diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml index 666abed1fce356..f17d6e4b25cf30 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml @@ -1,4 +1,9 @@ parameters: + - schema: + type: string + name: agentId + in: path + required: true - schema: type: string name: actionId diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml index c6a5e551235915..8fe228f91bbd0c 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml @@ -143,17 +143,6 @@ put: - items operationId: update-package description: '' - parameters: - - schema: - type: string - name: pkgName - in: path - required: true - - schema: - type: string - name: pkgVersion - in: path - required: true requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml index b2a50f8b52b8ee..141274274b840c 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml @@ -36,11 +36,6 @@ delete: required: - id parameters: - - schema: - type: string - name: itemId - in: path - required: true - $ref: ../components/headers/kbn_xsrf.yaml put: summary: Fleet Server Hosts - Update @@ -72,9 +67,4 @@ put: required: - item parameters: - - schema: - type: string - name: itemId - in: path - required: true - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml index bb4a76f1cd3df4..72773f43483beb 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml @@ -62,11 +62,6 @@ delete: required: - id parameters: - - schema: - type: string - name: packagePolicyId - in: path - required: true - schema: type: boolean name: force diff --git a/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml index 3c269de04b882c..882ddd5bf3f072 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml @@ -36,11 +36,6 @@ delete: required: - id parameters: - - schema: - type: string - name: itemId - in: path - required: true - $ref: ../components/headers/kbn_xsrf.yaml put: summary: Fleet Proxies - Update @@ -76,9 +71,4 @@ put: required: - item parameters: - - schema: - type: string - name: itemId - in: path - required: true - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/services/index.ts b/x-pack/plugins/fleet/common/services/index.ts index 2b5a8dd04bc917..2b700a6aaca6fd 100644 --- a/x-pack/plugins/fleet/common/services/index.ts +++ b/x-pack/plugins/fleet/common/services/index.ts @@ -20,6 +20,10 @@ export { isValidNamespace, INVALID_NAMESPACE_CHARACTERS } from './is_valid_names export { isDiffPathProtocol } from './is_diff_path_protocol'; export { LicenseService } from './license'; export { isAgentUpgradeable } from './is_agent_upgradeable'; +export { + isAgentRequestDiagnosticsSupported, + MINIMUM_DIAGNOSTICS_AGENT_VERSION, +} from './is_agent_request_diagnostics_supported'; export { isInputOnlyPolicyTemplate, isIntegrationPolicyTemplate, diff --git a/x-pack/plugins/fleet/common/services/is_agent_request_diagnostics_supported.test.ts b/x-pack/plugins/fleet/common/services/is_agent_request_diagnostics_supported.test.ts new file mode 100644 index 00000000000000..cfe64a82ff5d70 --- /dev/null +++ b/x-pack/plugins/fleet/common/services/is_agent_request_diagnostics_supported.test.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Agent } from '../types/models/agent'; + +import { isAgentRequestDiagnosticsSupported } from '.'; + +const getAgent = ({ version }: { version: string }): Agent => { + const agent: Agent = { + id: 'agent1', + active: true, + type: 'PERMANENT', + enrolled_at: '2023-02-08T20:24:08.347Z', + user_provided_metadata: {}, + local_metadata: { + elastic: { + agent: { + version, + }, + }, + }, + packages: ['system'], + }; + return agent; +}; +describe('Fleet - isAgentRequestDiagnosticsSupported', () => { + it('returns false if agent version < 8.7', () => { + expect(isAgentRequestDiagnosticsSupported(getAgent({ version: '7.9.0' }))).toBe(false); + }); + + it('returns true if agent version is 8.7', () => { + expect(isAgentRequestDiagnosticsSupported(getAgent({ version: '8.7.0' }))).toBe(true); + }); + + it('returns true if agent version > 8.7', () => { + expect(isAgentRequestDiagnosticsSupported(getAgent({ version: '8.8.0' }))).toBe(true); + }); +}); diff --git a/x-pack/plugins/fleet/common/services/is_agent_request_diagnostics_supported.ts b/x-pack/plugins/fleet/common/services/is_agent_request_diagnostics_supported.ts new file mode 100644 index 00000000000000..c912120e6b4733 --- /dev/null +++ b/x-pack/plugins/fleet/common/services/is_agent_request_diagnostics_supported.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import semverGte from 'semver/functions/gte'; + +import type { Agent } from '../types'; + +export const MINIMUM_DIAGNOSTICS_AGENT_VERSION = '8.7.0'; + +export function isAgentRequestDiagnosticsSupported(agent: Agent) { + if (typeof agent?.local_metadata?.elastic?.agent?.version !== 'string') { + return false; + } + const agentVersion = agent.local_metadata.elastic.agent.version; + return semverGte(agentVersion, MINIMUM_DIAGNOSTICS_AGENT_VERSION); +} diff --git a/x-pack/plugins/fleet/common/types/models/agent.ts b/x-pack/plugins/fleet/common/types/models/agent.ts index e530ca152addd1..537d0f250e8282 100644 --- a/x-pack/plugins/fleet/common/types/models/agent.ts +++ b/x-pack/plugins/fleet/common/types/models/agent.ts @@ -154,6 +154,7 @@ export interface ActionStatus { cancellationTime?: string; newPolicyId?: string; creationTime: string; + hasRolloutPeriod?: boolean; } export interface AgentDiagnostics { diff --git a/x-pack/plugins/fleet/common/types/models/agent_policy.ts b/x-pack/plugins/fleet/common/types/models/agent_policy.ts index 4a2292a6921720..cc0f0be82eae05 100644 --- a/x-pack/plugins/fleet/common/types/models/agent_policy.ts +++ b/x-pack/plugins/fleet/common/types/models/agent_policy.ts @@ -32,6 +32,7 @@ export interface NewAgentPolicy { download_source_id?: string | null; fleet_server_host_id?: string | null; schema_version?: string; + agent_features?: Array<{ name: string; enabled: boolean }>; } export interface AgentPolicy extends Omit { @@ -112,6 +113,7 @@ export interface FullAgentPolicy { logs: boolean; }; download: { sourceURI: string }; + features: Record; }; } diff --git a/x-pack/plugins/fleet/dev_docs/react_query.md b/x-pack/plugins/fleet/dev_docs/react_query.md new file mode 100644 index 00000000000000..55eca8669c1ec5 --- /dev/null +++ b/x-pack/plugins/fleet/dev_docs/react_query.md @@ -0,0 +1,238 @@ +# `@tanstack/query` Usage in Fleet + Integrations + +This document seeks to outline the Fleet + Integrations apps' usage of [`@tanstack/query`](https://tanstack.com/query/latest) - formally known generally as `react-query`. When we talk about the React-specific adapter for `@tanstack/query`, we'll use the library name `react-query`. Since Kibana doesn't have Vue, Solid, or Svelte plugins, we don't need to be worried about the other client implementations. This is a library for asynchronous state management that's most commonly utilized for data fetching logic. `@tanstack/query` helps developers write consistent state management logic around asynchronous operations, while providing end users with a performant, "jank-free" experience. + +## Helpful Links + +- `react-query` [docs](https://tanstack.com/query/latest/docs/react/overview) +- [Practical React Query](https://tanstack.com/query/latest/docs/react/overview) by maintainer [TkDodo](https://github.com/tkdodo) + - This series is long but extremely helpful. A highly recommended read for anyone working with data fetching in Fleet/Integrations! +- `@tanstack/query` source code on GitHub: https://github.com/TanStack/query + +## How Fleet/Integrations uses custom data fetching hooks + +Historically, Fleet/Integrations have used homegrown data fetching hooks in a common folder at [`public/hooks/use_request`](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/hooks/use_request). Each `.ts` file in this directory contains one or more data fetching hooks related to a particular resource or concept. For example, here's what some data fetching hooks for `packages` and `categories` might look like: + +```ts +// use_request/epm.ts + +export const useGetCategories = (query: GetCategoriesRequest['query'] = {}) => { + return useRequest({ + path: epmRouteService.getCategoriesPath(), + method: 'get', + query, + }); +}; + +export const sendGetCategories = (query: GetCategoriesRequest['query'] = {}) => { + return sendRequest({ + path: epmRouteService.getCategoriesPath(), + method: 'get', + query, + }); +}; + +export const useGetPackages = (query: GetPackagesRequest['query'] = {}) => { + return useRequest({ + path: epmRouteService.getListPath(), + method: 'get', + query, + }); +}; + +export const sendGetPackages = (query: GetPackagesRequest['query'] = {}) => { + return sendRequest({ + path: epmRouteService.getListPath(), + method: 'get', + query, + }); +}; +``` + +
    +What are useRequest and sendRequest? + +The `useRequest` and `sendRequest` methods are common across all of these data fetching hooks, and use Kibana's provide `useRequest` hook and `sendRequest` helper with some additional logic on top. e.g. + +```ts +// use_request/use_request.ts - excerpts for clarity + +import { + sendRequest as _sendRequest, + useRequest as _useRequest, +} from '@kbn/es-ui-shared-plugin/public'; + +export const sendRequest = ( + config: SendRequestConfig +): Promise> => { + if (!httpClient) { + throw new Error('sendRequest has no http client set'); + } + return _sendRequest(httpClient, config); +}; + +export const useRequest = (config: UseRequestConfig) => { + if (!httpClient) { + throw new Error('sendRequest has no http client set'); + } + return _useRequest(httpClient, config); +}; +``` + +
    + +Consuming these data fetching hooks might look something like this + +```tsx +// applications/integrations/sections/epm/screens/detail/settings/update_button.tsx +const handleClickUpgradePolicies = useCallback(async () => { + if (isUpgradingPackagePolicies) { + return; + } + + setIsUpdateModalVisible(false); + setIsUpgradingPackagePolicies(true); + + await installPackage({ name, version, title }); + + await sendUpgradePackagePolicy( + // Only upgrade policies that don't have conflicts + packagePolicyIds.filter( + (id) => !dryRunData?.find((dryRunRecord) => dryRunRecord.diff?.[0].id === id)?.hasErrors + ) + ); + + setIsUpgradingPackagePolicies(false); + + notifications.toasts.addSuccess({ + title: toMountPoint( + , + { theme$ } + ), + text: toMountPoint( + , + { theme$ } + ), + }); + + navigateToNewSettingsPage(); +}, [ + dryRunData, + installPackage, + isUpgradingPackagePolicies, + name, + navigateToNewSettingsPage, + notifications.toasts, + packagePolicyIds, + setIsUpgradingPackagePolicies, + title, + version, + theme$, +]); +``` + +In the "custom data fetching" hooks world, there are a few big problems: + +1. Caching, cancellation, deduping/debouncing successive requests, and optimizations around re-renders are an afterthought +2. Mutations in particular are extremely verbose, as we need to "wire up" all error/loading state, "post-mutation" operations, etc +3. Revalidating queries from elsewhere in the component tree (e.g. update the agent policy table when a new agent policy is saved) is a tricky operation usually solved by intermittent polling or a `location.reload()` + +## How `react-query` helps + +`react-query` handles many of the "big problems" above out-of-the-box. By providing a basic key/value based cache for queries, consistent utilities around state transitions of async operations, and robust revalidation helpers, `react-query` makes working with the state around data fetching much more predictable and pleasant. + +### How Fleet/Integrations uses `react-query` + +There's a bit of setup involved to actually get `react-query` up and running. First and foremost, each Kibana application is wrapped in a `` that handles `react-query`'s internal query cache and various React context needs. e.g. + +```tsx +//... + + + + + + + + + {children} + + + + + + +``` + +We also set up `react-query`'s [dev tools](https://tanstack.com/query/v4/docs/react/devtools), which provide a useful developer console for debugging query and mutation state across the whole application. + +Another step required to use `react-query` in Fleet/Integrations is the introduction of a specialized data fetching utility. `react-query` operations expect a slightly different structure than what Kibana's `useRequest` and `sendRequest` helpers. For this purpose, we introduce the `sendRequestForRq` helper, e.g. + +```ts +// Sends requests with better ergonomics for React Query, e.g. throw error rather +// than resolving with an `error` property in the result. Also returns `data` directly +// as opposed to { data } in a response object. +export const sendRequestForRq = async ( + config: SendRequestConfig +): Promise => { + if (!httpClient) { + throw new Error('sendRequest has no http client set'); + } + + const response = await _sendRequest(httpClient, config); + + if (response.error) { + throw response.error; + } + + // Data can't be null so long as `_sendRequest` did not throw + return response.data!; +}; +``` + +So, with those pieces of setup in mind, adding a new query or mutation looks like this: + +```ts +export function useGetCategoriesQuery(query: GetCategoriesRequest['query'] = {}) { + return useQuery(['categories', query], () => + sendRequestForRq({ + path: epmRouteService.getCategoriesPath(), + method: 'get', + query, + }) + ); +} + +export const useGetPackagesQuery = (query: GetPackagesRequest['query']) => { + return useQuery(['get-packages', query.prerelease], () => + sendRequestForRq({ + path: epmRouteService.getListPath(), + method: 'get', + query, + }) + ); +}; + +export const useUpdatePackageMutation = () => { + return useMutation( + ({ pkgName, pkgVersion, body }: UpdatePackageArgs) => + sendRequestForRq({ + path: epmRouteService.getUpdatePath(pkgName, pkgVersion), + method: 'put', + body, + }) + ); +}; +``` + +### `react-query` operation naming conventions + +For `react-query` operations defined in `use_request/`, try to use a naming convention along the lines of `use{Action}{Resource}{Query/Mutation}` for your hooks. This helps with consistency and makes the intent of every data fetching operation clear. diff --git a/x-pack/plugins/fleet/kibana.json b/x-pack/plugins/fleet/kibana.json deleted file mode 100644 index fd0cfc4be3baa5..00000000000000 --- a/x-pack/plugins/fleet/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "fleet", - "owner": { - "name": "Fleet", - "githubTeam": "fleet" - }, - "version": "kibana", - "server": true, - "ui": true, - "configPath": ["xpack", "fleet"], - "requiredPlugins": ["licensing", "data", "encryptedSavedObjects", "navigation", "customIntegrations", "share", "spaces", "security", "unifiedSearch", "savedObjectsTagging", "taskManager", "guidedOnboarding", "files"], - "optionalPlugins": ["features", "cloud", "usageCollection", "home", "globalSearch", "telemetry", "discover", "ingestPipelines"], - "extraPublicDirs": ["common"], - "requiredBundles": ["kibanaReact", "cloudChat", "esUiShared", "infra", "kibanaUtils", "usageCollection", "unifiedSearch"] -} diff --git a/x-pack/plugins/fleet/kibana.jsonc b/x-pack/plugins/fleet/kibana.jsonc new file mode 100644 index 00000000000000..bf9db5435be829 --- /dev/null +++ b/x-pack/plugins/fleet/kibana.jsonc @@ -0,0 +1,51 @@ +{ + "type": "plugin", + "id": "@kbn/fleet-plugin", + "owner": "@elastic/fleet", + "plugin": { + "id": "fleet", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "fleet" + ], + "requiredPlugins": [ + "licensing", + "data", + "encryptedSavedObjects", + "navigation", + "customIntegrations", + "share", + "spaces", + "security", + "unifiedSearch", + "savedObjectsTagging", + "taskManager", + "guidedOnboarding", + "files" + ], + "optionalPlugins": [ + "features", + "cloud", + "usageCollection", + "home", + "globalSearch", + "telemetry", + "discover", + "ingestPipelines" + ], + "requiredBundles": [ + "kibanaReact", + "cloudChat", + "esUiShared", + "infra", + "kibanaUtils", + "usageCollection", + "unifiedSearch" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/fleet/package.json b/x-pack/plugins/fleet/package.json index 9a1464fbc17092..d7687fbac90dc1 100644 --- a/x-pack/plugins/fleet/package.json +++ b/x-pack/plugins/fleet/package.json @@ -1,9 +1,9 @@ { "author": "Elastic", - "name": "fleet", - "version": "8.0.0", + "name": "@kbn/fleet-plugin", + "version": "1.0.0", "private": true, - "license": "Elastic-License", + "license": "Elastic License 2.0", "scripts": { "cypress": "../../../node_modules/.bin/cypress", "cypress:open": "yarn cypress open --config-file ./cypress.config.ts", @@ -11,6 +11,9 @@ "cypress:run": "yarn cypress:run:reporter --browser chrome --spec './cypress/e2e/**/*.cy.ts'; status=$?; yarn junit:merge && exit $status", "cypress:run-as-ci": "node ../../../scripts/functional_tests --config ../../test/fleet_cypress/cli_config.ts", "cypress:run:reporter": "yarn cypress run --config-file ./cypress.config.ts --reporter ../../../node_modules/cypress-multi-reporters --reporter-options configFile=./cypress/reporter_config.json", - "junit:merge": "../../../node_modules/.bin/mochawesome-merge ../../../target/kibana-fleet/cypress/results/mochawesome*.json > ../../../target/kibana-fleet/cypress/results/output.json && ../../../node_modules/.bin/marge ../../../target/kibana-fleet/cypress/results/output.json --reportDir ../../../target/kibana-fleet/cypress/results && mkdir -p ../../../target/junit && cp ../../../target/kibana-fleet/cypress/results/*.xml ../../../target/junit/" + "junit:merge": "../../../node_modules/.bin/mochawesome-merge ../../../target/kibana-fleet/cypress/results/mochawesome*.json > ../../../target/kibana-fleet/cypress/results/output.json && ../../../node_modules/.bin/marge ../../../target/kibana-fleet/cypress/results/output.json --reportDir ../../../target/kibana-fleet/cypress/results && mkdir -p ../../../target/junit && cp ../../../target/kibana-fleet/cypress/results/*.xml ../../../target/junit/", + "openapi:build": "npx @redocly/openapi-cli bundle --ext yaml --output ./common/openapi/bundled.yaml ./common/openapi/entrypoint.yaml && npx @redocly/openapi-cli bundle --ext json --output ./common/openapi/bundled.json ./common/openapi/entrypoint.yaml", + "openapi:lint": "npx @redocly/cli lint ./common/openapi/bundled.yaml", + "openapi:speccy": "npx speccy lint ./common/openapi/bundled.yaml" } } diff --git a/x-pack/plugins/fleet/public/applications/fleet/app.tsx b/x-pack/plugins/fleet/public/applications/fleet/app.tsx index 9afe8c10e18c3d..f62ae6100ce668 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/app.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/app.tsx @@ -15,6 +15,8 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; import styled from 'styled-components'; import useObservable from 'react-use/lib/useObservable'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import type { TopNavMenuData } from '@kbn/navigation-plugin/public'; @@ -62,6 +64,8 @@ import { DebugPage } from './sections/debug'; const FEEDBACK_URL = 'https://ela.st/fleet-feedback'; +const queryClient = new QueryClient(); + const ErrorLayout: FunctionComponent<{ isAddIntegrationsPath: boolean }> = ({ isAddIntegrationsPath, children, @@ -257,18 +261,21 @@ export const FleetAppContext: React.FC<{ - - - - - {children} - - - - + + + + + + + {children} + + + + + diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx index 3d1e28cc4f1d83..033359ff8f4140 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx @@ -20,6 +20,10 @@ import { EuiSuperSelect, EuiToolTip, EuiBadge, + EuiRadioGroup, + EuiText, + EuiFlexGroup, + EuiFlexItem, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; @@ -35,7 +39,7 @@ import { AgentPolicyPackageBadge } from '../../../../components'; import { AgentPolicyDeleteProvider } from '../agent_policy_delete_provider'; import type { ValidationResults } from '../agent_policy_validation'; -import { policyHasFleetServer } from '../../../../services'; +import { ExperimentalFeaturesService, policyHasFleetServer } from '../../../../services'; import { useOutputOptions, @@ -63,6 +67,7 @@ export const AgentPolicyAdvancedOptionsContent: React.FunctionComponent = isEditing = false, onDelete = () => {}, }) => { + const { agentFqdnMode: agentFqdnModeEnabled } = ExperimentalFeaturesService.get(); const { docLinks } = useStartServices(); const [touchedFields, setTouchedFields] = useState<{ [key: string]: boolean }>({}); const { @@ -517,6 +522,91 @@ export const AgentPolicyAdvancedOptionsContent: React.FunctionComponent = /> + {agentFqdnModeEnabled && ( + + +

    + } + description={ + + } + > + + + + + + + + + + + + + + + + + + + ), + }, + { + id: 'fqdn', + label: ( + + + + + + + + + + + + + + + ), + }, + ]} + idSelected={agentPolicy.agent_features?.length ? 'fqdn' : 'hostname'} + onChange={(id: string) => { + updateAgentPolicy({ + agent_features: id === 'hostname' ? [] : [{ name: 'fqdn', enabled: true }], + }); + }} + name="radio group" + /> + + + )} {isEditing && 'id' in agentPolicy && !agentPolicy.is_managed ? ( { @@ -42,10 +42,10 @@ jest.mock('../../../../hooks', () => { sendGetOneAgentPolicy: jest.fn().mockResolvedValue({ data: { item: { id: 'agent-policy-1', name: 'Agent policy 1', namespace: 'default' } }, }), + useGetPackageInfoByKeyQuery: jest.fn(), sendGetSettings: jest.fn().mockResolvedValue({ data: { item: {} }, }), - useGetPackageInfoByKey: jest.fn(), sendCreatePackagePolicy: jest .fn() .mockResolvedValue({ data: { item: { id: 'policy-1', inputs: [] } } }), @@ -186,7 +186,7 @@ describe('when on the package policy create page', () => { isLoading: false, }; - (useGetPackageInfoByKey as jest.Mock).mockReturnValue(mockPackageInfo); + (useGetPackageInfoByKeyQuery as jest.Mock).mockReturnValue(mockPackageInfo); }); describe('and Route state is provided via Fleet HashRouter', () => { @@ -355,7 +355,7 @@ describe('when on the package policy create page', () => { }); test('should create agent policy without sys monitoring when new hosts is selected for system integration', async () => { - (useGetPackageInfoByKey as jest.Mock).mockReturnValue({ + (useGetPackageInfoByKeyQuery as jest.Mock).mockReturnValue({ ...mockPackageInfo, data: { item: { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/index.tsx index 9a1c943763bd86..5ab6a7b0938d5e 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/index.tsx @@ -27,7 +27,7 @@ import { useCancelAddPackagePolicy } from '../hooks'; import { splitPkgKey } from '../../../../../../../common/services'; import { generateNewAgentPolicyWithDefaults } from '../../../../services'; import type { NewAgentPolicy } from '../../../../types'; -import { useConfig, sendGetAgentStatus, useGetPackageInfoByKey } from '../../../../hooks'; +import { useConfig, sendGetAgentStatus, useGetPackageInfoByKeyQuery } from '../../../../hooks'; import { Loading, Error as ErrorComponent, @@ -97,7 +97,7 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({ data: packageInfoData, error: packageInfoError, isLoading: isPackageInfoLoading, - } = useGetPackageInfoByKey(pkgName, pkgVersion, { full: true, prerelease }); + } = useGetPackageInfoByKeyQuery(pkgName, pkgVersion, { full: true, prerelease }); const packageInfo = useMemo(() => { if (packageInfoData && packageInfoData.item) { return packageInfoData.item; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/details_page/components/settings/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/details_page/components/settings/index.tsx index 131266279f706c..6080f8cd807102 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/details_page/components/settings/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/details_page/components/settings/index.tsx @@ -40,6 +40,21 @@ import { DevtoolsRequestFlyoutButton } from '../../../../../components'; import { ExperimentalFeaturesService } from '../../../../../services'; import { generateUpdateAgentPolicyDevToolsRequest } from '../../../services'; +const pickAgentPolicyKeysToSend = (agentPolicy: AgentPolicy) => + pick(agentPolicy, [ + 'name', + 'description', + 'namespace', + 'monitoring_enabled', + 'unenroll_timeout', + 'inactivity_timeout', + 'data_output_id', + 'monitoring_output_id', + 'download_source_id', + 'fleet_server_host_id', + 'agent_features', + ]); + const FormWrapper = styled.div` max-width: 800px; margin-right: auto; @@ -77,37 +92,10 @@ export const SettingsView = memo<{ agentPolicy: AgentPolicy }>( const submitUpdateAgentPolicy = async () => { setIsLoading(true); try { - const { - name, - description, - namespace, - // eslint-disable-next-line @typescript-eslint/naming-convention - monitoring_enabled, - // eslint-disable-next-line @typescript-eslint/naming-convention - unenroll_timeout, - // eslint-disable-next-line @typescript-eslint/naming-convention - inactivity_timeout, - // eslint-disable-next-line @typescript-eslint/naming-convention - data_output_id, - // eslint-disable-next-line @typescript-eslint/naming-convention - monitoring_output_id, - // eslint-disable-next-line @typescript-eslint/naming-convention - download_source_id, - // eslint-disable-next-line @typescript-eslint/naming-convention - fleet_server_host_id, - } = agentPolicy; - const { data, error } = await sendUpdateAgentPolicy(agentPolicy.id, { - name, - description, - namespace, - monitoring_enabled, - unenroll_timeout, - inactivity_timeout, - data_output_id, - monitoring_output_id, - download_source_id, - fleet_server_host_id, - }); + const { data, error } = await sendUpdateAgentPolicy( + agentPolicy.id, + pickAgentPolicyKeysToSend(agentPolicy) + ); if (data) { notifications.toasts.addSuccess( i18n.translate('xpack.fleet.editAgentPolicy.successNotificationTitle', { @@ -141,19 +129,7 @@ export const SettingsView = memo<{ agentPolicy: AgentPolicy }>( () => generateUpdateAgentPolicyDevToolsRequest( agentPolicy.id, - pick( - agentPolicy, - 'name', - 'description', - 'namespace', - 'monitoring_enabled', - 'unenroll_timeout', - 'inactivity_timeout', - 'data_output_id', - 'monitoring_output_id', - 'download_source_id', - 'fleet_server_host_id' - ) + pickAgentPolicyKeysToSend(agentPolicy) ), [agentPolicy] ); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/actions_menu.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/actions_menu.tsx index 76bcd21c0207cc..2a3d29226371c6 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/actions_menu.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/actions_menu.tsx @@ -9,6 +9,8 @@ import React, { memo, useState, useMemo } from 'react'; import { EuiPortal, EuiContextMenuItem } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; +import { isAgentRequestDiagnosticsSupported } from '../../../../../../../common/services'; + import type { Agent, AgentPolicy } from '../../../../types'; import { useAuthz, useKibanaVersion } from '../../../../hooks'; import { ContextMenuActions } from '../../../../components'; @@ -99,7 +101,7 @@ export const AgentDetailsActionMenu: React.FunctionComponent<{ menuItems.push( { setIsRequestDiagnosticsModalOpen(true); }} diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.test.tsx index 6e425b53522a66..dbff5ac4375bed 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.test.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.test.tsx @@ -9,12 +9,12 @@ import React from 'react'; import { createFleetTestRendererMock } from '../../../../../../mock'; import type { Agent, AgentPolicy } from '../../../../types'; -import { useGetPackageInfoByKey } from '../../../../../../hooks/use_request/epm'; +import { useGetPackageInfoByKeyQuery } from '../../../../../../hooks/use_request/epm'; import { AgentDashboardLink } from './agent_dashboard_link'; -const mockedUseGetPackageInfoByKey = useGetPackageInfoByKey as jest.MockedFunction< - typeof useGetPackageInfoByKey +const mockedUseGetPackageInfoByKeyQuery = useGetPackageInfoByKeyQuery as jest.MockedFunction< + typeof useGetPackageInfoByKeyQuery >; jest.mock('../../../../../../hooks/use_fleet_status', () => ({ @@ -27,14 +27,14 @@ jest.mock('../../../../../../hooks/use_request/epm'); describe('AgentDashboardLink', () => { it('should enable the button if elastic_agent package is installed and policy has monitoring enabled', async () => { - mockedUseGetPackageInfoByKey.mockReturnValue({ + mockedUseGetPackageInfoByKeyQuery.mockReturnValue({ isLoading: false, data: { item: { status: 'installed', }, }, - } as ReturnType); + } as ReturnType); const testRenderer = createFleetTestRendererMock(); const result = testRenderer.render( @@ -57,14 +57,14 @@ describe('AgentDashboardLink', () => { }); it('should not enable the button if elastic_agent package is not installed and policy has monitoring enabled', async () => { - mockedUseGetPackageInfoByKey.mockReturnValue({ + mockedUseGetPackageInfoByKeyQuery.mockReturnValue({ isLoading: false, data: { item: { status: 'not_installed', }, }, - } as ReturnType); + } as ReturnType); const testRenderer = createFleetTestRendererMock(); const result = testRenderer.render( @@ -88,14 +88,14 @@ describe('AgentDashboardLink', () => { }); it('should link to the agent policy settings tab if logs and metrics are not enabled for that policy', async () => { - mockedUseGetPackageInfoByKey.mockReturnValue({ + mockedUseGetPackageInfoByKeyQuery.mockReturnValue({ isLoading: false, data: { item: { status: 'installed', }, }, - } as ReturnType); + } as ReturnType); const testRenderer = createFleetTestRendererMock(); const result = testRenderer.render( diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.tsx index 93be90219cdc9f..cad402e602543d 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.tsx @@ -10,7 +10,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { EuiButton, EuiToolTip } from '@elastic/eui'; import styled from 'styled-components'; -import { useGetPackageInfoByKey, useKibanaLink, useLink } from '../../../../hooks'; +import { useGetPackageInfoByKeyQuery, useKibanaLink, useLink } from '../../../../hooks'; import type { Agent, AgentPolicy } from '../../../../types'; import { FLEET_ELASTIC_AGENT_PACKAGE, @@ -18,7 +18,7 @@ import { } from '../../../../../../../common/constants'; function useAgentDashboardLink(agent: Agent) { - const { isLoading, data } = useGetPackageInfoByKey(FLEET_ELASTIC_AGENT_PACKAGE); + const { isLoading, data } = useGetPackageInfoByKeyQuery(FLEET_ELASTIC_AGENT_PACKAGE); const isInstalled = data?.item.status === 'installed'; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_diagnostics/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_diagnostics/index.tsx index 2c38fdfba536bd..180a1b894ca13f 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_diagnostics/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_diagnostics/index.tsx @@ -25,6 +25,11 @@ import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; +import { + isAgentRequestDiagnosticsSupported, + MINIMUM_DIAGNOSTICS_AGENT_VERSION, +} from '../../../../../../../../common/services'; + import { sendGetAgentUploads, sendPostRequestDiagnostics, @@ -215,6 +220,20 @@ export const AgentDiagnosticsTab: React.FunctionComponent } } + const requestDiagnosticsButton = ( + + + + ); + return ( @@ -235,12 +254,21 @@ export const AgentDiagnosticsTab: React.FunctionComponent - - - + {isAgentRequestDiagnosticsSupported(agent) ? ( + requestDiagnosticsButton + ) : ( + + } + > + {requestDiagnosticsButton} + + )} {isLoading ? ( diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/agent_activity_flyout.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/agent_activity_flyout.test.tsx index 85ab31cfb93989..f143326e4c7b0f 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/agent_activity_flyout.test.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/agent_activity_flyout.test.tsx @@ -79,6 +79,7 @@ describe('AgentActivityFlyout', () => { expiration: '2099-09-16T10:00:00.000Z', creationTime: '2022-09-15T10:00:00.000Z', nbAgentsFailed: 0, + hasRolloutPeriod: true, }, ]; mockUseActionStatus.mockReturnValue({ @@ -107,6 +108,45 @@ describe('AgentActivityFlyout', () => { expect(mockAbortUpgrade).toHaveBeenCalled(); }); + it('should not render cancel button if the upgrade is set to happen immediately', () => { + const mockActionStatuses = [ + { + actionId: 'action2', + nbAgentsActionCreated: 5, + nbAgentsAck: 0, + version: '8.5.0', + startTime: '2022-09-15T10:00:00.000Z', + type: 'UPGRADE', + nbAgentsActioned: 5, + status: 'IN_PROGRESS', + expiration: '2099-09-16T10:00:00.000Z', + creationTime: '2022-09-15T10:00:00.000Z', + nbAgentsFailed: 0, + hasRolloutPeriod: false, + }, + ]; + mockUseActionStatus.mockReturnValue({ + currentActions: mockActionStatuses, + abortUpgrade: mockAbortUpgrade, + isFirstLoading: true, + }); + const result = renderComponent(); + + expect(result.getByText('Agent activity')).toBeInTheDocument(); + + expect( + result.container.querySelector('[data-test-subj="upgradeInProgressTitle"]')!.textContent + ).toEqual('Upgrading 5 agents to version 8.5.0'); + // compare without whitespace,   doesn't match + expect( + result.container + .querySelector('[data-test-subj="upgradeInProgressDescription"]')! + .textContent?.replace(/\s/g, '') + ).toContain('Started on Sep 15, 2022 10:00 AM. Learn more'.replace(/\s/g, '')); + + expect(result.queryByText('Cancel')).not.toBeInTheDocument(); + }); + it('should render agent activity for scheduled upgrade', () => { const mockActionStatuses = [ { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/agent_activity_flyout.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/agent_activity_flyout.tsx index e7095e7af5a4c9..b57e1aea8b39ea 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/agent_activity_flyout.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/agent_activity_flyout.tsx @@ -532,6 +532,10 @@ export const UpgradeInProgressActivityItem: React.FunctionComponent<{ return startDate > now; }, [action]); + const showCancelButton = useMemo(() => { + return isScheduled || action.hasRolloutPeriod; + }, [action, isScheduled]); + return ( @@ -592,17 +596,19 @@ export const UpgradeInProgressActivityItem: React.FunctionComponent<{ - - - + {showCancelButton ? ( + + + + ) : null}
    diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/bulk_actions.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/bulk_actions.tsx index cd00ba7f14bb0d..5b0129fe8c2d99 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/bulk_actions.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/bulk_actions.tsx @@ -183,7 +183,7 @@ export const AgentBulkActions: React.FunctionComponent = ({ }} /> ), - icon: , + icon: , disabled: !atLeastOneActiveAgentSelected, onClick: () => { closeMenu(); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/table_row_actions.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/table_row_actions.tsx index 6fdf4016d457f6..243eabadcf3b75 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/table_row_actions.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/table_row_actions.tsx @@ -9,6 +9,8 @@ import React, { useState } from 'react'; import { EuiContextMenuItem } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; +import { isAgentRequestDiagnosticsSupported } from '../../../../../../../common/services'; + import type { Agent, AgentPolicy } from '../../../../types'; import { useAuthz, useLink, useKibanaVersion } from '../../../../hooks'; import { ContextMenuActions } from '../../../../components'; @@ -114,7 +116,7 @@ export const TableRowActions: React.FunctionComponent<{ menuItems.push( { onRequestDiagnosticsClick(); }} diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_health.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_health.tsx index e8acd25e05f3fb..9674480ab8bfeb 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_health.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_health.tsx @@ -37,7 +37,7 @@ const Status = { ), Unenrolled: ( - + <>; /** @@ -79,28 +83,31 @@ export const IntegrationsAppContext: React.FC<{ - - - - - - - - - - {children} - - - - - - - - - + + + + + + + + + + + + {children} + + + + + + + + + + diff --git a/x-pack/plugins/fleet/public/applications/integrations/hooks/index.ts b/x-pack/plugins/fleet/public/applications/integrations/hooks/index.ts index 76b6b49c8c5cba..5b6b19af169f05 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/hooks/index.ts +++ b/x-pack/plugins/fleet/public/applications/integrations/hooks/index.ts @@ -14,5 +14,3 @@ export * from './use_agent_policy_context'; export * from './use_integrations_state'; export * from './use_confirm_force_install'; export * from './use_confirm_open_unverified'; -export * from './use_packages'; -export * from './use_categories'; diff --git a/x-pack/plugins/fleet/public/applications/integrations/hooks/use_categories.tsx b/x-pack/plugins/fleet/public/applications/integrations/hooks/use_categories.tsx deleted file mode 100644 index abc601a3ceeb2c..00000000000000 --- a/x-pack/plugins/fleet/public/applications/integrations/hooks/use_categories.tsx +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { useEffect, useCallback, useState } from 'react'; - -import type { RequestError } from '../../fleet/hooks'; -import { sendGetCategories } from '../../fleet/hooks'; -import type { GetCategoriesResponse } from '../types'; - -export function useCategories(prerelease?: boolean) { - const [data, setData] = useState(); - const [error, setError] = useState(); - const [isLoading, setIsLoading] = useState(true); - const [isPrereleaseEnabled, setIsPrereleaseEnabled] = useState(prerelease); - - const fetchData = useCallback(async () => { - if (prerelease === undefined) { - return; - } - if (isPrereleaseEnabled === prerelease) { - return; - } - setIsPrereleaseEnabled(prerelease); - setIsLoading(true); - try { - const res = await sendGetCategories({ - include_policy_templates: true, - prerelease, - }); - if (res.error) { - throw res.error; - } - if (res.data) { - setData(res.data); - } - } catch (err) { - setError(err); - } - setIsLoading(false); - }, [prerelease, isPrereleaseEnabled]); - - useEffect(() => { - fetchData(); - }, [fetchData]); - - return { - data, - error, - isLoading, - }; -} diff --git a/x-pack/plugins/fleet/public/applications/integrations/hooks/use_package_install.tsx b/x-pack/plugins/fleet/public/applications/integrations/hooks/use_package_install.tsx index 9afc51d96077f3..101de2a30cef5f 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/hooks/use_package_install.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/hooks/use_package_install.tsx @@ -5,7 +5,10 @@ * 2.0. */ +// TODO: Refactor this away from constate, which is unmaintained, as this is the only +// usage of it across the Fleet codebase import createContainer from 'constate'; + import React, { useCallback, useState } from 'react'; import { useHistory } from 'react-router-dom'; import { FormattedMessage } from '@kbn/i18n-react'; diff --git a/x-pack/plugins/fleet/public/applications/integrations/hooks/use_packages.tsx b/x-pack/plugins/fleet/public/applications/integrations/hooks/use_packages.tsx deleted file mode 100644 index c2dfa7e7406fa3..00000000000000 --- a/x-pack/plugins/fleet/public/applications/integrations/hooks/use_packages.tsx +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { useEffect, useCallback, useState } from 'react'; - -import type { RequestError } from '../../fleet/hooks'; -import { sendGetPackages } from '../../fleet/hooks'; -import type { GetPackagesResponse } from '../types'; - -export function usePackages(prerelease?: boolean) { - const [data, setData] = useState(); - const [error, setError] = useState(); - const [isLoading, setIsLoading] = useState(true); - const [isPrereleaseEnabled, setIsPrereleaseEnabled] = useState(prerelease); - - const fetchData = useCallback(async () => { - if (prerelease === undefined) { - return; - } - if (isPrereleaseEnabled === prerelease) { - return; - } - setIsPrereleaseEnabled(prerelease); - setIsLoading(true); - try { - const res = await sendGetPackages({ - category: '', - excludeInstallStatus: true, - prerelease, - }); - if (res.error) { - throw res.error; - } - if (res.data) { - setData(res.data); - } - } catch (err) { - setError(err); - } - setIsLoading(false); - }, [prerelease, isPrereleaseEnabled]); - - useEffect(() => { - fetchData(); - }, [fetchData]); - - return { - data, - error, - isLoading, - }; -} diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/index.ts b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/index.ts index 997d3b0b48a534..6b2d3e80d259fc 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/index.ts +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/index.ts @@ -5,4 +5,4 @@ * 2.0. */ -export { useIsFirstTimeAgentUser } from './use_is_first_time_agent_user'; +export { useIsFirstTimeAgentUserQuery } from './use_is_first_time_agent_user'; diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/use_is_first_time_agent_user.ts b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/use_is_first_time_agent_user.ts index 5eaf7334f2f7fa..7c7a6f6aa4ebf6 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/use_is_first_time_agent_user.ts +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/use_is_first_time_agent_user.ts @@ -5,50 +5,46 @@ * 2.0. */ -import { useEffect, useState } from 'react'; - -import { sendGetAgentPolicies, sendGetAgents } from '../../../../../hooks'; +import { useGetAgentPoliciesQuery, useGetAgentsQuery } from '../../../../../hooks'; import { policyHasFleetServer } from '../../../../../services'; interface UseIsFirstTimeAgentUserResponse { - isLoading: boolean; isFirstTimeAgentUser?: boolean; + isLoading?: boolean; } -export const useIsFirstTimeAgentUser = (): UseIsFirstTimeAgentUserResponse => { - const [result, setResult] = useState({ isLoading: true }); - useEffect(() => { - if (!result.isLoading) { - return; - } - - const getIsFirstTimeAgentUser = async () => { - const { data: agentPoliciesData } = await sendGetAgentPolicies({ - full: true, - }); - - // now get all agents that are NOT part of a fleet server policy - const serverPolicyIdsQuery = (agentPoliciesData?.items || []) - .filter((item) => policyHasFleetServer(item)) - .map((p) => `policy_id:${p.id}`) - .join(' or '); - - // get agents that are not unenrolled and not fleet server - const kuery = - `not (_exists_:"unenrolled_at")` + - (serverPolicyIdsQuery.length ? ` and not (${serverPolicyIdsQuery})` : ''); - - const { data: agentStatusData } = await sendGetAgents({ - page: 1, - perPage: 1, // we only need to know if there is at least one non-fleet agent - showInactive: true, - kuery, - }); - setResult({ isLoading: false, isFirstTimeAgentUser: agentStatusData?.total === 0 }); - }; - - getIsFirstTimeAgentUser(); - }, [result]); - - return result; +export const useIsFirstTimeAgentUserQuery = (): UseIsFirstTimeAgentUserResponse => { + const { + data: agentPolicies, + isLoading: areAgentPoliciesLoading, + isFetched: areAgentsFetched, + } = useGetAgentPoliciesQuery({ + full: true, + }); + + // now get all agents that are NOT part of a fleet server policy + const serverPolicyIdsQuery = (agentPolicies?.items || []) + .filter((item) => policyHasFleetServer(item)) + .map((p) => `policy_id:${p.id}`) + .join(' or '); + + // get agents that are not unenrolled and not fleet server + const kuery = + `not (_exists_:"unenrolled_at")` + + (serverPolicyIdsQuery.length ? ` and not (${serverPolicyIdsQuery})` : ''); + + const { data: agents, isLoading: areAgentsLoading } = useGetAgentsQuery( + { + page: 1, + perPage: 1, // we only need to know if there is at least one non-fleet agent + showInactive: true, + kuery, + }, + { enabled: areAgentsFetched } // don't run the query until agent policies are loaded + ); + + return { + isLoading: areAgentPoliciesLoading || areAgentsLoading, + isFirstTimeAgentUser: agents?.data?.total === 0, + }; }; diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx index dafe901121c548..63314d6fc936f7 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx @@ -39,14 +39,14 @@ import { useBreadcrumbs, useStartServices, useAuthz, - usePermissionCheck, + usePermissionCheckQuery, useIntegrationsStateContext, - useGetSettings, + useGetSettingsQuery, } from '../../../../hooks'; import { INTEGRATIONS_ROUTING_PATHS } from '../../../../constants'; import { ExperimentalFeaturesService } from '../../../../services'; import { - useGetPackageInfoByKey, + useGetPackageInfoByKeyQuery, useLink, useAgentPolicyContext, useIsGuidedOnboardingActive, @@ -63,7 +63,7 @@ import { import type { WithHeaderLayoutProps } from '../../../../layouts'; import { WithHeaderLayout } from '../../../../layouts'; -import { useIsFirstTimeAgentUser } from './hooks'; +import { useIsFirstTimeAgentUserQuery } from './hooks'; import { getInstallPkgRouteOptions } from './utils'; import { IntegrationAgentPolicyCount, @@ -114,17 +114,24 @@ export function Detail() { const { getFromIntegrations } = useIntegrationsStateContext(); const { pkgkey, panel } = useParams(); const { getHref, getPath } = useLink(); - const canInstallPackages = useAuthz().integrations.installPackages; - const canReadPackageSettings = useAuthz().integrations.readPackageSettings; - const canReadIntegrationPolicies = useAuthz().integrations.readIntegrationPolicies; - const permissionCheck = usePermissionCheck(); - const missingSecurityConfiguration = - !permissionCheck.data?.success && permissionCheck.data?.error === 'MISSING_SECURITY'; - const userCanInstallPackages = canInstallPackages && permissionCheck.data?.success; const history = useHistory(); const { pathname, search, hash } = useLocation(); const queryParams = useMemo(() => new URLSearchParams(search), [search]); const integration = useMemo(() => queryParams.get('integration'), [queryParams]); + + const canInstallPackages = useAuthz().integrations.installPackages; + const canReadPackageSettings = useAuthz().integrations.readPackageSettings; + const canReadIntegrationPolicies = useAuthz().integrations.readIntegrationPolicies; + + const { + data: permissionCheck, + error: permissionCheckError, + isLoading: isPermissionCheckLoading, + } = usePermissionCheckQuery(); + const missingSecurityConfiguration = + !permissionCheck?.success && permissionCheckError === 'MISSING_SECURITY'; + const userCanInstallPackages = canInstallPackages && permissionCheck?.success; + const services = useStartServices(); const isCloud = !!services?.cloud?.cloudId; const { createPackagePolicyMultiPageLayout: isExperimentalAddIntegrationPageEnabled } = @@ -163,7 +170,7 @@ export function Detail() { boolean | undefined >(); - const { data: settings } = useGetSettings(); + const { data: settings } = useGetSettingsQuery(); useEffect(() => { const isEnabled = Boolean(settings?.item.prerelease_integrations_enabled); @@ -176,9 +183,8 @@ export function Detail() { data: packageInfoData, error: packageInfoError, isLoading: packageInfoLoading, - isInitialRequest: packageIsInitialRequest, - resendRequest: refreshPackageInfo, - } = useGetPackageInfoByKey(pkgName, pkgVersion, { + refetch: refetchPackageInfo, + } = useGetPackageInfoByKeyQuery(pkgName, pkgVersion, { prerelease: prereleaseIntegrationsEnabled, }); @@ -186,7 +192,7 @@ export function Detail() { const [latestPrereleaseVersion, setLatestPrereleaseVersion] = useState(); // fetch latest GA version (prerelease=false) - const { data: packageInfoLatestGAData } = useGetPackageInfoByKey(pkgName, '', { + const { data: packageInfoLatestGAData } = useGetPackageInfoByKeyQuery(pkgName, '', { prerelease: false, }); @@ -199,7 +205,7 @@ export function Detail() { }, [packageInfoLatestGAData?.item]); // fetch latest Prerelease version (prerelease=true) - const { data: packageInfoLatestPrereleaseData } = useGetPackageInfoByKey(pkgName, '', { + const { data: packageInfoLatestPrereleaseData } = useGetPackageInfoByKeyQuery(pkgName, '', { prerelease: true, }); @@ -208,7 +214,7 @@ export function Detail() { }, [packageInfoLatestPrereleaseData?.item.version]); const { isFirstTimeAgentUser = false, isLoading: firstTimeUserLoading } = - useIsFirstTimeAgentUser(); + useIsFirstTimeAgentUserQuery(); const isGuidedOnboardingActive = useIsGuidedOnboardingActive(pkgName); // Refresh package info when status change @@ -220,17 +226,14 @@ export function Detail() { } if (oldPackageInstallStatus === 'not_installed' && packageInstallStatus === 'installed') { setOldPackageStatus(packageInstallStatus); - refreshPackageInfo(); + refetchPackageInfo(); } - }, [packageInstallStatus, oldPackageInstallStatus, refreshPackageInfo]); + }, [packageInstallStatus, oldPackageInstallStatus, refetchPackageInfo]); - const isLoading = - (packageInfoLoading && !packageIsInitialRequest) || - permissionCheck.isLoading || - firstTimeUserLoading; + const isLoading = packageInfoLoading || isPermissionCheckLoading || firstTimeUserLoading; const showCustomTab = - useUIExtension(packageInfoData?.item.name ?? '', 'package-detail-custom') !== undefined; + useUIExtension(packageInfoData?.item?.name ?? '', 'package-detail-custom') !== undefined; // Track install status state useEffect(() => { @@ -698,7 +701,7 @@ export function Detail() { defaultMessage="Error loading integration details" /> } - error={packageInfoError} + error={packageInfoError.message} /> ) : isLoading || !packageInfo ? ( diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/details.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/details.tsx index 729975e8e8e37e..94a2a223b122a6 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/details.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/details.tsx @@ -29,7 +29,7 @@ import type { KibanaAssetType, } from '../../../../../types'; import { entries } from '../../../../../types'; -import { useGetCategories } from '../../../../../hooks'; +import { useGetCategoriesQuery } from '../../../../../hooks'; import { AssetTitleMap, DisplayedAssets, ServiceTitleMap } from '../../../constants'; import { NoticeModal } from './notice_modal'; @@ -59,10 +59,10 @@ const Replacements = euiStyled(EuiFlexItem)` `; export const Details: React.FC = memo(({ packageInfo }) => { - const { data: categoriesData, isLoading: isLoadingCategories } = useGetCategories(); + const { data: categoriesData, isLoading: isLoadingCategories } = useGetCategoriesQuery(); const packageCategories: string[] = useMemo(() => { - if (!isLoadingCategories && categoriesData && categoriesData.response) { - return categoriesData.response + if (!isLoadingCategories && categoriesData?.items) { + return categoriesData.items .filter((category) => packageInfo.categories?.includes(category.id as PackageSpecCategory)) .map((category) => category.title); } diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/license_modal.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/license_modal.tsx index 51aa501b71b425..9ae4bace737a11 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/license_modal.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/license_modal.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { useEffect, useState } from 'react'; +import React from 'react'; import { EuiCodeBlock, EuiLoadingContent, @@ -19,7 +19,7 @@ import { import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; -import { sendGetFileByPath, useStartServices } from '../../../../../hooks'; +import { useGetFileByPathQuery, useStartServices } from '../../../../../hooks'; interface Props { licenseName?: string; @@ -33,23 +33,17 @@ export const LicenseModal: React.FunctionComponent = ({ onClose, }) => { const { notifications } = useStartServices(); - const [licenseText, setLicenseText] = useState(undefined); - useEffect(() => { - async function fetchData() { - try { - const { data } = await sendGetFileByPath(licensePath); - setLicenseText(data || ''); - } catch (err) { - notifications.toasts.addError(err, { - title: i18n.translate('xpack.fleet.epm.errorLoadingLicense', { - defaultMessage: 'Error loading license information', - }), - }); - } - } - fetchData(); - }, [licensePath, notifications]); + const { data: licenseText, error: licenseError } = useGetFileByPathQuery(licensePath); + + if (licenseError) { + notifications.toasts.addError(licenseError, { + title: i18n.translate('xpack.fleet.epm.errorLoadingLicense', { + defaultMessage: 'Error loading license information', + }), + }); + } + return ( diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/policies/package_policies.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/policies/package_policies.tsx index 3399f98515f57b..647bb3715dcb07 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/policies/package_policies.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/policies/package_policies.tsx @@ -99,6 +99,7 @@ export const PackagePoliciesPage = ({ name, version }: PackagePoliciesPanelProps const getPackageInstallStatus = useGetPackageInstallStatus(); const packageInstallStatus = getPackageInstallStatus(name); const { pagination, pageSizeOptions, setPagination } = useUrlPagination(); + const { data, isLoading, diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/reinstall_button.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/reinstall_button.tsx index c14e4eeb2edf6a..5a63208d55e9c5 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/reinstall_button.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/reinstall_button.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import { EuiButton } from '@elastic/eui'; +import { EuiButton, EuiToolTip } from '@elastic/eui'; import React, { Fragment, useCallback } from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -13,41 +13,66 @@ import type { PackageInfo } from '../../../../../types'; import { InstallStatus } from '../../../../../types'; import { useAuthz, useGetPackageInstallStatus, useInstallPackage } from '../../../../../hooks'; -type ReinstallationButtonProps = Pick; +type ReinstallationButtonProps = Pick & { + installSource: string; +}; export function ReinstallButton(props: ReinstallationButtonProps) { - const { name, title, version } = props; + const { name, title, version, installSource } = props; const canInstallPackages = useAuthz().integrations.installPackages; const installPackage = useInstallPackage(); const getPackageInstallStatus = useGetPackageInstallStatus(); const { status: installationStatus } = getPackageInstallStatus(name); const isReinstalling = installationStatus === InstallStatus.reinstalling; + const isUploadedPackage = installSource === 'upload'; const handleClickReinstall = useCallback(() => { installPackage({ name, version, title, isReinstall: true }); }, [installPackage, name, title, version]); + const reinstallButton = ( + + {isReinstalling ? ( + + ) : ( + + )} + + ); + return canInstallPackages ? ( - - {isReinstalling ? ( - - ) : ( - - )} - + {isUploadedPackage ? ( + + } + > + {reinstallButton} + + ) : ( + reinstallButton + )} ) : null; } diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx index b990f6994430a1..966b0419285ec8 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; +import React, { memo, useCallback, useMemo, useState } from 'react'; import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n-react'; import semverLt from 'semver/functions/lt'; @@ -25,15 +25,15 @@ import { i18n } from '@kbn/i18n'; import type { Observable } from 'rxjs'; import type { CoreTheme } from '@kbn/core/public'; -import type { PackageInfo, UpgradePackagePolicyDryRunResponse } from '../../../../../types'; +import type { PackageInfo } from '../../../../../types'; import { InstallStatus } from '../../../../../types'; import { - useGetPackagePolicies, + useGetPackagePoliciesQuery, useGetPackageInstallStatus, useLink, - sendUpgradePackagePolicyDryRun, - sendUpdatePackage, useStartServices, + useUpgradePackagePolicyDryRunQuery, + useUpdatePackageMutation, } from '../../../../../hooks'; import { PACKAGE_POLICY_SAVED_OBJECT_TYPE, @@ -100,15 +100,30 @@ interface Props { export const SettingsPage: React.FC = memo(({ packageInfo, theme$ }: Props) => { const { name, title, latestVersion, version, keepPoliciesUpToDate } = packageInfo; - const [dryRunData, setDryRunData] = useState(); const [isUpgradingPackagePolicies, setIsUpgradingPackagePolicies] = useState(false); const getPackageInstallStatus = useGetPackageInstallStatus(); - const { data: packagePoliciesData } = useGetPackagePolicies({ + + const { data: packagePoliciesData } = useGetPackagePoliciesQuery({ perPage: SO_SEARCH_LIMIT, page: 1, kuery: `${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name:${name}`, }); + const packagePolicyIds = useMemo( + () => packagePoliciesData?.items.map(({ id }) => id), + [packagePoliciesData] + ); + + const { data: dryRunData } = useUpgradePackagePolicyDryRunQuery( + packagePolicyIds ?? [], + latestVersion, + { + enabled: packagePolicyIds && packagePolicyIds.length > 0, + } + ); + + const updatePackageMutation = useUpdatePackageMutation(); + const { notifications } = useStartServices(); const shouldShowKeepPoliciesUpToDateSwitch = useMemo(() => { @@ -124,72 +139,60 @@ export const SettingsPage: React.FC = memo(({ packageInfo, theme$ }: Prop ); const handleKeepPoliciesUpToDateSwitchChange = useCallback(() => { - const saveKeepPoliciesUpToDate = async () => { - try { - setKeepPoliciesUpToDateSwitchValue((prev) => !prev); + setKeepPoliciesUpToDateSwitchValue((prev) => !prev); - await sendUpdatePackage(packageInfo.name, packageInfo.version, { + updatePackageMutation.mutate( + { + pkgName: packageInfo.name, + pkgVersion: packageInfo.version, + body: { keepPoliciesUpToDate: !keepPoliciesUpToDateSwitchValue, - }); - - notifications.toasts.addSuccess({ - title: i18n.translate('xpack.fleet.integrations.integrationSaved', { - defaultMessage: 'Integration settings saved', - }), - text: !keepPoliciesUpToDateSwitchValue - ? i18n.translate('xpack.fleet.integrations.keepPoliciesUpToDateEnabledSuccess', { - defaultMessage: - 'Fleet will automatically keep integration policies up to date for {title}', - values: { title }, - }) - : i18n.translate('xpack.fleet.integrations.keepPoliciesUpToDateDisabledSuccess', { - defaultMessage: - 'Fleet will not automatically keep integration policies up to date for {title}', - values: { title }, - }), - }); - } catch (error) { - notifications.toasts.addError(error, { - title: i18n.translate('xpack.fleet.integrations.integrationSavedError', { - defaultMessage: 'Error saving integration settings', - }), - toastMessage: i18n.translate('xpack.fleet.integrations.keepPoliciesUpToDateError', { - defaultMessage: 'Error saving integration settings for {title}', - values: { title }, - }), - }); + }, + }, + { + onSuccess: () => { + notifications.toasts.addSuccess({ + title: i18n.translate('xpack.fleet.integrations.integrationSaved', { + defaultMessage: 'Integration settings saved', + }), + text: !keepPoliciesUpToDateSwitchValue + ? i18n.translate('xpack.fleet.integrations.keepPoliciesUpToDateEnabledSuccess', { + defaultMessage: + 'Fleet will automatically keep integration policies up to date for {title}', + values: { title }, + }) + : i18n.translate('xpack.fleet.integrations.keepPoliciesUpToDateDisabledSuccess', { + defaultMessage: + 'Fleet will not automatically keep integration policies up to date for {title}', + values: { title }, + }), + }); + }, + onError: (error) => { + notifications.toasts.addError(error, { + title: i18n.translate('xpack.fleet.integrations.integrationSavedError', { + defaultMessage: 'Error saving integration settings', + }), + toastMessage: i18n.translate('xpack.fleet.integrations.keepPoliciesUpToDateError', { + defaultMessage: 'Error saving integration settings for {title}', + values: { title }, + }), + }); + }, } - }; - - saveKeepPoliciesUpToDate(); + ); }, [ keepPoliciesUpToDateSwitchValue, notifications.toasts, packageInfo.name, packageInfo.version, title, + updatePackageMutation, ]); const { status: installationStatus, version: installedVersion } = getPackageInstallStatus(name); const packageHasUsages = !!packagePoliciesData?.total; - const packagePolicyIds = useMemo( - () => packagePoliciesData?.items.map(({ id }) => id), - [packagePoliciesData] - ); - - useEffect(() => { - const fetchDryRunData = async () => { - if (packagePolicyIds && packagePolicyIds.length) { - const { data } = await sendUpgradePackagePolicyDryRun(packagePolicyIds, latestVersion); - - setDryRunData(data); - } - }; - - fetchDryRunData(); - }, [latestVersion, packagePolicyIds]); - const updateAvailable = installedVersion && semverLt(installedVersion, latestVersion) ? true : false; @@ -407,7 +410,14 @@ export const SettingsPage: React.FC = memo(({ packageInfo, theme$ }: Prop
    - +
    diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/update_button.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/update_button.tsx index 526c50aca1b96d..800e77d6873780 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/update_button.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/update_button.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import { useHistory } from 'react-router-dom'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -24,7 +24,6 @@ import type { CoreTheme } from '@kbn/core/public'; import { toMountPoint } from '@kbn/kibana-react-plugin/public'; import type { - GetAgentPoliciesResponse, PackageInfo, UpgradePackagePolicyDryRunResponse, PackagePolicy, @@ -32,13 +31,13 @@ import type { import { InstallStatus } from '../../../../../types'; import { AGENT_POLICY_SAVED_OBJECT_TYPE, SO_SEARCH_LIMIT } from '../../../../../constants'; import { - sendGetAgentPolicies, useInstallPackage, useGetPackageInstallStatus, - sendUpgradePackagePolicy, useStartServices, useAuthz, useLink, + useUpgradePackagePoliciesMutation, + useGetAgentPoliciesQuery, } from '../../../../../hooks'; interface UpdateButtonProps extends Pick { @@ -92,26 +91,17 @@ export const UpdateButton: React.FunctionComponent = ({ const [isUpdateModalVisible, setIsUpdateModalVisible] = useState(false); const [upgradePackagePolicies, setUpgradePackagePolicies] = useState(true); - const [agentPolicyData, setAgentPolicyData] = useState(); - - useEffect(() => { - const fetchAgentPolicyData = async () => { - if (packagePolicyIds && packagePolicyIds.length > 0) { - const { data } = await sendGetAgentPolicies({ - perPage: SO_SEARCH_LIMIT, - page: 1, - // Fetch all agent policies that include one of the eligible package policies - kuery: `${AGENT_POLICY_SAVED_OBJECT_TYPE}.package_policies:${packagePolicyIds - .map((id) => `"${id}"`) - .join(' or ')}`, - }); - - setAgentPolicyData(data); - } - }; - fetchAgentPolicyData(); - }, [packagePolicyIds]); + const { data: agentPolicyData } = useGetAgentPoliciesQuery({ + perPage: SO_SEARCH_LIMIT, + page: 1, + // Fetch all agent policies that include one of the eligible package policies + kuery: packagePolicyIds.length + ? `${AGENT_POLICY_SAVED_OBJECT_TYPE}.package_policies:${packagePolicyIds + .map((id) => `"${id}"`) + .join(' or ')}` + : '', + }); const packagePolicyCount = useMemo(() => packagePolicyIds.length, [packagePolicyIds]); @@ -164,6 +154,8 @@ export const UpdateButton: React.FunctionComponent = ({ await installPackage({ name, version, title, fromUpdate: true }); }, [installPackage, name, title, version]); + const upgradePackagePoliciesMutation = useUpgradePackagePoliciesMutation(); + const handleClickUpgradePolicies = useCallback(async () => { if (isUpgradingPackagePolicies) { return; @@ -174,47 +166,51 @@ export const UpdateButton: React.FunctionComponent = ({ await installPackage({ name, version, title }); - await sendUpgradePackagePolicy( - // Only upgrade policies that don't have conflicts - packagePolicyIds.filter( - (id) => !dryRunData?.find((dryRunRecord) => dryRunRecord.diff?.[0].id === id)?.hasErrors - ) - ); - - setIsUpgradingPackagePolicies(false); - - notifications.toasts.addSuccess({ - title: toMountPoint( - , - { theme$ } - ), - text: toMountPoint( - , - { theme$ } - ), - }); + upgradePackagePoliciesMutation.mutate( + { + // Only upgrade policies that don't have conflicts + packagePolicyIds: packagePolicyIds.filter( + (id) => !dryRunData?.find((dryRunRecord) => dryRunRecord.diff?.[0].id === id)?.hasErrors + ), + }, + { + onSuccess: () => { + notifications.toasts.addSuccess({ + title: toMountPoint( + , + { theme$ } + ), + text: toMountPoint( + , + { theme$ } + ), + }); - navigateToNewSettingsPage(); + navigateToNewSettingsPage(); + }, + } + ); }, [ - dryRunData, - installPackage, isUpgradingPackagePolicies, - name, - navigateToNewSettingsPage, - notifications.toasts, - packagePolicyIds, setIsUpgradingPackagePolicies, - title, + installPackage, + name, version, + title, + upgradePackagePoliciesMutation, + packagePolicyIds, + dryRunData, + notifications.toasts, theme$, + navigateToNewSettingsPage, ]); const updateModal = ( diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/home/hooks/use_available_packages.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/home/hooks/use_available_packages.tsx index b8d54b45759de6..f11d82a9e20c3c 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/home/hooks/use_available_packages.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/home/hooks/use_available_packages.tsx @@ -11,7 +11,7 @@ import { uniq, xorBy } from 'lodash'; import type { CustomIntegration } from '@kbn/custom-integrations-plugin/common'; import type { IntegrationPreferenceType } from '../../../components/integration_preference'; -import { usePackages, useCategories } from '../../../../../hooks'; +import { useGetPackagesQuery, useGetCategoriesQuery } from '../../../../../hooks'; import { useGetAppendCustomIntegrations, useGetReplacementCustomIntegrations, @@ -130,7 +130,7 @@ export const useAvailablePackages = () => { data: eprPackages, isLoading: isLoadingAllPackages, error: eprPackageLoadingError, - } = usePackages(prereleaseIntegrationsEnabled); + } = useGetPackagesQuery({ prerelease: prereleaseIntegrationsEnabled }); // Remove Kubernetes package granularity if (eprPackages?.items) { @@ -185,7 +185,7 @@ export const useAvailablePackages = () => { data: eprCategoriesRes, isLoading: isLoadingCategories, error: eprCategoryLoadingError, - } = useCategories(prereleaseIntegrationsEnabled); + } = useGetCategoriesQuery({ prerelease: prereleaseIntegrationsEnabled }); const eprCategories = useMemo(() => eprCategoriesRes?.items || [], [eprCategoriesRes]); // Subcategories diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/home/index.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/home/index.tsx index d69fe175f09611..bbe61f29102102 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/home/index.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/home/index.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { useMemo, useState } from 'react'; +import React, { useState } from 'react'; import { Switch, Route } from 'react-router-dom'; import type { CustomIntegration } from '@kbn/custom-integrations-plugin/common'; @@ -26,7 +26,7 @@ import type { IntegrationCardReleaseLabel, } from '../../../../../../../common/types/models'; -import { useGetPackages } from '../../../../hooks'; +import { useGetPackagesQuery } from '../../../../hooks'; import type { CategoryFacet, ExtendedIntegrationCategory } from './category_facets'; @@ -115,14 +115,12 @@ export const EPMHomePage: React.FC = () => { const [prereleaseEnabled, setPrereleaseEnabled] = useState(false); // loading packages to find installed ones - const { data: allPackages, isLoading } = useGetPackages({ + const { data: allPackages, isLoading } = useGetPackagesQuery({ prerelease: prereleaseEnabled, }); - const installedPackages = useMemo( - () => - (allPackages?.response || []).filter((pkg) => pkg.status === installationStatuses.Installed), - [allPackages?.response] + const installedPackages = (allPackages?.items || []).filter( + (pkg) => pkg.status === installationStatuses.Installed ); const unverifiedPackageCount = installedPackages.filter( diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/policy/index.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/policy/index.tsx index e78a2954a86d68..8eeb8622a56a70 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/policy/index.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/policy/index.tsx @@ -10,17 +10,17 @@ import { useRouteMatch } from 'react-router-dom'; // TODO: Needs to be moved import { EditPackagePolicyForm } from '../../../../../fleet/sections/agent_policy/edit_package_policy_page'; -import { useGetOnePackagePolicy, useUIExtension } from '../../../../hooks'; +import { useGetOnePackagePolicyQuery, useUIExtension } from '../../../../hooks'; export const Policy = memo(() => { const { params: { packagePolicyId }, } = useRouteMatch<{ packagePolicyId: string }>(); - const packagePolicy = useGetOnePackagePolicy(packagePolicyId); + const { data: packagePolicyData } = useGetOnePackagePolicyQuery(packagePolicyId); const extensionView = useUIExtension( - packagePolicy.data?.item?.package?.name ?? '', + packagePolicyData?.item?.package?.name ?? '', 'package-policy-edit' ); diff --git a/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx b/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx index 29fa37f3b72704..95067a3158d253 100644 --- a/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx +++ b/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx @@ -44,6 +44,7 @@ export const FleetStatusProvider: React.FC = ({ children }) => { isReady: false, }); + // TODO: Refactor to use react-query const sendGetStatus = useCallback( async function sendGetStatus() { try { diff --git a/x-pack/plugins/fleet/public/hooks/use_package_installations.tsx b/x-pack/plugins/fleet/public/hooks/use_package_installations.tsx new file mode 100644 index 00000000000000..f41bb9660f7581 --- /dev/null +++ b/x-pack/plugins/fleet/public/hooks/use_package_installations.tsx @@ -0,0 +1,95 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useMemo } from 'react'; +import semverLt from 'semver/functions/lt'; + +import { installationStatuses } from '../../common/constants'; +import type { PackagePolicy } from '../types'; + +import { useGetPackagesQuery } from './use_request/epm'; +import { useGetAgentPoliciesQuery } from './use_request/agent_policy'; + +interface UpdatableIntegration { + currentVersion: string; + policiesToUpgrade: Array<{ + id: string; + name: string; + agentsCount: number; + pkgPolicyId: string; + pkgPolicyName: string; + pkgPolicyIntegrationVersion: string; + }>; +} + +export const usePackageInstallationsQuery = () => { + const { data: allPackages, isLoading: isLoadingPackages } = useGetPackagesQuery({ + prerelease: true, + }); + + const { data: agentPolicyData, isLoading: isLoadingPolicies } = useGetAgentPoliciesQuery({ + full: true, + }); + + const allInstalledPackages = useMemo( + () => (allPackages?.items || []).filter((pkg) => pkg.status === installationStatuses.Installed), + [allPackages?.items] + ); + + const updatablePackages = useMemo( + () => + allInstalledPackages.filter( + (item) => + 'savedObject' in item && semverLt(item.savedObject.attributes.version, item.version) + ), + [allInstalledPackages] + ); + + const updatableIntegrations = useMemo>( + () => + (agentPolicyData?.items || []).reduce((result, policy) => { + policy.package_policies?.forEach((pkgPolicy: PackagePolicy) => { + if (!pkgPolicy.package) return false; + const { name, version } = pkgPolicy.package; + const installedPackage = allInstalledPackages.find( + (installedPkg) => + 'savedObject' in installedPkg && installedPkg.savedObject.attributes.name === name + ); + if ( + installedPackage && + 'savedObject' in installedPackage && + semverLt(version, installedPackage.savedObject.attributes.version) + ) { + const packageData = result.get(name) ?? { + currentVersion: installedPackage.savedObject.attributes.version, + policiesToUpgrade: [], + }; + packageData.policiesToUpgrade.push({ + id: policy.id, + name: policy.name, + agentsCount: policy.agents ?? 0, + pkgPolicyId: pkgPolicy.id, + pkgPolicyName: pkgPolicy.name, + pkgPolicyIntegrationVersion: version, + }); + result.set(name, packageData); + } + }); + return result; + }, new Map()), + [allInstalledPackages, agentPolicyData] + ); + + return { + allPackages, + allInstalledPackages, + updatablePackages, + updatableIntegrations, + isLoadingPackages, + isLoadingPolicies, + }; +}; diff --git a/x-pack/plugins/fleet/public/hooks/use_request/agent_policy.ts b/x-pack/plugins/fleet/public/hooks/use_request/agent_policy.ts index 248fb60f5bf700..39372fcc5c508a 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/agent_policy.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/agent_policy.ts @@ -4,6 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { useQuery } from '@tanstack/react-query'; import { agentPolicyRouteService } from '../../services'; @@ -22,8 +23,8 @@ import type { DeleteAgentPolicyResponse, } from '../../types'; -import { useRequest, sendRequest, useConditionalRequest } from './use_request'; -import type { SendConditionalRequestConfig } from './use_request'; +import { useRequest, sendRequest, useConditionalRequest, sendRequestForRq } from './use_request'; +import type { SendConditionalRequestConfig, RequestError } from './use_request'; export const useGetAgentPolicies = (query?: GetAgentPoliciesRequest['query']) => { return useRequest({ @@ -33,6 +34,16 @@ export const useGetAgentPolicies = (query?: GetAgentPoliciesRequest['query']) => }); }; +export const useGetAgentPoliciesQuery = (query?: GetAgentPoliciesRequest['query']) => { + return useQuery(['agentPolicies', query], () => + sendRequestForRq({ + path: agentPolicyRouteService.getListPath(), + method: 'get', + query, + }) + ); +}; + export const sendGetAgentPolicies = (query?: GetAgentPoliciesRequest['query']) => { return sendRequest({ path: agentPolicyRouteService.getListPath(), diff --git a/x-pack/plugins/fleet/public/hooks/use_request/agents.ts b/x-pack/plugins/fleet/public/hooks/use_request/agents.ts index 41e82bdf690157..ca53345bb5799a 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/agents.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/agents.ts @@ -4,6 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { useQuery } from '@tanstack/react-query'; import type { GetActionStatusResponse, @@ -72,6 +73,13 @@ export function useGetAgents(query: GetAgentsRequest['query'], options?: Request }); } +export function useGetAgentsQuery( + query: GetAgentsRequest['query'], + options: Partial<{ enabled: boolean }> = {} +) { + return useQuery(['agents', query], () => sendGetAgents(query), { enabled: options.enabled }); +} + export function sendGetAgents(query: GetAgentsRequest['query'], options?: RequestOptions) { return sendRequest({ method: 'get', diff --git a/x-pack/plugins/fleet/public/hooks/use_request/app.ts b/x-pack/plugins/fleet/public/hooks/use_request/app.ts index 25c7a9cf1f046d..5236356180d837 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/app.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/app.ts @@ -5,10 +5,12 @@ * 2.0. */ +import { useQuery } from '@tanstack/react-query'; + import { appRoutesService } from '../../services'; import type { CheckPermissionsResponse, GenerateServiceTokenResponse } from '../../types'; -import { sendRequest, useRequest } from './use_request'; +import { sendRequest, sendRequestForRq, useRequest } from './use_request'; export const sendGetPermissionsCheck = (fleetServerSetup?: boolean) => { return sendRequest({ @@ -25,6 +27,17 @@ export const sendGenerateServiceToken = () => { }); }; +export const usePermissionCheckQuery = () => { + return useQuery( + ['permissionsCheck'], + () => + sendRequestForRq({ + path: appRoutesService.getCheckPermissionsPath(), + method: 'get', + }) + ); +}; + export const usePermissionCheck = () => { return useRequest({ path: appRoutesService.getCheckPermissionsPath(), diff --git a/x-pack/plugins/fleet/public/hooks/use_request/epm.ts b/x-pack/plugins/fleet/public/hooks/use_request/epm.ts index f1a248c44c07bd..dc3b5d1048e7fd 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/epm.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/epm.ts @@ -6,8 +6,11 @@ */ import useAsync from 'react-use/lib/useAsync'; +import { useMutation, useQuery } from '@tanstack/react-query'; -import { useEffect, useState } from 'react'; +import { useState } from 'react'; + +import type { SendRequestResponse } from '@kbn/es-ui-shared-plugin/public'; import { epmRouteService, isVerificationError } from '../../services'; import type { @@ -28,7 +31,8 @@ import { getCustomIntegrations } from '../../services/custom_integrations'; import { useConfirmOpenUnverified } from '../../applications/integrations/hooks/use_confirm_open_unverified'; -import { useRequest, sendRequest } from './use_request'; +import type { RequestError } from './use_request'; +import { useRequest, sendRequest, sendRequestForRq } from './use_request'; export function useGetAppendCustomIntegrations() { const customIntegrations = getCustomIntegrations(); @@ -40,13 +44,15 @@ export function useGetReplacementCustomIntegrations() { return useAsync(customIntegrations.getReplacementCustomIntegrations, []); } -export const useGetCategories = (query: GetCategoriesRequest['query'] = {}) => { - return useRequest({ - path: epmRouteService.getCategoriesPath(), - method: 'get', - query, - }); -}; +export function useGetCategoriesQuery(query: GetCategoriesRequest['query'] = {}) { + return useQuery(['categories', query], () => + sendRequestForRq({ + path: epmRouteService.getCategoriesPath(), + method: 'get', + query, + }) + ); +} export const sendGetCategories = (query: GetCategoriesRequest['query'] = {}) => { return sendRequest({ @@ -64,6 +70,16 @@ export const useGetPackages = (query: GetPackagesRequest['query'] = {}) => { }); }; +export const useGetPackagesQuery = (query: GetPackagesRequest['query']) => { + return useQuery(['get-packages', query], () => + sendRequestForRq({ + path: epmRouteService.getListPath(), + method: 'get', + query, + }) + ); +}; + export const sendGetPackages = (query: GetPackagesRequest['query'] = {}) => { return sendRequest({ path: epmRouteService.getListPath(), @@ -79,7 +95,7 @@ export const useGetLimitedPackages = () => { }); }; -export const useGetPackageInfoByKey = ( +export const useGetPackageInfoByKeyQuery = ( pkgName: string, pkgVersion?: string, options?: { @@ -92,30 +108,31 @@ export const useGetPackageInfoByKey = ( const [ignoreUnverifiedQueryParam, setIgnoreUnverifiedQueryParam] = useState( options?.ignoreUnverified ); - const res = useRequest({ - path: epmRouteService.getInfoPath(pkgName, pkgVersion), - method: 'get', - query: { - ...options, - ...(ignoreUnverifiedQueryParam && { ignoreUnverified: ignoreUnverifiedQueryParam }), - }, - }); - useEffect(() => { - const confirm = async () => { - const forceInstall = await confirmOpenUnverified(pkgName); + const response = useQuery([pkgName, pkgVersion, options], () => + sendRequestForRq({ + path: epmRouteService.getInfoPath(pkgName, pkgVersion), + method: 'get', + query: { + ...options, + ...(ignoreUnverifiedQueryParam && { ignoreUnverified: ignoreUnverifiedQueryParam }), + }, + }) + ); - if (forceInstall) { - setIgnoreUnverifiedQueryParam(true); - } - }; + const confirm = async () => { + const forceInstall = await confirmOpenUnverified(pkgName); - if (res.error && isVerificationError(res.error)) { - confirm(); + if (forceInstall) { + setIgnoreUnverifiedQueryParam(true); } - }, [res.error, pkgName, pkgVersion, confirmOpenUnverified]); + }; - return res; + if (response?.error && isVerificationError(response?.error)) { + confirm(); + } + + return response; }; export const useGetPackageStats = (pkgName: string) => { @@ -148,6 +165,12 @@ export const useGetFileByPath = (filePath: string) => { }); }; +export const useGetFileByPathQuery = (filePath: string) => { + return useQuery, RequestError>(['get-file', filePath], () => + sendRequest({ path: epmRouteService.getFilePath(filePath), method: 'get' }) + ); +}; + export const sendGetFileByPath = (filePath: string) => { return sendRequest({ path: epmRouteService.getFilePath(filePath), @@ -184,6 +207,23 @@ export const sendRemovePackage = (pkgName: string, pkgVersion: string, force: bo }); }; +interface UpdatePackageArgs { + pkgName: string; + pkgVersion: string; + body: UpdatePackageRequest['body']; +} + +export const useUpdatePackageMutation = () => { + return useMutation( + ({ pkgName, pkgVersion, body }: UpdatePackageArgs) => + sendRequestForRq({ + path: epmRouteService.getUpdatePath(pkgName, pkgVersion), + method: 'put', + body, + }) + ); +}; + export const sendUpdatePackage = ( pkgName: string, pkgVersion: string, diff --git a/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts b/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts index 3e029f6257d2e6..4a573bb5e5883c 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts @@ -5,6 +5,8 @@ * 2.0. */ +import { useMutation, useQuery } from '@tanstack/react-query'; + import { packagePolicyRouteService } from '../../services'; import type { CreatePackagePolicyRequest, @@ -22,7 +24,8 @@ import type { UpgradePackagePolicyResponse, } from '../../../common/types/rest_spec'; -import { sendRequest, useRequest } from './use_request'; +import type { RequestError } from './use_request'; +import { sendRequest, sendRequestForRq, useRequest } from './use_request'; export const sendCreatePackagePolicy = (body: CreatePackagePolicyRequest['body']) => { return sendRequest({ @@ -51,6 +54,16 @@ export const sendDeletePackagePolicy = (body: DeletePackagePoliciesRequest['body }); }; +export function useGetPackagePoliciesQuery(query: GetPackagePoliciesRequest['query']) { + return useQuery(['packagePolicies'], () => + sendRequestForRq({ + method: 'get', + path: packagePolicyRouteService.getListPath(), + query, + }) + ); +} + export function useGetPackagePolicies(query: GetPackagePoliciesRequest['query']) { return useRequest({ method: 'get', @@ -67,6 +80,17 @@ export const sendGetPackagePolicies = (query: GetPackagePoliciesRequest['query'] }); }; +export const useGetOnePackagePolicyQuery = (packagePolicyId: string) => { + return useQuery( + ['packagePolicy', packagePolicyId], + () => + sendRequestForRq({ + method: 'get', + path: packagePolicyRouteService.getInfoPath(packagePolicyId), + }) + ); +}; + export const useGetOnePackagePolicy = (packagePolicyId: string) => { return useRequest({ path: packagePolicyRouteService.getInfoPath(packagePolicyId), @@ -81,6 +105,31 @@ export const sendGetOnePackagePolicy = (packagePolicyId: string) => { }); }; +export function useUpgradePackagePolicyDryRunQuery( + packagePolicyIds: string[], + packageVersion?: string, + { enabled }: Partial<{ enabled: boolean }> = {} +) { + const body: { packagePolicyIds: string[]; packageVersion?: string } = { + packagePolicyIds, + }; + + if (packageVersion) { + body.packageVersion = packageVersion; + } + + return useQuery( + ['upgradePackagePolicyDryRun', packagePolicyIds, packageVersion], + () => + sendRequestForRq({ + path: packagePolicyRouteService.getDryRunPath(), + method: 'post', + body: JSON.stringify(body), + }), + { enabled } + ); +} + export function sendUpgradePackagePolicyDryRun( packagePolicyIds: string[], packageVersion?: string @@ -100,6 +149,22 @@ export function sendUpgradePackagePolicyDryRun( }); } +export function useUpgradePackagePoliciesMutation() { + return useMutation< + UpgradePackagePolicyDryRunResponse, + RequestError, + { packagePolicyIds: string[] } + >(({ packagePolicyIds }) => + sendRequestForRq({ + path: packagePolicyRouteService.getUpgradePath(), + method: 'post', + body: JSON.stringify({ + packagePolicyIds, + }), + }) + ); +} + export function sendUpgradePackagePolicy(packagePolicyIds: string[]) { return sendRequest({ path: packagePolicyRouteService.getUpgradePath(), diff --git a/x-pack/plugins/fleet/public/hooks/use_request/settings.ts b/x-pack/plugins/fleet/public/hooks/use_request/settings.ts index fdd6e87bdc02fe..41131a32593dec 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/settings.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/settings.ts @@ -5,10 +5,22 @@ * 2.0. */ +import { useQuery } from '@tanstack/react-query'; + import { settingsRoutesService } from '../../services'; import type { PutSettingsResponse, PutSettingsRequest, GetSettingsResponse } from '../../types'; -import { sendRequest, useRequest } from './use_request'; +import type { RequestError } from './use_request'; +import { sendRequest, sendRequestForRq, useRequest } from './use_request'; + +export function useGetSettingsQuery() { + return useQuery(['settings'], () => + sendRequestForRq({ + method: 'get', + path: settingsRoutesService.getInfoPath(), + }) + ); +} export function useGetSettings() { return useRequest({ diff --git a/x-pack/plugins/fleet/public/hooks/use_request/use_request.ts b/x-pack/plugins/fleet/public/hooks/use_request/use_request.ts index 79afb6e2238da1..9bd7d482e7e4a7 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/use_request.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/use_request.ts @@ -42,6 +42,26 @@ export const sendRequest = ( return _sendRequest(httpClient, config); }; +// Sends requests with better ergonomics for React Query, e.g. throw error rather +// than resolving with an `error` property in the result. Also returns `data` directly +// as opposed to { data } in a response object. +export const sendRequestForRq = async ( + config: SendRequestConfig +): Promise => { + if (!httpClient) { + throw new Error('sendRequest has no http client set'); + } + + const response = await _sendRequest(httpClient, config); + + if (response.error) { + throw response.error; + } + + // Data can't be null so long as `_sendRequest` did not throw + return response.data!; +}; + export const useRequest = (config: UseRequestConfig) => { if (!httpClient) { throw new Error('sendRequest has no http client set'); diff --git a/x-pack/plugins/fleet/server/routes/agent/request_diagnostics_handler.test.ts b/x-pack/plugins/fleet/server/routes/agent/request_diagnostics_handler.test.ts new file mode 100644 index 00000000000000..e47b056544ee40 --- /dev/null +++ b/x-pack/plugins/fleet/server/routes/agent/request_diagnostics_handler.test.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { + ElasticsearchClient, + KibanaResponseFactory, + RequestHandlerContext, + SavedObjectsClientContract, + KibanaRequest, +} from '@kbn/core/server'; +import { + elasticsearchServiceMock, + savedObjectsClientMock, + httpServerMock, +} from '@kbn/core/server/mocks'; + +import { getAgentById } from '../../services/agents'; +import * as AgentService from '../../services/agents'; + +import { requestDiagnosticsHandler } from './request_diagnostics_handler'; + +jest.mock('../../services/agents'); + +const mockGetAgentById = getAgentById as jest.Mock; + +describe('request diagnostics handler', () => { + let mockResponse: jest.Mocked; + let mockSavedObjectsClient: jest.Mocked; + let mockElasticsearchClient: jest.Mocked; + let mockContext: RequestHandlerContext; + let mockRequest: KibanaRequest<{ agentId: string }, undefined, undefined, any>; + + beforeEach(() => { + mockSavedObjectsClient = savedObjectsClientMock.create(); + mockElasticsearchClient = elasticsearchServiceMock.createClusterClient().asInternalUser; + mockResponse = httpServerMock.createResponseFactory(); + jest.spyOn(AgentService, 'requestDiagnostics').mockResolvedValue({ actionId: '1' }); + mockContext = { + core: { + savedObjects: { + client: mockSavedObjectsClient, + }, + elasticsearch: { + client: { + asInternalUser: mockElasticsearchClient, + }, + }, + }, + } as unknown as RequestHandlerContext; + mockRequest = httpServerMock.createKibanaRequest({ params: { agentId: 'agent1' } }); + }); + + it('should return ok if agent supports request diagnostics', async () => { + mockGetAgentById.mockResolvedValueOnce({ + local_metadata: { elastic: { agent: { version: '8.7.0' } } }, + }); + + await requestDiagnosticsHandler(mockContext, mockRequest, mockResponse); + + expect(mockResponse.ok).toHaveBeenCalledWith({ body: { actionId: '1' } }); + }); + + it('should retur error if agent does not support request diagnostics', async () => { + mockGetAgentById.mockResolvedValueOnce({ + local_metadata: { elastic: { agent: { version: '8.6.0' } } }, + }); + + await requestDiagnosticsHandler(mockContext, mockRequest, mockResponse); + + expect(mockResponse.customError).toHaveBeenCalledWith({ + body: { message: 'Agent agent1 does not support request diagnostics action.' }, + statusCode: 400, + }); + }); +}); diff --git a/x-pack/plugins/fleet/server/routes/agent/request_diagnostics_handler.ts b/x-pack/plugins/fleet/server/routes/agent/request_diagnostics_handler.ts index 74452b0e055c77..d4598101580ef2 100644 --- a/x-pack/plugins/fleet/server/routes/agent/request_diagnostics_handler.ts +++ b/x-pack/plugins/fleet/server/routes/agent/request_diagnostics_handler.ts @@ -8,12 +8,15 @@ import type { RequestHandler } from '@kbn/core/server'; import type { TypeOf } from '@kbn/config-schema'; +import { isAgentRequestDiagnosticsSupported } from '../../../common/services'; + import * as AgentService from '../../services/agents'; import type { PostBulkRequestDiagnosticsActionRequestSchema, PostRequestDiagnosticsActionRequestSchema, } from '../../types'; import { defaultFleetErrorHandler } from '../../errors'; +import { getAgentById } from '../../services/agents'; export const requestDiagnosticsHandler: RequestHandler< TypeOf, @@ -22,7 +25,19 @@ export const requestDiagnosticsHandler: RequestHandler< > = async (context, request, response) => { const coreContext = await context.core; const esClient = coreContext.elasticsearch.client.asInternalUser; + const soClient = coreContext.savedObjects.client; try { + const agent = await getAgentById(esClient, soClient, request.params.agentId); + + if (!isAgentRequestDiagnosticsSupported(agent)) { + return response.customError({ + statusCode: 400, + body: { + message: `Agent ${request.params.agentId} does not support request diagnostics action.`, + }, + }); + } + const result = await AgentService.requestDiagnostics(esClient, request.params.agentId); return response.ok({ body: { actionId: result.actionId } }); diff --git a/x-pack/plugins/fleet/server/saved_objects/index.ts b/x-pack/plugins/fleet/server/saved_objects/index.ts index 5ad423b2f10989..1a8178890b1dcd 100644 --- a/x-pack/plugins/fleet/server/saved_objects/index.ts +++ b/x-pack/plugins/fleet/server/saved_objects/index.ts @@ -113,6 +113,12 @@ const getSavedObjectTypes = ( monitoring_output_id: { type: 'keyword' }, download_source_id: { type: 'keyword' }, fleet_server_host_id: { type: 'keyword' }, + agent_features: { + properties: { + name: { type: 'keyword' }, + enabled: { type: 'boolean' }, + }, + }, }, }, migrations: { @@ -178,48 +184,13 @@ const getSavedObjectTypes = ( }, }, elasticsearch: { - enabled: false, - properties: { - privileges: { - properties: { - cluster: { type: 'keyword' }, - }, - }, - }, + dynamic: false, + properties: {}, }, vars: { type: 'flattened' }, inputs: { - type: 'nested', - enabled: false, - properties: { - type: { type: 'keyword' }, - policy_template: { type: 'keyword' }, - enabled: { type: 'boolean' }, - vars: { type: 'flattened' }, - config: { type: 'flattened' }, - compiled_input: { type: 'flattened' }, - streams: { - type: 'nested', - properties: { - id: { type: 'keyword' }, - enabled: { type: 'boolean' }, - data_stream: { - properties: { - dataset: { type: 'keyword' }, - type: { type: 'keyword' }, - elasticsearch: { - properties: { - privileges: { type: 'flattened' }, - }, - }, - }, - }, - vars: { type: 'flattened' }, - config: { type: 'flattened' }, - compiled_stream: { type: 'flattened' }, - }, - }, - }, + dynamic: false, + properties: {}, }, revision: { type: 'integer' }, updated_at: { type: 'date' }, @@ -258,8 +229,8 @@ const getSavedObjectTypes = ( internal: { type: 'boolean' }, keep_policies_up_to_date: { type: 'boolean', index: false }, es_index_patterns: { - enabled: false, - type: 'object', + dynamic: false, + properties: {}, }, verification_status: { type: 'keyword' }, verification_key_id: { type: 'keyword' }, @@ -272,13 +243,13 @@ const getSavedObjectTypes = ( }, }, installed_kibana: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, installed_kibana_space_id: { type: 'keyword' }, package_assets: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, install_started_at: { type: 'date' }, install_version: { type: 'keyword' }, diff --git a/x-pack/plugins/fleet/server/services/agent_policies/__snapshots__/full_agent_policy.test.ts.snap b/x-pack/plugins/fleet/server/services/agent_policies/__snapshots__/full_agent_policy.test.ts.snap index e4aee6aa845979..030dd4d9ec36ff 100644 --- a/x-pack/plugins/fleet/server/services/agent_policies/__snapshots__/full_agent_policy.test.ts.snap +++ b/x-pack/plugins/fleet/server/services/agent_policies/__snapshots__/full_agent_policy.test.ts.snap @@ -6,6 +6,7 @@ Object { "download": Object { "sourceURI": "http://default-registry.co", }, + "features": Object {}, "monitoring": Object { "enabled": true, "logs": false, @@ -71,6 +72,7 @@ Object { "download": Object { "sourceURI": "http://default-registry.co", }, + "features": Object {}, "monitoring": Object { "enabled": true, "logs": false, @@ -136,6 +138,7 @@ Object { "download": Object { "sourceURI": "http://default-registry.co", }, + "features": Object {}, "monitoring": Object { "enabled": true, "logs": false, diff --git a/x-pack/plugins/fleet/server/services/agent_policies/full_agent_policy.test.ts b/x-pack/plugins/fleet/server/services/agent_policies/full_agent_policy.test.ts index 352e831d12112d..93c6b6dc891ea3 100644 --- a/x-pack/plugins/fleet/server/services/agent_policies/full_agent_policy.test.ts +++ b/x-pack/plugins/fleet/server/services/agent_policies/full_agent_policy.test.ts @@ -388,6 +388,51 @@ describe('getFullAgentPolicy', () => { }, }); }); + + it('should add + transform agent features', async () => { + mockAgentPolicy({ + namespace: 'default', + revision: 1, + monitoring_enabled: ['metrics'], + agent_features: [ + { name: 'fqdn', enabled: true }, + { name: 'feature2', enabled: true }, + ], + }); + const agentPolicy = await getFullAgentPolicy(savedObjectsClientMock.create(), 'agent-policy'); + + expect(agentPolicy).toMatchObject({ + id: 'agent-policy', + outputs: { + default: { + type: 'elasticsearch', + hosts: ['http://127.0.0.1:9201'], + }, + }, + inputs: [], + revision: 1, + fleet: { + hosts: ['http://fleetserver:8220'], + }, + agent: { + monitoring: { + namespace: 'default', + use_output: 'default', + enabled: true, + logs: false, + metrics: true, + }, + features: { + fqdn: { + enabled: true, + }, + feature2: { + enabled: true, + }, + }, + }, + }); + }); }); describe('transformOutputToFullPolicyOutput', () => { diff --git a/x-pack/plugins/fleet/server/services/agent_policies/full_agent_policy.ts b/x-pack/plugins/fleet/server/services/agent_policies/full_agent_policy.ts index 262ad2d64a606d..fe434c015e438b 100644 --- a/x-pack/plugins/fleet/server/services/agent_policies/full_agent_policy.ts +++ b/x-pack/plugins/fleet/server/services/agent_policies/full_agent_policy.ts @@ -120,6 +120,10 @@ export async function getFullAgentPolicy( metrics: agentPolicy.monitoring_enabled.includes(dataTypes.Metrics), } : { enabled: false, logs: false, metrics: false }, + features: (agentPolicy.agent_features || []).reduce((acc, { name, ...featureConfig }) => { + acc[name] = featureConfig; + return acc; + }, {} as NonNullable['features']), }, }; diff --git a/x-pack/plugins/fleet/server/services/agents/action.mock.ts b/x-pack/plugins/fleet/server/services/agents/action.mock.ts index 3534327e196dbc..a0aa70d1491ff2 100644 --- a/x-pack/plugins/fleet/server/services/agents/action.mock.ts +++ b/x-pack/plugins/fleet/server/services/agents/action.mock.ts @@ -56,6 +56,28 @@ export function createClientMock() { status: ['online'], }, }; + const agentInRegularDocNewer = { + _id: 'agent-in-regular-policy-newer', + _index: 'index', + _source: { + policy_id: 'regular-agent-policy', + local_metadata: { elastic: { agent: { version: '8.7.0', upgradeable: true } } }, + }, + fields: { + status: ['online'], + }, + }; + const agentInRegularDocNewer2 = { + _id: 'agent-in-regular-policy-newer2', + _index: 'index', + _source: { + policy_id: 'regular-agent-policy', + local_metadata: { elastic: { agent: { version: '8.7.0', upgradeable: true } } }, + }, + fields: { + status: ['online'], + }, + }; const regularAgentPolicySO = { id: 'regular-agent-policy', attributes: { is_managed: false }, @@ -109,6 +131,10 @@ export function createClientMock() { return { body: agentInRegularDoc2 }; case agentInRegularDoc._id: return { body: agentInRegularDoc }; + case agentInRegularDocNewer._id: + return { body: agentInRegularDocNewer }; + case agentInRegularDocNewer2._id: + return { body: agentInRegularDocNewer2 }; default: throw new Error('not found'); } @@ -135,6 +161,12 @@ export function createClientMock() { case agentInRegularDoc._id: result = agentInRegularDoc; break; + case agentInRegularDocNewer._id: + result = agentInRegularDocNewer; + break; + case agentInRegularDocNewer2._id: + result = agentInRegularDocNewer2; + break; default: throw new Error('not found'); } @@ -157,9 +189,15 @@ export function createClientMock() { total: 1, }, hits: { - hits: [agentInHostedDoc, agentInRegularDoc, agentInRegularDoc2], + hits: [ + agentInHostedDoc, + agentInRegularDoc, + agentInRegularDoc2, + agentInRegularDocNewer, + agentInRegularDocNewer2, + ], total: { - value: 3, + value: 5, relation: 'eq', }, }, @@ -173,6 +211,8 @@ export function createClientMock() { agentInHostedDoc2, agentInRegularDoc, agentInRegularDoc2, + agentInRegularDocNewer, + agentInRegularDocNewer2, regularAgentPolicySO, hostedAgentPolicySO, regularAgentPolicySO2, diff --git a/x-pack/plugins/fleet/server/services/agents/action_status.ts b/x-pack/plugins/fleet/server/services/agents/action_status.ts index c50630784619ab..a1a86d5963f60e 100644 --- a/x-pack/plugins/fleet/server/services/agents/action_status.ts +++ b/x-pack/plugins/fleet/server/services/agents/action_status.ts @@ -216,6 +216,7 @@ async function _getActions( newPolicyId: source.data?.policy_id as string, creationTime: source['@timestamp']!, nbAgentsFailed: 0, + hasRolloutPeriod: !!source.rollout_duration_seconds, }; } diff --git a/x-pack/plugins/fleet/server/services/agents/request_diagnostics.test.ts b/x-pack/plugins/fleet/server/services/agents/request_diagnostics.test.ts index 05aa81be276127..3c459ce178a3a8 100644 --- a/x-pack/plugins/fleet/server/services/agents/request_diagnostics.test.ts +++ b/x-pack/plugins/fleet/server/services/agents/request_diagnostics.test.ts @@ -4,6 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { appContextService } from '../app_context'; import { createAppContextStartContractMock } from '../../mocks'; @@ -37,18 +38,45 @@ describe('requestDiagnostics (plural)', () => { appContextService.stop(); }); it('can request diagnostics for multiple agents', async () => { - const { soClient, esClient, agentInRegularDoc, agentInRegularDoc2 } = createClientMock(); - const idsToUnenroll = [agentInRegularDoc._id, agentInRegularDoc2._id]; - await bulkRequestDiagnostics(esClient, soClient, { agentIds: idsToUnenroll }); + const { soClient, esClient, agentInRegularDocNewer, agentInRegularDocNewer2 } = + createClientMock(); + const idsToAction = [agentInRegularDocNewer._id, agentInRegularDocNewer2._id]; + await bulkRequestDiagnostics(esClient, soClient, { agentIds: idsToAction }); expect(esClient.create).toHaveBeenCalledWith( expect.objectContaining({ body: expect.objectContaining({ - agents: ['agent-in-regular-policy', 'agent-in-regular-policy2'], + agents: ['agent-in-regular-policy-newer', 'agent-in-regular-policy-newer2'], type: 'REQUEST_DIAGNOSTICS', }), index: '.fleet-actions', }) ); }); + + it('should report error when diagnostics for older agent', async () => { + const { soClient, esClient, agentInRegularDoc, agentInRegularDocNewer } = createClientMock(); + const idsToAction = [agentInRegularDocNewer._id, agentInRegularDoc._id]; + await bulkRequestDiagnostics(esClient, soClient, { agentIds: idsToAction }); + + expect(esClient.create).toHaveBeenCalledWith( + expect.objectContaining({ + body: expect.objectContaining({ + agents: ['agent-in-regular-policy-newer', 'agent-in-regular-policy'], + type: 'REQUEST_DIAGNOSTICS', + }), + index: '.fleet-actions', + }) + ); + const calledWithActionResults = esClient.bulk.mock.calls[0][0] as estypes.BulkRequest; + // bulk write two line per create + expect(calledWithActionResults.body?.length).toBe(2); + const expectedObject = expect.objectContaining({ + '@timestamp': expect.anything(), + action_id: expect.anything(), + agent_id: 'agent-in-regular-policy', + error: 'Agent agent-in-regular-policy does not support request diagnostics action.', + }); + expect(calledWithActionResults.body?.[1] as any).toEqual(expectedObject); + }); }); diff --git a/x-pack/plugins/fleet/server/services/agents/request_diagnostics_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/request_diagnostics_action_runner.ts index d9552f3a1a41e7..88cb2d5770688f 100644 --- a/x-pack/plugins/fleet/server/services/agents/request_diagnostics_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/request_diagnostics_action_runner.ts @@ -8,10 +8,14 @@ import { v4 as uuidv4 } from 'uuid'; import type { ElasticsearchClient } from '@kbn/core/server'; +import { isAgentRequestDiagnosticsSupported } from '../../../common/services'; + import type { Agent } from '../../types'; +import { FleetError } from '../../errors'; + import { ActionRunner } from './action_runner'; -import { createAgentAction } from './actions'; +import { createAgentAction, createErrorActionResults } from './actions'; import { BulkActionTaskType } from './bulk_action_types'; export class RequestDiagnosticsActionRunner extends ActionRunner { @@ -36,11 +40,20 @@ export async function requestDiagnosticsBatch( total?: number; } ): Promise<{ actionId: string }> { + const errors: Record = {}; const now = new Date().toISOString(); const actionId = options.actionId ?? uuidv4(); const total = options.total ?? givenAgents.length; + givenAgents.forEach((agent: Agent) => { + if (!isAgentRequestDiagnosticsSupported(agent)) { + errors[agent.id] = new FleetError( + `Agent ${agent.id} does not support request diagnostics action.` + ); + } + }); + const agentIds = givenAgents.map((agent) => agent.id); await createAgentAction(esClient, { @@ -51,6 +64,13 @@ export async function requestDiagnosticsBatch( total, }); + await createErrorActionResults( + esClient, + actionId, + errors, + 'agent does not support request diagnostics action' + ); + return { actionId, }; diff --git a/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts index 8f9a7f3763cc00..8aae49b754ef7b 100644 --- a/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts @@ -137,7 +137,7 @@ export async function updateActionsForForceUnenroll( // creating an action doc so that force unenroll shows up in activity await createAgentAction(esClient, { id: actionId, - agents: [], + agents: agentIds, created_at: new Date().toISOString(), type: 'FORCE_UNENROLL', total, diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts b/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts index 19ced885822a4f..52170f6c302fdf 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts @@ -24,7 +24,7 @@ import { PackageNotFoundError } from '../../../errors'; import { getSettings } from '../../settings'; -import { getPackageInfo, getPackageUsageStats } from './get'; +import { getPackageInfo, getPackages, getPackageUsageStats } from './get'; const MockRegistry = Registry as jest.Mocked; @@ -186,6 +186,65 @@ describe('When using EPM `get` services', () => { }); }); + describe('getPackages', () => { + beforeEach(() => { + const mockContract = createAppContextStartContractMock(); + appContextService.start(mockContract); + jest.clearAllMocks(); + MockRegistry.fetchList.mockResolvedValue([ + { + name: 'nginx', + version: '1.0.0', + title: 'Nginx', + } as any, + ]); + }); + + it('should return installed package that is not in registry', async () => { + const soClient = savedObjectsClientMock.create(); + soClient.find.mockResolvedValue({ + saved_objects: [ + { + id: 'elasticsearch', + attributes: { + name: 'elasticsearch', + version: '0.0.1', + install_status: 'upload', + }, + }, + ], + } as any); + + await expect( + getPackages({ + savedObjectsClient: soClient, + }) + ).resolves.toMatchObject([ + { + name: 'elasticsearch', + version: '0.0.1', + title: 'Elasticsearch', + status: 'upload', + savedObject: { + id: 'elasticsearch', + attributes: { + name: 'elasticsearch', + version: '0.0.1', + install_status: 'upload', + }, + }, + }, + { + name: 'nginx', + version: '1.0.0', + title: 'Nginx', + id: 'nginx', + status: 'not_installed', + }, + ]); + }); + }); + describe('getPackageInfo', () => { beforeEach(() => { const mockContract = createAppContextStartContractMock(); diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get.ts b/x-pack/plugins/fleet/server/services/epm/packages/get.ts index 8776ca6014e55b..1d048e2cf2d2cd 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/get.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/get.ts @@ -14,7 +14,11 @@ import { PACKAGE_POLICY_SAVED_OBJECT_TYPE, } from '../../../../common/constants'; import { isPackageLimited } from '../../../../common/services'; -import type { PackageUsageStats, PackagePolicySOAttributes } from '../../../../common/types'; +import type { + PackageUsageStats, + PackagePolicySOAttributes, + Installable, +} from '../../../../common/types'; import { PACKAGES_SAVED_OBJECT_TYPE } from '../../../constants'; import type { ArchivePackage, @@ -68,6 +72,11 @@ export async function getPackages( }); // get the installed packages const packageSavedObjects = await getPackageSavedObjects(savedObjectsClient); + + const packagesNotInRegistry = packageSavedObjects.saved_objects + .filter((pkg) => !registryItems.some((item) => item.name === pkg.id)) + .map((pkg) => createInstallableFrom({ ...pkg.attributes, title: nameAsTitle(pkg.id) }, pkg)); + const packageList = registryItems .map((item) => createInstallableFrom( @@ -75,6 +84,7 @@ export async function getPackages( packageSavedObjects.saved_objects.find(({ id }) => id === item.name) ) ) + .concat(packagesNotInRegistry as Installable) .sort(sortByName); if (!excludeInstallStatus) { diff --git a/x-pack/plugins/fleet/server/services/epm/packages/install.test.ts b/x-pack/plugins/fleet/server/services/epm/packages/install.test.ts index d8f4f4a70adaa5..5466c61313d97d 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/install.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/install.test.ts @@ -233,6 +233,50 @@ describe('install', () => { expect.objectContaining({ installSource: 'upload' }) ); }); + + it('should fetch latest version if version not provided', async () => { + jest.spyOn(licenseService, 'hasAtLeast').mockReturnValue(true); + const response = await installPackage({ + spaceId: DEFAULT_SPACE_ID, + installSource: 'registry', + pkgkey: 'test_package', + savedObjectsClient: savedObjectsClientMock.create(), + esClient: {} as ElasticsearchClient, + }); + + expect(response.status).toEqual('installed'); + + expect(sendTelemetryEvents).toHaveBeenCalledWith( + expect.anything(), + undefined, + expect.objectContaining({ + newVersion: '1.3.0', + }) + ); + }); + + it('should do nothing if same version is installed', async () => { + jest.spyOn(obj, 'getInstallationObject').mockImplementationOnce(() => + Promise.resolve({ + attributes: { + version: '1.2.0', + install_status: 'installed', + installed_es: [], + installed_kibana: [], + }, + } as any) + ); + jest.spyOn(licenseService, 'hasAtLeast').mockReturnValue(true); + const response = await installPackage({ + spaceId: DEFAULT_SPACE_ID, + installSource: 'registry', + pkgkey: 'apache-1.2.0', + savedObjectsClient: savedObjectsClientMock.create(), + esClient: {} as ElasticsearchClient, + }); + + expect(response.status).toEqual('already_installed'); + }); }); describe('upload', () => { diff --git a/x-pack/plugins/fleet/server/services/epm/packages/install.ts b/x-pack/plugins/fleet/server/services/epm/packages/install.ts index cf00ec4e3aed1d..a3d087d828b01a 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/install.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/install.ts @@ -30,6 +30,7 @@ import { FLEET_INSTALL_FORMAT_VERSION } from '../../../constants/fleet_es_assets import { generateESIndexPatterns } from '../elasticsearch/template/template'; import type { + ArchivePackage, BulkInstallPackageInfo, EpmPackageInstallStatus, EsAssetReference, @@ -293,15 +294,11 @@ async function installPackageFromRegistry({ const logger = appContextService.getLogger(); // TODO: change epm API to /packageName/version so we don't need to do this const { pkgName, pkgVersion: version } = Registry.splitPkgKey(pkgkey); - let pkgVersion = version; - - // Workaround apm issue with async spans: https://github.com/elastic/apm-agent-nodejs/issues/2611 - await Promise.resolve(); - const span = apm.startSpan(`Install package from registry ${pkgName}@${pkgVersion}`, 'package'); + let pkgVersion = version ?? ''; // if an error happens during getInstallType, report that we don't know let installType: InstallType = 'unknown'; - + const installSource = 'registry'; const telemetryEvent: PackageUpdateEvent = getTelemetryEvent(pkgName, pkgVersion); try { @@ -309,11 +306,8 @@ async function installPackageFromRegistry({ const installedPkg = await getInstallationObject({ savedObjectsClient, pkgName }); installType = getInstallType({ pkgVersion, installedPkg }); - span?.addLabels({ - packageName: pkgName, - packageVersion: pkgVersion, - installType, - }); + telemetryEvent.installType = installType; + telemetryEvent.currentVersion = installedPkg?.attributes.version || 'not_installed'; const queryLatest = () => Registry.fetchFindLatestPackageOrThrow(pkgName, { @@ -340,6 +334,100 @@ async function installPackageFromRegistry({ const installOutOfDateVersionOk = force || ['reinstall', 'reupdate', 'rollback'].includes(installType); + // if the requested version is out-of-date of the latest package version, check if we allow it + // if we don't allow it, return an error + if (semverLt(pkgVersion, latestPackage.version)) { + if (!installOutOfDateVersionOk) { + throw new PackageOutdatedError( + `${pkgkey} is out-of-date and cannot be installed or updated` + ); + } + logger.debug( + `${pkgkey} is out-of-date, installing anyway due to ${ + force ? 'force flag' : `install type ${installType}` + }` + ); + } + + return await installPackageCommon({ + pkgName, + pkgVersion, + installSource, + installedPkg, + installType, + savedObjectsClient, + esClient, + spaceId, + force, + packageInfo, + paths, + verificationResult, + }); + } catch (e) { + sendEvent({ + ...telemetryEvent, + errorMessage: e.message, + }); + return { + error: e, + installType, + installSource, + }; + } +} + +async function installPackageCommon(options: { + pkgName: string; + pkgVersion: string; + installSource: 'registry' | 'upload'; + installedPkg?: SavedObject; + installType: InstallType; + savedObjectsClient: SavedObjectsClientContract; + esClient: ElasticsearchClient; + spaceId: string; + force?: boolean; + packageInfo: ArchivePackage; + paths: string[]; + verificationResult?: PackageVerificationResult; + telemetryEvent?: PackageUpdateEvent; +}): Promise { + const { + pkgName, + pkgVersion, + installSource, + installedPkg, + installType, + savedObjectsClient, + force, + esClient, + spaceId, + packageInfo, + paths, + verificationResult, + } = options; + let { telemetryEvent } = options; + const logger = appContextService.getLogger(); + + // Workaround apm issue with async spans: https://github.com/elastic/apm-agent-nodejs/issues/2611 + await Promise.resolve(); + const span = apm.startSpan( + `Install package from ${installSource} ${pkgName}@${pkgVersion}`, + 'package' + ); + + if (!telemetryEvent) { + telemetryEvent = getTelemetryEvent(pkgName, pkgVersion); + telemetryEvent.installType = installType; + telemetryEvent.currentVersion = installedPkg?.attributes.version || 'not_installed'; + } + + try { + span?.addLabels({ + packageName: pkgName, + packageVersion: pkgVersion, + installType, + }); + // if the requested version is the same as installed version, check if we allow it based on // current installed package status and force flag, if we don't allow it, // just return the asset references from the existing installation @@ -348,7 +436,7 @@ async function installPackageFromRegistry({ installedPkg?.attributes.install_status === 'installed' ) { if (!force) { - logger.debug(`${pkgkey} is already installed, skipping installation`); + logger.debug(`${pkgName}-${pkgVersion} is already installed, skipping installation`); return { assets: [ ...installedPkg.attributes.installed_es, @@ -356,36 +444,18 @@ async function installPackageFromRegistry({ ], status: 'already_installed', installType, - installSource: 'registry', + installSource, }; } } - telemetryEvent.installType = installType; - telemetryEvent.currentVersion = installedPkg?.attributes.version || 'not_installed'; - - // if the requested version is out-of-date of the latest package version, check if we allow it - // if we don't allow it, return an error - if (semverLt(pkgVersion, latestPackage.version)) { - if (!installOutOfDateVersionOk) { - throw new PackageOutdatedError( - `${pkgkey} is out-of-date and cannot be installed or updated` - ); - } - logger.debug( - `${pkgkey} is out-of-date, installing anyway due to ${ - force ? 'force flag' : `install type ${installType}` - }` - ); - } - if (!licenseService.hasAtLeast(packageInfo.license || 'basic')) { const err = new Error(`Requires ${packageInfo.license} license`); sendEvent({ ...telemetryEvent, errorMessage: err.message, }); - return { error: err, installType, installSource: 'registry' }; + return { error: err, installType, installSource }; } const savedObjectsImporter = appContextService @@ -415,7 +485,7 @@ async function installPackageFromRegistry({ installType, spaceId, verificationResult, - installSource: 'registry', + installSource, }) .then(async (assets) => { await removeOldAssets({ @@ -424,10 +494,10 @@ async function installPackageFromRegistry({ currentVersion: packageInfo.version, }); sendEvent({ - ...telemetryEvent, + ...telemetryEvent!, status: 'success', }); - return { assets, status: 'installed', installType, installSource: 'registry' }; + return { assets, status: 'installed', installType, installSource }; }) .catch(async (err: Error) => { logger.warn(`Failure to install package [${pkgName}]: [${err.toString()}]`); @@ -441,10 +511,10 @@ async function installPackageFromRegistry({ esClient, }); sendEvent({ - ...telemetryEvent, + ...telemetryEvent!, errorMessage: err.message, }); - return { error: err, installType, installSource: 'registry' }; + return { error: err, installType, installSource }; }); } catch (e) { sendEvent({ @@ -454,7 +524,7 @@ async function installPackageFromRegistry({ return { error: e, installType, - installSource: 'registry', + installSource, }; } finally { span?.end(); @@ -469,16 +539,12 @@ async function installPackageByUpload({ spaceId, version, }: InstallUploadedArchiveParams): Promise { - // Workaround apm issue with async spans: https://github.com/elastic/apm-agent-nodejs/issues/2611 - await Promise.resolve(); - const span = apm.startSpan(`Install package from upload`, 'package'); - - const logger = appContextService.getLogger(); // if an error happens during getInstallType, report that we don't know let installType: InstallType = 'unknown'; - const telemetryEvent: PackageUpdateEvent = getTelemetryEvent('', ''); + const installSource = 'upload'; try { const { packageInfo } = await generatePackageInfoFromArchiveBuffer(archiveBuffer, contentType); + const pkgName = packageInfo.name; // Allow for overriding the version in the manifest for cases where we install // stack-aligned bundled packages to support special cases around the @@ -487,23 +553,11 @@ async function installPackageByUpload({ const installedPkg = await getInstallationObject({ savedObjectsClient, - pkgName: packageInfo.name, + pkgName, }); installType = getInstallType({ pkgVersion, installedPkg }); - span?.addLabels({ - packageName: packageInfo.name, - packageVersion: pkgVersion, - installType, - }); - - telemetryEvent.packageName = packageInfo.name; - telemetryEvent.newVersion = pkgVersion; - telemetryEvent.installType = installType; - telemetryEvent.currentVersion = installedPkg?.attributes.version || 'not_installed'; - - const installSource = 'upload'; // as we do not verify uploaded packages, we must invalidate the verification cache deleteVerificationResult(packageInfo); const paths = await unpackBufferToCache({ @@ -519,55 +573,25 @@ async function installPackageByUpload({ packageInfo, }); - const savedObjectsImporter = appContextService - .getSavedObjects() - .createImporter(savedObjectsClient); - - const savedObjectTagAssignmentService = appContextService - .getSavedObjectsTagging() - .createInternalAssignmentService({ client: savedObjectsClient }); - - const savedObjectTagClient = appContextService - .getSavedObjectsTagging() - .createTagClient({ client: savedObjectsClient }); - - // @ts-expect-error status is string instead of InstallResult.status 'installed' | 'already_installed' - return await _installPackage({ + return await installPackageCommon({ + pkgName, + pkgVersion, + installSource, + installedPkg, + installType, savedObjectsClient, - savedObjectsImporter, - savedObjectTagAssignmentService, - savedObjectTagClient, esClient, - logger, - installedPkg, + spaceId, + force: true, // upload has implicit force + packageInfo, paths, - packageInfo: { ...packageInfo, version: pkgVersion }, + }); + } catch (e) { + return { + error: e, installType, installSource, - spaceId, - }) - .then((assets) => { - sendEvent({ - ...telemetryEvent, - status: 'success', - }); - return { assets, status: 'installed', installType }; - }) - .catch(async (err: Error) => { - sendEvent({ - ...telemetryEvent, - errorMessage: err.message, - }); - return { error: err, installType }; - }); - } catch (e) { - sendEvent({ - ...telemetryEvent, - errorMessage: e.message, - }); - return { error: e, installType, installSource: 'upload' }; - } finally { - span?.end(); + }; } } diff --git a/x-pack/plugins/fleet/server/services/package_policy.ts b/x-pack/plugins/fleet/server/services/package_policy.ts index c665d9a6f6f97a..5eacf8dd0c3a83 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.ts @@ -513,8 +513,7 @@ class PackagePolicyClientImpl implements PackagePolicyClient { esClient: ElasticsearchClient, id: string, packagePolicyUpdate: UpdatePackagePolicy, - options?: { user?: AuthenticatedUser; force?: boolean; skipUniqueNameVerification?: boolean }, - currentVersion?: string + options?: { user?: AuthenticatedUser; force?: boolean; skipUniqueNameVerification?: boolean } ): Promise { let enrichedPackagePolicy: UpdatePackagePolicy; @@ -567,8 +566,9 @@ class PackagePolicyClientImpl implements PackagePolicyClient { inputs = enforceFrozenInputs(oldPackagePolicy.inputs, inputs, options?.force); let elasticsearchPrivileges: NonNullable['privileges']; + let pkgInfo; if (packagePolicy.package?.name) { - const pkgInfo = await getPackageInfo({ + pkgInfo = await getPackageInfo({ savedObjectsClient: soClient, pkgName: packagePolicy.package.name, pkgVersion: packagePolicy.package.version, @@ -609,6 +609,34 @@ class PackagePolicyClientImpl implements PackagePolicyClient { const newPolicy = (await this.get(soClient, id)) as PackagePolicy; + // if we have moved to an input package we need to create the index templates + // for the package policy as input packages create index templates per package policy + if ( + pkgInfo && + pkgInfo.type === 'input' && + oldPackagePolicy.package && + oldPackagePolicy.package?.version !== pkgInfo.version + ) { + if (oldPackagePolicy.package) { + const oldPackage = await getPackageInfo({ + savedObjectsClient: soClient, + pkgName: oldPackagePolicy.package?.name, + pkgVersion: oldPackagePolicy.package?.version, + prerelease: true, + }); + + if (oldPackage.type === 'integration') { + await installAssetsForInputPackagePolicy({ + logger: appContextService.getLogger(), + soClient, + esClient, + pkgInfo, + packagePolicy: newPolicy, + force: true, + }); + } + } + } // Bump revision of associated agent policy const bumpPromise = agentPolicyService.bumpRevision( soClient, @@ -1076,14 +1104,7 @@ class PackagePolicyClientImpl implements PackagePolicyClient { ...options, }; - await this.update( - soClient, - esClient, - id, - updatePackagePolicy, - updateOptions, - packagePolicy.package!.version - ); + await this.update(soClient, esClient, id, updatePackagePolicy, updateOptions); // Persist any experimental feature opt-ins that come through the upgrade process to the Installation SO await updateDatastreamExperimentalFeatures( diff --git a/x-pack/plugins/fleet/server/services/saved_object.test.ts b/x-pack/plugins/fleet/server/services/saved_object.test.ts index 4dd99a3db2d2b1..4b2efa0f042b3d 100644 --- a/x-pack/plugins/fleet/server/services/saved_object.test.ts +++ b/x-pack/plugins/fleet/server/services/saved_object.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { escapeSearchQueryPhrase } from './saved_object'; +import { escapeSearchQueryPhrase, normalizeKuery } from './saved_object'; describe('Saved object service', () => { describe('escapeSearchQueryPhrase', () => { @@ -21,4 +21,24 @@ describe('Saved object service', () => { expect(res).toEqual(`"test1\\"test2"`); }); }); + + describe('normalizeKuery', () => { + it('without attributes postfix', () => { + const res = normalizeKuery('foo', 'foo.'); + + expect(res).toEqual('foo.attributes.'); + }); + + it('with attributes postfix', () => { + const res = normalizeKuery('foo', 'foo.attributes.'); + + expect(res).toEqual('foo.attributes.'); + }); + + it('only trigger on literal dots', () => { + const res = normalizeKuery('foo', 'foobar'); + + expect(res).toEqual('foobar'); + }); + }); }); diff --git a/x-pack/plugins/fleet/server/services/saved_object.ts b/x-pack/plugins/fleet/server/services/saved_object.ts index 2a1f5e216fb2f1..43ec734edceb11 100644 --- a/x-pack/plugins/fleet/server/services/saved_object.ts +++ b/x-pack/plugins/fleet/server/services/saved_object.ts @@ -25,7 +25,7 @@ export function escapeSearchQueryPhrase(val: string): string { // filtering SOs export const normalizeKuery = (savedObjectType: string, kuery: string): string => { return kuery.replace( - new RegExp(`${savedObjectType}\.(?!attributes\.)`, 'g'), + new RegExp(`${savedObjectType}\\.(?!attributes\\.)`, 'g'), `${savedObjectType}.attributes.` ); }; diff --git a/x-pack/plugins/fleet/server/types/models/agent_policy.ts b/x-pack/plugins/fleet/server/types/models/agent_policy.ts index 750613abfd21a1..f85bd93b1e8708 100644 --- a/x-pack/plugins/fleet/server/types/models/agent_policy.ts +++ b/x-pack/plugins/fleet/server/types/models/agent_policy.ts @@ -39,6 +39,14 @@ export const AgentPolicyBaseSchema = { monitoring_output_id: schema.maybe(schema.nullable(schema.string())), download_source_id: schema.maybe(schema.nullable(schema.string())), fleet_server_host_id: schema.maybe(schema.nullable(schema.string())), + agent_features: schema.maybe( + schema.arrayOf( + schema.object({ + name: schema.string(), + enabled: schema.boolean(), + }) + ) + ), }; export const NewAgentPolicySchema = schema.object({ diff --git a/x-pack/plugins/global_search/kibana.json b/x-pack/plugins/global_search/kibana.json deleted file mode 100644 index 435b622a76d9a8..00000000000000 --- a/x-pack/plugins/global_search/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "globalSearch", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["licensing"], - "optionalPlugins": [], - "configPath": ["xpack", "global_search"] -} diff --git a/x-pack/plugins/global_search/kibana.jsonc b/x-pack/plugins/global_search/kibana.jsonc new file mode 100644 index 00000000000000..5c70096b124c1d --- /dev/null +++ b/x-pack/plugins/global_search/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/global-search-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "globalSearch", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "global_search" + ], + "requiredPlugins": [ + "licensing" + ] + } +} diff --git a/x-pack/plugins/global_search_bar/kibana.json b/x-pack/plugins/global_search_bar/kibana.json deleted file mode 100644 index cea5b8209739b5..00000000000000 --- a/x-pack/plugins/global_search_bar/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "globalSearchBar", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "8.2.0", - "kibanaVersion": "kibana", - "server": false, - "ui": true, - "requiredBundles": ["kibanaReact"], - "requiredPlugins": ["globalSearch"], - "optionalPlugins": ["usageCollection", "savedObjectsTagging"], - "configPath": ["xpack", "global_search_bar"] -} diff --git a/x-pack/plugins/global_search_bar/kibana.jsonc b/x-pack/plugins/global_search_bar/kibana.jsonc new file mode 100644 index 00000000000000..b208f36fdd833f --- /dev/null +++ b/x-pack/plugins/global_search_bar/kibana.jsonc @@ -0,0 +1,24 @@ +{ + "type": "plugin", + "id": "@kbn/global-search-bar-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "globalSearchBar", + "server": false, + "browser": true, + "configPath": [ + "xpack", + "global_search_bar" + ], + "requiredPlugins": [ + "globalSearch" + ], + "optionalPlugins": [ + "usageCollection", + "savedObjectsTagging" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/global_search_providers/kibana.json b/x-pack/plugins/global_search_providers/kibana.json deleted file mode 100644 index eb6b66648e6817..00000000000000 --- a/x-pack/plugins/global_search_providers/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "globalSearchProviders", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["globalSearch"], - "optionalPlugins": [], - "configPath": ["xpack", "global_search_providers"] -} diff --git a/x-pack/plugins/global_search_providers/kibana.jsonc b/x-pack/plugins/global_search_providers/kibana.jsonc new file mode 100644 index 00000000000000..5ee9946d172d06 --- /dev/null +++ b/x-pack/plugins/global_search_providers/kibana.jsonc @@ -0,0 +1,17 @@ +{ + "type": "plugin", + "id": "@kbn/global-search-providers-plugin", + "owner": "@elastic/kibana-core", + "plugin": { + "id": "globalSearchProviders", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "global_search_providers" + ], + "requiredPlugins": [ + "globalSearch" + ] + } +} diff --git a/x-pack/plugins/graph/kibana.json b/x-pack/plugins/graph/kibana.json deleted file mode 100644 index 6db4ca194d7d17..00000000000000 --- a/x-pack/plugins/graph/kibana.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "id": "graph", - "version": "8.2.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "licensing", - "data", - "navigation", - "savedObjects", - "unifiedSearch", - "inspector" - ], - "optionalPlugins": [ - "home", - "features", - "spaces" - ], - "configPath": [ - "xpack", - "graph" - ], - "requiredBundles": [ - "unifiedSearch", - "kibanaUtils", - "kibanaReact" - ], - "owner": { - "name": "Data Discovery", - "githubTeam": "kibana-data-discovery" - } -} diff --git a/x-pack/plugins/graph/kibana.jsonc b/x-pack/plugins/graph/kibana.jsonc new file mode 100644 index 00000000000000..c47a12d71cc927 --- /dev/null +++ b/x-pack/plugins/graph/kibana.jsonc @@ -0,0 +1,32 @@ +{ + "type": "plugin", + "id": "@kbn/graph-plugin", + "owner": "@elastic/kibana-visualizations", + "plugin": { + "id": "graph", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "graph" + ], + "requiredPlugins": [ + "licensing", + "data", + "navigation", + "savedObjects", + "unifiedSearch", + "inspector" + ], + "optionalPlugins": [ + "home", + "features", + "spaces" + ], + "requiredBundles": [ + "unifiedSearch", + "kibanaUtils", + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/grokdebugger/kibana.json b/x-pack/plugins/grokdebugger/kibana.json deleted file mode 100644 index bbba9651882fdf..00000000000000 --- a/x-pack/plugins/grokdebugger/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "grokdebugger", - "version": "8.2.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": ["licensing", "home", "devTools"], - "server": true, - "ui": true, - "configPath": ["xpack", "grokdebugger"], - "requiredBundles": ["kibanaReact", "esUiShared"] -} diff --git a/x-pack/plugins/grokdebugger/kibana.jsonc b/x-pack/plugins/grokdebugger/kibana.jsonc new file mode 100644 index 00000000000000..340088efc772fc --- /dev/null +++ b/x-pack/plugins/grokdebugger/kibana.jsonc @@ -0,0 +1,23 @@ +{ + "type": "plugin", + "id": "@kbn/grokdebugger-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "grokdebugger", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "grokdebugger" + ], + "requiredPlugins": [ + "licensing", + "home", + "devTools" + ], + "requiredBundles": [ + "kibanaReact", + "esUiShared" + ] + } +} diff --git a/x-pack/plugins/index_lifecycle_management/kibana.json b/x-pack/plugins/index_lifecycle_management/kibana.json deleted file mode 100644 index a9e8eff9536332..00000000000000 --- a/x-pack/plugins/index_lifecycle_management/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "indexLifecycleManagement", - "version": "kibana", - "server": true, - "ui": true, - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": ["licensing", "management", "features", "share"], - "optionalPlugins": ["cloud", "usageCollection", "indexManagement", "home"], - "configPath": ["xpack", "ilm"], - "requiredBundles": ["indexManagement", "kibanaReact", "esUiShared"] -} diff --git a/x-pack/plugins/index_lifecycle_management/kibana.jsonc b/x-pack/plugins/index_lifecycle_management/kibana.jsonc new file mode 100644 index 00000000000000..906b19835741e1 --- /dev/null +++ b/x-pack/plugins/index_lifecycle_management/kibana.jsonc @@ -0,0 +1,31 @@ +{ + "type": "plugin", + "id": "@kbn/index-lifecycle-management-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "indexLifecycleManagement", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "ilm" + ], + "requiredPlugins": [ + "licensing", + "management", + "features", + "share" + ], + "optionalPlugins": [ + "cloud", + "usageCollection", + "indexManagement", + "home" + ], + "requiredBundles": [ + "indexManagement", + "kibanaReact", + "esUiShared" + ] + } +} diff --git a/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/index.ts b/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/index.ts index ce5685ba983075..3e350e00d22005 100644 --- a/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/index.ts +++ b/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/index.ts @@ -13,11 +13,11 @@ export { DataTierAllocation } from './data_tier_allocation'; export { WillUseFallbackTierNotice } from './will_use_fallback_tier_notice'; -export { WillUseFallbackTierUsingNodeAttributesNotice } from './will_use_fallback_tier_using_node_attributes_notice'; +export { WillUseFallbackTierUsingNodeAttributesNotice } from './will_fallback_nodes_notice'; export { NoTiersAvailableNotice } from './no_tiers_available_notice'; -export { NoTiersAvailableUsingNodeAttributesNotice } from './no_tiers_available_using_node_attributes_notice'; +export { NoTiersAvailableUsingNodeAttributesNotice } from './no_tiers_nodes_notice'; export { DefaultToDataTiersNotice } from './default_to_data_tiers_notice'; diff --git a/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/no_tiers_available_using_node_attributes_notice.tsx b/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/no_tiers_nodes_notice.tsx similarity index 100% rename from x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/no_tiers_available_using_node_attributes_notice.tsx rename to x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/no_tiers_nodes_notice.tsx diff --git a/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/will_use_fallback_tier_using_node_attributes_notice.tsx b/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/will_fallback_nodes_notice.tsx similarity index 100% rename from x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/will_use_fallback_tier_using_node_attributes_notice.tsx rename to x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/components/will_fallback_nodes_notice.tsx diff --git a/x-pack/plugins/index_management/kibana.json b/x-pack/plugins/index_management/kibana.json deleted file mode 100644 index 456ce830f6b57e..00000000000000 --- a/x-pack/plugins/index_management/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "indexManagement", - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["home", "management", "features", "share"], - "optionalPlugins": ["security", "usageCollection", "fleet"], - "configPath": ["xpack", "index_management"], - "requiredBundles": ["kibanaReact", "esUiShared", "runtimeFields"] -} diff --git a/x-pack/plugins/index_management/kibana.jsonc b/x-pack/plugins/index_management/kibana.jsonc new file mode 100644 index 00000000000000..47171db66450d9 --- /dev/null +++ b/x-pack/plugins/index_management/kibana.jsonc @@ -0,0 +1,30 @@ +{ + "type": "plugin", + "id": "@kbn/index-management-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "indexManagement", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "index_management" + ], + "requiredPlugins": [ + "home", + "management", + "features", + "share" + ], + "optionalPlugins": [ + "security", + "usageCollection", + "fleet" + ], + "requiredBundles": [ + "kibanaReact", + "esUiShared", + "runtimeFields" + ] + } +} diff --git a/x-pack/plugins/infra/kibana.json b/x-pack/plugins/infra/kibana.json deleted file mode 100644 index 80304b137fc927..00000000000000 --- a/x-pack/plugins/infra/kibana.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id": "infra", - "version": "8.0.0", - "kibanaVersion": "kibana", - "requiredPlugins": [ - "share", - "features", - "usageCollection", - "spaces", - "embeddable", - "data", - "dataViews", - "visTypeTimeseries", - "alerting", - "lens", - "triggersActionsUi", - "observability", - "ruleRegistry", - "unifiedSearch" - ], - "optionalPlugins": [ - "ml", - "home", - "embeddable", - "osquery" - ], - "server": true, - "ui": true, - "configPath": [ - "xpack", - "infra" - ], - "requiredBundles": [ - "unifiedSearch", - "observability", - "licenseManagement", - "kibanaUtils", - "kibanaReact", - "ml", - "embeddable", - "controls" - ], - "owner": { - "name": "Logs and Metrics UI", - "githubTeam": "logs-metrics-ui" - }, - "description": "This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions" -} \ No newline at end of file diff --git a/x-pack/plugins/infra/kibana.jsonc b/x-pack/plugins/infra/kibana.jsonc new file mode 100644 index 00000000000000..4e0845922ad8c6 --- /dev/null +++ b/x-pack/plugins/infra/kibana.jsonc @@ -0,0 +1,47 @@ +{ + "type": "plugin", + "id": "@kbn/infra-plugin", + "owner": "@elastic/infra-monitoring-ui", + "description": "This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions", + "plugin": { + "id": "infra", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "infra" + ], + "requiredPlugins": [ + "share", + "features", + "usageCollection", + "spaces", + "embeddable", + "data", + "dataViews", + "visTypeTimeseries", + "alerting", + "lens", + "triggersActionsUi", + "observability", + "ruleRegistry", + "unifiedSearch" + ], + "optionalPlugins": [ + "ml", + "home", + "embeddable", + "osquery" + ], + "requiredBundles": [ + "unifiedSearch", + "observability", + "licenseManagement", + "kibanaUtils", + "kibanaReact", + "ml", + "embeddable", + "controls" + ] + } +} diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/experimental_badge.tsx b/x-pack/plugins/infra/public/components/experimental_badge.tsx similarity index 100% rename from x-pack/plugins/infra/public/pages/metrics/hosts/components/experimental_badge.tsx rename to x-pack/plugins/infra/public/components/experimental_badge.tsx diff --git a/x-pack/plugins/infra/public/components/try_it_button.tsx b/x-pack/plugins/infra/public/components/try_it_button.tsx new file mode 100644 index 00000000000000..eeb9d68a93a692 --- /dev/null +++ b/x-pack/plugins/infra/public/components/try_it_button.tsx @@ -0,0 +1,77 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiBetaBadge, EuiLink } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { LinkDescriptor, useLinkProps } from '@kbn/observability-plugin/public'; +import { css } from '@emotion/react'; +import { EuiLinkColor } from '@elastic/eui'; +import { ExperimentalBadge } from './experimental_badge'; + +interface Props { + color?: EuiLinkColor; + 'data-test-subj'?: string; + experimental?: boolean; + label: string; + link: LinkDescriptor; + hideBadge?: boolean; + onClick?: () => void; +} +export const TryItButton = ({ + label, + link, + color = 'primary', + experimental = false, + hideBadge = false, + onClick, + ...props +}: Props) => { + const linkProps = useLinkProps({ ...link }); + + return ( + + {!hideBadge && ( + + + + + + )} + + + + + {experimental && ( + + + + )} + {label} + + + + + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/enable_hosts_view_page.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/enable_hosts_view_page.tsx index 07f73d5c5c360a..886de82f1e9b85 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/enable_hosts_view_page.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/enable_hosts_view_page.tsx @@ -13,7 +13,7 @@ import { i18n } from '@kbn/i18n'; import { useTrackPageview } from '@kbn/observability-plugin/public'; import { MetricsPageTemplate } from '../../../page_template'; import hostsLandingBeta from './hosts_landing_beta.svg'; -import { ExperimentalBadge } from '../experimental_badge'; +import { ExperimentalBadge } from '../../../../../components/experimental_badge'; interface Props { actions?: ReactNode; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/index.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/index.tsx index fcee32404d9d36..bd2594fe28d964 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/index.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/index.tsx @@ -21,7 +21,7 @@ import { MetricsDataViewProvider } from './hooks/use_data_view'; import { fullHeightContentStyles } from '../../../page_template.styles'; import { UnifiedSearchProvider } from './hooks/use_unified_search'; import { HostContainer } from './components/hosts_container'; -import { ExperimentalBadge } from './components/experimental_badge'; +import { ExperimentalBadge } from '../../../components/experimental_badge'; const HOSTS_FEEDBACK_LINK = 'https://ela.st/host-feedback'; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/bottom_drawer.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/bottom_drawer.tsx index 87c63cef36428d..4ebaeb0d874b7a 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/bottom_drawer.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/bottom_drawer.tsx @@ -5,11 +5,13 @@ * 2.0. */ -import React, { useCallback, useState, useEffect } from 'react'; +import React, { useCallback, useState, useEffect, useRef } from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiFlexGroup, EuiFlexItem, EuiButtonEmpty } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiButtonEmpty, EuiPanel } from '@elastic/eui'; import { euiStyled } from '@kbn/kibana-react-plugin/common'; import { useUiTracker } from '@kbn/observability-plugin/public'; +import useLocalStorage from 'react-use/lib/useLocalStorage'; +import { TryItButton } from '../../../../components/try_it_button'; import { useWaffleOptionsContext } from '../hooks/use_waffle_options'; import { InfraFormatter } from '../../../../lib/lib'; import { Timeline } from './timeline/timeline'; @@ -21,14 +23,41 @@ const hideHistory = i18n.translate('xpack.infra.hideHistory', { defaultMessage: 'Hide history', }); -const TRANSITION_MS = 300; - -export const BottomDrawer: React.FC<{ - measureRef: (instance: HTMLElement | null) => void; +interface Props { interval: string; formatter: InfraFormatter; - width: number; -}> = ({ measureRef, width, interval, formatter, children }) => { + view: string; +} + +const LOCAL_STORAGE_KEY = 'inventoryUI:k8sDashboardClicked'; +const KubernetesButton = () => { + const [clicked, setClicked] = useLocalStorage(LOCAL_STORAGE_KEY, false); + const clickedRef = useRef(clicked); + return ( + { + if (!clickedRef.current) { + setClicked(true); + } + }} + hideBadge={clickedRef.current} + /> + ); +}; +export const BottomDrawer = ({ interval, formatter, view }: Props) => { const { timelineOpen, changeTimelineOpen } = useWaffleOptionsContext(); const [isOpen, setIsOpen] = useState(Boolean(timelineOpen)); @@ -44,45 +73,55 @@ export const BottomDrawer: React.FC<{ changeTimelineOpen(!isOpen); }, [isOpen, trackDrawerOpen, changeTimelineOpen]); - return ( - - - - - {isOpen ? hideHistory : showHistory} - - - - + return view === 'table' ? ( + + + + ) : ( + + + + + + {isOpen ? hideHistory : showHistory} + + + + + + + + ); }; -const BottomActionContainer = euiStyled.div<{ isOpen: boolean; outerWidth: number }>` - padding: ${(props) => props.theme.eui.euiSizeM} 0; - position: fixed; +const BottomActionContainer = euiStyled.div` + position: sticky; bottom: 0; - right: 0; - transition: transform ${TRANSITION_MS}ms; - transform: translateY(${(props) => (props.isOpen ? 0 : '224px')}); - width: ${(props) => props.outerWidth + 34}px; + left: 0; + background: ${(props) => props.theme.eui.euiColorGhost}; + width: calc(100% + ${(props) => props.theme.eui.euiSizeL} * 2); + margin-left: -${(props) => props.theme.eui.euiSizeL}; `; // Additional width comes from the padding on the EuiPageBody and inner nodes container -const BottomActionTopBar = euiStyled(EuiFlexGroup).attrs({ - justifyContent: 'spaceBetween', - alignItems: 'center', -})` - margin-bottom: 0; - height: 48px; +const BottomPanel = euiStyled(EuiPanel)` + padding: ${(props) => props.theme.eui.euiSizeL} 0; `; -const ShowHideButton = euiStyled(EuiButtonEmpty).attrs({ size: 's' })` - width: 140px; +const StickyPanel = euiStyled(EuiPanel)` + padding: 0 ${(props) => props.theme.eui.euiSizeL}; `; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/dropdown_button.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/dropdown_button.tsx index 89bc1926069442..0e4aa275a78791 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/dropdown_button.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/dropdown_button.tsx @@ -8,6 +8,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiButtonEmpty } from '@elastic/eui'; import React, { ReactNode } from 'react'; import { withTheme, EuiTheme } from '@kbn/kibana-react-plugin/common'; +import { KubernetesTour } from './kubernetes_tour'; interface Props { 'data-test-subj'?: string; @@ -15,10 +16,26 @@ interface Props { onClick: () => void; theme: EuiTheme | undefined; children: ReactNode; + showKubernetesInfo?: boolean; } +const ButtonLabel = ({ label, theme }: { label: string; theme?: EuiTheme }) => ( + + {label} + +); + export const DropdownButton = withTheme((props: Props) => { - const { onClick, label, theme, children } = props; + const { onClick, label, theme, children, showKubernetesInfo } = props; return ( { boxShadow: `0px 3px 2px ${theme?.eui.euiTableActionsBorderColor}, 0px 1px 1px ${theme?.eui.euiTableActionsBorderColor}`, }} > - - {label} - + {showKubernetesInfo ? ( + + + + ) : ( + + )} { - const link = useLinkProps({ - app: 'metrics', - pathname: '/hosts', - }); - - return ( - - - - - - - - - - {i18n.translate('xpack.infra.layout.hostsLandingPageLink', { - defaultMessage: 'Introducing a new Hosts analysis experience', - })} - - - - ); -}; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/kubernetes_tour.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/kubernetes_tour.tsx new file mode 100644 index 00000000000000..787aa9f416266b --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/kubernetes_tour.tsx @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { ReactElement } from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiTourStep, EuiText, EuiButtonEmpty } from '@elastic/eui'; +import useLocalStorage from 'react-use/lib/useLocalStorage'; + +interface Props { + children: ReactElement; +} + +export const KUBERNETES_TOUR_STORAGE_KEY = 'isKubernetesTourSeen'; + +export const KubernetesTour = ({ children }: Props) => { + const [isTourSeen, setIsTourSeen] = useLocalStorage(KUBERNETES_TOUR_STORAGE_KEY, false); + const markTourAsSeen = () => setIsTourSeen(true); + + return ( +
    + + {i18n.translate('xpack.infra.homePage.kubernetesTour.text', { + defaultMessage: + 'Click here to see your infrastructure in different ways, including Kubernetes pods.', + })} + + } + isStepOpen={!isTourSeen} + maxWidth={350} + onFinish={markTourAsSeen} + step={1} + stepsTotal={1} + title={i18n.translate('xpack.infra.homePage.kubernetesTour.title', { + defaultMessage: 'Want a different view?', + })} + anchorPosition="downCenter" + footerAction={ + + {i18n.translate('xpack.infra.homePage.kubernetesTour.dismiss', { + defaultMessage: 'Dismiss', + })} + + } + > + {children} + +
    + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx index 4bcf2c192d4368..8938e1960d3d95 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx @@ -7,9 +7,10 @@ import React, { useCallback, useEffect, useState } from 'react'; import useInterval from 'react-use/lib/useInterval'; - +import { css } from '@emotion/react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { euiStyled } from '@kbn/kibana-react-plugin/common'; +import { i18n } from '@kbn/i18n'; import { SnapshotNode } from '../../../../../common/http_api'; import { SavedView } from '../../../../containers/saved_view/saved_view'; import { AutoSizer } from '../../../../components/auto_sizer'; @@ -31,7 +32,7 @@ import { createLegend } from '../lib/create_legend'; import { useWaffleViewState } from '../hooks/use_waffle_view_state'; import { BottomDrawer } from './bottom_drawer'; import { LegendControls } from './waffle/legend_controls'; -import { HostViewIntroPanel } from './hosts_view_intro_panel'; +import { TryItButton } from '../../../../components/try_it_button'; interface Props { shouldLoadDefault: boolean; @@ -141,92 +142,83 @@ export const Layout = React.memo( return ( <> - - {({ measureRef: pageMeasureRef, bounds: { width = 0 } }) => ( - - - {({ - measureRef: topActionMeasureRef, - bounds: { height: topActionHeight = 0 }, - }) => ( - <> - - - - - {view === 'map' && ( - - - - )} - - - - - - - - - {({ measureRef, bounds: { height = 0 } }) => ( - <> - - {view === 'map' && ( - - )} - - )} - - + + + + + + {view === 'map' && ( + + + )} - - - )} - + + + +
    +
    + + + + + + + {({ bounds: { height = 0 } }) => ( + + )} + + + + ); } ); -const MainContainer = euiStyled.div` - position: relative; - flex: 1 1 auto; -`; - -const TopActionContainer = euiStyled.div` - padding: ${(props) => `12px ${props.theme.eui.euiSizeM}`}; +const TopActionContainer = euiStyled(EuiFlexItem)` + padding: ${(props) => `${props.theme.eui.euiSizeM} 0`}; `; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/nodes_overview.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/nodes_overview.tsx index 0e6a47b2417c79..c7d5e425efbabb 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/nodes_overview.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/nodes_overview.tsx @@ -38,7 +38,6 @@ interface Props { autoBounds: boolean; formatter: InfraFormatter; bottomMargin: number; - topMargin: number; showLoading: boolean; } @@ -55,7 +54,6 @@ export const NodesOverview = ({ formatter, onDrilldown, bottomMargin, - topMargin, showLoading, }: Props) => { const currentBreakpoint = useCurrentEuiBreakpoint(); @@ -121,7 +119,7 @@ export const NodesOverview = ({ ); } return ( - + props.theme.eui.euiSizeL}; `; -const MapContainer = euiStyled.div<{ top: number; positionStatic: boolean }>` +const MapContainer = euiStyled.div<{ positionStatic: boolean }>` position: ${(props) => (props.positionStatic ? 'static' : 'absolute')}; display: flex; - top: ${(props) => props.top}px; + top: 0; right: 0; bottom: 0; left: 0; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/survey_kubernetes.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/survey_kubernetes.tsx new file mode 100644 index 00000000000000..b92e27c0b58f83 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/survey_kubernetes.tsx @@ -0,0 +1,90 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiGlobalToastList } from '@elastic/eui'; +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import useLocalStorage from 'react-use/lib/useLocalStorage'; +import { useWaffleOptionsContext } from '../hooks/use_waffle_options'; + +const KUBERNETES_TOAST_STORAGE_KEY = 'kubernetesToastKey'; +const KUBERNETES_FEEDBACK_LINK = 'https://ela.st/k8s-feedback'; + +export const SurveyKubernetes = () => { + const { nodeType } = useWaffleOptionsContext(); + const podNodeType: typeof nodeType = 'pod'; + + const [isToastSeen, setIsToastSeen] = useLocalStorage(KUBERNETES_TOAST_STORAGE_KEY, false); + const markToastAsSeen = () => setIsToastSeen(true); + + return ( + <> + {nodeType === podNodeType && ( + <> + + + + {!isToastSeen && ( + + ), + color: 'primary', + iconType: 'help', + toastLifeTimeMs: 0x7fffffff, // Biggest possible lifetime because we control when it should be visible using isToastSeen + text: ( + <> +

    + +

    + + + + + + + + + ), + }, + ]} + /> + )} + + )} + + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/map.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/map.tsx index a4558d6a7e9b0c..6a0a6dad79eab3 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/map.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/map.tsx @@ -115,5 +115,4 @@ const WaffleMapInnerContainer = euiStyled.div` flex-wrap: wrap; justify-content: center; align-content: flex-start; - padding: 10px; `; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_inventory_switcher.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_inventory_switcher.tsx index 6234dcc0bbf0be..e3ca9b770e2efa 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_inventory_switcher.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_inventory_switcher.tsx @@ -124,6 +124,7 @@ export const WaffleInventorySwitcher: React.FC = () => { data-test-subj={'openInventorySwitcher'} onClick={openPopover} label={i18n.translate('xpack.infra.waffle.showLabel', { defaultMessage: 'Show' })} + showKubernetesInfo={true} > {selectedText} diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/index.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/index.tsx index 77b8e9a35a64eb..d0f7e56cf17c8b 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/index.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/index.tsx @@ -9,6 +9,7 @@ import { EuiErrorBoundary } from '@elastic/eui'; import React from 'react'; import { useTrackPageview } from '@kbn/observability-plugin/public'; import { APP_WRAPPER_CLASS } from '@kbn/core/public'; +import { css } from '@emotion/react'; import { FilterBar } from './components/filter_bar'; import { SourceErrorPage } from '../../../components/source_error_page'; import { SourceLoadingPage } from '../../../components/source_loading_page'; @@ -23,6 +24,7 @@ import { inventoryTitle } from '../../../translations'; import { SavedViews } from './components/saved_views'; import { SnapshotContainer } from './components/snapshot_container'; import { fullHeightContentStyles } from '../../../page_template.styles'; +import { SurveyKubernetes } from './components/survey_kubernetes'; export const SnapshotPage = () => { const { @@ -59,11 +61,14 @@ export const SnapshotPage = () => { hasData={metricIndicesExist} pageHeader={{ pageTitle: inventoryTitle, - rightSideItems: [], + rightSideItems: [, ], }} pageSectionProps={{ contentProps: { - css: fullHeightContentStyles, + css: css` + ${fullHeightContentStyles}; + padding-bottom: 0; + `, }, }} > diff --git a/x-pack/plugins/infra/server/lib/alerting/common/messages.ts b/x-pack/plugins/infra/server/lib/alerting/common/messages.ts index ab7b0490aa9015..9a7c9d2764486e 100644 --- a/x-pack/plugins/infra/server/lib/alerting/common/messages.ts +++ b/x-pack/plugins/infra/server/lib/alerting/common/messages.ts @@ -162,13 +162,6 @@ export const buildInvalidQueryAlertReason = (filterQueryText: string) => }, }); -export const groupActionVariableDescription = i18n.translate( - 'xpack.infra.metrics.alerting.groupActionVariableDescription', - { - defaultMessage: 'Name of the group reporting data', - } -); - export const groupByKeysActionVariableDescription = i18n.translate( 'xpack.infra.metrics.alerting.groupByKeysActionVariableDescription', { diff --git a/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/register_inventory_metric_threshold_rule_type.ts b/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/register_inventory_metric_threshold_rule_type.ts index b0b8a13562febd..998a0d7051f0a9 100644 --- a/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/register_inventory_metric_threshold_rule_type.ts +++ b/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/register_inventory_metric_threshold_rule_type.ts @@ -28,7 +28,6 @@ import { alertStateActionVariableDescription, cloudActionVariableDescription, containerActionVariableDescription, - groupActionVariableDescription, hostActionVariableDescription, labelsActionVariableDescription, metricActionVariableDescription, @@ -75,6 +74,13 @@ const condition = schema.object({ ), }); +const groupActionVariableDescription = i18n.translate( + 'xpack.infra.inventory.alerting.groupActionVariableDescription', + { + defaultMessage: 'Name of the group reporting data', + } +); + export async function registerMetricInventoryThresholdRuleType( alertingPlugin: PluginSetupContract, libs: InfraBackendLibs diff --git a/x-pack/plugins/infra/server/lib/alerting/log_threshold/register_log_threshold_rule_type.ts b/x-pack/plugins/infra/server/lib/alerting/log_threshold/register_log_threshold_rule_type.ts index 3cd1dcee6f4e89..09f46c98c17198 100644 --- a/x-pack/plugins/infra/server/lib/alerting/log_threshold/register_log_threshold_rule_type.ts +++ b/x-pack/plugins/infra/server/lib/alerting/log_threshold/register_log_threshold_rule_type.ts @@ -51,7 +51,8 @@ const conditionsActionVariableDescription = i18n.translate( const groupByActionVariableDescription = i18n.translate( 'xpack.infra.logs.alerting.threshold.groupByActionVariableDescription', { - defaultMessage: 'The name of the group responsible for triggering the alert', + defaultMessage: + 'The name of the group(s) responsible for triggering the alert. For accessing each group key, use context.groupByKeys.', } ); diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts index 85059a2ee62334..a94521c22bde45 100644 --- a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts +++ b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts @@ -115,6 +115,8 @@ const mockOptions = { producer: '', ruleTypeId: '', ruleTypeName: '', + muteAll: false, + snoozeSchedule: [], }, logger, flappingSettings: DEFAULT_FLAPPING_SETTINGS, diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/register_metric_threshold_rule_type.ts b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/register_metric_threshold_rule_type.ts index b9d069db244fbc..2b7074ac2956e5 100644 --- a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/register_metric_threshold_rule_type.ts +++ b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/register_metric_threshold_rule_type.ts @@ -17,7 +17,6 @@ import { alertStateActionVariableDescription, cloudActionVariableDescription, containerActionVariableDescription, - groupActionVariableDescription, groupByKeysActionVariableDescription, hostActionVariableDescription, labelsActionVariableDescription, @@ -108,6 +107,14 @@ export async function registerMetricThresholdRuleType( label: schema.maybe(schema.string()), }); + const groupActionVariableDescription = i18n.translate( + 'xpack.infra.metrics.alerting.groupActionVariableDescription', + { + defaultMessage: + 'Name of the group(s) reporting data. For accessing each group key, use context.groupByKeys.', + } + ); + alertingPlugin.registerType({ id: METRIC_THRESHOLD_ALERT_TYPE_ID, name: i18n.translate('xpack.infra.metrics.alertName', { diff --git a/x-pack/plugins/ingest_pipelines/__jest__/client_integration/helpers/pipeline_form.helpers.ts b/x-pack/plugins/ingest_pipelines/__jest__/client_integration/helpers/pipeline_form.helpers.ts index 775d05a8651895..b4014eca857754 100644 --- a/x-pack/plugins/ingest_pipelines/__jest__/client_integration/helpers/pipeline_form.helpers.ts +++ b/x-pack/plugins/ingest_pipelines/__jest__/client_integration/helpers/pipeline_form.helpers.ts @@ -37,10 +37,22 @@ export const getFormActions = (testBed: TestBed) => { component.update(); }; + const toggleMetaSwitch = () => { + act(() => { + form.toggleEuiSwitch('metaToggle'); + }); + }; + + const setMetaField = (value: object) => { + find('metaEditor').simulate('change', { jsonString: JSON.stringify(value) }); + }; + return { clickSubmitButton, clickShowRequestLink, toggleVersionSwitch, + toggleMetaSwitch, + setMetaField, }; }; @@ -54,6 +66,8 @@ export type PipelineFormTestSubjects = | 'pipelineForm' | 'versionToggle' | 'versionField' + | 'metaToggle' + | 'metaEditor' | 'nameField.input' | 'descriptionField.input' | 'processorsEditor' diff --git a/x-pack/plugins/ingest_pipelines/__jest__/client_integration/ingest_pipelines_create.test.tsx b/x-pack/plugins/ingest_pipelines/__jest__/client_integration/ingest_pipelines_create.test.tsx index f67d9d24ed6900..fe371138487e89 100644 --- a/x-pack/plugins/ingest_pipelines/__jest__/client_integration/ingest_pipelines_create.test.tsx +++ b/x-pack/plugins/ingest_pipelines/__jest__/client_integration/ingest_pipelines_create.test.tsx @@ -8,6 +8,7 @@ import React from 'react'; import { act } from 'react-dom/test-utils'; +import '@kbn/es-ui-shared-plugin/public/components/code_editor/jest_mock'; import { setupEnvironment, pageHelpers } from './helpers'; import { API_BASE_PATH } from '../../common/constants'; import { PipelinesCreateTestBed } from './helpers/pipelines_create.helpers'; @@ -70,6 +71,21 @@ describe('', () => { expect(exists('versionField')).toBe(true); }); + test('should toggle the _meta field', async () => { + const { exists, component, actions } = testBed; + + // Meta editor should be hidden by default + expect(exists('metaEditor')).toBe(false); + + await act(async () => { + actions.toggleMetaSwitch(); + }); + + component.update(); + + expect(exists('metaEditor')).toBe(true); + }); + test('should show the request flyout', async () => { const { actions, find, exists } = testBed; @@ -134,7 +150,19 @@ describe('', () => { }); test('should send the correct payload', async () => { - const { actions } = testBed; + const { component, actions } = testBed; + + await act(async () => { + actions.toggleMetaSwitch(); + }); + component.update(); + const metaData = { + field1: 'hello', + field2: 10, + }; + await act(async () => { + actions.setMetaField(metaData); + }); await actions.clickSubmitButton(); @@ -144,6 +172,7 @@ describe('', () => { body: JSON.stringify({ name: 'my_pipeline', description: 'pipeline description', + _meta: metaData, processors: [], }), }) diff --git a/x-pack/plugins/ingest_pipelines/common/types.ts b/x-pack/plugins/ingest_pipelines/common/types.ts index 2419d2b7975f03..69c4b6c52b4b83 100644 --- a/x-pack/plugins/ingest_pipelines/common/types.ts +++ b/x-pack/plugins/ingest_pipelines/common/types.ts @@ -22,6 +22,7 @@ export interface Pipeline { description?: string; version?: number; processors: Processor[]; + _meta?: { [key: string]: any }; on_failure?: Processor[]; isManaged?: boolean; } diff --git a/x-pack/plugins/ingest_pipelines/kibana.json b/x-pack/plugins/ingest_pipelines/kibana.json deleted file mode 100644 index b43c7c20b9bc11..00000000000000 --- a/x-pack/plugins/ingest_pipelines/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "ingestPipelines", - "version": "8.2.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": ["management", "features", "share", "fileUpload"], - "optionalPlugins": ["security", "usageCollection"], - "configPath": ["xpack", "ingest_pipelines"], - "requiredBundles": ["esUiShared", "kibanaReact"] -} diff --git a/x-pack/plugins/ingest_pipelines/kibana.jsonc b/x-pack/plugins/ingest_pipelines/kibana.jsonc new file mode 100644 index 00000000000000..29ce5892764b76 --- /dev/null +++ b/x-pack/plugins/ingest_pipelines/kibana.jsonc @@ -0,0 +1,28 @@ +{ + "type": "plugin", + "id": "@kbn/ingest-pipelines-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "ingestPipelines", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "ingest_pipelines" + ], + "requiredPlugins": [ + "management", + "features", + "share", + "fileUpload" + ], + "optionalPlugins": [ + "security", + "usageCollection" + ], + "requiredBundles": [ + "esUiShared", + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx index ebb177f504c702..65e19b2178baf4 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx @@ -36,6 +36,7 @@ const defaultFormValue: Pipeline = Object.freeze({ description: '', processors: [], on_failure: [], + _meta: {}, }); export const PipelineForm: React.FunctionComponent = ({ @@ -131,6 +132,7 @@ export const PipelineForm: React.FunctionComponent = ({ onFailure={processorsState.onFailure} onProcessorsUpdate={onProcessorsChangeHandler} hasVersion={Boolean(defaultValue.version)} + hasMeta={Boolean(defaultValue._meta && Object.keys(defaultValue._meta).length)} isEditing={isEditing} canEditName={canEditName} /> diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form_fields.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form_fields.tsx index aac3fa29144671..ce9a05f666be0e 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form_fields.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form_fields.tsx @@ -9,9 +9,10 @@ import React, { useState } from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; import { EuiSpacer, EuiSwitch } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; import { Processor } from '../../../../common/types'; -import { getUseField, getFormRow, Field } from '../../../shared_imports'; +import { getUseField, getFormRow, Field, JsonEditorField } from '../../../shared_imports'; import { ProcessorsEditorContextProvider, @@ -26,6 +27,7 @@ interface Props { onLoadJson: OnDoneLoadJsonHandler; onProcessorsUpdate: OnUpdateHandler; hasVersion: boolean; + hasMeta: boolean; onEditorFlyoutOpen: () => void; isEditing?: boolean; canEditName?: boolean; @@ -41,11 +43,14 @@ export const PipelineFormFields: React.FunctionComponent = ({ onProcessorsUpdate, isEditing, hasVersion, + hasMeta, onEditorFlyoutOpen, canEditName, }) => { const [isVersionVisible, setIsVersionVisible] = useState(hasVersion); + const [isMetaVisible, setIsMetaVisible] = useState(hasMeta); + return ( <> {/* Name field with optional version field */} @@ -124,6 +129,51 @@ export const PipelineFormFields: React.FunctionComponent = ({ > + + {/* _meta field */} + + } + description={ + <> + + + + + + } + checked={isMetaVisible} + onChange={(e) => setIsMetaVisible(e.target.checked)} + data-test-subj="metaToggle" + /> + + } + > + {isMetaVisible && ( + + )} + ); }; diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.ts b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.ts deleted file mode 100644 index a51779456786f0..00000000000000 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import { FormSchema, FIELD_TYPES, fieldValidators, fieldFormatters } from '../../../shared_imports'; - -import { PipelineForm } from './types'; - -const { emptyField } = fieldValidators; -const { toInt } = fieldFormatters; - -export const pipelineFormSchema: FormSchema = { - name: { - type: FIELD_TYPES.TEXT, - label: i18n.translate('xpack.ingestPipelines.form.nameFieldLabel', { - defaultMessage: 'Name', - }), - validations: [ - { - validator: emptyField( - i18n.translate('xpack.ingestPipelines.form.pipelineNameRequiredError', { - defaultMessage: 'Name is required.', - }) - ), - }, - ], - }, - description: { - type: FIELD_TYPES.TEXTAREA, - label: i18n.translate('xpack.ingestPipelines.form.descriptionFieldLabel', { - defaultMessage: 'Description (optional)', - }), - }, - version: { - type: FIELD_TYPES.NUMBER, - label: i18n.translate('xpack.ingestPipelines.form.versionFieldLabel', { - defaultMessage: 'Version (optional)', - }), - formatters: [toInt], - }, -}; diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.tsx new file mode 100644 index 00000000000000..41635b9767da2c --- /dev/null +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.tsx @@ -0,0 +1,80 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { EuiCode } from '@elastic/eui'; +import React from 'react'; +import { parseJson, stringifyJson } from '../../lib/utils'; +import { FormSchema, FIELD_TYPES, fieldValidators, fieldFormatters } from '../../../shared_imports'; + +const { emptyField, isJsonField } = fieldValidators; +const { toInt } = fieldFormatters; + +export const pipelineFormSchema: FormSchema = { + name: { + type: FIELD_TYPES.TEXT, + label: i18n.translate('xpack.ingestPipelines.form.nameFieldLabel', { + defaultMessage: 'Name', + }), + validations: [ + { + validator: emptyField( + i18n.translate('xpack.ingestPipelines.form.pipelineNameRequiredError', { + defaultMessage: 'Name is required.', + }) + ), + }, + ], + }, + description: { + type: FIELD_TYPES.TEXTAREA, + label: i18n.translate('xpack.ingestPipelines.form.descriptionFieldLabel', { + defaultMessage: 'Description (optional)', + }), + }, + version: { + type: FIELD_TYPES.NUMBER, + label: i18n.translate('xpack.ingestPipelines.form.versionFieldLabel', { + defaultMessage: 'Version (optional)', + }), + formatters: [toInt], + }, + _meta: { + label: i18n.translate('xpack.ingestPipelines.form.metaFieldLabel', { + defaultMessage: '_meta field data (optional)', + }), + helpText: ( + {JSON.stringify({ arbitrary_data: 'anything_goes' })}, + }} + /> + ), + serializer: (value) => { + const result = parseJson(value, false); + // If an empty object was passed, strip out this value entirely. + if (!Object.keys(result).length) { + return undefined; + } + return result; + }, + deserializer: (value) => stringifyJson(value, false), + validations: [ + { + validator: isJsonField( + i18n.translate('xpack.ingestPipelines.form.validation.metaJsonError', { + defaultMessage: 'The input is not valid.', + }), + { allowEmptyString: true } + ), + }, + ], + }, +}; diff --git a/x-pack/plugins/ingest_pipelines/public/application/lib/utils.test.ts b/x-pack/plugins/ingest_pipelines/public/application/lib/utils.test.ts index 9005e7e5cfd639..7a7290b3f1de45 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/lib/utils.test.ts +++ b/x-pack/plugins/ingest_pipelines/public/application/lib/utils.test.ts @@ -9,31 +9,63 @@ import { stringifyJson, parseJson } from './utils'; describe('utils', () => { describe('stringifyJson()', () => { - it('should stringify a valid JSON array', () => { - expect(stringifyJson([1, 2, 3])).toEqual(`[ + describe('when rendering as an array', () => { + it('should stringify a valid JSON array', () => { + expect(stringifyJson([1, 2, 3])).toEqual(`[ 1, 2, 3 ]`); + }); + + it('should return a stringified empty array if the value is not a valid JSON array', () => { + expect(stringifyJson({})).toEqual('[\n\n]'); + }); }); - it('should return a stringified empty array if the value is not a valid JSON array', () => { - expect(stringifyJson({})).toEqual('[\n\n]'); + describe('when rendering as an object', () => { + it('should stringify a valid JSON object', () => { + expect(stringifyJson({ field_1: 'hello', field_2: 5, field_3: true }, false)).toEqual(`{ + "field_1": "hello", + "field_2": 5, + "field_3": true +}`); + }); + + it('should return a stringified empty object if the value is not a valid JSON object', () => { + expect(stringifyJson([1, 2, 3], false)).toEqual('{\n\n}'); + expect(stringifyJson('test', false)).toEqual('{\n\n}'); + expect(stringifyJson(10, false)).toEqual('{\n\n}'); + }); }); }); describe('parseJson()', () => { - it('should parse a valid JSON string', () => { - expect(parseJson('[1,2,3]')).toEqual([1, 2, 3]); - expect(parseJson('[{"foo": "bar"}]')).toEqual([{ foo: 'bar' }]); - }); + describe('when rendering as an array', () => { + it('should parse a valid JSON string', () => { + expect(parseJson('[1,2,3]')).toEqual([1, 2, 3]); + expect(parseJson('[{"foo": "bar"}]')).toEqual([{ foo: 'bar' }]); + }); - it('should convert valid JSON that is not an array to an array', () => { - expect(parseJson('{"foo": "bar"}')).toEqual([{ foo: 'bar' }]); + it('should convert valid JSON that is not an array to an array', () => { + expect(parseJson('{"foo": "bar"}')).toEqual([{ foo: 'bar' }]); + }); + + it('should return an empty array if invalid JSON string', () => { + expect(parseJson('{invalidJsonString}')).toEqual([]); + }); }); - it('should return an empty array if invalid JSON string', () => { - expect(parseJson('{invalidJsonString}')).toEqual([]); + describe('when rendering as an object', () => { + it('should parse a valid JSON string', () => { + expect(parseJson('{"foo": "bar"}', false)).toEqual({ foo: 'bar' }); + expect(parseJson('{}', false)).toEqual({}); + }); + + it('should return an empty object if invalid JSON string', () => { + expect(parseJson('{invalidJsonString}', false)).toEqual({}); + expect(parseJson('[invalidJsonString]', false)).toEqual({}); + }); }); }); }); diff --git a/x-pack/plugins/ingest_pipelines/public/application/lib/utils.ts b/x-pack/plugins/ingest_pipelines/public/application/lib/utils.ts index d3eb5233e87c17..c789bc013a9ff8 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/lib/utils.ts +++ b/x-pack/plugins/ingest_pipelines/public/application/lib/utils.ts @@ -5,21 +5,26 @@ * 2.0. */ -export const stringifyJson = (json: any): string => - Array.isArray(json) ? JSON.stringify(json, null, 2) : '[\n\n]'; +export const stringifyJson = (json: any, renderAsArray: boolean = true): string => + (renderAsArray && Array.isArray(json)) || + (!renderAsArray && json && typeof json === 'object' && !Array.isArray(json)) + ? JSON.stringify(json, null, 2) + : renderAsArray + ? '[\n\n]' + : '{\n\n}'; -export const parseJson = (jsonString: string): object[] => { +export const parseJson = (jsonString: string, renderAsArray: boolean = true): object[] => { let parsedJSON: any; try { parsedJSON = JSON.parse(jsonString); - if (!Array.isArray(parsedJSON)) { + if (renderAsArray && !Array.isArray(parsedJSON)) { // Convert object to array parsedJSON = [parsedJSON]; } } catch { - parsedJSON = []; + parsedJSON = renderAsArray ? [] : {}; } return parsedJSON; diff --git a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/details_flyout.tsx b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/details_flyout.tsx index 98db398f486cff..9723a264a565df 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/details_flyout.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/details_flyout.tsx @@ -25,11 +25,13 @@ import { EuiContextMenu, EuiButton, EuiBadge, + EuiCodeBlock, } from '@elastic/eui'; import { Pipeline } from '../../../../common/types'; import { PipelineDetailsJsonBlock } from './details_json_block'; +import { stringifyJson } from '../../lib/utils'; export interface Props { pipeline: Pipeline; @@ -186,6 +188,21 @@ export const PipelineDetailsFlyout: FunctionComponent = ({ )} + + {/* Metadata (optional) */} + {pipeline._meta && ( + <> + + + + + {stringifyJson(pipeline._meta, false)} + + + )} diff --git a/x-pack/plugins/ingest_pipelines/server/routes/api/create.ts b/x-pack/plugins/ingest_pipelines/server/routes/api/create.ts index 1e59151f738850..4ec2d54b0280f8 100644 --- a/x-pack/plugins/ingest_pipelines/server/routes/api/create.ts +++ b/x-pack/plugins/ingest_pipelines/server/routes/api/create.ts @@ -34,7 +34,7 @@ export const registerCreateRoute = ({ const pipeline = req.body as Pipeline; // eslint-disable-next-line @typescript-eslint/naming-convention - const { name, description, processors, version, on_failure } = pipeline; + const { name, description, processors, version, on_failure, _meta } = pipeline; try { // Check that a pipeline with the same name doesn't already exist @@ -66,6 +66,7 @@ export const registerCreateRoute = ({ processors, version, on_failure, + _meta, }, }); diff --git a/x-pack/plugins/ingest_pipelines/server/routes/api/shared/pipeline_schema.ts b/x-pack/plugins/ingest_pipelines/server/routes/api/shared/pipeline_schema.ts index c33dc50d39af21..d5a7f4221647f4 100644 --- a/x-pack/plugins/ingest_pipelines/server/routes/api/shared/pipeline_schema.ts +++ b/x-pack/plugins/ingest_pipelines/server/routes/api/shared/pipeline_schema.ts @@ -12,4 +12,5 @@ export const pipelineSchema = { processors: schema.arrayOf(schema.recordOf(schema.string(), schema.any())), version: schema.maybe(schema.number()), on_failure: schema.maybe(schema.arrayOf(schema.recordOf(schema.string(), schema.any()))), + _meta: schema.maybe(schema.object({}, { unknowns: 'allow' })), }; diff --git a/x-pack/plugins/ingest_pipelines/server/routes/api/update.ts b/x-pack/plugins/ingest_pipelines/server/routes/api/update.ts index 5b1b032c8aedb3..3ed888e2540092 100644 --- a/x-pack/plugins/ingest_pipelines/server/routes/api/update.ts +++ b/x-pack/plugins/ingest_pipelines/server/routes/api/update.ts @@ -33,7 +33,7 @@ export const registerUpdateRoute = ({ const { client: clusterClient } = (await ctx.core).elasticsearch; const { name } = req.params; // eslint-disable-next-line @typescript-eslint/naming-convention - const { description, processors, version, on_failure } = req.body; + const { description, processors, version, on_failure, _meta } = req.body; try { // Verify pipeline exists; ES will throw 404 if it doesn't @@ -46,6 +46,7 @@ export const registerUpdateRoute = ({ processors, version, on_failure, + _meta, }, }); diff --git a/x-pack/plugins/kubernetes_security/kibana.json b/x-pack/plugins/kubernetes_security/kibana.json deleted file mode 100644 index 9d0bb40a89890c..00000000000000 --- a/x-pack/plugins/kubernetes_security/kibana.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "kubernetesSecurity", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Security Team", - "githubTeam": "security-team" - }, - "requiredPlugins": [ - "data", - "timelines", - "ruleRegistry", - "sessionView" - ], - "requiredBundles": [ - "kibanaReact" - ], - "server": true, - "ui": true -} diff --git a/x-pack/plugins/kubernetes_security/kibana.jsonc b/x-pack/plugins/kubernetes_security/kibana.jsonc new file mode 100644 index 00000000000000..e17a5dcde69d53 --- /dev/null +++ b/x-pack/plugins/kubernetes_security/kibana.jsonc @@ -0,0 +1,19 @@ +{ + "type": "plugin", + "id": "@kbn/kubernetes-security-plugin", + "owner": "@elastic/awp-viz", + "plugin": { + "id": "kubernetesSecurity", + "server": true, + "browser": true, + "requiredPlugins": [ + "data", + "timelines", + "ruleRegistry", + "sessionView" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/kubernetes_security/package.json b/x-pack/plugins/kubernetes_security/package.json index 93c8f2611108b6..0f322f0649f66a 100644 --- a/x-pack/plugins/kubernetes_security/package.json +++ b/x-pack/plugins/kubernetes_security/package.json @@ -1,9 +1,9 @@ { "author": "Elastic", - "name": "kubernetes_security", + "name": "@kbn/kubernetes-security-plugin", "version": "1.0.0", "private": true, - "license": "Elastic-License", + "license": "Elastic License 2.0", "scripts": { "test:jest": "node ../../scripts/jest", "test:coverage": "node ../../scripts/jest --coverage" diff --git a/x-pack/plugins/lens/kibana.json b/x-pack/plugins/lens/kibana.json deleted file mode 100644 index f814c0700d409a..00000000000000 --- a/x-pack/plugins/lens/kibana.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "id": "lens", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "requiredPlugins": [ - "data", - "dataViews", - "charts", - "expressions", - "fieldFormats", - "inspector", - "navigation", - "urlForwarding", - "visualizations", - "dashboard", - "uiActions", - "uiActionsEnhanced", - "embeddable", - "share", - "presentationUtil", - "dataViewFieldEditor", - "dataViewEditor", - "expressionGauge", - "expressionMetricVis", - "expressionHeatmap", - "expressionXY", - "eventAnnotation", - "unifiedSearch", - "unifiedFieldList" - ], - "optionalPlugins": [ - "expressionLegacyMetricVis", - "expressionPartitionVis", - "usageCollection", - "taskManager", - "globalSearch", - "savedObjectsTagging", - "spaces" - ], - "configPath": ["xpack", "lens"], - "extraPublicDirs": ["common/constants"], - "requiredBundles": [ - "unifiedSearch", - "savedObjects", - "kibanaUtils", - "kibanaReact", - "embeddable", - "fieldFormats", - "charts" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-visualizations" - }, - "description": "Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana." -} diff --git a/x-pack/plugins/lens/kibana.jsonc b/x-pack/plugins/lens/kibana.jsonc new file mode 100644 index 00000000000000..2db1d1ee9a8893 --- /dev/null +++ b/x-pack/plugins/lens/kibana.jsonc @@ -0,0 +1,62 @@ +{ + "type": "plugin", + "id": "@kbn/lens-plugin", + "owner": "@elastic/kibana-visualizations", + "description": "Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana.", + "plugin": { + "id": "lens", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "lens" + ], + "requiredPlugins": [ + "data", + "dataViews", + "charts", + "expressions", + "fieldFormats", + "inspector", + "navigation", + "urlForwarding", + "visualizations", + "dashboard", + "uiActions", + "uiActionsEnhanced", + "embeddable", + "share", + "presentationUtil", + "dataViewFieldEditor", + "dataViewEditor", + "expressionGauge", + "expressionMetricVis", + "expressionHeatmap", + "expressionXY", + "eventAnnotation", + "unifiedSearch", + "unifiedFieldList" + ], + "optionalPlugins": [ + "expressionLegacyMetricVis", + "expressionPartitionVis", + "usageCollection", + "taskManager", + "globalSearch", + "savedObjectsTagging", + "spaces" + ], + "requiredBundles": [ + "unifiedSearch", + "savedObjects", + "kibanaUtils", + "kibanaReact", + "embeddable", + "fieldFormats", + "charts" + ], + "extraPublicDirs": [ + "common/constants" + ] + } +} diff --git a/x-pack/plugins/lens/public/app_plugin/mounter.tsx b/x-pack/plugins/lens/public/app_plugin/mounter.tsx index 916664feffd845..45de1597148a79 100644 --- a/x-pack/plugins/lens/public/app_plugin/mounter.tsx +++ b/x-pack/plugins/lens/public/app_plugin/mounter.tsx @@ -310,6 +310,12 @@ export async function mountApp( if (!initialContext) { data.query.filterManager.setAppFilters([]); } + // if user comes from a dashboard to convert a legacy viz to a Lens chart + // we clear up the dashboard filters and query + if (initialContext && 'isEmbeddable' in initialContext && initialContext.isEmbeddable) { + data.query.filterManager.setAppFilters([]); + data.query.queryString.clearQuery(); + } lensStore.dispatch(setState(getPreloadedState(storeDeps) as LensAppState)); lensStore.dispatch(loadInitial({ redirectCallback, initialInput, history: props.history })); }, [initialInput, props.history, redirectCallback]); diff --git a/x-pack/plugins/lens/public/data_views_service/loader.ts b/x-pack/plugins/lens/public/data_views_service/loader.ts index abd8a48815122f..bb27eec2076e34 100644 --- a/x-pack/plugins/lens/public/data_views_service/loader.ts +++ b/x-pack/plugins/lens/public/data_views_service/loader.ts @@ -176,7 +176,9 @@ export async function loadIndexPatterns({ } indexPatterns.push( ...(await Promise.all( - Object.values(adHocDataViews || {}).map((spec) => dataViews.create(spec)) + Object.values(adHocDataViews || {}).map((spec) => + dataViews.create({ ...spec, allowNoIndex: true }) + ) )) ); diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.test.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.test.tsx index be43974b7ba444..3471c82a43fa40 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.test.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.test.tsx @@ -980,9 +980,6 @@ describe('last_value', () => { "dimensionId": "col1", "id": "dimensionButton", }, - Object { - "id": "visualization", - }, Object { "id": "embeddableBadge", }, diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.tsx index 46a9335f20d1c5..1f0e50ecb2ac61 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.tsx @@ -86,7 +86,6 @@ function getInvalidSortFieldMessage( displayLocations: [ { id: 'toolbar' }, { id: 'dimensionButton', dimensionId: columnId }, - { id: 'visualization' }, { id: 'embeddableBadge' }, ], }; diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/dimension_button.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/dimension_button.tsx index e1ab7cd5ee9a9d..ad3ae44a2b3e64 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/dimension_button.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/dimension_button.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { EuiButtonIcon, EuiFlexItem, EuiLink, EuiToolTip } from '@elastic/eui'; +import { EuiButtonIcon, EuiLink, EuiToolTip } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { css } from '@emotion/react'; import { euiThemeVars } from '@kbn/ui-theme'; @@ -39,7 +39,7 @@ export function DimensionButton({ }) { return ( <> - +
    - +
    ( { const [isPopoverOpen, setIsPopoverOpen] = useState(false); @@ -85,7 +87,7 @@ export const MessageList = ({ > {errorCount > 0 && ( <> - + {errorCount} )} @@ -93,6 +95,7 @@ export const MessageList = ({ <> return ( ({ ...getImportExceptionsListItemSchemaMock(itemId, listId), comments: [], + expire_time: undefined, meta: undefined, namespace_type: 'single', os_types: [], diff --git a/x-pack/plugins/lists/common/schemas/response/exception_list_item_schema.mock.ts b/x-pack/plugins/lists/common/schemas/response/exception_list_item_schema.mock.ts index b49ad7150bdbce..4ebfcd0fec9101 100644 --- a/x-pack/plugins/lists/common/schemas/response/exception_list_item_schema.mock.ts +++ b/x-pack/plugins/lists/common/schemas/response/exception_list_item_schema.mock.ts @@ -33,6 +33,7 @@ export const getExceptionListItemSchemaMock = ( created_by: USER, description: DESCRIPTION, entries: ENTRIES, + expire_time: undefined, id: '1', item_id: 'endpoint_list_item', list_id: 'endpoint_list_id', diff --git a/x-pack/plugins/lists/kibana.json b/x-pack/plugins/lists/kibana.json deleted file mode 100644 index 17a900b3f6fdc3..00000000000000 --- a/x-pack/plugins/lists/kibana.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "configPath": ["xpack", "lists"], - "extraPublicDirs": ["common"], - "id": "lists", - "owner": { - "name": "Security detections response", - "githubTeam": "security-detections-response" - }, - "kibanaVersion": "kibana", - "requiredPlugins": [], - "optionalPlugins": ["spaces", "security"], - "requiredBundles": [], - "server": true, - "ui": true, - "version": "8.0.0" -} diff --git a/x-pack/plugins/lists/kibana.jsonc b/x-pack/plugins/lists/kibana.jsonc new file mode 100644 index 00000000000000..591e75ceeadd1f --- /dev/null +++ b/x-pack/plugins/lists/kibana.jsonc @@ -0,0 +1,21 @@ +{ + "type": "plugin", + "id": "@kbn/lists-plugin", + "owner": "@elastic/security-solution-platform", + "plugin": { + "id": "lists", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "lists" + ], + "optionalPlugins": [ + "spaces", + "security" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/lists/public/exceptions/api.test.ts b/x-pack/plugins/lists/public/exceptions/api.test.ts index c6f423184f9268..95675fe96aee8a 100644 --- a/x-pack/plugins/lists/public/exceptions/api.test.ts +++ b/x-pack/plugins/lists/public/exceptions/api.test.ts @@ -698,6 +698,7 @@ describe('Exceptions Lists API', () => { await exportExceptionList({ http: httpMock, id: 'some-id', + includeExpiredExceptions: true, listId: 'list-id', namespaceType: 'single', signal: abortCtrl.signal, @@ -707,6 +708,7 @@ describe('Exceptions Lists API', () => { method: 'POST', query: { id: 'some-id', + include_expired_exceptions: true, list_id: 'list-id', namespace_type: 'single', }, @@ -718,6 +720,7 @@ describe('Exceptions Lists API', () => { const exceptionResponse = await exportExceptionList({ http: httpMock, id: 'some-id', + includeExpiredExceptions: true, listId: 'list-id', namespaceType: 'single', signal: abortCtrl.signal, diff --git a/x-pack/plugins/lists/server/routes/create_endpoint_list_item_route.ts b/x-pack/plugins/lists/server/routes/create_endpoint_list_item_route.ts index d6272626618ecb..f031b9d1e2882a 100644 --- a/x-pack/plugins/lists/server/routes/create_endpoint_list_item_route.ts +++ b/x-pack/plugins/lists/server/routes/create_endpoint_list_item_route.ts @@ -43,6 +43,7 @@ export const createEndpointListItemRoute = (router: ListsPluginRouter): void => comments, description, entries, + expire_time: expireTime, item_id: itemId, os_types: osTypes, type, @@ -62,6 +63,7 @@ export const createEndpointListItemRoute = (router: ListsPluginRouter): void => comments, description, entries, + expireTime, itemId, meta, name, diff --git a/x-pack/plugins/lists/server/routes/create_exception_list_item_route.ts b/x-pack/plugins/lists/server/routes/create_exception_list_item_route.ts index 1659fc2645f167..7754bc9cc31b55 100644 --- a/x-pack/plugins/lists/server/routes/create_exception_list_item_route.ts +++ b/x-pack/plugins/lists/server/routes/create_exception_list_item_route.ts @@ -50,6 +50,7 @@ export const createExceptionListItemRoute = (router: ListsPluginRouter): void => list_id: listId, os_types: osTypes, type, + expire_time: expireTime, } = request.body; const exceptionLists = await getExceptionListClient(context); const exceptionList = await exceptionLists.getExceptionList({ @@ -92,6 +93,7 @@ export const createExceptionListItemRoute = (router: ListsPluginRouter): void => comments, description, entries, + expireTime, itemId, listId, meta, diff --git a/x-pack/plugins/lists/server/routes/delete_list_route.ts b/x-pack/plugins/lists/server/routes/delete_list_route.ts index 57923699c25eb3..e9f0e1245f1d7b 100644 --- a/x-pack/plugins/lists/server/routes/delete_list_route.ts +++ b/x-pack/plugins/lists/server/routes/delete_list_route.ts @@ -217,6 +217,7 @@ const updateExceptionListItems = async ( comments: listItem.comments, description: listItem.description, entries: remainingEntries, + expireTime: listItem.expire_time, id: listItem.id, itemId: listItem.item_id, meta: listItem.meta, diff --git a/x-pack/plugins/lists/server/routes/export_exception_list_route.ts b/x-pack/plugins/lists/server/routes/export_exception_list_route.ts index 03c7b416ab54f5..71f67ead4a8a16 100644 --- a/x-pack/plugins/lists/server/routes/export_exception_list_route.ts +++ b/x-pack/plugins/lists/server/routes/export_exception_list_route.ts @@ -28,11 +28,22 @@ export const exportExceptionsRoute = (router: ListsPluginRouter): void => { const siemResponse = buildSiemResponse(response); try { - const { id, list_id: listId, namespace_type: namespaceType } = request.query; + const { + id, + list_id: listId, + namespace_type: namespaceType, + include_expired_exceptions: includeExpiredExceptionsString, + } = request.query; const exceptionListsClient = await getExceptionListClient(context); + // Defaults to including expired exceptions if query param is not present + const includeExpiredExceptions = + includeExpiredExceptionsString !== undefined + ? includeExpiredExceptionsString === 'true' + : true; const exportContent = await exceptionListsClient.exportExceptionListAndItems({ id, + includeExpiredExceptions, listId, namespaceType, }); diff --git a/x-pack/plugins/lists/server/routes/find_exception_list_item_route.ts b/x-pack/plugins/lists/server/routes/find_exception_list_item_route.ts index f77a3a7327d69f..c337ac818cbfce 100644 --- a/x-pack/plugins/lists/server/routes/find_exception_list_item_route.ts +++ b/x-pack/plugins/lists/server/routes/find_exception_list_item_route.ts @@ -52,6 +52,11 @@ export const findExceptionListItemRoute = (router: ListsPluginRouter): void => { body: `list_id and namespace_id need to have the same comma separated number of values. Expected list_id length: ${listId.length} to equal namespace_type length: ${namespaceType.length}`, statusCode: 400, }); + } else if (listId.length !== filter.length && filter.length !== 0) { + return siemResponse.error({ + body: `list_id and filter need to have the same comma separated number of values. Expected list_id length: ${listId.length} to equal filter length: ${filter.length}`, + statusCode: 400, + }); } else { const exceptionListItems = await exceptionLists.findExceptionListsItem({ filter, diff --git a/x-pack/plugins/lists/server/routes/get_exception_filter_route.ts b/x-pack/plugins/lists/server/routes/get_exception_filter_route.ts index 0746421e1ee492..b06076e0fbbef3 100644 --- a/x-pack/plugins/lists/server/routes/get_exception_filter_route.ts +++ b/x-pack/plugins/lists/server/routes/get_exception_filter_route.ts @@ -82,6 +82,7 @@ export const getExceptionFilterRoute = (router: ListsPluginRouter): void => { excludeExceptions, listClient, lists: exceptionItems, + startedAt: new Date(), }); return response.ok({ body: { filter } ?? {} }); diff --git a/x-pack/plugins/lists/server/routes/update_endpoint_list_item_route.ts b/x-pack/plugins/lists/server/routes/update_endpoint_list_item_route.ts index e1e117f6c56042..a0a2c8f43f83fb 100644 --- a/x-pack/plugins/lists/server/routes/update_endpoint_list_item_route.ts +++ b/x-pack/plugins/lists/server/routes/update_endpoint_list_item_route.ts @@ -49,6 +49,7 @@ export const updateEndpointListItemRoute = (router: ListsPluginRouter): void => entries, item_id: itemId, tags, + expire_time: expireTime, } = request.body; const exceptionLists = await getExceptionListClient(context); const exceptionListItem = await exceptionLists.updateEndpointListItem({ @@ -56,6 +57,7 @@ export const updateEndpointListItemRoute = (router: ListsPluginRouter): void => comments, description, entries, + expireTime, id, itemId, meta, diff --git a/x-pack/plugins/lists/server/routes/update_exception_list_item_route.ts b/x-pack/plugins/lists/server/routes/update_exception_list_item_route.ts index a997ac132e7cfd..e4751662a19498 100644 --- a/x-pack/plugins/lists/server/routes/update_exception_list_item_route.ts +++ b/x-pack/plugins/lists/server/routes/update_exception_list_item_route.ts @@ -56,6 +56,7 @@ export const updateExceptionListItemRoute = (router: ListsPluginRouter): void => namespace_type: namespaceType, os_types: osTypes, tags, + expire_time: expireTime, } = request.body; if (id == null && itemId == null) { return siemResponse.error({ @@ -69,6 +70,7 @@ export const updateExceptionListItemRoute = (router: ListsPluginRouter): void => comments, description, entries, + expireTime, id, itemId, meta, diff --git a/x-pack/plugins/lists/server/saved_objects/exception_list.ts b/x-pack/plugins/lists/server/saved_objects/exception_list.ts index be0a9982e2913b..4d401da8d74d23 100644 --- a/x-pack/plugins/lists/server/saved_objects/exception_list.ts +++ b/x-pack/plugins/lists/server/saved_objects/exception_list.ts @@ -159,6 +159,9 @@ export const exceptionListItemMapping: SavedObjectsType['mappings'] = { }, }, }, + expire_time: { + type: 'date', + }, item_id: { type: 'keyword', }, diff --git a/x-pack/plugins/lists/server/saved_objects/migrations.test.ts b/x-pack/plugins/lists/server/saved_objects/migrations.test.ts index f4b594e63fe1d3..85167aa0aadb7c 100644 --- a/x-pack/plugins/lists/server/saved_objects/migrations.test.ts +++ b/x-pack/plugins/lists/server/saved_objects/migrations.test.ts @@ -22,6 +22,7 @@ const DEFAULT_EXCEPTION_LIST_SO: ExceptionListSoSchema = { created_by: 'user', description: 'description', entries: undefined, + expire_time: undefined, immutable: false, item_id: undefined, list_id: 'some_list', diff --git a/x-pack/plugins/lists/server/schemas/saved_objects/exceptions_list_so_schema.ts b/x-pack/plugins/lists/server/schemas/saved_objects/exceptions_list_so_schema.ts index b5583e5bc98204..4c06f7276661cb 100644 --- a/x-pack/plugins/lists/server/schemas/saved_objects/exceptions_list_so_schema.ts +++ b/x-pack/plugins/lists/server/schemas/saved_objects/exceptions_list_so_schema.ts @@ -14,6 +14,7 @@ import { entriesArrayOrUndefined, exceptionListItemType, exceptionListType, + expireTimeOrUndefined, immutableOrUndefined, itemIdOrUndefined, list_id, @@ -37,6 +38,7 @@ export const exceptionListSoSchema = t.exact( created_by, description, entries: entriesArrayOrUndefined, + expire_time: expireTimeOrUndefined, immutable: immutableOrUndefined, item_id: itemIdOrUndefined, list_id, diff --git a/x-pack/plugins/lists/server/services/exception_lists/build_exception_filter.test.ts b/x-pack/plugins/lists/server/services/exception_lists/build_exception_filter.test.ts index 17f15a39bc21fd..2c1f61fabd54f3 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/build_exception_filter.test.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/build_exception_filter.test.ts @@ -11,6 +11,7 @@ import type { ExceptionListItemSchema, } from '@kbn/securitysolution-io-ts-list-types'; +import { ENTRIES } from '../../../common/constants.mock'; import { getEntryMatchAnyExcludeMock, getEntryMatchAnyMock, @@ -51,6 +52,7 @@ import { buildNestedClause, createOrClauses, filterOutUnprocessableValueLists, + removeExpiredExceptions, } from './build_exception_filter'; const modifiedGetEntryMatchAnyMock = (): EntryMatchAny => ({ @@ -70,6 +72,7 @@ describe('build_exceptions_filter', () => { excludeExceptions: false, listClient, lists: [], + startedAt: new Date(), }); expect(filter).toBeUndefined(); }); @@ -81,6 +84,7 @@ describe('build_exceptions_filter', () => { excludeExceptions: false, listClient, lists: [getExceptionListItemSchemaMock()], + startedAt: new Date(), }); expect(filter).toMatchInlineSnapshot(` @@ -154,6 +158,7 @@ describe('build_exceptions_filter', () => { excludeExceptions: true, listClient, lists: [exceptionItem1, exceptionItem2], + startedAt: new Date(), }); expect(filter).toMatchInlineSnapshot(` Object { @@ -236,6 +241,7 @@ describe('build_exceptions_filter', () => { excludeExceptions: true, listClient, lists: [exceptionItem1, exceptionItem2, exceptionItem3], + startedAt: new Date(), }); expect(filter).toMatchInlineSnapshot(` @@ -325,6 +331,7 @@ describe('build_exceptions_filter', () => { excludeExceptions: true, listClient, lists: exceptions, + startedAt: new Date(), }); expect(filter).toMatchInlineSnapshot(` @@ -479,6 +486,95 @@ describe('build_exceptions_filter', () => { } `); }); + + test('it should remove all exception items that are expired', async () => { + const futureDate = new Date(Date.now() + 1000000).toISOString(); + const expiredDate = new Date(Date.now() - 1000000).toISOString(); + const exceptions = [ + { ...getExceptionListItemSchemaMock(), entries: [ENTRIES[0]], expire_time: futureDate }, + { ...getExceptionListItemSchemaMock(), entries: [ENTRIES[1]], expire_time: expiredDate }, + getExceptionListItemSchemaMock(), + ]; + + const { filter } = await buildExceptionFilter({ + alias: null, + chunkSize: 1, + excludeExceptions: true, + listClient, + lists: exceptions, + startedAt: new Date(), + }); + + expect(filter).toMatchInlineSnapshot(` + Object { + "meta": Object { + "alias": null, + "disabled": false, + "negate": true, + }, + "query": Object { + "bool": Object { + "should": Array [ + Object { + "nested": Object { + "path": "some.parentField", + "query": Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "match_phrase": Object { + "some.parentField.nested.field": "some value", + }, + }, + ], + }, + }, + "score_mode": "none", + }, + }, + Object { + "bool": Object { + "filter": Array [ + Object { + "nested": Object { + "path": "some.parentField", + "query": Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "match_phrase": Object { + "some.parentField.nested.field": "some value", + }, + }, + ], + }, + }, + "score_mode": "none", + }, + }, + Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "match_phrase": Object { + "some.not.nested.field": "some value", + }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + } + `); + }); }); describe('createOrClauses', () => { @@ -1297,4 +1393,22 @@ describe('build_exceptions_filter', () => { expect(unprocessableValueListExceptions).toEqual([listExceptionItem]); }); }); + + describe('removeExpiredExceptions', () => { + test('it should filter out expired exceptions', () => { + const futureDate = new Date(Date.now() + 1000000).toISOString(); + const expiredDate = new Date(Date.now() - 1000000).toISOString(); + const exceptions = [ + { ...getExceptionListItemSchemaMock(), expire_time: futureDate }, + { ...getExceptionListItemSchemaMock(), expire_time: expiredDate }, + getExceptionListItemSchemaMock(), + ]; + const filteredExceptions = removeExpiredExceptions(exceptions, new Date()); + + expect(filteredExceptions).toEqual([ + { ...getExceptionListItemSchemaMock(), expire_time: futureDate }, + getExceptionListItemSchemaMock(), + ]); + }); + }); }); diff --git a/x-pack/plugins/lists/server/services/exception_lists/build_exception_filter.ts b/x-pack/plugins/lists/server/services/exception_lists/build_exception_filter.ts index 1eb17fe40ab265..8e453a30fc7660 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/build_exception_filter.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/build_exception_filter.ts @@ -273,6 +273,19 @@ export const filterOutUnprocessableValueLists = async < return { filteredExceptions, unprocessableValueListExceptions }; }; +export const removeExpiredExceptions = < + T extends ExceptionListItemSchema | CreateExceptionListItemSchema +>( + lists: T[], + startedAt: Date +): T[] => + lists.filter((listItem) => { + if (listItem.expire_time && new Date(listItem.expire_time) < startedAt) { + return false; + } + return true; + }); + export const buildExceptionFilter = async < T extends ExceptionListItemSchema | CreateExceptionListItemSchema >({ @@ -281,17 +294,21 @@ export const buildExceptionFilter = async < chunkSize, alias = null, listClient, + startedAt, }: { lists: T[]; excludeExceptions: boolean; chunkSize: number; alias: string | null; listClient: ListClient; + startedAt: Date; }): Promise<{ filter: Filter | undefined; unprocessedExceptions: T[] }> => { + const filteredLists = removeExpiredExceptions(lists, startedAt); + // Remove exception items with large value lists. These are evaluated // elsewhere for the moment being. const [exceptionsWithoutValueLists, valueListExceptions] = partition( - lists, + filteredLists, (item): item is T => !hasLargeValueList(item.entries) ); diff --git a/x-pack/plugins/lists/server/services/exception_lists/bulk_create_exception_list_items.ts b/x-pack/plugins/lists/server/services/exception_lists/bulk_create_exception_list_items.ts index 0d770fa699ad41..5043c16ca6f755 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/bulk_create_exception_list_items.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/bulk_create_exception_list_items.ts @@ -41,6 +41,7 @@ export const bulkCreateExceptionListItems = async ({ created_by: user, description: item.description, entries: item.entries, + expire_time: item.expire_time, immutable: false, item_id: item.item_id, list_id: item.list_id, diff --git a/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_list.ts b/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_list.ts index deed1b41bd8ed1..d939d1f7baf1b8 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_list.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_list.ts @@ -44,6 +44,7 @@ export const createEndpointList = async ({ created_by: user, description: ENDPOINT_LIST_DESCRIPTION, entries: undefined, + expire_time: undefined, immutable: false, item_id: undefined, list_id: ENDPOINT_LIST_ID, diff --git a/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts b/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts index bf6a0bd00ff4cf..ea08f03aac6f8d 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/create_endpoint_trusted_apps_list.ts @@ -52,6 +52,7 @@ export const createEndpointTrustedAppsList = async ({ created_by: user, description: ENDPOINT_TRUSTED_APPS_LIST_DESCRIPTION, entries: undefined, + expire_time: undefined, immutable: false, item_id: undefined, list_id: ENDPOINT_TRUSTED_APPS_LIST_ID, diff --git a/x-pack/plugins/lists/server/services/exception_lists/create_exception_list.ts b/x-pack/plugins/lists/server/services/exception_lists/create_exception_list.ts index 466c877a1abf4d..7fcb831ed6e912 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/create_exception_list.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/create_exception_list.ts @@ -62,6 +62,7 @@ export const createExceptionList = async ({ created_by: user, description, entries: undefined, + expire_time: undefined, immutable, item_id: undefined, list_id: listId, diff --git a/x-pack/plugins/lists/server/services/exception_lists/create_exception_list_item.ts b/x-pack/plugins/lists/server/services/exception_lists/create_exception_list_item.ts index 44fac7b07f8d25..eb6e2ca85546db 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/create_exception_list_item.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/create_exception_list_item.ts @@ -13,6 +13,7 @@ import type { EntriesArray, ExceptionListItemSchema, ExceptionListItemType, + ExpireTimeOrUndefined, ItemId, ListId, MetaOrUndefined, @@ -45,11 +46,13 @@ interface CreateExceptionListItemOptions { tieBreaker?: string; type: ExceptionListItemType; osTypes: OsTypeArray; + expireTime: ExpireTimeOrUndefined; } export const createExceptionListItem = async ({ comments, entries, + expireTime, itemId, listId, savedObjectsClient, @@ -75,6 +78,7 @@ export const createExceptionListItem = async ({ created_by: user, description, entries, + expire_time: expireTime, immutable: undefined, item_id: itemId, list_id: listId, diff --git a/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts b/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts index 218ccf585dec4b..303a0751e4d2a7 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.mock.ts @@ -88,6 +88,7 @@ export const getCreateExceptionListItemOptionsMock = (): CreateExceptionListItem comments, description, entries, + expire_time: expireTime, item_id: itemId, list_id: listId, meta, @@ -102,6 +103,7 @@ export const getCreateExceptionListItemOptionsMock = (): CreateExceptionListItem comments, description, entries, + expireTime, itemId, listId, meta, @@ -114,14 +116,26 @@ export const getCreateExceptionListItemOptionsMock = (): CreateExceptionListItem }; export const getUpdateExceptionListItemOptionsMock = (): UpdateExceptionListItemOptions => { - const { comments, entries, itemId, namespaceType, name, osTypes, description, meta, tags, type } = - getCreateExceptionListItemOptionsMock(); + const { + comments, + entries, + expireTime, + itemId, + namespaceType, + name, + osTypes, + description, + meta, + tags, + type, + } = getCreateExceptionListItemOptionsMock(); return { _version: undefined, comments, description, entries, + expireTime, id: ID, itemId, meta, @@ -161,6 +175,7 @@ export const getExceptionListSoSchemaMock = ( created_by, description, entries, + expire_time: undefined, immutable: undefined, item_id, list_id, diff --git a/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.test.ts b/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.test.ts index 8ad92f5d14bff2..95064ddaa3f97a 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.test.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.test.ts @@ -247,6 +247,7 @@ describe('exception_list_client', () => { (): ReturnType => { return exceptionListClient.exportExceptionListAndItems({ id: '1', + includeExpiredExceptions: true, listId: '1', namespaceType: 'agnostic', }); diff --git a/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts b/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts index 562ebffc9f00c1..b8fbb35f293543 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts @@ -287,6 +287,7 @@ export class ExceptionListClient { comments, description, entries, + expireTime, itemId, meta, name, @@ -300,6 +301,7 @@ export class ExceptionListClient { comments, description, entries, + expireTime, itemId, listId: ENDPOINT_LIST_ID, meta, @@ -356,6 +358,7 @@ export class ExceptionListClient { comments, description, entries, + expireTime, id, itemId, meta, @@ -371,6 +374,7 @@ export class ExceptionListClient { comments, description, entries, + expireTime, id, itemId, meta, @@ -526,6 +530,7 @@ export class ExceptionListClient { comments, description, entries, + expireTime, itemId, listId, meta, @@ -540,6 +545,7 @@ export class ExceptionListClient { comments, description, entries, + expireTime, itemId, listId, meta, @@ -593,6 +599,7 @@ export class ExceptionListClient { comments, description, entries, + expireTime, id, itemId, meta, @@ -608,6 +615,7 @@ export class ExceptionListClient { comments, description, entries, + expireTime, id, itemId, meta, @@ -970,6 +978,7 @@ export class ExceptionListClient { listId, id, namespaceType, + includeExpiredExceptions, }: ExportExceptionListAndItemsOptions): Promise => { const { savedObjectsClient } = this; @@ -978,6 +987,7 @@ export class ExceptionListClient { 'exceptionsListPreExport', { id, + includeExpiredExceptions, listId, namespaceType, }, @@ -987,6 +997,7 @@ export class ExceptionListClient { return exportExceptionListAndItems({ id, + includeExpiredExceptions, listId, namespaceType, savedObjectsClient, diff --git a/x-pack/plugins/lists/server/services/exception_lists/exception_list_client_types.ts b/x-pack/plugins/lists/server/services/exception_lists/exception_list_client_types.ts index 6b87945710a378..b994919398a1ce 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/exception_list_client_types.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/exception_list_client_types.ts @@ -21,6 +21,7 @@ import type { ExceptionListItemTypeOrUndefined, ExceptionListType, ExceptionListTypeOrUndefined, + ExpireTimeOrUndefined, ExportExceptionDetails, FilterOrUndefined, FoundExceptionListItemSchema, @@ -242,6 +243,8 @@ export interface CreateExceptionListItemOptions { comments: CreateCommentsArray; /** an array with the exception list item entries */ entries: EntriesArray; + /** an optional datetime string with an expiration time */ + expireTime: ExpireTimeOrUndefined; /** the "item_id" of the exception list item */ itemId: ItemId; /** the "list_id" of the parent exception list */ @@ -271,6 +274,8 @@ export interface CreateEndpointListItemOptions { comments: CreateCommentsArray; /** The entries of the endpoint list item */ entries: EntriesArray; + /** an optional datetime string with an expiration time */ + expireTime: ExpireTimeOrUndefined; /** The item id of the list item */ itemId: ItemId; /** The name of the list item */ @@ -309,6 +314,8 @@ export interface UpdateExceptionListItemOptions { comments: UpdateCommentsArray; /** item exception entries logic */ entries: EntriesArray; + /** an optional datetime string with an expiration time */ + expireTime: ExpireTimeOrUndefined; /** the "id" of the exception list item */ id: IdOrUndefined; /** the "item_id" of the exception list item */ @@ -340,6 +347,8 @@ export interface UpdateEndpointListItemOptions { comments: UpdateCommentsArray; /** The entries of the endpoint list item */ entries: EntriesArray; + /** an optional datetime string with an expiration time */ + expireTime: ExpireTimeOrUndefined; /** The id of the list item (Either this or itemId has to be defined) */ id: IdOrUndefined; /** The item id of the list item (Either this or id has to be defined) */ @@ -490,6 +499,8 @@ export interface ExportExceptionListAndItemsOptions { id: IdOrUndefined; /** saved object namespace (single | agnostic) */ namespaceType: NamespaceType; + /** whether or not to include expired exceptions */ + includeExpiredExceptions: boolean; } /** diff --git a/x-pack/plugins/lists/server/services/exception_lists/export_exception_list_and_items.test.ts b/x-pack/plugins/lists/server/services/exception_lists/export_exception_list_and_items.test.ts index 06e764bd1658b3..acad2dd0f45ee4 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/export_exception_list_and_items.test.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/export_exception_list_and_items.test.ts @@ -29,6 +29,7 @@ describe('export_exception_list_and_items', () => { const result = await exportExceptionListAndItems({ id: '123', + includeExpiredExceptions: true, listId: 'non-existent', namespaceType: 'single', savedObjectsClient: savedObjectsClientMock.create(), @@ -45,6 +46,7 @@ describe('export_exception_list_and_items', () => { ); const result = await exportExceptionListAndItems({ id: '123', + includeExpiredExceptions: true, listId: 'non-existent', namespaceType: 'single', savedObjectsClient: savedObjectsClientMock.create(), diff --git a/x-pack/plugins/lists/server/services/exception_lists/export_exception_list_and_items.ts b/x-pack/plugins/lists/server/services/exception_lists/export_exception_list_and_items.ts index fecbb91837b6f5..006c7773e4e897 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/export_exception_list_and_items.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/export_exception_list_and_items.ts @@ -15,6 +15,7 @@ import type { } from '@kbn/securitysolution-io-ts-list-types'; import { transformDataToNdjson } from '@kbn/securitysolution-utils'; import type { SavedObjectsClientContract } from '@kbn/core/server'; +import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { findExceptionListItemPointInTimeFinder } from './find_exception_list_item_point_in_time_finder'; import { getExceptionList } from './get_exception_list'; @@ -24,6 +25,7 @@ interface ExportExceptionListAndItemsOptions { listId: ListIdOrUndefined; savedObjectsClient: SavedObjectsClientContract; namespaceType: NamespaceType; + includeExpiredExceptions: boolean; } export interface ExportExceptionListAndItemsReturn { @@ -35,6 +37,7 @@ export const exportExceptionListAndItems = async ({ id, listId, namespaceType, + includeExpiredExceptions, savedObjectsClient, }: ExportExceptionListAndItemsOptions): Promise => { const exceptionList = await getExceptionList({ @@ -52,10 +55,14 @@ export const exportExceptionListAndItems = async ({ const executeFunctionOnStream = (response: FoundExceptionListItemSchema): void => { exceptionItems = [...exceptionItems, ...response.data]; }; + const savedObjectPrefix = getSavedObjectType({ namespaceType }); + const filter = includeExpiredExceptions + ? undefined + : `(${savedObjectPrefix}.attributes.expire_time > "${new Date().toISOString()}" OR NOT ${savedObjectPrefix}.attributes.expire_time: *)`; await findExceptionListItemPointInTimeFinder({ executeFunctionOnStream, - filter: undefined, + filter, listId: exceptionList.list_id, maxSize: undefined, // NOTE: This is unbounded when it is "undefined" namespaceType: exceptionList.namespace_type, diff --git a/x-pack/plugins/lists/server/services/exception_lists/update_exception_list_item.ts b/x-pack/plugins/lists/server/services/exception_lists/update_exception_list_item.ts index 81e58709528c75..e3fcb9d2461e40 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/update_exception_list_item.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/update_exception_list_item.ts @@ -11,6 +11,7 @@ import type { EntriesArray, ExceptionListItemSchema, ExceptionListItemTypeOrUndefined, + ExpireTimeOrUndefined, IdOrUndefined, ItemIdOrUndefined, MetaOrUndefined, @@ -38,6 +39,7 @@ interface UpdateExceptionListItemOptions { name: NameOrUndefined; description: DescriptionOrUndefined; entries: EntriesArray; + expireTime: ExpireTimeOrUndefined; savedObjectsClient: SavedObjectsClientContract; namespaceType: NamespaceType; osTypes: OsTypeArray; @@ -53,6 +55,7 @@ export const updateExceptionListItem = async ({ _version, comments, entries, + expireTime, id, savedObjectsClient, namespaceType, @@ -87,6 +90,7 @@ export const updateExceptionListItem = async ({ comments: transformedComments, description, entries, + expire_time: expireTime, meta, name, os_types: osTypes, diff --git a/x-pack/plugins/lists/server/services/exception_lists/utils/get_exception_lists_item_filter.test.ts b/x-pack/plugins/lists/server/services/exception_lists/utils/get_exception_lists_item_filter.test.ts index 8e8b3499338dc2..33ef8f1936aa57 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/utils/get_exception_lists_item_filter.test.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/utils/get_exception_lists_item_filter.test.ts @@ -39,7 +39,7 @@ describe('getExceptionListsItemFilter', () => { savedObjectType: ['exception-list'], }); expect(filter).toEqual( - '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "some-list-id") AND exception-list.attributes.name: "Sample Endpoint Exception List")' + '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "some-list-id") AND (exception-list.attributes.name: "Sample Endpoint Exception List"))' ); }); @@ -61,7 +61,7 @@ describe('getExceptionListsItemFilter', () => { savedObjectType: ['exception-list', 'exception-list-agnostic'], }); expect(filter).toEqual( - '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "list-1") AND exception-list.attributes.name: "Sample Endpoint Exception List") OR (exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-2")' + '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "list-1") AND (exception-list.attributes.name: "Sample Endpoint Exception List")) OR (exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-2")' ); }); @@ -83,7 +83,7 @@ describe('getExceptionListsItemFilter', () => { savedObjectType: ['exception-list', 'exception-list-agnostic', 'exception-list-agnostic'], }); expect(filter).toEqual( - '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "list-1") AND exception-list.attributes.name: "Sample Endpoint Exception List") OR (exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-2") OR (exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-3")' + '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "list-1") AND (exception-list.attributes.name: "Sample Endpoint Exception List")) OR (exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-2") OR (exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-3")' ); }); @@ -98,7 +98,7 @@ describe('getExceptionListsItemFilter', () => { savedObjectType: ['exception-list', 'exception-list-agnostic', 'exception-list-agnostic'], }); expect(filter).toEqual( - '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "list-1") AND exception-list.attributes.name: "Sample Endpoint Exception List 1") OR ((exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-2") AND exception-list.attributes.name: "Sample Endpoint Exception List 2") OR ((exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-3") AND exception-list.attributes.name: "Sample Endpoint Exception List 3")' + '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "list-1") AND (exception-list.attributes.name: "Sample Endpoint Exception List 1")) OR ((exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-2") AND (exception-list.attributes.name: "Sample Endpoint Exception List 2")) OR ((exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "list-3") AND (exception-list.attributes.name: "Sample Endpoint Exception List 3"))' ); }); }); diff --git a/x-pack/plugins/lists/server/services/exception_lists/utils/get_exception_lists_item_filter.ts b/x-pack/plugins/lists/server/services/exception_lists/utils/get_exception_lists_item_filter.ts index 935ae8839a71dd..fdb2ca954f0707 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/utils/get_exception_lists_item_filter.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/utils/get_exception_lists_item_filter.ts @@ -26,7 +26,7 @@ export const getExceptionListsItemFilter = ({ const escapedListId = escapeQuotes(singleListId); const listItemAppend = `(${savedObjectType[index]}.attributes.list_type: item AND ${savedObjectType[index]}.attributes.list_id: "${escapedListId}")`; const listItemAppendWithFilter = - filter[index] != null ? `(${listItemAppend} AND ${filter[index]})` : listItemAppend; + filter[index] != null ? `(${listItemAppend} AND (${filter[index]}))` : listItemAppend; if (accum === '') { return listItemAppendWithFilter; } else { diff --git a/x-pack/plugins/lists/server/services/exception_lists/utils/import/bulk_create_imported_items.test.ts b/x-pack/plugins/lists/server/services/exception_lists/utils/import/bulk_create_imported_items.test.ts index a3dbc4cdfa9eb1..91fa46fe953f50 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/utils/import/bulk_create_imported_items.test.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/utils/import/bulk_create_imported_items.test.ts @@ -22,6 +22,7 @@ describe('bulkCreateImportedItems', () => { created_by: 'elastic', description: 'description here', entries: ENTRIES, + expire_time: undefined, immutable: undefined, item_id: 'item-id', list_id: 'list-id', diff --git a/x-pack/plugins/lists/server/services/exception_lists/utils/import/bulk_create_imported_lists.test.ts b/x-pack/plugins/lists/server/services/exception_lists/utils/import/bulk_create_imported_lists.test.ts index 9001f225e73645..dfac36c2bf8745 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/utils/import/bulk_create_imported_lists.test.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/utils/import/bulk_create_imported_lists.test.ts @@ -21,6 +21,7 @@ describe('bulkCreateImportedLists', () => { created_by: 'elastic', description: 'some description', entries: undefined, + expire_time: undefined, immutable: false, item_id: undefined, list_id: 'list-id', diff --git a/x-pack/plugins/lists/server/services/exception_lists/utils/import/find_all_exception_list_item_types.test.ts b/x-pack/plugins/lists/server/services/exception_lists/utils/import/find_all_exception_list_item_types.test.ts index 60d63c00b01141..7320d7dafe3974 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/utils/import/find_all_exception_list_item_types.test.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/utils/import/find_all_exception_list_item_types.test.ts @@ -65,7 +65,7 @@ describe('find_all_exception_list_item_types', () => { expect(savedObjectsClient.find).toHaveBeenCalledWith({ filter: - '((exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "detection_list_id") AND exception-list-agnostic.attributes.item_id:(1))', + '((exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "detection_list_id") AND (exception-list-agnostic.attributes.item_id:(1)))', page: undefined, perPage: 100, sortField: undefined, @@ -83,7 +83,7 @@ describe('find_all_exception_list_item_types', () => { expect(savedObjectsClient.find).toHaveBeenCalledWith({ filter: - '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "detection_list_id") AND exception-list.attributes.item_id:(1))', + '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "detection_list_id") AND (exception-list.attributes.item_id:(1)))', page: undefined, perPage: 100, sortField: undefined, @@ -101,7 +101,7 @@ describe('find_all_exception_list_item_types', () => { expect(savedObjectsClient.find).toHaveBeenCalledWith({ filter: - '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "detection_list_id") AND exception-list.attributes.item_id:(2)) OR ((exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "detection_list_id") AND exception-list-agnostic.attributes.item_id:(1))', + '((exception-list.attributes.list_type: item AND exception-list.attributes.list_id: "detection_list_id") AND (exception-list.attributes.item_id:(2))) OR ((exception-list-agnostic.attributes.list_type: item AND exception-list-agnostic.attributes.list_id: "detection_list_id") AND (exception-list-agnostic.attributes.item_id:(1)))', page: undefined, perPage: 100, sortField: undefined, diff --git a/x-pack/plugins/lists/server/services/exception_lists/utils/import/sort_exception_items_to_create_update.ts b/x-pack/plugins/lists/server/services/exception_lists/utils/import/sort_exception_items_to_create_update.ts index 2c93b0d33e35ca..0eca82c3ac325b 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/utils/import/sort_exception_items_to_create_update.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/utils/import/sort_exception_items_to_create_update.ts @@ -50,6 +50,7 @@ export const sortExceptionItemsToUpdateOrCreate = ({ comments, description, entries, + expire_time: expireTime, item_id: itemId, meta, list_id: listId, @@ -89,6 +90,7 @@ export const sortExceptionItemsToUpdateOrCreate = ({ created_by: user, description, entries, + expire_time: expireTime, immutable: undefined, item_id: itemId, list_id: listId, diff --git a/x-pack/plugins/lists/server/services/exception_lists/utils/import/sort_exception_lists_to_create_update.ts b/x-pack/plugins/lists/server/services/exception_lists/utils/import/sort_exception_lists_to_create_update.ts index 6dbfea6e724dbe..cb255eab3c66eb 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/utils/import/sort_exception_lists_to_create_update.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/utils/import/sort_exception_lists_to_create_update.ts @@ -71,6 +71,7 @@ export const sortExceptionListsToUpdateOrCreate = ({ created_by: user, description, entries: undefined, + expire_time: undefined, immutable: false, item_id: undefined, list_id: listId, @@ -112,6 +113,7 @@ export const sortExceptionListsToUpdateOrCreate = ({ created_by: user, description, entries: undefined, + expire_time: undefined, immutable: false, item_id: undefined, list_type: 'list', diff --git a/x-pack/plugins/lists/server/services/exception_lists/utils/index.ts b/x-pack/plugins/lists/server/services/exception_lists/utils/index.ts index 1cfce1208ece0e..8af2bfcfa71751 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/utils/index.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/utils/index.ts @@ -150,6 +150,7 @@ export const transformSavedObjectToExceptionListItem = ({ created_by, description, entries, + expire_time, item_id: itemId, list_id, meta, @@ -174,6 +175,7 @@ export const transformSavedObjectToExceptionListItem = ({ created_by, description, entries: entries ?? [], + expire_time, id, item_id: itemId ?? '(unknown)', list_id, @@ -203,6 +205,7 @@ export const transformSavedObjectUpdateToExceptionListItem = ({ comments, description, entries, + expire_time: expireTime, meta, name, os_types: osTypes, @@ -225,6 +228,7 @@ export const transformSavedObjectUpdateToExceptionListItem = ({ created_by: exceptionListItem.created_by, description: description ?? exceptionListItem.description, entries: entries ?? exceptionListItem.entries, + expire_time: expireTime ?? exceptionListItem.expire_time, id, item_id: exceptionListItem.item_id, list_id: exceptionListItem.list_id, @@ -308,6 +312,7 @@ export const transformCreateCommentsToComments = ({ }; export const transformCreateExceptionListItemOptionsToCreateExceptionListItemSchema = ({ + expireTime, listId, itemId, namespaceType, @@ -316,6 +321,7 @@ export const transformCreateExceptionListItemOptionsToCreateExceptionListItemSch }: CreateExceptionListItemOptions): CreateExceptionListItemSchema => { return { ...rest, + expire_time: expireTime, item_id: itemId, list_id: listId, namespace_type: namespaceType, @@ -327,6 +333,7 @@ export const transformUpdateExceptionListItemOptionsToUpdateExceptionListItemSch itemId, namespaceType, osTypes, + expireTime, // The `UpdateExceptionListItemOptions` type differs from the schema in that some properties are // marked as having `undefined` as a valid value, where the schema, however, requires it. // So we assign defaults here @@ -338,6 +345,7 @@ export const transformUpdateExceptionListItemOptionsToUpdateExceptionListItemSch return { ...rest, description, + expire_time: expireTime, item_id: itemId, name, namespace_type: namespaceType, diff --git a/x-pack/plugins/logstash/kibana.json b/x-pack/plugins/logstash/kibana.json deleted file mode 100644 index b43f0e00093435..00000000000000 --- a/x-pack/plugins/logstash/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "logstash", - "owner": { - "name": "Logstash", - "githubTeam": "logstash" - }, - "version": "0.0.1", - "kibanaVersion": "kibana", - "configPath": ["xpack", "logstash"], - "requiredPlugins": ["licensing", "management", "features"], - "optionalPlugins": ["home", "monitoring", "security"], - "server": true, - "ui": true, - "requiredBundles": ["esUiShared", "kibanaReact"] -} diff --git a/x-pack/plugins/logstash/kibana.jsonc b/x-pack/plugins/logstash/kibana.jsonc new file mode 100644 index 00000000000000..627747f5731b93 --- /dev/null +++ b/x-pack/plugins/logstash/kibana.jsonc @@ -0,0 +1,28 @@ +{ + "type": "plugin", + "id": "@kbn/logstash-plugin", + "owner": "@elastic/logstash", + "plugin": { + "id": "logstash", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "logstash" + ], + "requiredPlugins": [ + "licensing", + "management", + "features" + ], + "optionalPlugins": [ + "home", + "monitoring", + "security" + ], + "requiredBundles": [ + "esUiShared", + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/maps/common/mvt_request_body.test.ts b/x-pack/plugins/maps/common/mvt_request_body.test.ts index fd67cdeed3e8b3..eef26cb526ad42 100644 --- a/x-pack/plugins/maps/common/mvt_request_body.test.ts +++ b/x-pack/plugins/maps/common/mvt_request_body.test.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { decodeMvtResponseBody, encodeMvtResponseBody, @@ -23,7 +24,7 @@ describe('decodeMvtResponseBody', () => { stored_fields: ['geopoint'], runtime_mappings: { 'day of week': { - type: 'keyword', + type: 'keyword' as estypes.MappingRuntimeFieldType, script: { source: "ZonedDateTime input = doc['ISSUE_DATE'].value;\nString output = input.format(DateTimeFormatter.ofPattern('e')) + ' ' + input.format(DateTimeFormatter.ofPattern('E'));\nemit(output);", @@ -64,7 +65,7 @@ describe('decodeMvtResponseBody', () => { _source: false, runtime_mappings: { price_as_number: { - type: 'keyword', + type: 'keyword' as estypes.MappingRuntimeFieldType, script: { source: runtimeFieldScript, }, @@ -124,4 +125,43 @@ describe('getHitsTileRequest', () => { }); expect(path).toEqual('/my%20index/_mvt/my%20location/0/0/0'); }); + + describe('sort', () => { + test(`Should include sort`, () => { + const searchRequest = { + size: 10000, + runtime_mappings: {}, + query: {}, + sort: ['timestamp'], + }; + const { body } = getHitsTileRequest({ + encodedRequestBody: encodeMvtResponseBody(searchRequest), + geometryFieldName: 'my location', + hasLabels: true, + index: 'my index', + x: 0, + y: 0, + z: 0, + }); + expect(body).toHaveProperty('sort'); + }); + + test(`Should not include sort when sort not provided`, () => { + const searchRequest = { + size: 10000, + runtime_mappings: {}, + query: {}, + }; + const { body } = getHitsTileRequest({ + encodedRequestBody: encodeMvtResponseBody(searchRequest), + geometryFieldName: 'my location', + hasLabels: true, + index: 'my index', + x: 0, + y: 0, + z: 0, + }); + expect(body).not.toHaveProperty('sort'); + }); + }); }); diff --git a/x-pack/plugins/maps/common/mvt_request_body.ts b/x-pack/plugins/maps/common/mvt_request_body.ts index f876caefe0312f..72b78786e50462 100644 --- a/x-pack/plugins/maps/common/mvt_request_body.ts +++ b/x-pack/plugins/maps/common/mvt_request_body.ts @@ -6,13 +6,16 @@ */ import rison from '@kbn/rison'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { RENDER_AS } from './constants'; -export function decodeMvtResponseBody(encodedRequestBody: string): object { - return rison.decode(decodeURIComponent(encodedRequestBody).replace('%25', '%')) as object; +export function decodeMvtResponseBody(encodedRequestBody: string): estypes.SearchRequest['body'] { + return rison.decode( + decodeURIComponent(encodedRequestBody).replace('%25', '%') + ) as estypes.SearchRequest['body']; } -export function encodeMvtResponseBody(unencodedRequestBody: object): string { +export function encodeMvtResponseBody(unencodedRequestBody: estypes.SearchRequest['body']): string { // URL encoding replaces unsafe ASCII characters with a '%' followed by two hexadecimal digits // encodeURIComponent does not encode '%' // This causes preexisting '%' to break decoding because they are not valid URL encoding @@ -41,7 +44,10 @@ export function getAggsTileRequest({ y: number; z: number; }) { - const requestBody = decodeMvtResponseBody(encodedRequestBody) as any; + const requestBody = decodeMvtResponseBody(encodedRequestBody); + if (!requestBody) { + throw new Error('Required requestBody parameter not provided'); + } return { path: `/${encodeURIComponent(index)}/_mvt/${encodeURIComponent( geometryFieldName @@ -58,7 +64,7 @@ export function getAggsTileRequest({ fields: requestBody.fields ? requestBody.fields : [], runtime_mappings: requestBody.runtime_mappings, with_labels: hasLabels, - }, + } as estypes.SearchMvtRequest['body'], }; } @@ -79,21 +85,30 @@ export function getHitsTileRequest({ y: number; z: number; }) { - const requestBody = decodeMvtResponseBody(encodedRequestBody) as any; + const requestBody = decodeMvtResponseBody(encodedRequestBody); + if (!requestBody) { + throw new Error('Required requestBody parameter not provided'); + } + const tileRequestBody = { + grid_precision: 0, // no aggs + exact_bounds: true, + extent: 4096, // full resolution, + query: requestBody.query, + runtime_mappings: requestBody.runtime_mappings, + track_total_hits: typeof requestBody.size === 'number' ? requestBody.size + 1 : false, + with_labels: hasLabels, + } as estypes.SearchMvtRequest['body']; + if (requestBody.fields) { + // @ts-expect-error SearchRequest['body'].fields and SearchMvtRequest['body'].fields types do not allign, even though they do in implemenation + tileRequestBody.fields = requestBody.fields; + } + if (requestBody.sort) { + tileRequestBody!.sort = requestBody.sort; + } return { path: `/${encodeURIComponent(index)}/_mvt/${encodeURIComponent( geometryFieldName )}/${z}/${x}/${y}`, - body: { - grid_precision: 0, // no aggs - exact_bounds: true, - extent: 4096, // full resolution, - query: requestBody.query, - fields: requestBody.fields ? requestBody.fields : [], - runtime_mappings: requestBody.runtime_mappings, - sort: requestBody.sort ? requestBody.sort : [], - track_total_hits: typeof requestBody.size === 'number' ? requestBody.size + 1 : false, - with_labels: hasLabels, - }, + body: tileRequestBody, }; } diff --git a/x-pack/plugins/maps/kibana.json b/x-pack/plugins/maps/kibana.json deleted file mode 100644 index 2e1ad348a47b1b..00000000000000 --- a/x-pack/plugins/maps/kibana.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "id": "maps", - "owner": { - "name": "GIS", - "githubTeam": "kibana-gis" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "maps"], - "requiredPlugins": [ - "controls", - "unifiedSearch", - "lens", - "licensing", - "features", - "inspector", - "data", - "fieldFormats", - "fileUpload", - "uiActions", - "navigation", - "expressions", - "visualizations", - "dashboard", - "embeddable", - "mapsEms", - "savedObjects", - "share", - "presentationUtil" - ], - "optionalPlugins": [ - "cloud", - "customIntegrations", - "home", - "savedObjectsTagging", - "charts", - "screenshotMode", - "security", - "spaces", - "usageCollection" - ], - "ui": true, - "server": true, - "extraPublicDirs": [ - "common" - ], - "requiredBundles": [ - "kibanaReact", - "kibanaUtils", - "usageCollection", - "unifiedSearch" - ] -} diff --git a/x-pack/plugins/maps/kibana.jsonc b/x-pack/plugins/maps/kibana.jsonc new file mode 100644 index 00000000000000..416bcf32eb3f87 --- /dev/null +++ b/x-pack/plugins/maps/kibana.jsonc @@ -0,0 +1,55 @@ +{ + "type": "plugin", + "id": "@kbn/maps-plugin", + "owner": "@elastic/kibana-gis", + "plugin": { + "id": "maps", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "maps" + ], + "requiredPlugins": [ + "controls", + "unifiedSearch", + "lens", + "licensing", + "features", + "inspector", + "data", + "fieldFormats", + "fileUpload", + "uiActions", + "navigation", + "expressions", + "visualizations", + "dashboard", + "embeddable", + "mapsEms", + "savedObjects", + "share", + "presentationUtil" + ], + "optionalPlugins": [ + "cloud", + "customIntegrations", + "home", + "savedObjectsTagging", + "charts", + "screenshotMode", + "security", + "spaces", + "usageCollection" + ], + "requiredBundles": [ + "kibanaReact", + "kibanaUtils", + "usageCollection", + "unifiedSearch" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/__snapshots__/resolution_editor.test.tsx.snap b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/__snapshots__/resolution_editor.test.tsx.snap index dfff4bdd6ca441..073e368293a044 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/__snapshots__/resolution_editor.test.tsx.snap +++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/__snapshots__/resolution_editor.test.tsx.snap @@ -24,7 +24,9 @@ exports[`should render 3 tick slider when renderAs is HEX 1`] = ` "value": 1, }, Object { - "label": "", + "label": +   + , "value": 2, }, Object { @@ -63,11 +65,15 @@ exports[`should render 4 tick slider when renderAs is GRID 1`] = ` "value": 1, }, Object { - "label": "", + "label": +   + , "value": 2, }, Object { - "label": "", + "label": +   + , "value": 3, }, Object { @@ -106,11 +112,15 @@ exports[`should render 4 tick slider when renderAs is HEATMAP 1`] = ` "value": 1, }, Object { - "label": "", + "label": +   + , "value": 2, }, Object { - "label": "", + "label": +   + , "value": 3, }, Object { @@ -149,11 +159,15 @@ exports[`should render 4 tick slider when renderAs is POINT 1`] = ` "value": 1, }, Object { - "label": "", + "label": +   + , "value": 2, }, Object { - "label": "", + "label": +   + , "value": 3, }, Object { diff --git a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.tsx b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.tsx index b7ab3bb334f446..ff5aee4eb1932b 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.tsx @@ -53,13 +53,13 @@ export class ResolutionEditor extends Component { const scale = this._getScale(); const unlabeledTicks = [ { - label: '', + label:  , value: scale[GRID_RESOLUTION.FINE], }, ]; if (scale[GRID_RESOLUTION.FINE] !== scale[GRID_RESOLUTION.MOST_FINE]) { unlabeledTicks.push({ - label: '', + label:  , value: scale[GRID_RESOLUTION.MOST_FINE], }); } diff --git a/x-pack/plugins/maps/server/mvt/mvt_routes.ts b/x-pack/plugins/maps/server/mvt/mvt_routes.ts index 6fd7374fb69c18..96f6bafadabfdc 100644 --- a/x-pack/plugins/maps/server/mvt/mvt_routes.ts +++ b/x-pack/plugins/maps/server/mvt/mvt_routes.ts @@ -13,6 +13,7 @@ import { CoreStart, KibanaRequest, KibanaResponseFactory, Logger } from '@kbn/co import { IRouter } from '@kbn/core/server'; import type { DataRequestHandlerContext } from '@kbn/data-plugin/server'; import { errors } from '@elastic/elasticsearch'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { MVT_GETTILE_API_PATH, API_ROOT_PATH, @@ -61,7 +62,10 @@ export function initMVTRoutes({ const y = parseInt((params as any).y, 10) as number; const z = parseInt((params as any).z, 10) as number; - let tileRequest: { path: string; body: object } | undefined; + let tileRequest: { path: string; body: estypes.SearchMvtRequest['body'] } = { + path: '', + body: {}, + }; try { tileRequest = getHitsTileRequest({ encodedRequestBody: query.requestBody as string, @@ -123,7 +127,10 @@ export function initMVTRoutes({ const y = parseInt((params as any).y, 10) as number; const z = parseInt((params as any).z, 10) as number; - let tileRequest: { path: string; body: object } | undefined; + let tileRequest: { path: string; body: estypes.SearchMvtRequest['body'] } = { + path: '', + body: {}, + }; try { tileRequest = getAggsTileRequest({ encodedRequestBody: query.requestBody as string, @@ -168,7 +175,7 @@ async function getTile({ path, }: { abortController: AbortController; - body: object; + body: estypes.SearchMvtRequest['body']; context: DataRequestHandlerContext; core: CoreStart; executionContext: KibanaExecutionContext; diff --git a/x-pack/plugins/maps/server/saved_objects/setup_saved_objects.ts b/x-pack/plugins/maps/server/saved_objects/setup_saved_objects.ts index c75f1f322e25c2..126ec9851c9058 100644 --- a/x-pack/plugins/maps/server/saved_objects/setup_saved_objects.ts +++ b/x-pack/plugins/maps/server/saved_objects/setup_saved_objects.ts @@ -61,23 +61,6 @@ export function setupSavedObjects( ); }, }); - - /* - * The maps-telemetry saved object type isn't used, but in order to remove these fields from - * the mappings we register this type with `type: 'object', enabled: true` to remove all - * previous fields from the mappings until https://github.com/elastic/kibana/issues/67086 is - * solved. - */ - core.savedObjects.registerType({ - name: 'maps-telemetry', - hidden: false, - namespaceType: 'agnostic', - mappings: { - // @ts-ignore Core types don't support this since it's only really valid when removing a previously registered type - type: 'object', - enabled: false, - }, - }); } /** diff --git a/x-pack/plugins/ml/common/constants/locator.ts b/x-pack/plugins/ml/common/constants/locator.ts index 6ef9d2c27c40df..d23a7754d4e75e 100644 --- a/x-pack/plugins/ml/common/constants/locator.ts +++ b/x-pack/plugins/ml/common/constants/locator.ts @@ -15,7 +15,7 @@ export const ML_PAGES = { DATA_FRAME_ANALYTICS_SOURCE_SELECTION: 'data_frame_analytics/source_selection', DATA_FRAME_ANALYTICS_CREATE_JOB: 'data_frame_analytics/new_job', TRAINED_MODELS_MANAGE: 'trained_models', - TRAINED_MODELS_NODES: 'trained_models/nodes', + MEMORY_USAGE: 'memory_usage', DATA_FRAME_ANALYTICS_EXPLORATION: 'data_frame_analytics/exploration', DATA_FRAME_ANALYTICS_MAP: 'data_frame_analytics/map', /** @@ -52,7 +52,7 @@ export const ML_PAGES = { ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX: 'jobs/new_job/step/index_or_search', ANOMALY_DETECTION_CREATE_JOB_FROM_LENS: 'jobs/new_job/from_lens', ANOMALY_DETECTION_CREATE_JOB_FROM_MAP: 'jobs/new_job/from_map', - ANOMALY_DETECTION_MODULES_VIEW_OR_CREATE: '/modules/check_view_or_create', + ANOMALY_DETECTION_MODULES_VIEW_OR_CREATE: 'modules/check_view_or_create', SETTINGS: 'settings', CALENDARS_MANAGE: 'settings/calendars_list', CALENDARS_NEW: 'settings/calendars_list/new_calendar', diff --git a/x-pack/plugins/ml/common/types/locator.ts b/x-pack/plugins/ml/common/types/locator.ts index a86fb70d9c315c..9ee32765b5daa1 100644 --- a/x-pack/plugins/ml/common/types/locator.ts +++ b/x-pack/plugins/ml/common/types/locator.ts @@ -203,7 +203,7 @@ export interface TrainedModelsQueryState { modelId?: string; } -export interface TrainedModelsNodesQueryState { +export interface MemoryUsageNodesQueryState { nodeId?: string; } @@ -276,7 +276,7 @@ export type MlLocatorState = | MlGenericUrlState | NotificationsUrlState | TrainedModelsUrlState - | TrainedModelsNodesUrlState; + | MemoryUsageUrlState; export type MlLocatorParams = MlLocatorState & SerializableRecord; @@ -287,9 +287,9 @@ export type TrainedModelsUrlState = MLPageState< TrainedModelsQueryState | undefined >; -export type TrainedModelsNodesUrlState = MLPageState< - typeof ML_PAGES.TRAINED_MODELS_NODES, - TrainedModelsNodesQueryState | undefined +export type MemoryUsageUrlState = MLPageState< + typeof ML_PAGES.MEMORY_USAGE, + MemoryUsageNodesQueryState | undefined >; export interface NotificationsQueryState { diff --git a/x-pack/plugins/ml/common/types/trained_models.ts b/x-pack/plugins/ml/common/types/trained_models.ts index 2dea2eecd5e5a2..e68e89a6ac93a3 100644 --- a/x-pack/plugins/ml/common/types/trained_models.ts +++ b/x-pack/plugins/ml/common/types/trained_models.ts @@ -9,6 +9,7 @@ import type { DataFrameAnalyticsConfig } from './data_frame_analytics'; import type { FeatureImportanceBaseline, TotalFeatureImportance } from './feature_importance'; import type { XOR } from './common'; import type { DeploymentState, TrainedModelType } from '../constants/trained_models'; +import type { MlSavedObjectType } from './saved_objects'; export interface IngestStats { count: number; @@ -236,3 +237,47 @@ export interface NodesOverviewResponse { _nodes: { total: number; failed: number; successful: number }; nodes: NodeDeploymentStatsResponse[]; } + +export interface MemoryUsageInfo { + id: string; + type: MlSavedObjectType; + size: number; + nodeNames: string[]; +} + +export interface MemoryStatsResponse { + _nodes: { total: number; failed: number; successful: number }; + cluster_name: string; + nodes: Record< + string, + { + jvm: { + heap_max_in_bytes: number; + java_inference_in_bytes: number; + java_inference_max_in_bytes: number; + }; + mem: { + adjusted_total_in_bytes: number; + total_in_bytes: number; + ml: { + data_frame_analytics_in_bytes: number; + native_code_overhead_in_bytes: number; + max_in_bytes: number; + anomaly_detectors_in_bytes: number; + native_inference_in_bytes: number; + }; + }; + transport_address: string; + roles: string[]; + name: string; + attributes: Record<`${'ml.'}${string}`, string>; + ephemeral_id: string; + } + >; +} + +// @ts-expect-error TrainedModelDeploymentStatsResponse missing properties from MlTrainedModelDeploymentStats +export interface TrainedModelStatsResponse extends estypes.MlTrainedModelStats { + deployment_stats?: Omit; + model_size_stats?: TrainedModelModelSizeStats; +} diff --git a/x-pack/plugins/ml/kibana.json b/x-pack/plugins/ml/kibana.json deleted file mode 100644 index b794f3ba39a03f..00000000000000 --- a/x-pack/plugins/ml/kibana.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "id": "ml", - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": [ - "xpack", - "ml" - ], - "requiredPlugins": [ - "aiops", - "charts", - "cloud", - "data", - "dataViews", - "dataVisualizer", - "discover", - "embeddable", - "features", - "fieldFormats", - "lens", - "licensing", - "share", - "taskManager", - "triggersActionsUi", - "uiActions", - "unifiedSearch" - ], - "optionalPlugins": [ - "alerting", - "dashboard", - "home", - "licenseManagement", - "management", - "maps", - "security", - "spaces", - "usageCollection", - "cases" - ], - "server": true, - "ui": true, - "requiredBundles": [ - "cases", - "charts", - "dashboard", - "esUiShared", - "fieldFormats", - "kibanaReact", - "kibanaUtils", - "lens", - "maps", - "savedObjects", - "usageCollection", - "unifiedFieldList", - "unifiedSearch" - ], - "extraPublicDirs": [ - "common" - ], - "owner": { - "name": "Machine Learning UI", - "githubTeam": "ml-ui" - }, - "description": "This plugin provides access to the machine learning features provided by Elastic." -} diff --git a/x-pack/plugins/ml/kibana.jsonc b/x-pack/plugins/ml/kibana.jsonc new file mode 100644 index 00000000000000..19c3140de39777 --- /dev/null +++ b/x-pack/plugins/ml/kibana.jsonc @@ -0,0 +1,65 @@ +{ + "type": "plugin", + "id": "@kbn/ml-plugin", + "owner": "@elastic/ml-ui", + "description": "This plugin provides access to the machine learning features provided by Elastic.", + "plugin": { + "id": "ml", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "ml" + ], + "requiredPlugins": [ + "aiops", + "charts", + "cloud", + "data", + "dataViews", + "dataVisualizer", + "discover", + "embeddable", + "features", + "fieldFormats", + "lens", + "licensing", + "share", + "taskManager", + "triggersActionsUi", + "uiActions", + "unifiedSearch" + ], + "optionalPlugins": [ + "alerting", + "dashboard", + "home", + "licenseManagement", + "management", + "maps", + "security", + "spaces", + "usageCollection", + "cases" + ], + "requiredBundles": [ + "cases", + "charts", + "dashboard", + "esUiShared", + "fieldFormats", + "kibanaReact", + "kibanaUtils", + "lens", + "maps", + "savedObjects", + "savedSearch", + "usageCollection", + "unifiedFieldList", + "unifiedSearch" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/ml/package.json b/x-pack/plugins/ml/package.json index 11498a97647973..22f203059657a9 100644 --- a/x-pack/plugins/ml/package.json +++ b/x-pack/plugins/ml/package.json @@ -1,9 +1,9 @@ { "author": "Elastic", - "name": "ml", - "version": "0.0.0", + "name": "@kbn/ml-plugin", + "version": "1.0.0", "private": true, - "license": "Elastic-License", + "license": "Elastic License 2.0", "scripts": { "build:apiDocScripts": "cd server/routes/apidoc_scripts && ../../../../../../node_modules/.bin/tsc", "generateHeader": "node server/routes/apidoc_scripts/target/header_generator.js", diff --git a/x-pack/plugins/ml/public/application/aiops/change_point_detection.tsx b/x-pack/plugins/ml/public/application/aiops/change_point_detection.tsx index 3ee53940add2b5..77642001757abe 100644 --- a/x-pack/plugins/ml/public/application/aiops/change_point_detection.tsx +++ b/x-pack/plugins/ml/public/application/aiops/change_point_detection.tsx @@ -7,7 +7,7 @@ import React, { FC } from 'react'; import { pick } from 'lodash'; - +import { i18n } from '@kbn/i18n'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -25,7 +25,7 @@ export const ChangePointDetectionPage: FC = () => { const context = useMlContext(); const dataView = context.currentDataView; - const savedSearch = context.currentSavedSearch; + const savedSearch = context.selectedSavedSearch; return ( <> @@ -62,7 +62,12 @@ export const ChangePointDetectionPage: FC = () => { ])} /> ) : null} - + ); }; diff --git a/x-pack/plugins/ml/public/application/aiops/explain_log_rate_spikes.tsx b/x-pack/plugins/ml/public/application/aiops/explain_log_rate_spikes.tsx index c7abf7385c3b06..031297c55929af 100644 --- a/x-pack/plugins/ml/public/application/aiops/explain_log_rate_spikes.tsx +++ b/x-pack/plugins/ml/public/application/aiops/explain_log_rate_spikes.tsx @@ -25,7 +25,7 @@ export const ExplainLogRateSpikesPage: FC = () => { const context = useMlContext(); const dataView = context.currentDataView; - const savedSearch = context.currentSavedSearch; + const savedSearch = context.selectedSavedSearch; return ( <> diff --git a/x-pack/plugins/ml/public/application/aiops/log_categorization.tsx b/x-pack/plugins/ml/public/application/aiops/log_categorization.tsx index a78a1e3815be86..cdc0c079d541c0 100644 --- a/x-pack/plugins/ml/public/application/aiops/log_categorization.tsx +++ b/x-pack/plugins/ml/public/application/aiops/log_categorization.tsx @@ -25,7 +25,7 @@ export const LogCategorizationPage: FC = () => { const context = useMlContext(); const dataView = context.currentDataView; - const savedSearch = context.currentSavedSearch; + const savedSearch = context.selectedSavedSearch; return ( <> diff --git a/x-pack/plugins/ml/public/application/app.tsx b/x-pack/plugins/ml/public/application/app.tsx index d10eb2c8e63ec0..ffd3fa9e8d6543 100644 --- a/x-pack/plugins/ml/public/application/app.tsx +++ b/x-pack/plugins/ml/public/application/app.tsx @@ -45,6 +45,12 @@ interface AppProps { const localStorage = new Storage(window.localStorage); +// temporary function to hardcode the serverless state +// this will be replaced by the true serverless information from kibana +export function isServerless() { + return false; +} + /** * Provides global services available across the entire ML app. */ @@ -54,6 +60,7 @@ export function getMlGlobalServices(httpStart: HttpStart, usageCollection?: Usag httpService, mlApiServices: mlApiServicesProvider(httpService), mlUsageCollection: mlUsageCollectionProvider(usageCollection), + isServerless, }; } @@ -78,6 +85,10 @@ const App: FC = ({ coreStart, deps, appMountParams }) => { config: coreStart.uiSettings!, setBreadcrumbs: coreStart.chrome!.setBreadcrumbs, redirectToMlAccessDeniedPage, + getSavedSearchDeps: { + search: deps.data.search, + savedObjectsClient: coreStart.savedObjects.client, + }, }; const services = { diff --git a/x-pack/plugins/ml/public/application/components/data_grid/types.ts b/x-pack/plugins/ml/public/application/components/data_grid/types.ts index 4e5a172e70aa83..30e711d9f41b9b 100644 --- a/x-pack/plugins/ml/public/application/components/data_grid/types.ts +++ b/x-pack/plugins/ml/public/application/components/data_grid/types.ts @@ -15,6 +15,7 @@ import { EuiDataGridColumn, } from '@elastic/eui'; +import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker'; import { Dictionary } from '../../../../common/types/common'; import { ChartData } from '../../../../common/types/field_histograms'; @@ -88,6 +89,7 @@ export interface UseIndexDataReturnType > { renderCellValue: RenderCellValue; indexPatternFields?: string[]; + timeRangeMs?: TimeRangeMs; } export interface UseDataGridReturnType { diff --git a/x-pack/plugins/ml/public/application/components/data_recognizer/data_recognizer.d.ts b/x-pack/plugins/ml/public/application/components/data_recognizer/data_recognizer.d.ts index a2ce2dcea2273e..8cd013732b726c 100644 --- a/x-pack/plugins/ml/public/application/components/data_recognizer/data_recognizer.d.ts +++ b/x-pack/plugins/ml/public/application/components/data_recognizer/data_recognizer.d.ts @@ -7,11 +7,11 @@ import { FC } from 'react'; import type { DataView } from '@kbn/data-views-plugin/public'; -import { SavedSearchSavedObject } from '../../../../common/types/kibana'; +import { type SavedSearch } from '@kbn/saved-search-plugin/public'; declare const DataRecognizer: FC<{ indexPattern: DataView; - savedSearch: SavedSearchSavedObject | null; + savedSearch: SavedSearch | null; results: { count: number; onChange?: Function; diff --git a/x-pack/plugins/ml/public/application/components/field_stats_flyout/eui_combo_box_with_field_stats.tsx b/x-pack/plugins/ml/public/application/components/field_stats_flyout/eui_combo_box_with_field_stats.tsx new file mode 100644 index 00000000000000..bd02a4612ce526 --- /dev/null +++ b/x-pack/plugins/ml/public/application/components/field_stats_flyout/eui_combo_box_with_field_stats.tsx @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useMemo } from 'react'; +import { EuiComboBoxProps } from '@elastic/eui/src/components/combo_box/combo_box'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; +import { css } from '@emotion/react'; +import { useFieldStatsTrigger } from './use_field_stats_trigger'; + +export const optionCss = css` + .euiComboBoxOption__enterBadge { + display: none; + } + .euiFlexGroup { + gap: 0px; + } + .euiComboBoxOption__content { + margin-left: 2px; + } +`; + +export const EuiComboBoxWithFieldStats: FC< + EuiComboBoxProps +> = ({ options, ...restProps }) => { + const { renderOption } = useFieldStatsTrigger(); + const comboBoxOptions: EuiComboBoxOptionOption[] = useMemo( + () => + Array.isArray(options) + ? options.map((o) => ({ + ...o, + css: optionCss, + })) + : [], + [options] + ); + + return ( + + ); +}; diff --git a/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_content.tsx b/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_content.tsx index cf04337e06d04b..ddf082cbd7e964 100644 --- a/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_content.tsx +++ b/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_content.tsx @@ -5,69 +5,65 @@ * 2.0. */ -import React, { FC, useContext, useEffect, useMemo, useState } from 'react'; -import { FieldStats, FieldStatsServices } from '@kbn/unified-field-list-plugin/public'; -import moment from 'moment'; +import React, { FC, useMemo } from 'react'; +import { + FieldStats, + FieldStatsProps, + FieldStatsServices, +} from '@kbn/unified-field-list-plugin/public'; import { isDefined } from '@kbn/ml-is-defined'; +import type { DataView } from '@kbn/data-plugin/common'; +import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker'; +import moment from 'moment'; +import { euiPaletteColorBlind } from '@elastic/eui'; import { getDefaultDatafeedQuery } from '../../jobs/new_job/utils/new_job_utils'; -import { useMlKibana } from '../../contexts/kibana'; -import { JobCreatorContext } from '../../jobs/new_job/pages/components/job_creator_context'; import { useFieldStatsFlyoutContext } from './use_field_stats_flytout_context'; -const defaultDatafeedQuery = getDefaultDatafeedQuery(); +const DEFAULT_DSL_QUERY = getDefaultDatafeedQuery(); +const DEFAULT_COLOR = euiPaletteColorBlind()[0]; -export const FieldStatsContent: FC = () => { - const { - services: { uiSettings, data, fieldFormats, charts }, - } = useMlKibana(); - const fieldStatsServices: FieldStatsServices = { - uiSettings, - dataViews: data.dataViews, - data, - fieldFormats, - charts, - }; - const { jobCreator, jobCreatorUpdated } = useContext(JobCreatorContext); +export const FieldStatsContent: FC<{ + dataView: DataView; + fieldStatsServices: FieldStatsServices; + timeRangeMs?: TimeRangeMs; + dslQuery?: FieldStatsProps['dslQuery']; +}> = ({ dataView: currentDataView, fieldStatsServices, timeRangeMs, dslQuery }) => { const { fieldName } = useFieldStatsFlyoutContext(); - const [start, setStart] = useState(jobCreator.start); - const [end, setEnd] = useState(jobCreator.end); - - useEffect(() => { - if (jobCreator.start !== start || jobCreator.end !== end) { - setStart(jobCreator.start); - setEnd(jobCreator.end); + // Format timestamp to ISO formatted date strings + const timeRange = useMemo(() => { + // Use the provided timeRange if available + if (timeRangeMs) { + return { + from: moment(timeRangeMs.from).toISOString(), + to: moment(timeRangeMs.to).toISOString(), + }; } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [jobCreatorUpdated]); - - // Format timestamp to ISO formatted date strings - const timeRange = useMemo( - () => - start && end - ? { from: moment(start).toISOString(), to: moment(end).toISOString() } - : undefined, - [start, end] - ); + // If time range is available via jobCreator, use that + // else mimic Discover and set timeRange to be now for data view without time field + const now = moment(); + return { from: now.toISOString(), to: now.toISOString() }; + }, [timeRangeMs]); const fieldForStats = useMemo( - () => (isDefined(fieldName) ? jobCreator.dataView.getFieldByName(fieldName) : undefined), - [fieldName, jobCreator.dataView] + () => (isDefined(fieldName) ? currentDataView.getFieldByName(fieldName) : undefined), + [fieldName, currentDataView] ); - const showFieldStats = timeRange && isDefined(jobCreator.dataViewId) && fieldForStats; + const showFieldStats = timeRange && isDefined(currentDataView) && fieldForStats; return showFieldStats ? ( ) : null; }; diff --git a/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_flyout.tsx b/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_flyout.tsx index 31d949a0defca3..89d53a1fe0ba34 100644 --- a/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_flyout.tsx +++ b/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_flyout.tsx @@ -19,10 +19,18 @@ import { EuiSpacer, } from '@elastic/eui'; import { css } from '@emotion/react'; +import { type DataView } from '@kbn/data-plugin/common'; +import type { FieldStatsProps, FieldStatsServices } from '@kbn/unified-field-list-plugin/public'; +import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker'; import { useFieldStatsFlyoutContext } from './use_field_stats_flytout_context'; import { FieldStatsContent } from './field_stats_content'; -export const FieldStatsFlyout: FC = () => { +export const FieldStatsFlyout: FC<{ + dataView: DataView; + fieldStatsServices: FieldStatsServices; + timeRangeMs?: TimeRangeMs; + dslQuery?: FieldStatsProps['dslQuery']; +}> = ({ dataView, fieldStatsServices, timeRangeMs, dslQuery }) => { const { setIsFlyoutVisible, isFlyoutVisible, fieldName } = useFieldStatsFlyoutContext(); const closeFlyout = useCallback(() => setIsFlyoutVisible(false), []); // eslint-disable-line react-hooks/exhaustive-deps @@ -50,7 +58,12 @@ export const FieldStatsFlyout: FC = () => { > {fieldName} - + diff --git a/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_flyout_provider.tsx b/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_flyout_provider.tsx index 49d71894513138..f65c57cc52f2f0 100644 --- a/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_flyout_provider.tsx +++ b/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_flyout_provider.tsx @@ -6,10 +6,26 @@ */ import React, { useCallback, useState } from 'react'; -import { FieldStatsFlyout } from './field_stats_flyout'; +import type { DataView } from '@kbn/data-plugin/common'; +import type { FieldStatsServices } from '@kbn/unified-field-list-plugin/public'; +import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker'; +import type { FieldStatsProps } from '@kbn/unified-field-list-plugin/public'; import { MLJobWizardFieldStatsFlyoutContext } from './use_field_stats_flytout_context'; +import { FieldStatsFlyout } from './field_stats_flyout'; -export const FieldStatsFlyoutProvider = ({ children }: { children: React.ReactElement }) => { +export const FieldStatsFlyoutProvider = ({ + dataView, + fieldStatsServices, + timeRangeMs, + dslQuery, + children, +}: { + dataView: DataView; + fieldStatsServices: FieldStatsServices; + timeRangeMs?: TimeRangeMs; + dslQuery?: FieldStatsProps['dslQuery']; + children: React.ReactElement; +}) => { const [isFieldStatsFlyoutVisible, setFieldStatsIsFlyoutVisible] = useState(false); const [fieldName, setFieldName] = useState(); const [fieldValue, setFieldValue] = useState(); @@ -31,7 +47,12 @@ export const FieldStatsFlyoutProvider = ({ children }: { children: React.ReactEl fieldValue, }} > - + {children} ); diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/common/components/field_stats_info_button.tsx b/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_info_button.tsx similarity index 87% rename from x-pack/plugins/ml/public/application/jobs/new_job/common/components/field_stats_info_button.tsx rename to x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_info_button.tsx index 48386731c24c07..dd500416c8fb67 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/common/components/field_stats_info_button.tsx +++ b/x-pack/plugins/ml/public/application/components/field_stats_flyout/field_stats_info_button.tsx @@ -9,19 +9,20 @@ import { EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiHighlight, EuiToolTip } fr import { i18n } from '@kbn/i18n'; import React from 'react'; import { FieldIcon } from '@kbn/react-field'; -import { EVENT_RATE_FIELD_ID, Field } from '../../../../../../common/types/fields'; -import { getKbnFieldIconType } from '../../../../../../common/util/get_field_icon_types'; +import { EVENT_RATE_FIELD_ID, Field } from '../../../../common/types/fields'; +import { getKbnFieldIconType } from '../../../../common/util/get_field_icon_types'; +export type FieldForStats = Pick; export const FieldStatsInfoButton = ({ field, label, searchValue = '', onButtonClick, }: { - field: Field; + field: FieldForStats; label: string; searchValue?: string; - onButtonClick?: (field: Field) => void; + onButtonClick?: (field: FieldForStats) => void; }) => { return ( diff --git a/x-pack/plugins/ml/public/application/components/field_stats_flyout/index.ts b/x-pack/plugins/ml/public/application/components/field_stats_flyout/index.ts index bc20a20a36c069..c808653bb9ff75 100644 --- a/x-pack/plugins/ml/public/application/components/field_stats_flyout/index.ts +++ b/x-pack/plugins/ml/public/application/components/field_stats_flyout/index.ts @@ -12,3 +12,6 @@ export { MLJobWizardFieldStatsFlyoutContext, useFieldStatsFlyoutContext, } from './use_field_stats_flytout_context'; +export { FieldStatsInfoButton } from './field_stats_info_button'; +export { useFieldStatsTrigger } from './use_field_stats_trigger'; +export { EuiComboBoxWithFieldStats } from './eui_combo_box_with_field_stats'; diff --git a/x-pack/plugins/ml/public/application/components/field_stats_flyout/use_field_stats_trigger.tsx b/x-pack/plugins/ml/public/application/components/field_stats_flyout/use_field_stats_trigger.tsx new file mode 100644 index 00000000000000..0106385b3eae3d --- /dev/null +++ b/x-pack/plugins/ml/public/application/components/field_stats_flyout/use_field_stats_trigger.tsx @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { ReactNode, useCallback } from 'react'; +import { EuiComboBoxOptionOption } from '@elastic/eui'; +import { optionCss } from './eui_combo_box_with_field_stats'; +import { useFieldStatsFlyoutContext } from '.'; +import { FieldForStats, FieldStatsInfoButton } from './field_stats_info_button'; +import { Field } from '../../../../common/types/fields'; + +interface Option extends EuiComboBoxOptionOption { + field: Field; +} +export const useFieldStatsTrigger = () => { + const { setIsFlyoutVisible, setFieldName } = useFieldStatsFlyoutContext(); + + const closeFlyout = useCallback(() => setIsFlyoutVisible(false), [setIsFlyoutVisible]); + + const handleFieldStatsButtonClick = useCallback( + (field: FieldForStats) => { + if (typeof field.id === 'string') { + setFieldName(field.id); + setIsFlyoutVisible(true); + } + }, + [setFieldName, setIsFlyoutVisible] + ); + const renderOption = useCallback( + (option: EuiComboBoxOptionOption, searchValue: string): ReactNode => { + const field = (option as Option).field; + return option.isGroupLabelOption || !field ? ( + option.label + ) : ( + + ); + }, + [handleFieldStatsButtonClick] + ); + return { + renderOption, + setIsFlyoutVisible, + setFieldName, + handleFieldStatsButtonClick, + closeFlyout, + optionCss, + }; +}; diff --git a/x-pack/plugins/ml/public/application/components/help_menu/help_menu.tsx b/x-pack/plugins/ml/public/application/components/help_menu/help_menu.tsx index 4d0c88036dad31..ab92a134e421e1 100644 --- a/x-pack/plugins/ml/public/application/components/help_menu/help_menu.tsx +++ b/x-pack/plugins/ml/public/application/components/help_menu/help_menu.tsx @@ -11,17 +11,20 @@ import { useMlKibana } from '../../contexts/kibana'; interface HelpMenuProps { docLink: string; + appName?: string; } // Component for adding a documentation link to the help menu -export const HelpMenu: FC = React.memo(({ docLink }) => { +export const HelpMenu: FC = React.memo(({ docLink, appName }) => { const { chrome } = useMlKibana().services; useEffect(() => { chrome.setHelpExtension({ - appName: i18n.translate('xpack.ml.chrome.help.appName', { - defaultMessage: 'Machine Learning', - }), + appName: + appName ?? + i18n.translate('xpack.ml.chrome.help.appName', { + defaultMessage: 'Machine Learning', + }), links: [ { href: docLink, diff --git a/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx b/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx index ba4c034cda5813..2498aa280fa9bf 100644 --- a/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx +++ b/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx @@ -169,7 +169,7 @@ const CommonPageWrapper: FC = React.memo(({ pageDeps, ro {routeList.map((route) => { return ( { diff --git a/x-pack/plugins/ml/public/application/components/ml_page/side_nav.tsx b/x-pack/plugins/ml/public/application/components/ml_page/side_nav.tsx index 6a928b2a365a8b..f3270068740d05 100644 --- a/x-pack/plugins/ml/public/application/components/ml_page/side_nav.tsx +++ b/x-pack/plugins/ml/public/application/components/ml_page/side_nav.tsx @@ -96,6 +96,15 @@ export function useSideNavItems(activeRoute: MlRoute | undefined) { disabled: disableLinks, testSubj: 'mlMainTab notifications', }, + { + id: 'memory_usage', + pathId: ML_PAGES.MEMORY_USAGE, + name: i18n.translate('xpack.ml.navMenu.memoryUsageText', { + defaultMessage: 'Memory Usage', + }), + disabled: disableLinks || !canViewMlNodes, + testSubj: 'mlMainTab nodesOverview', + }, ], }, { @@ -196,15 +205,6 @@ export function useSideNavItems(activeRoute: MlRoute | undefined) { disabled: disableLinks, testSubj: 'mlMainTab trainedModels', }, - { - id: 'nodes_overview', - pathId: ML_PAGES.TRAINED_MODELS_NODES, - name: i18n.translate('xpack.ml.navMenu.nodesOverviewText', { - defaultMessage: 'Nodes', - }), - disabled: disableLinks || !canViewMlNodes, - testSubj: 'mlMainTab nodesOverview', - }, ], }, { diff --git a/x-pack/plugins/ml/public/application/contexts/kibana/use_is_serverless.ts b/x-pack/plugins/ml/public/application/contexts/kibana/use_is_serverless.ts new file mode 100644 index 00000000000000..120ae02b8d466c --- /dev/null +++ b/x-pack/plugins/ml/public/application/contexts/kibana/use_is_serverless.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useMemo } from 'react'; +import { useMlKibana } from './kibana_context'; + +export const useIsServerless = () => { + const isServerless = useMlKibana().services.mlServices.isServerless; + return useMemo(() => isServerless(), [isServerless]); +}; diff --git a/x-pack/plugins/ml/public/application/contexts/ml/__mocks__/kibana_context_value.ts b/x-pack/plugins/ml/public/application/contexts/ml/__mocks__/kibana_context_value.ts index 642bc4baee712a..1e783660a338e2 100644 --- a/x-pack/plugins/ml/public/application/contexts/ml/__mocks__/kibana_context_value.ts +++ b/x-pack/plugins/ml/public/application/contexts/ml/__mocks__/kibana_context_value.ts @@ -8,7 +8,10 @@ import { dataViewMock } from './data_view'; import { dataViewsContractMock } from './data_view_contract'; import { kibanaConfigMock } from './kibana_config'; -import { savedSearchMock } from './saved_search'; +import { deprecatedSavedSearchSimpleObjMock } from './saved_search'; +import { SavedSearch } from '@kbn/saved-search-plugin/public'; + +const mockSavedSearch: SavedSearch = {} as unknown as SavedSearch; export const kibanaContextValueMock = { combinedQuery: { @@ -16,7 +19,8 @@ export const kibanaContextValueMock = { language: 'the-query-language', }, currentDataView: dataViewMock, - currentSavedSearch: savedSearchMock, + deprecatedSavedSearchObj: deprecatedSavedSearchSimpleObjMock, + selectedSavedSearch: mockSavedSearch, dataViewsContract: dataViewsContractMock, kibanaConfig: kibanaConfigMock, }; diff --git a/x-pack/plugins/ml/public/application/contexts/ml/__mocks__/saved_search.ts b/x-pack/plugins/ml/public/application/contexts/ml/__mocks__/saved_search.ts index b9475996c79d8b..f16b4f311f2e48 100644 --- a/x-pack/plugins/ml/public/application/contexts/ml/__mocks__/saved_search.ts +++ b/x-pack/plugins/ml/public/application/contexts/ml/__mocks__/saved_search.ts @@ -5,7 +5,7 @@ * 2.0. */ -export const savedSearchMock: any = { +export const deprecatedSavedSearchSimpleObjMock: any = { id: 'the-saved-search-id', type: 'search', attributes: { diff --git a/x-pack/plugins/ml/public/application/contexts/ml/ml_context.ts b/x-pack/plugins/ml/public/application/contexts/ml/ml_context.ts index 8b755b02f99b90..65a14111a8a8f4 100644 --- a/x-pack/plugins/ml/public/application/contexts/ml/ml_context.ts +++ b/x-pack/plugins/ml/public/application/contexts/ml/ml_context.ts @@ -7,13 +7,16 @@ import React from 'react'; import type { DataView, DataViewsContract } from '@kbn/data-views-plugin/public'; +import type { SavedSearch } from '@kbn/saved-search-plugin/public'; import type { SavedSearchSavedObject } from '../../../../common/types/kibana'; import type { MlServicesContext } from '../../app'; export interface MlContextValue { combinedQuery: any; currentDataView: DataView; // TODO this should be DataView or null - currentSavedSearch: SavedSearchSavedObject | null; + // @deprecated currentSavedSearch is of SavedSearchSavedObject type, change to selectedSavedSearch + deprecatedSavedSearchObj: SavedSearchSavedObject | null; + selectedSavedSearch: SavedSearch | null; dataViewsContract: DataViewsContract; kibanaConfig: any; // IUiSettingsClient; kibanaVersion: string; diff --git a/x-pack/plugins/ml/public/application/contexts/ml/use_current_saved_search.ts b/x-pack/plugins/ml/public/application/contexts/ml/use_current_saved_search.ts deleted file mode 100644 index 1d55d0d4547255..00000000000000 --- a/x-pack/plugins/ml/public/application/contexts/ml/use_current_saved_search.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { useContext } from 'react'; - -import { MlContext } from './ml_context'; - -export const useCurrentSavedSearch = () => { - const context = useContext(MlContext); - - if (context.currentSavedSearch === undefined) { - throw new Error('currentSavedSearch is undefined'); - } - - return context.currentSavedSearch; -}; diff --git a/x-pack/plugins/ml/public/application/contexts/ml/use_ml_context.ts b/x-pack/plugins/ml/public/application/contexts/ml/use_ml_context.ts index 1a07cb0338855f..f9ee39921087f9 100644 --- a/x-pack/plugins/ml/public/application/contexts/ml/use_ml_context.ts +++ b/x-pack/plugins/ml/public/application/contexts/ml/use_ml_context.ts @@ -15,7 +15,10 @@ export const useMlContext = () => { if ( context.combinedQuery === undefined || context.currentDataView === undefined || - context.currentSavedSearch === undefined || + // @deprecated currentSavedSearch is of SavedSearchSavedObject type + // and should be migrated to selectedSavedSearch + context.deprecatedSavedSearchObj === undefined || + context.selectedSavedSearch === undefined || context.dataViewsContract === undefined || context.kibanaConfig === undefined ) { diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/advanced_step_form.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/advanced_step_form.tsx index a566aa685b7bc5..f9268904245455 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/advanced_step_form.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/advanced_step_form.tsx @@ -264,7 +264,7 @@ export const AdvancedStepForm: FC = ({ 'xpack.ml.dataframe.analytics.create.computeFeatureInfluenceLabelHelpText', { defaultMessage: - 'Specifies whether the feature influence calculation is enabled. Defaults to true.', + 'Specify whether the feature influence calculation is enabled. Defaults to true.', } )} > @@ -399,7 +399,7 @@ export const AdvancedStepForm: FC = ({ 'xpack.ml.dataframe.analytics.create.predictionFieldNameHelpText', { defaultMessage: - 'Defines the name of the prediction field in the results. Defaults to _prediction.', + 'Define the name of the prediction field in the results. The default is _prediction.', } )} > diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/hyper_parameters.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/hyper_parameters.tsx index 704b2cc77a7f93..35b408213ab701 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/hyper_parameters.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/hyper_parameters.tsx @@ -366,7 +366,7 @@ export const HyperParameters: FC = ({ actions, state, advancedParamErrors 'xpack.ml.dataframe.analytics.create.softTreeDepthToleranceText', { defaultMessage: - 'Controls how quickly the loss increases when tree depths exceed soft limits. The smaller the value, the faster the loss increases. Must be greater than or equal to 0.01. ', + 'Control how quickly the loss increases when tree depths exceed soft limits. The smaller the value, the faster the loss increases. Must be greater than or equal to 0.01. ', } )} isInvalid={ diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/outlier_hyper_parameters.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/outlier_hyper_parameters.tsx index d347a8147469d3..a47b28fd150e98 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/outlier_hyper_parameters.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/advanced_step/outlier_hyper_parameters.tsx @@ -30,7 +30,7 @@ export const OutlierHyperParameters: FC = ({ actions, state, advancedPara })} helpText={i18n.translate('xpack.ml.dataframe.analytics.create.methodHelpText', { defaultMessage: - 'Sets the method that outlier detection uses. If not set, uses an ensemble of different methods, normalizes and combines their individual outlier scores to obtain the overall outlier score. It is recommended to use the ensemble method.', + 'Set the method that outlier detection uses. If not set, uses an ensemble of different methods, normalizes and combines their individual outlier scores to obtain the overall outlier score. It is recommended to use the ensemble method.', })} isInvalid={advancedParamErrors[ANALYSIS_ADVANCED_FIELDS.METHOD] !== undefined} error={advancedParamErrors[ANALYSIS_ADVANCED_FIELDS.METHOD]} @@ -86,7 +86,7 @@ export const OutlierHyperParameters: FC = ({ actions, state, advancedPara })} helpText={i18n.translate('xpack.ml.dataframe.analytics.create.outlierFractionHelpText', { defaultMessage: - 'Sets the proportion of the data set that is assumed to be outlying prior to outlier detection.', + 'Set the proportion of the data set that is assumed to be outlying prior to outlier detection.', })} isInvalid={advancedParamErrors[ANALYSIS_ADVANCED_FIELDS.OUTLIER_FRACTION] !== undefined} error={advancedParamErrors[ANALYSIS_ADVANCED_FIELDS.OUTLIER_FRACTION]} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/analysis_fields_table.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/analysis_fields_table.tsx index 85157569e64fb3..9608457723c08a 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/analysis_fields_table.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/analysis_fields_table.tsx @@ -12,6 +12,12 @@ import { isEqual } from 'lodash'; import { LEFT_ALIGNMENT, SortableProperties } from '@elastic/eui/lib/services'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; +import { ES_FIELD_TYPES } from '@kbn/field-types'; +import { useFieldStatsTrigger } from '../../../../../components/field_stats_flyout/use_field_stats_trigger'; +import { + FieldForStats, + FieldStatsInfoButton, +} from '../../../../../components/field_stats_flyout/field_stats_info_button'; import { FieldSelectionItem } from '../../../../../../../common/types/data_frame_analytics'; // @ts-ignore could not find declaration file import { CustomSelectionTable } from '../../../../../components/custom_selection_table'; @@ -23,62 +29,6 @@ const minimumFieldsMessage = i18n.translate( } ); -const columns = [ - { - id: 'checkbox', - isCheckbox: true, - textOnly: false, - width: '32px', - }, - { - label: i18n.translate( - 'xpack.ml.dataframe.analytics.create.analysisFieldsTable.fieldNameColumn', - { - defaultMessage: 'Field name', - } - ), - id: 'name', - isSortable: true, - alignment: LEFT_ALIGNMENT, - }, - { - id: 'mapping_types', - label: i18n.translate('xpack.ml.dataframe.analytics.create.analyticsTable.mappingColumn', { - defaultMessage: 'Mapping', - }), - isSortable: false, - alignment: LEFT_ALIGNMENT, - }, - { - label: i18n.translate('xpack.ml.dataframe.analytics.create.analyticsTable.isIncludedColumn', { - defaultMessage: 'Is included', - }), - id: 'is_included', - alignment: LEFT_ALIGNMENT, - isSortable: true, - // eslint-disable-next-line @typescript-eslint/naming-convention - render: ({ is_included }: { is_included: boolean }) => (is_included ? 'Yes' : 'No'), - }, - { - label: i18n.translate('xpack.ml.dataframe.analytics.create.analyticsTable.isRequiredColumn', { - defaultMessage: 'Is required', - }), - id: 'is_required', - alignment: LEFT_ALIGNMENT, - isSortable: true, - // eslint-disable-next-line @typescript-eslint/naming-convention - render: ({ is_required }: { is_required: boolean }) => (is_required ? 'Yes' : 'No'), - }, - { - label: i18n.translate('xpack.ml.dataframe.analytics.create.analyticsTable.reasonColumn', { - defaultMessage: 'Reason', - }), - id: 'reason', - alignment: LEFT_ALIGNMENT, - isSortable: false, - }, -]; - const checkboxDisabledCheck = (item: FieldSelectionItem) => item.is_required === true || (item.reason && item.reason.includes('unsupported type')); @@ -110,6 +60,89 @@ export const AnalysisFieldsTable: FC<{ itemsPerPage: number; }>({ pageIndex: 0, itemsPerPage: 5 }); + const { handleFieldStatsButtonClick } = useFieldStatsTrigger(); + + const columns = [ + { + id: 'checkbox', + isCheckbox: true, + textOnly: false, + width: '32px', + }, + { + label: i18n.translate( + 'xpack.ml.dataframe.analytics.create.analysisFieldsTable.fieldNameColumn', + { + defaultMessage: 'Field name', + } + ), + id: 'name', + // eslint-disable-next-line @typescript-eslint/naming-convention + render: ({ name, mapping_types }: { name: string; mapping_types: string[] }) => { + const field: FieldForStats = { + id: name, + type: (Array.isArray(mapping_types) && mapping_types.length > 0 + ? mapping_types[0] + : 'number') as ES_FIELD_TYPES, + }; + return ( + <> + + + ); + }, + + isSortable: true, + alignment: LEFT_ALIGNMENT, + }, + { + id: 'mapping_types', + label: i18n.translate('xpack.ml.dataframe.analytics.create.analyticsTable.mappingColumn', { + defaultMessage: 'Mapping', + }), + isSortable: false, + alignment: LEFT_ALIGNMENT, + }, + { + label: i18n.translate( + 'xpack.ml.dataframe.analytics.create.analyticsTable.isIncludedColumn', + { + defaultMessage: 'Is included', + } + ), + id: 'is_included', + alignment: LEFT_ALIGNMENT, + isSortable: true, + // eslint-disable-next-line @typescript-eslint/naming-convention + render: ({ is_included }: { is_included: boolean }) => (is_included ? 'Yes' : 'No'), + }, + { + label: i18n.translate( + 'xpack.ml.dataframe.analytics.create.analyticsTable.isRequiredColumn', + { + defaultMessage: 'Is required', + } + ), + id: 'is_required', + alignment: LEFT_ALIGNMENT, + isSortable: true, + // eslint-disable-next-line @typescript-eslint/naming-convention + render: ({ is_required }: { is_required: boolean }) => (is_required ? 'Yes' : 'No'), + }, + { + label: i18n.translate('xpack.ml.dataframe.analytics.create.analyticsTable.reasonColumn', { + defaultMessage: 'Reason', + }), + id: 'reason', + alignment: LEFT_ALIGNMENT, + isSortable: false, + }, + ]; + useEffect(() => { if (includes.length === 0 && tableItems.length > 0) { const includedFields: string[] = []; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx index 052c4e64272c9a..9da07dc0e6116a 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx @@ -8,7 +8,6 @@ import React, { FC, Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { EuiBadge, - EuiComboBox, EuiComboBoxOptionOption, EuiFormRow, EuiPanel, @@ -20,6 +19,14 @@ import { i18n } from '@kbn/i18n'; import { debounce, cloneDeep } from 'lodash'; import { Query } from '@kbn/data-plugin/common/query'; +import { ES_FIELD_TYPES } from '@kbn/field-types'; +import { FieldStatsServices } from '@kbn/unified-field-list-plugin/public'; +import { useMlKibana } from '../../../../../contexts/kibana'; +import { + EuiComboBoxWithFieldStats, + FieldStatsFlyoutProvider, +} from '../../../../../components/field_stats_flyout'; +import { FieldForStats } from '../../../../../components/field_stats_flyout/field_stats_info_button'; import { newJobCapsServiceAnalytics } from '../../../../../services/new_job_capabilities/new_job_capabilities_service_analytics'; import { useMlContext } from '../../../../../contexts/ml'; import { getCombinedRuntimeMappings } from '../../../../../components/data_grid/common'; @@ -81,13 +88,26 @@ function getIndexDataQuery(savedSearchQuery: SavedSearchQuery, jobConfigQuery: a return savedSearchQuery !== null ? savedSearchQuery : jobConfigQuery; } +type RuntimeMappingFieldType = + | ES_FIELD_TYPES.BOOLEAN + | ES_FIELD_TYPES.DATE + | ES_FIELD_TYPES.DOUBLE + | ES_FIELD_TYPES.GEO_POINT + | ES_FIELD_TYPES.IP + | ES_FIELD_TYPES.KEYWORD + | ES_FIELD_TYPES.LONG; + +interface RuntimeOption extends EuiComboBoxOptionOption { + field: FieldForStats; +} function getRuntimeDepVarOptions(jobType: AnalyticsJobType, runtimeMappings: RuntimeMappingsType) { - const runtimeOptions: EuiComboBoxOptionOption[] = []; + const runtimeOptions: RuntimeOption[] = []; Object.keys(runtimeMappings).forEach((id) => { const field = runtimeMappings[id]; if (isRuntimeField(field) && shouldAddAsDepVarOption(id, field.type, jobType)) { runtimeOptions.push({ label: id, + field: { id, type: field.type as RuntimeMappingFieldType }, }); } }); @@ -101,7 +121,7 @@ export const ConfigurationStepForm: FC = ({ setCurrentStep, }) => { const mlContext = useMlContext(); - const { currentSavedSearch, currentDataView } = mlContext; + const { currentDataView, selectedSavedSearch } = mlContext; const { savedSearchQuery, savedSearchQueryStr } = useSavedSearch(); const [fieldOptionsFetchFail, setFieldOptionsFetchFail] = useState(false); @@ -207,6 +227,7 @@ export const ConfigurationStepForm: FC = ({ if (shouldAddAsDepVarOption(field.id, field.type, jobType)) { depVarOptions.push({ label: field.id, + field, }); if (formState.dependentVariable === field.id) { @@ -532,6 +553,17 @@ export const ConfigurationStepForm: FC = ({ // eslint-disable-next-line react-hooks/exhaustive-deps [dependentVariableEmpty, jobType, scatterplotMatrixProps.fields.length] ); + const { services } = useMlKibana(); + const fieldStatsServices: FieldStatsServices = useMemo(() => { + const { uiSettings, data, fieldFormats, charts } = services; + return { + uiSettings, + dataViews: data.dataViews, + data, + fieldFormats, + charts, + }; + }, [services]); // Don't render until `savedSearchQuery` has been initialized. // `undefined` means uninitialized, `null` means initialized but not used. @@ -543,219 +575,229 @@ export const ConfigurationStepForm: FC = ({ : indexPatternFieldsTableItems; return ( - - - - - {savedSearchQuery === null && ( + + + + + + {savedSearchQuery === null && ( + + + + )} + {((isClone && cloneJob) || !isClone) && } + {savedSearchQuery !== null && ( + + {i18n.translate('xpack.ml.dataframe.analytics.create.savedSearchLabel', { + defaultMessage: 'Saved search', + })} + + )} + + {selectedSavedSearch !== null + ? selectedSavedSearch.title + : currentDataView.getName()} + + + } fullWidth > - + - )} - {((isClone && cloneJob) || !isClone) && } - - {savedSearchQuery !== null && ( - - {i18n.translate('xpack.ml.dataframe.analytics.create.savedSearchLabel', { - defaultMessage: 'Saved search', - })} - - )} - - {savedSearchQuery !== null - ? currentSavedSearch?.attributes.title - : currentDataView.title} - - - } - fullWidth - > - - - {isJobTypeWithDepVar && ( - - - {i18n.translate( - 'xpack.ml.dataframe.analytics.create.dependentVariableOptionsFetchError', + + {i18n.translate( + 'xpack.ml.dataframe.analytics.create.dependentVariableOptionsFetchError', + { + defaultMessage: + 'There was a problem fetching fields. Please refresh the page and try again.', + } + )} + , + ] + : []), + ...(fieldOptionsFetchFail === true && maxDistinctValuesError !== undefined + ? [ + + {i18n.translate( + 'xpack.ml.dataframe.analytics.create.dependentVariableMaxDistictValuesError', + { + defaultMessage: 'Invalid. {message}', + values: { message: maxDistinctValuesError }, + } + )} + , + ] + : []), + ]} + > + , - ] - : []), - ...(fieldOptionsFetchFail === true && maxDistinctValuesError !== undefined - ? [ - - {i18n.translate( - 'xpack.ml.dataframe.analytics.create.dependentVariableMaxDistictValuesError', + ) + : i18n.translate( + 'xpack.ml.dataframe.analytics.create.dependentVariableClassificationPlaceholder', { - defaultMessage: 'Invalid. {message}', - values: { message: maxDistinctValuesError }, + defaultMessage: + 'Select the numeric, categorical, or boolean field that you want to predict.', } - )} - , - ] - : []), - ]} - > - { + setFormState({ + dependentVariable: selectedOptions[0].label || '', + }); + }} + isClearable={false} + isInvalid={dependentVariable === ''} + data-test-subj={`mlAnalyticsCreateJobWizardDependentVariableSelect${ + loadingDepVarOptions ? ' loading' : ' loaded' + }`} + /> + + + )} + + + + + + {showScatterplotMatrix && ( + <> + { - setFormState({ - dependentVariable: selectedOptions[0].label || '', - }); - }} - isClearable={false} - isInvalid={dependentVariable === ''} - data-test-subj={`mlAnalyticsCreateJobWizardDependentVariableSelect${ - loadingDepVarOptions ? ' loading' : ' loaded' - }`} - /> - - - )} - - - - - - {showScatterplotMatrix && ( - <> + fullWidth + > + + + + + + + + )} + {isJobTypeWithDepVar && ( - + setFormState({ trainingPercent: +e.target.value })} + data-test-subj="mlAnalyticsCreateJobWizardTrainingPercentSlider" + /> - - - - - - )} - {isJobTypeWithDepVar && ( - - setFormState({ trainingPercent: +e.target.value })} - data-test-subj="mlAnalyticsCreateJobWizardTrainingPercentSlider" - /> - - )} - - { - setCurrentStep(ANALYTICS_STEPS.ADVANCED); - }} - /> - + )} + + { + setCurrentStep(ANALYTICS_STEPS.ADVANCED); + }} + /> + + ); }; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/job_type.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/job_type.tsx index 5f54ba3c2bb7c1..d66421e41d62ef 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/job_type.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/job_type.tsx @@ -30,7 +30,7 @@ type JobDetails = Record; const jobDetails: JobDetails = { [ANALYSIS_CONFIG_TYPE.OUTLIER_DETECTION]: { helpText: i18n.translate('xpack.ml.dataframe.analytics.create.outlierDetectionHelpText', { - defaultMessage: 'Outlier detection identifies unusual data points in the data set.', + defaultMessage: 'Identify unusual data points in the data set.', }), icon: 'outlierDetectionJob', title: i18n.translate('xpack.ml.dataframe.analytics.create.outlierDetectionTitle', { @@ -39,7 +39,7 @@ const jobDetails: JobDetails = { }, [ANALYSIS_CONFIG_TYPE.REGRESSION]: { helpText: i18n.translate('xpack.ml.dataframe.analytics.create.regressionHelpText', { - defaultMessage: 'Regression predicts numerical values in the data set.', + defaultMessage: 'Predict numerical values in the data set.', }), icon: 'regressionJob', title: i18n.translate('xpack.ml.dataframe.analytics.create.regressionTitle', { @@ -48,7 +48,7 @@ const jobDetails: JobDetails = { }, [ANALYSIS_CONFIG_TYPE.CLASSIFICATION]: { helpText: i18n.translate('xpack.ml.dataframe.analytics.create.classificationHelpText', { - defaultMessage: 'Classification predicts classes of data points in the data set.', + defaultMessage: 'Predict classes of data points in the data set.', }), icon: 'classificationJob', title: i18n.translate('xpack.ml.dataframe.analytics.create.classificationTitle', { diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/use_saved_search.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/use_saved_search.ts index 37526b6e66ff8c..ab7cd1d6c1c59c 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/use_saved_search.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/use_saved_search.ts @@ -10,12 +10,13 @@ import { buildEsQuery, buildQueryFromFilters, decorateQuery, + Filter, fromKueryExpression, + Query, toElasticsearchQuery, } from '@kbn/es-query'; import { useMlContext } from '../../../../../contexts/ml'; import { SEARCH_QUERY_LANGUAGE } from '../../../../../../../common/constants/search'; -import { getQueryFromSavedSearchObject } from '../../../../../util/index_utils'; // `undefined` is used for a non-initialized state // `null` is set if no saved search is used @@ -33,14 +34,16 @@ export function useSavedSearch() { const [savedSearchQueryStr, setSavedSearchQueryStr] = useState(undefined); const mlContext = useMlContext(); - const { currentSavedSearch, currentDataView, kibanaConfig } = mlContext; + const { currentDataView, kibanaConfig, selectedSavedSearch } = mlContext; const getQueryData = () => { let qry: any = {}; let qryString; - if (currentSavedSearch !== null) { - const { query, filter } = getQueryFromSavedSearchObject(currentSavedSearch); + if (selectedSavedSearch) { + // FIXME: Add support for AggregateQuery type #150091 + const query = selectedSavedSearch.searchSource.getField('query') as Query; + const filter = (selectedSavedSearch.searchSource.getField('filter') ?? []) as Filter[]; const queryLanguage = query.language; qryString = query.query; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/details_step/details_step_form.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/details_step/details_step_form.tsx index a033137413ef4d..265018ec23f9f4 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/details_step/details_step_form.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/details_step/details_step_form.tsx @@ -297,7 +297,7 @@ export const DetailsStepForm: FC = ({ disabled={isJobCreated} name="mlDataFrameAnalyticsUseResultsFieldDefault" label={i18n.translate('xpack.ml.dataframe.analytics.create.UseResultsFieldDefaultLabel', { - defaultMessage: 'Use results field default value "{defaultValue}"', + defaultMessage: 'Use results field default value: "{defaultValue}"', values: { defaultValue: DEFAULT_RESULTS_FIELD }, })} checked={useResultsFieldDefault === true} @@ -318,12 +318,12 @@ export const DetailsStepForm: FC = ({ })} helpText={i18n.translate('xpack.ml.dataframe.analytics.create.resultsFieldHelpText', { defaultMessage: - 'Defines the name of the field in which to store the results of the analysis. Defaults to ml.', + 'Define the name of the field in which to store the results of the analysis. Defaults to ml.', })} > setFormState({ resultsField: e.target.value })} aria-label={i18n.translate( diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts index ecdb7af9e1ddfe..4f681f07ff69e2 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts @@ -12,6 +12,8 @@ import { EuiDataGridColumn } from '@elastic/eui'; import { CoreSetup } from '@kbn/core/public'; import type { DataView } from '@kbn/data-views-plugin/public'; +import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker'; import { isRuntimeMappings } from '../../../../../../common/util/runtime_field_utils'; import { RuntimeMappings } from '../../../../../../common/types/fields'; import { DEFAULT_SAMPLER_SHARD_SIZE } from '../../../../../../common/constants/field_histograms'; @@ -85,6 +87,8 @@ export const useIndexData = ( // (for example, as part of filebeat/metricbeat/ECS based indices) // to the data grid component which would significantly slow down the page. const [indexPatternFields, setIndexPatternFields] = useState(); + const [timeRangeMs, setTimeRangeMs] = useState(); + useEffect(() => { async function fetchDataGridSampleDocuments() { setErrorMessage(''); @@ -170,6 +174,7 @@ export const useIndexData = ( setErrorMessage(''); setStatus(INDEX_STATUS.LOADING); + const timeFieldName = indexPattern.getTimeField()?.name; const sort: EsSorting = sortingColumns.reduce((s, column) => { s[column.id] = { order: column.direction }; return s; @@ -191,11 +196,38 @@ export const useIndexData = ( ...(isRuntimeMappings(combinedRuntimeMappings) ? { runtime_mappings: combinedRuntimeMappings } : {}), + ...(timeFieldName + ? { + aggs: { + earliest: { + min: { + field: timeFieldName, + }, + }, + latest: { + max: { + field: timeFieldName, + }, + }, + }, + } + : {}), }, }; try { const resp: IndexSearchResponse = await ml.esSearch(esSearchRequest); + + if ( + resp.aggregations && + isPopulatedObject(resp.aggregations.earliest, ['value']) && + isPopulatedObject(resp.aggregations.latest, ['value']) + ) { + setTimeRangeMs({ + from: resp.aggregations.earliest.value as number, + to: resp.aggregations.latest.value as number, + } as TimeRangeMs); + } const docs = resp.hits.hits.map((d) => getProcessedFields(d.fields ?? {})); setRowCountInfo({ @@ -269,5 +301,6 @@ export const useIndexData = ( ...dataGrid, indexPatternFields, renderCellValue, + timeRangeMs, }; }; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/components/analytics_selector/analytics_id_selector.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/components/analytics_selector/analytics_id_selector.tsx index 15836fb276a46a..9528c54758bc0b 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/components/analytics_selector/analytics_id_selector.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/components/analytics_selector/analytics_id_selector.tsx @@ -27,7 +27,7 @@ import { BUILT_IN_MODEL_TAG } from '../../../../../../common/constants/data_fram import { useTrainedModelsApiService } from '../../../../services/ml_api_service/trained_models'; import { GetDataFrameAnalyticsResponse } from '../../../../services/ml_api_service/data_frame_analytics'; import { useToastNotificationService } from '../../../../services/toast_notification_service'; -import { ModelsTableToConfigMapping } from '../../../../trained_models/models_management'; +import { ModelsTableToConfigMapping } from '../../../../model_management'; import { DataFrameAnalyticsConfig } from '../../../common'; import { useMlApiContext } from '../../../../contexts/kibana'; import { TrainedModelConfigResponse } from '../../../../../../common/types/trained_models'; diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/advanced_detector_modal/advanced_detector_modal.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/advanced_detector_modal/advanced_detector_modal.tsx index d2ce04f8beb7ea..005b1a76aef884 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/advanced_detector_modal/advanced_detector_modal.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/advanced_detector_modal/advanced_detector_modal.tsx @@ -16,7 +16,7 @@ import { EuiHorizontalRule, EuiTextArea, } from '@elastic/eui'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; import { JobCreatorContext } from '../../../job_creator_context'; import { AdvancedJobCreator } from '../../../../../common/job_creator'; import { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/agg_select/agg_select.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/agg_select/agg_select.tsx index 7f2e1ec3ebed12..cd6c7894ddafbd 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/agg_select/agg_select.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/agg_select/agg_select.tsx @@ -7,10 +7,10 @@ import React, { FC, useContext, useState, useEffect, useMemo } from 'react'; import { EuiComboBox, EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui'; -import { FieldStatsInfoButton } from '../../../../../common/components/field_stats_info_button'; +import { FieldStatsInfoButton } from '../../../../../../../components/field_stats_flyout/field_stats_info_button'; import { JobCreatorContext } from '../../../job_creator_context'; import { Field, Aggregation, AggFieldPair } from '../../../../../../../../../common/types/fields'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; // The display label used for an aggregation e.g. sum(bytes). export type Label = string; diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/categorization_field/categorization_field_select.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/categorization_field/categorization_field_select.tsx index a2992d1572b61a..5e73c5e1b253be 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/categorization_field/categorization_field_select.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/categorization_field/categorization_field_select.tsx @@ -8,7 +8,7 @@ import React, { FC, useCallback, useContext, useMemo } from 'react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; import { JobCreatorContext } from '../../../job_creator_context'; import { Field } from '../../../../../../../../../common/types/fields'; import { createFieldOptions } from '../../../../../common/job_creator/util/general'; diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/categorization_partition_field/categorization_per_partition_input.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/categorization_partition_field/categorization_per_partition_input.tsx index a63a49bc5f8930..ffa4833138bc68 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/categorization_partition_field/categorization_per_partition_input.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/categorization_partition_field/categorization_per_partition_input.tsx @@ -8,7 +8,7 @@ import React, { FC, useCallback, useContext, useMemo } from 'react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; import { JobCreatorContext } from '../../../job_creator_context'; import { Field } from '../../../../../../../../../common/types/fields'; import { createFieldOptions } from '../../../../../common/job_creator/util/general'; diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/geo_field/geo_field_select.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/geo_field/geo_field_select.tsx index f132023f45765a..6ea00a7123e724 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/geo_field/geo_field_select.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/geo_field/geo_field_select.tsx @@ -7,7 +7,7 @@ import React, { FC, useCallback, useMemo } from 'react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; import { Field } from '../../../../../../../../../common/types/fields'; interface DropDownLabel { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/influencers/influencers_select.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/influencers/influencers_select.tsx index 52e0b5c8c4752e..5795fe9c0b2a78 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/influencers/influencers_select.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/influencers/influencers_select.tsx @@ -8,7 +8,7 @@ import React, { FC, useContext } from 'react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; import { JobCreatorContext } from '../../../job_creator_context'; import { Field } from '../../../../../../../../../common/types/fields'; import { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/rare_field/rare_field_select.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/rare_field/rare_field_select.tsx index 8393fe111dc330..ae36daba258041 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/rare_field/rare_field_select.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/rare_field/rare_field_select.tsx @@ -8,7 +8,7 @@ import React, { FC } from 'react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; import { Field, SplitField } from '../../../../../../../../../common/types/fields'; interface DropDownLabel { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/split_field_select/split_field_select.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/split_field_select/split_field_select.tsx index ed5a0041508b10..23e676efcff343 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/split_field_select/split_field_select.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/split_field_select/split_field_select.tsx @@ -8,7 +8,7 @@ import React, { FC } from 'react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; import { Field, SplitField } from '../../../../../../../../../common/types/fields'; interface DropDownLabel { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/summary_count_field/summary_count_field_select.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/summary_count_field/summary_count_field_select.tsx index d91f4539a831fa..fa8ce4c3f22af0 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/summary_count_field/summary_count_field_select.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/pick_fields_step/components/summary_count_field/summary_count_field_select.tsx @@ -8,7 +8,7 @@ import React, { FC, useContext } from 'react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { useFieldStatsTrigger } from '../../../../../utils/use_field_stats_trigger'; +import { useFieldStatsTrigger } from '../../../../../../../components/field_stats_flyout/use_field_stats_trigger'; import { JobCreatorContext } from '../../../job_creator_context'; import { Field } from '../../../../../../../../../common/types/fields'; import { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx index 7d25031dc766cb..ec08e25bb6f157 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx @@ -21,7 +21,6 @@ import { ES_FIELD_TYPES } from '@kbn/field-types'; import { useMlKibana, useNavigateToPath } from '../../../../contexts/kibana'; import { useMlContext } from '../../../../contexts/ml'; -import { isSavedSearchSavedObject } from '../../../../../../common/types/kibana'; import { DataRecognizer } from '../../../../components/data_recognizer'; import { addItemToRecentlyAccessed } from '../../../../util/recently_accessed'; import { timeBasedIndexCheck } from '../../../../util/index_utils'; @@ -46,7 +45,7 @@ export const Page: FC = () => { const [recognizerResultsCount, setRecognizerResultsCount] = useState(0); - const { currentSavedSearch, currentDataView } = mlContext; + const { currentDataView, selectedSavedSearch } = mlContext; const isTimeBasedIndex = timeBasedIndexCheck(currentDataView); const hasGeoFields = useMemo( @@ -58,27 +57,27 @@ export const Page: FC = () => { [currentDataView] ); const indexWarningTitle = - !isTimeBasedIndex && isSavedSearchSavedObject(currentSavedSearch) + !isTimeBasedIndex && selectedSavedSearch ? i18n.translate( 'xpack.ml.newJob.wizard.jobType.dataViewFromSavedSearchNotTimeBasedMessage', { defaultMessage: '{savedSearchTitle} uses data view {dataViewName} which is not time based', values: { - savedSearchTitle: currentSavedSearch.attributes.title as string, - dataViewName: currentDataView.title, + savedSearchTitle: selectedSavedSearch.title ?? '', + dataViewName: currentDataView.getName(), }, } ) : i18n.translate('xpack.ml.newJob.wizard.jobType.dataViewNotTimeBasedMessage', { defaultMessage: 'Data view {dataViewName} is not time based', - values: { dataViewName: currentDataView.title }, + values: { dataViewName: currentDataView.getName() }, }); - const pageTitleLabel = isSavedSearchSavedObject(currentSavedSearch) + const pageTitleLabel = selectedSavedSearch ? i18n.translate('xpack.ml.newJob.wizard.jobType.savedSearchPageTitleLabel', { defaultMessage: 'saved search {savedSearchTitle}', - values: { savedSearchTitle: currentSavedSearch.attributes.title as string }, + values: { savedSearchTitle: selectedSavedSearch.title ?? '' }, }) : i18n.translate('xpack.ml.newJob.wizard.jobType.dataViewPageTitleLabel', { defaultMessage: 'data view {dataViewName}', @@ -93,23 +92,23 @@ export const Page: FC = () => { }; const getUrlParams = () => { - return !isSavedSearchSavedObject(currentSavedSearch) + return !selectedSavedSearch ? `?index=${currentDataView.id}` - : `?savedSearchId=${currentSavedSearch.id}`; + : `?savedSearchId=${selectedSavedSearch.id}`; }; const addSelectionToRecentlyAccessed = async () => { - const title = !isSavedSearchSavedObject(currentSavedSearch) - ? currentDataView.title - : (currentSavedSearch.attributes.title as string); + const title = !selectedSavedSearch + ? currentDataView.getName() + : selectedSavedSearch.title ?? ''; const mlLocator = share.url.locators.get(ML_APP_LOCATOR)!; const dataVisualizerLink = await mlLocator.getUrl( { page: ML_PAGES.DATA_VISUALIZER_INDEX_VIEWER, pageState: { - ...(currentSavedSearch?.id - ? { savedSearchId: currentSavedSearch.id } + ...(selectedSavedSearch?.id + ? { savedSearchId: selectedSavedSearch.id } : { index: currentDataView.id }), }, }, @@ -295,7 +294,7 @@ export const Page: FC = () => { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/page.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/page.tsx index 4d27dba214242d..57e0a6d75720ed 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/page.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/page.tsx @@ -64,7 +64,7 @@ export const Page: FC = ({ existingJobsAndGroups, jobType }) => { () => jobCreatorFactory(jobType)( mlContext.currentDataView, - mlContext.currentSavedSearch, + mlContext.deprecatedSavedSearchObj, mlContext.combinedQuery ), // eslint-disable-next-line react-hooks/exhaustive-deps @@ -148,7 +148,7 @@ export const Page: FC = ({ existingJobsAndGroups, jobType }) => { jobCreator.modelChangeAnnotations = true; } - if (mlContext.currentSavedSearch !== null) { + if (mlContext.selectedSavedSearch !== null) { // Jobs created from saved searches cannot be cloned in the wizard as the // ML job config holds no reference to the saved search ID. jobCreator.createdBy = null; diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx index ba4ea850acf84c..db8374f4bec441 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/new_job/wizard_steps.tsx @@ -5,12 +5,15 @@ * 2.0. */ -import React, { Fragment, FC, useState } from 'react'; +import React, { Fragment, FC, useState, useMemo, useEffect, useContext } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { EuiSpacer, EuiTitle, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { type FieldStatsServices } from '@kbn/unified-field-list-plugin/public'; +import { JobCreatorContext } from '../components/job_creator_context'; +import { useMlKibana } from '../../../../contexts/kibana'; import { FieldStatsFlyoutProvider } from '../../../../components/field_stats_flyout'; import { WIZARD_STEPS } from '../components/step_types'; @@ -30,20 +33,53 @@ interface Props { export const WizardSteps: FC = ({ currentStep, setCurrentStep }) => { const mlContext = useMlContext(); + const { services } = useMlKibana(); + const fieldStatsServices: FieldStatsServices = useMemo(() => { + const { uiSettings, data, fieldFormats, charts } = services; + return { + uiSettings, + dataViews: data.dataViews, + data, + fieldFormats, + charts, + }; + }, [services]); + + const { jobCreator, jobCreatorUpdated } = useContext(JobCreatorContext); + + const [start, setStart] = useState(jobCreator?.start); + const [end, setEnd] = useState(jobCreator?.end); + + useEffect(() => { + if ((jobCreator && jobCreator.start !== start) || jobCreator.end !== end) { + setStart(jobCreator.start); + setEnd(jobCreator.end); + } + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [jobCreatorUpdated]); + + // Format timestamp to ISO formatted date strings + const timeRangeMs = useMemo(() => { + // If time range is available via jobCreator, use that + // else mimic Discover and set timeRange to be now for data view without time field + return start && end ? { from: start, to: start } : undefined; + }, [start, end]); + // store whether the advanced and additional sections have been expanded. // has to be stored at this level to ensure it's remembered on wizard step change const [advancedExpanded, setAdvancedExpanded] = useState(false); const [additionalExpanded, setAdditionalExpanded] = useState(false); function getSummaryStepTitle() { - if (mlContext.currentSavedSearch !== null) { + if (mlContext.selectedSavedSearch) { return i18n.translate('xpack.ml.newJob.wizard.stepComponentWrapper.summaryTitleSavedSearch', { defaultMessage: 'New job from saved search {title}', - values: { title: mlContext.currentSavedSearch.attributes.title as string }, + values: { title: mlContext.selectedSavedSearch.title ?? '' }, }); } else if (mlContext.currentDataView.id !== undefined) { return i18n.translate('xpack.ml.newJob.wizard.stepComponentWrapper.summaryTitleDataView', { defaultMessage: 'New job from data view {dataViewName}', - values: { dataViewName: mlContext.currentDataView.title }, + values: { dataViewName: mlContext.currentDataView.getName() }, }); } return ''; @@ -81,7 +117,12 @@ export const WizardSteps: FC = ({ currentStep, setCurrentStep }) => { )} {currentStep === WIZARD_STEPS.PICK_FIELDS && ( - + <> diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx index 1dbf2b2e99a842..5881f76632e705 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx @@ -92,23 +92,18 @@ export const Page: FC = ({ moduleId, existingGroupIds }) => { const [jobsAwaitingNodeCount, setJobsAwaitingNodeCount] = useState(0); // #endregion - const { - currentSavedSearch: savedSearch, - currentDataView: dataView, - combinedQuery, - } = useMlContext(); - const pageTitle = - savedSearch !== null - ? i18n.translate('xpack.ml.newJob.recognize.savedSearchPageTitle', { - defaultMessage: 'saved search {savedSearchTitle}', - values: { savedSearchTitle: savedSearch.attributes.title as string }, - }) - : i18n.translate('xpack.ml.newJob.recognize.dataViewPageTitle', { - defaultMessage: 'data view {dataViewName}', - values: { dataViewName: dataView.getName() }, - }); - const displayQueryWarning = savedSearch !== null; - const tempQuery = savedSearch === null ? undefined : combinedQuery; + const { selectedSavedSearch, currentDataView: dataView, combinedQuery } = useMlContext(); + const pageTitle = selectedSavedSearch + ? i18n.translate('xpack.ml.newJob.recognize.savedSearchPageTitle', { + defaultMessage: 'saved search {savedSearchTitle}', + values: { savedSearchTitle: selectedSavedSearch.title ?? '' }, + }) + : i18n.translate('xpack.ml.newJob.recognize.dataViewPageTitle', { + defaultMessage: 'data view {dataViewName}', + values: { dataViewName: dataView.getName() }, + }); + const displayQueryWarning = selectedSavedSearch !== null; + const tempQuery = selectedSavedSearch === null ? undefined : combinedQuery; /** * Loads recognizer module configuration. diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/utils/use_field_stats_trigger.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/utils/use_field_stats_trigger.tsx deleted file mode 100644 index f13de61bef48d3..00000000000000 --- a/x-pack/plugins/ml/public/application/jobs/new_job/utils/use_field_stats_trigger.tsx +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { ReactNode, useCallback } from 'react'; -import { EuiComboBoxOptionOption } from '@elastic/eui'; -import { css } from '@emotion/react'; -import { useFieldStatsFlyoutContext } from '../../../components/field_stats_flyout'; -import { FieldStatsInfoButton } from '../common/components/field_stats_info_button'; -import { Field } from '../../../../../common/types/fields'; - -interface Option extends EuiComboBoxOptionOption { - field: Field; -} -const optionCss = css` - .euiComboBoxOption__enterBadge { - display: none; - } - .euiFlexGroup { - gap: 0px; - } - .euiComboBoxOption__content { - margin-left: 2px; - } -`; - -export const useFieldStatsTrigger = () => { - const { setIsFlyoutVisible, setFieldName } = useFieldStatsFlyoutContext(); - const handleFieldStatsButtonClick = useCallback( - (field: Field) => { - if (typeof field.id === 'string') { - setFieldName(field.id); - setIsFlyoutVisible(true); - } - }, - [setFieldName, setIsFlyoutVisible] - ); - - const renderOption = useCallback( - (option: EuiComboBoxOptionOption, searchValue: string): ReactNode => { - const field = (option as Option).field; - return option.isGroupLabelOption || !field ? ( - option.label - ) : ( - - ); - }, - [handleFieldStatsButtonClick] - ); - return { renderOption, setIsFlyoutVisible, setFieldName, handleFieldStatsButtonClick, optionCss }; -}; diff --git a/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/space_management/columns.tsx b/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/space_management/columns.tsx index 90191c4f22dcac..221c028603fd0f 100644 --- a/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/space_management/columns.tsx +++ b/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/space_management/columns.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { EuiBasicTableColumn } from '@elastic/eui'; -import { TrainedModelLink } from '../../../../../trained_models/models_management'; +import { TrainedModelLink } from '../../../../../model_management'; import type { MlSavedObjectType } from '../../../../../../../common/types/saved_objects'; import type { AnalyticsManagementItems, diff --git a/x-pack/plugins/ml/public/application/memory_usage/index.ts b/x-pack/plugins/ml/public/application/memory_usage/index.ts new file mode 100644 index 00000000000000..eddabe8bf4b028 --- /dev/null +++ b/x-pack/plugins/ml/public/application/memory_usage/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { MemoryUsagePage } from './memory_usage_page'; diff --git a/x-pack/plugins/ml/public/application/memory_usage/memory_item_colors.ts b/x-pack/plugins/ml/public/application/memory_usage/memory_item_colors.ts new file mode 100644 index 00000000000000..b03658aae77a11 --- /dev/null +++ b/x-pack/plugins/ml/public/application/memory_usage/memory_item_colors.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + euiPaletteComplimentary, + euiPaletteForTemperature, + euiPaletteGray, + euiPalettePositive, + euiPaletteWarm, +} from '@elastic/eui'; +import { MlSavedObjectType } from '../../../common/types/saved_objects'; + +type MemoryItem = MlSavedObjectType | 'jvm-heap-size' | 'estimated-available-memory'; + +export function getMemoryItemColor(typeIn: MemoryItem) { + switch (typeIn) { + case 'anomaly-detector': + return euiPaletteWarm(5)[1]; + case 'data-frame-analytics': + return euiPalettePositive(5)[2]; + case 'trained-model': + return euiPaletteForTemperature(5)[1]; + case 'estimated-available-memory': + return euiPaletteGray(5)[0]; + case 'jvm-heap-size': + return euiPaletteComplimentary(5)[4]; + default: + return euiPaletteGray(5)[4]; + } +} diff --git a/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/index.ts b/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/index.ts new file mode 100644 index 00000000000000..2065b170529a7d --- /dev/null +++ b/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { JobMemoryTreeMap } from './tree_map'; +export { MemoryPage } from './memory_page'; diff --git a/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/memory_page.tsx b/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/memory_page.tsx new file mode 100644 index 00000000000000..82a3b2cdedd94f --- /dev/null +++ b/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/memory_page.tsx @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiCallOut, EuiSpacer } from '@elastic/eui'; +import React, { FC } from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { JobMemoryTreeMap } from './tree_map'; + +export const MemoryPage: FC = () => { + return ( + <> + + + + + + + ); +}; diff --git a/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/tree_map.tsx b/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/tree_map.tsx new file mode 100644 index 00000000000000..35d9b216d6f248 --- /dev/null +++ b/x-pack/plugins/ml/public/application/memory_usage/memory_tree_map/tree_map.tsx @@ -0,0 +1,201 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useEffect, useState, useCallback, useMemo } from 'react'; +import { + Chart, + Settings, + Partition, + PartitionLayout, + ShapeTreeNode, + LIGHT_THEME, + DARK_THEME, +} from '@elastic/charts'; +import { EUI_CHARTS_THEME_DARK, EUI_CHARTS_THEME_LIGHT } from '@elastic/eui/dist/eui_charts_theme'; +import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; +import { EuiComboBox, EuiComboBoxOptionOption, EuiEmptyPrompt, EuiSpacer } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { MemoryUsageInfo } from '../../../../common/types/trained_models'; +import { JobType, MlSavedObjectType } from '../../../../common/types/saved_objects'; +import { useTrainedModelsApiService } from '../../services/ml_api_service/trained_models'; +import { LoadingWrapper } from '../../jobs/new_job/pages/components/charts/loading_wrapper'; +import { useFieldFormatter, useUiSettings } from '../../contexts/kibana'; + +import { useRefresh } from '../../routing/use_refresh'; +import { getMemoryItemColor } from '../memory_item_colors'; +import { useToastNotificationService } from '../../services/toast_notification_service'; + +interface Props { + node?: string; + type?: MlSavedObjectType; + height?: string; +} + +const DEFAULT_CHART_HEIGHT = '400px'; + +const TYPE_LABELS: Record = { + [i18n.translate('xpack.ml.memoryUsage.treeMap.adLabel', { + defaultMessage: 'Anomaly detection jobs', + })]: 'anomaly-detector', + [i18n.translate('xpack.ml.memoryUsage.treeMap.dfaLabel', { + defaultMessage: 'Data frame analytics jobs', + })]: 'data-frame-analytics', + [i18n.translate('xpack.ml.memoryUsage.treeMap.modelsLabel', { + defaultMessage: 'Trained models', + })]: 'trained-model', +} as const; + +const TYPE_LABELS_INVERTED = Object.entries(TYPE_LABELS).reduce>( + (acc, [label, type]) => { + acc[type] = label; + return acc; + }, + {} as Record +); + +const TYPE_OPTIONS: EuiComboBoxOptionOption[] = Object.entries(TYPE_LABELS).map( + ([label, type]) => ({ + label, + color: getMemoryItemColor(type), + }) +); + +export const JobMemoryTreeMap: FC = ({ node, type, height }) => { + const isDarkTheme = useUiSettings().get('theme:darkMode'); + const { theme, baseTheme } = useMemo( + () => + isDarkTheme + ? { theme: EUI_CHARTS_THEME_DARK, baseTheme: DARK_THEME } + : { theme: EUI_CHARTS_THEME_LIGHT, baseTheme: LIGHT_THEME }, + [isDarkTheme] + ); + + const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); + const { displayErrorToast } = useToastNotificationService(); + const refresh = useRefresh(); + const chartHeight = height ?? DEFAULT_CHART_HEIGHT; + + const trainedModelsApiService = useTrainedModelsApiService(); + const [allData, setAllData] = useState([]); + const [data, setData] = useState([]); + const [loading, setLoading] = useState(false); + const [selectedOptions, setSelectedOptions] = useState(TYPE_OPTIONS); + + const filterData = useCallback( + (dataIn: MemoryUsageInfo[]) => { + const types = selectedOptions.map((o) => TYPE_LABELS[o.label]); + return dataIn.filter((d) => types.includes(d.type)); + }, + [selectedOptions] + ); + + const loadJobMemorySize = useCallback(async () => { + setLoading(true); + try { + const resp = await trainedModelsApiService.memoryUsage(type, node); + setAllData(resp); + } catch (error) { + displayErrorToast( + error, + i18n.translate('xpack.ml.memoryUsage.treeMap.fetchFailedErrorMessage', { + defaultMessage: 'Models memory usage fetch failed', + }) + ); + } + setLoading(false); + }, [trainedModelsApiService, type, node, displayErrorToast]); + + useEffect( + function redrawOnFilterChange() { + setData(filterData(allData)); + }, + [selectedOptions, allData, filterData] + ); + + useEffect( + function updateOnTimerRefresh() { + loadJobMemorySize(); + }, + [loadJobMemorySize, refresh] + ); + + return ( +
    + + 0} loading={loading}> + + + + + {data.length ? ( + + + + id="memoryUsageTreeMap" + data={data} + layout={PartitionLayout.treemap} + valueAccessor={(d) => d.size} + valueFormatter={(size: number) => bytesFormatter(size)} + layers={[ + { + groupByRollup: (d: MemoryUsageInfo) => d.type, + nodeLabel: (d) => TYPE_LABELS_INVERTED[d as MlSavedObjectType], + fillLabel: { + valueFormatter: (size: number) => bytesFormatter(size), + }, + shape: { + fillColor: (d: ShapeTreeNode) => getMemoryItemColor(d.dataName as JobType), + }, + }, + { + groupByRollup: (d: MemoryUsageInfo) => d.id, + nodeLabel: (d) => `${d}`, + fillLabel: { + valueFont: { + fontWeight: 100, + }, + }, + shape: { + fillColor: (d: ShapeTreeNode) => { + // color the shape the same as its parent. + const parentId = d.parent.path[d.parent.path.length - 1].value as JobType; + return getMemoryItemColor(parentId); + }, + }, + }, + ]} + /> + + ) : ( + + + + } + /> + )} + +
    + ); +}; diff --git a/x-pack/plugins/ml/public/application/memory_usage/memory_usage_page.tsx b/x-pack/plugins/ml/public/application/memory_usage/memory_usage_page.tsx new file mode 100644 index 00000000000000..24e3dbab771b54 --- /dev/null +++ b/x-pack/plugins/ml/public/application/memory_usage/memory_usage_page.tsx @@ -0,0 +1,72 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useCallback, useState } from 'react'; +import { mlTimefilterRefresh$, useTimefilter } from '@kbn/ml-date-picker'; +import { EuiFlexGroup, EuiFlexItem, EuiTabs, EuiTab } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { NodesList } from './nodes_overview'; +import { MlPageHeader } from '../components/page_header'; +import { MemoryPage, JobMemoryTreeMap } from './memory_tree_map'; +import { useIsServerless } from '../contexts/kibana/use_is_serverless'; +import { SavedObjectsWarning } from '../components/saved_objects_warning'; + +enum TAB { + NODES, + MEMORY_USAGE, +} + +export const MemoryUsagePage: FC = () => { + const serverless = useIsServerless(); + const [selectedTab, setSelectedTab] = useState(TAB.NODES); + useTimefilter({ timeRangeSelector: false, autoRefreshSelector: true }); + + const refresh = useCallback(() => { + mlTimefilterRefresh$.next({ + lastRefresh: Date.now(), + }); + }, []); + + return ( + <> + + + + + + + + + + + {serverless ? ( + + ) : ( + <> + + setSelectedTab(TAB.NODES)} + > + + + setSelectedTab(TAB.MEMORY_USAGE)} + > + + + + {selectedTab === TAB.NODES ? : } + + )} + + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/allocated_models.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx rename to x-pack/plugins/ml/public/application/memory_usage/nodes_overview/allocated_models.tsx diff --git a/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/expanded_row.tsx b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/expanded_row.tsx new file mode 100644 index 00000000000000..cf44b275a0f5da --- /dev/null +++ b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/expanded_row.tsx @@ -0,0 +1,151 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useState } from 'react'; +import { + EuiDescriptionList, + EuiFlexGrid, + EuiFlexItem, + EuiPanel, + EuiSpacer, + EuiTab, + EuiTabs, + EuiTitle, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { cloneDeep } from 'lodash'; +import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; +import { css } from '@emotion/react'; +import { NodeItem } from './nodes_list'; +import { useListItemsFormatter } from '../../model_management/expanded_row'; +import { AllocatedModels } from './allocated_models'; +import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; +import { JobMemoryTreeMap } from '../memory_tree_map'; + +interface ExpandedRowProps { + item: NodeItem; +} + +enum TAB { + DETAILS, + MEMORY_USAGE, +} + +export const ExpandedRow: FC = ({ item }) => { + const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); + const [selectedTab, setSelectedTab] = useState(TAB.DETAILS); + + const formatToListItems = useListItemsFormatter(); + + const { + allocated_models: allocatedModels, + attributes, + memory_overview: memoryOverview, + id, + ...details + } = cloneDeep(item); + + // Process node attributes + attributes['ml.machine_memory'] = bytesFormatter(attributes['ml.machine_memory']); + attributes['ml.max_jvm_size'] = bytesFormatter(attributes['ml.max_jvm_size']); + + return ( +
    + + setSelectedTab(TAB.DETAILS)} + > + + + setSelectedTab(TAB.MEMORY_USAGE)} + > + + + + + {selectedTab === TAB.DETAILS ? ( + <> + + + + + +
    + +
    +
    + + +
    +
    + + + + +
    + +
    +
    + + +
    +
    +
    + {allocatedModels.length > 0 ? ( + <> + + + +
    + +
    +
    + + + +
    + + ) : null} + + ) : ( + <> + + + )} +
    + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/index.ts b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/nodes_overview/index.ts rename to x-pack/plugins/ml/public/application/memory_usage/nodes_overview/index.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/memory_preview_chart.tsx b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/memory_preview_chart.tsx similarity index 90% rename from x-pack/plugins/ml/public/application/trained_models/nodes_overview/memory_preview_chart.tsx rename to x-pack/plugins/ml/public/application/memory_usage/nodes_overview/memory_preview_chart.tsx index 2decf3c1d2b1bc..f57fa18dc4286c 100644 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/memory_preview_chart.tsx +++ b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/memory_preview_chart.tsx @@ -18,11 +18,11 @@ import { LineAnnotation, AnnotationDomainType, } from '@elastic/charts'; -import { EuiIcon, euiPaletteGray } from '@elastic/eui'; +import { EuiIcon } from '@elastic/eui'; import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; import { NodeDeploymentStatsResponse } from '../../../../common/types/trained_models'; import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; -import { useCurrentEuiTheme } from '../../components/color_range_legend'; +import { getMemoryItemColor } from '../memory_item_colors'; interface MemoryPreviewChartProps { memoryOverview: NodeDeploymentStatsResponse['memory_overview']; @@ -31,42 +31,39 @@ interface MemoryPreviewChartProps { export const MemoryPreviewChart: FC = ({ memoryOverview }) => { const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); - const { euiTheme } = useCurrentEuiTheme(); - const groups = useMemo( () => ({ jvm: { name: i18n.translate('xpack.ml.trainedModels.nodesList.jvmHeapSIze', { defaultMessage: 'JVM heap size', }), - colour: euiTheme.euiColorVis1, + color: getMemoryItemColor('jvm-heap-size'), }, trained_models: { name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsMemoryUsage', { defaultMessage: 'Trained models', }), - colour: euiTheme.euiColorVis2, + color: getMemoryItemColor('trained-model'), }, anomaly_detection: { name: i18n.translate('xpack.ml.trainedModels.nodesList.adMemoryUsage', { defaultMessage: 'Anomaly detection jobs', }), - colour: euiTheme.euiColorVis6, + color: getMemoryItemColor('anomaly-detector'), }, dfa_training: { name: i18n.translate('xpack.ml.trainedModels.nodesList.dfaMemoryUsage', { defaultMessage: 'Data frame analytics jobs', }), - colour: euiTheme.euiColorVis4, + color: getMemoryItemColor('data-frame-analytics'), }, available: { name: i18n.translate('xpack.ml.trainedModels.nodesList.availableMemory', { defaultMessage: 'Estimated available memory', }), - colour: euiPaletteGray(5)[0], + color: getMemoryItemColor('estimated-available-memory'), }, }), - // eslint-disable-next-line react-hooks/exhaustive-deps [] ); @@ -106,7 +103,7 @@ export const MemoryPreviewChart: FC = ({ memoryOverview const barSeriesColorAccessor: SeriesColorAccessor = ({ specId, yAccessor, splitAccessors }) => { const group = splitAccessors.get('g'); - return Object.values(groups).find((v) => v.name === group)!.colour; + return Object.values(groups).find((v) => v.name === group)!.color; }; return ( diff --git a/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/nodes_list.tsx b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/nodes_list.tsx new file mode 100644 index 00000000000000..a615e40c9e3ea5 --- /dev/null +++ b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/nodes_list.tsx @@ -0,0 +1,233 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; +import { + EuiButtonIcon, + EuiFlexGroup, + EuiFlexItem, + EuiInMemoryTable, + EuiSearchBarProps, + EuiSpacer, +} from '@elastic/eui'; +import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; +import { i18n } from '@kbn/i18n'; +import { cloneDeep } from 'lodash'; +import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; +import { usePageUrlState } from '@kbn/ml-url-state'; +import { ModelsBarStats, StatsBar } from '../../components/stats_bar'; +import { NodeDeploymentStatsResponse } from '../../../../common/types/trained_models'; +import { ML_PAGES } from '../../../../common/constants/locator'; +import { useTrainedModelsApiService } from '../../services/ml_api_service/trained_models'; +import { useTableSettings } from '../../data_frame_analytics/pages/analytics_management/components/analytics_list/use_table_settings'; +import { ExpandedRow } from './expanded_row'; +import { MemoryPreviewChart } from './memory_preview_chart'; +import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; +import { ListingPageUrlState } from '../../../../common/types/common'; +import { useToastNotificationService } from '../../services/toast_notification_service'; +import { useRefresh } from '../../routing/use_refresh'; + +export type NodeItem = NodeDeploymentStatsResponse; + +interface PageUrlState { + pageKey: typeof ML_PAGES.MEMORY_USAGE; + pageUrlState: ListingPageUrlState; +} + +export const getDefaultNodesListState = (): ListingPageUrlState => ({ + pageIndex: 0, + pageSize: 10, + sortField: 'name', + sortDirection: 'asc', +}); + +export interface NodesListProps { + compactView?: boolean; +} + +export const NodesList: FC = ({ compactView = false }) => { + const trainedModelsApiService = useTrainedModelsApiService(); + + const refresh = useRefresh(); + + const { displayErrorToast } = useToastNotificationService(); + const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); + const [items, setItems] = useState([]); + const [isLoading, setIsLoading] = useState(true); + const [itemIdToExpandedRowMap, setItemIdToExpandedRowMap] = useState>( + {} + ); + const [pageState, updatePageState] = usePageUrlState( + ML_PAGES.MEMORY_USAGE, + getDefaultNodesListState() + ); + + const searchQueryText = pageState.queryText ?? ''; + + const fetchNodesData = useCallback(async () => { + try { + const nodesResponse = await trainedModelsApiService.getTrainedModelsNodesOverview(); + setItems(nodesResponse.nodes); + + // Update expanded rows. + nodesResponse.nodes.forEach((node) => { + if (itemIdToExpandedRowMap[node.id]) { + itemIdToExpandedRowMap[node.id] = ; + } + }); + + setIsLoading(false); + } catch (e) { + displayErrorToast( + e, + i18n.translate('xpack.ml.trainedModels.nodesList.nodesFetchError', { + defaultMessage: 'Nodes fetch failed', + }) + ); + setIsLoading(false); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [itemIdToExpandedRowMap]); + + const toggleDetails = (item: NodeItem) => { + const itemIdToExpandedRowMapValues = cloneDeep(itemIdToExpandedRowMap); + if (itemIdToExpandedRowMapValues[item.id]) { + delete itemIdToExpandedRowMapValues[item.id]; + } else { + itemIdToExpandedRowMapValues[item.id] = ; + } + setItemIdToExpandedRowMap(itemIdToExpandedRowMapValues); + }; + + const columns: Array> = [ + { + align: 'left', + width: '40px', + isExpander: true, + render: (item: NodeItem) => ( + + ), + 'data-test-subj': 'mlNodesTableRowDetailsToggle', + }, + { + field: 'name', + name: i18n.translate('xpack.ml.trainedModels.nodesList.nodeNameHeader', { + defaultMessage: 'Name', + }), + width: '200px', + sortable: true, + truncateText: true, + 'data-test-subj': 'mlNodesTableColumnName', + }, + { + name: i18n.translate('xpack.ml.trainedModels.nodesList.nodeTotalMemoryHeader', { + defaultMessage: 'Total memory', + }), + width: '200px', + truncateText: true, + 'data-test-subj': 'mlNodesTableColumnTotalMemory', + render: (v: NodeItem) => { + return bytesFormatter(v.attributes['ml.machine_memory']); + }, + }, + { + name: i18n.translate('xpack.ml.trainedModels.nodesList.nodeMemoryUsageHeader', { + defaultMessage: 'Memory usage', + }), + truncateText: true, + 'data-test-subj': 'mlNodesTableColumnMemoryUsage', + render: (v: NodeItem) => { + return ; + }, + }, + ]; + + const nodesStats: ModelsBarStats = useMemo(() => { + return { + total: { + show: true, + value: items.length, + label: i18n.translate('xpack.ml.trainedModels.nodesList.totalAmountLabel', { + defaultMessage: 'Total machine learning nodes', + }), + 'data-test-subj': 'mlTotalNodesCount', + }, + }; + }, [items]); + + let tableSettings: object = useTableSettings(items.length, pageState, updatePageState); + + const search: EuiSearchBarProps = { + query: searchQueryText, + onChange: (searchChange) => { + if (searchChange.error !== null) { + return false; + } + updatePageState({ queryText: searchChange.queryText, pageIndex: 0 }); + return true; + }, + box: { + incremental: true, + }, + }; + + useEffect( + function updateOnTimerRefresh() { + fetchNodesData(); + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [refresh] + ); + + if (compactView) { + tableSettings = {}; + } + + return ( +
    + + + {nodesStats && ( + + + + )} + + +
    + + allowNeutralSort={false} + columns={columns} + hasActions={false} + isExpandable={true} + itemIdToExpandedRowMap={itemIdToExpandedRowMap} + isSelectable={false} + items={items} + itemId={'id'} + loading={isLoading} + search={compactView ? undefined : search} + {...tableSettings} + rowProps={(item) => ({ + 'data-test-subj': `mlNodesTableRow row-${item.id}`, + })} + data-test-subj={isLoading ? 'mlNodesTable loading' : 'mlNodesTable loaded'} + /> +
    +
    + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/delete_models_modal.tsx b/x-pack/plugins/ml/public/application/model_management/delete_models_modal.tsx similarity index 92% rename from x-pack/plugins/ml/public/application/trained_models/models_management/delete_models_modal.tsx rename to x-pack/plugins/ml/public/application/model_management/delete_models_modal.tsx index b4f0bc0ec505e2..e730dad0c36aa7 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/delete_models_modal.tsx +++ b/x-pack/plugins/ml/public/application/model_management/delete_models_modal.tsx @@ -16,9 +16,9 @@ import { EuiButton, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; -import { useTrainedModelsApiService } from '../../services/ml_api_service/trained_models'; -import { useToastNotificationService } from '../../services/toast_notification_service'; -import { DeleteSpaceAwareItemCheckModal } from '../../components/delete_space_aware_item_check_modal'; +import { useTrainedModelsApiService } from '../services/ml_api_service/trained_models'; +import { useToastNotificationService } from '../services/toast_notification_service'; +import { DeleteSpaceAwareItemCheckModal } from '../components/delete_space_aware_item_check_modal'; interface DeleteModelsModalProps { modelIds: string[]; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/deployment_setup.tsx b/x-pack/plugins/ml/public/application/model_management/deployment_setup.tsx similarity index 98% rename from x-pack/plugins/ml/public/application/trained_models/models_management/deployment_setup.tsx rename to x-pack/plugins/ml/public/application/model_management/deployment_setup.tsx index 4c4bd6293bc8a9..9068f679cf2613 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/deployment_setup.tsx +++ b/x-pack/plugins/ml/public/application/model_management/deployment_setup.tsx @@ -30,8 +30,8 @@ import type { Observable } from 'rxjs'; import type { CoreTheme, OverlayStart } from '@kbn/core/public'; import { css } from '@emotion/react'; import { numberValidator } from '@kbn/ml-agg-utils'; -import { isCloudTrial } from '../../services/ml_server_info'; -import { composeValidators, requiredValidator } from '../../../../common/util/validators'; +import { isCloudTrial } from '../services/ml_server_info'; +import { composeValidators, requiredValidator } from '../../../common/util/validators'; interface DeploymentSetupProps { config: ThreadingParams; diff --git a/x-pack/plugins/ml/public/application/model_management/expanded_row.tsx b/x-pack/plugins/ml/public/application/model_management/expanded_row.tsx new file mode 100644 index 00000000000000..99dc3f687a7e00 --- /dev/null +++ b/x-pack/plugins/ml/public/application/model_management/expanded_row.tsx @@ -0,0 +1,416 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useEffect, useState, useMemo, useCallback } from 'react'; +import { omit, pick } from 'lodash'; +import { + EuiBadge, + EuiCodeBlock, + EuiDescriptionList, + EuiDescriptionListProps, + EuiFlexGrid, + EuiFlexItem, + EuiNotificationBadge, + EuiPanel, + EuiSpacer, + EuiTabbedContent, + EuiTabbedContentTab, + EuiTitle, + useEuiPaddingSize, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; +import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import { isDefined } from '@kbn/ml-is-defined'; +import type { ModelItemFull } from './models_list'; +import { ModelPipelines } from './pipelines'; +import { AllocatedModels } from '../memory_usage/nodes_overview/allocated_models'; +import type { AllocatedModel } from '../../../common/types/trained_models'; +import { useFieldFormatter } from '../contexts/kibana/use_field_formatter'; + +interface ExpandedRowProps { + item: ModelItemFull; +} + +const useBadgeFormatter = () => { + const xs = useEuiPaddingSize('xs'); + + function badgeFormatter(items: string[]) { + if (items.length === 0) return; + return ( +
    + {items.map((item) => ( + + + {item} + + + ))} +
    + ); + } + return { badgeFormatter }; +}; + +export function useListItemsFormatter() { + const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); + const dateFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DATE); + const { badgeFormatter } = useBadgeFormatter(); + + const formatterDictionary: Record JSX.Element | string | undefined> = + useMemo( + () => ({ + tags: badgeFormatter, + roles: badgeFormatter, + create_time: dateFormatter, + timestamp: dateFormatter, + model_size_bytes: bytesFormatter, + required_native_memory_bytes: bytesFormatter, + }), + // eslint-disable-next-line react-hooks/exhaustive-deps + [] + ); + + return useCallback( + (items: Record | object): EuiDescriptionListProps['listItems'] => { + return Object.entries(items) + .filter(([, value]) => isDefined(value)) + .map(([title, value]) => { + if (title in formatterDictionary) { + return { + title, + description: formatterDictionary[title](value), + }; + } + return { + title, + description: + typeof value === 'object' ? ( + + {JSON.stringify(value, null, 2)} + + ) : ( + value.toString() + ), + }; + }); + }, + [formatterDictionary] + ); +} + +export const ExpandedRow: FC = ({ item }) => { + const [modelItems, setModelItems] = useState([]); + + const formatToListItems = useListItemsFormatter(); + + const { + inference_config: inferenceConfig, + stats, + metadata, + tags, + version, + // eslint-disable-next-line @typescript-eslint/naming-convention + estimated_operations, + // eslint-disable-next-line @typescript-eslint/naming-convention + estimated_heap_memory_usage_bytes, + // eslint-disable-next-line @typescript-eslint/naming-convention + default_field_map, + // eslint-disable-next-line @typescript-eslint/naming-convention + license_level, + pipelines, + description, + } = item; + + const { analytics_config: analyticsConfig, ...restMetaData } = metadata ?? {}; + + const details = { + description, + tags, + version, + estimated_operations, + estimated_heap_memory_usage_bytes, + default_field_map, + license_level, + }; + + useEffect( + function updateModelItems() { + (async function () { + const deploymentStats = stats.deployment_stats; + const modelSizeStats = stats.model_size_stats; + + if (!deploymentStats || !modelSizeStats) return; + + const items: AllocatedModel[] = deploymentStats.nodes.map((n) => { + const nodeName = Object.values(n.node)[0].name; + return { + ...deploymentStats, + ...modelSizeStats, + node: { + ...pick(n, [ + 'average_inference_time_ms', + 'inference_count', + 'routing_state', + 'last_access', + 'number_of_pending_requests', + 'start_time', + 'throughput_last_minute', + 'number_of_allocations', + 'threads_per_allocation', + ]), + name: nodeName, + } as AllocatedModel['node'], + }; + }); + + setModelItems(items); + })(); + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [stats.deployment_stats] + ); + + const tabs: EuiTabbedContentTab[] = [ + { + id: 'details', + 'data-test-subj': 'mlTrainedModelDetails', + name: ( + + ), + content: ( +
    + + + + + +
    + +
    +
    + + +
    +
    + {isPopulatedObject(restMetaData) ? ( + + + +
    + +
    +
    + + +
    +
    + ) : null} +
    +
    + ), + }, + ...(inferenceConfig + ? [ + { + id: 'config', + 'data-test-subj': 'mlTrainedModelInferenceConfig', + name: ( + + ), + content: ( +
    + + + + + +
    + +
    +
    + + +
    +
    + {analyticsConfig && ( + + + +
    + +
    +
    + + +
    +
    + )} +
    +
    + ), + }, + ] + : []), + ...(isPopulatedObject(omit(stats, ['pipeline_count', 'ingest'])) + ? [ + { + id: 'stats', + 'data-test-subj': 'mlTrainedModelStats', + name: ( + + ), + content: ( +
    + + + + {!!modelItems?.length ? ( + + + +
    + +
    +
    + + +
    +
    + ) : null} + {stats.inference_stats ? ( + + + +
    + +
    +
    + + +
    +
    + ) : null} + {isPopulatedObject(stats.model_size_stats) && + !isPopulatedObject(stats.inference_stats) ? ( + + + +
    + +
    +
    + + +
    +
    + ) : null} +
    +
    + ), + }, + ] + : []), + ...((pipelines && Object.keys(pipelines).length > 0) || stats.ingest + ? [ + { + id: 'pipelines', + 'data-test-subj': 'mlTrainedModelPipelines', + name: ( + <> + {' '} + {stats.pipeline_count} + + ), + content: ( +
    + + +
    + ), + }, + ] + : []), + ]; + + return ( + {}} + data-test-subj={'mlTrainedModelRowDetails'} + /> + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/force_stop_dialog.tsx b/x-pack/plugins/ml/public/application/model_management/force_stop_dialog.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/force_stop_dialog.tsx rename to x-pack/plugins/ml/public/application/model_management/force_stop_dialog.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/index.ts b/x-pack/plugins/ml/public/application/model_management/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/index.ts rename to x-pack/plugins/ml/public/application/model_management/index.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/model_actions.tsx b/x-pack/plugins/ml/public/application/model_management/model_actions.tsx similarity index 95% rename from x-pack/plugins/ml/public/application/trained_models/models_management/model_actions.tsx rename to x-pack/plugins/ml/public/application/model_management/model_actions.tsx index a8258e537c60e7..5545fa6c7d5feb 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/model_actions.tsx +++ b/x-pack/plugins/ml/public/application/model_management/model_actions.tsx @@ -10,16 +10,16 @@ import { i18n } from '@kbn/i18n'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; import { EuiToolTip } from '@elastic/eui'; import React, { useCallback, useMemo } from 'react'; -import { BUILT_IN_MODEL_TAG } from '../../../../common/constants/data_frame_analytics'; -import { useTrainedModelsApiService } from '../../services/ml_api_service/trained_models'; +import { BUILT_IN_MODEL_TAG } from '../../../common/constants/data_frame_analytics'; +import { useTrainedModelsApiService } from '../services/ml_api_service/trained_models'; import { getUserConfirmationProvider } from './force_stop_dialog'; -import { useToastNotificationService } from '../../services/toast_notification_service'; +import { useToastNotificationService } from '../services/toast_notification_service'; import { getUserInputThreadingParamsProvider } from './deployment_setup'; -import { useMlKibana, useMlLocator, useNavigateToPath } from '../../contexts/kibana'; -import { getAnalysisType } from '../../../../common/util/analytics_utils'; -import { DataFrameAnalysisConfigType } from '../../../../common/types/data_frame_analytics'; -import { ML_PAGES } from '../../../../common/constants/locator'; -import { DEPLOYMENT_STATE, TRAINED_MODEL_TYPE } from '../../../../common/constants/trained_models'; +import { useMlKibana, useMlLocator, useNavigateToPath } from '../contexts/kibana'; +import { getAnalysisType } from '../../../common/util/analytics_utils'; +import { DataFrameAnalysisConfigType } from '../../../common/types/data_frame_analytics'; +import { ML_PAGES } from '../../../common/constants/locator'; +import { DEPLOYMENT_STATE, TRAINED_MODEL_TYPE } from '../../../common/constants/trained_models'; import { isTestable } from './test_models'; import { ModelItem } from './models_list'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/model_link.tsx b/x-pack/plugins/ml/public/application/model_management/model_link.tsx similarity index 85% rename from x-pack/plugins/ml/public/application/trained_models/models_management/model_link.tsx rename to x-pack/plugins/ml/public/application/model_management/model_link.tsx index 82a122cbaeb907..2acf8951dcd155 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/model_link.tsx +++ b/x-pack/plugins/ml/public/application/model_management/model_link.tsx @@ -7,8 +7,8 @@ import { EuiLink } from '@elastic/eui'; import React, { FC } from 'react'; -import { useMlLink } from '../../contexts/kibana'; -import { ML_PAGES } from '../../../../common/constants/locator'; +import { useMlLink } from '../contexts/kibana'; +import { ML_PAGES } from '../../../common/constants/locator'; export interface TrainedModelLinkProps { id: string; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx b/x-pack/plugins/ml/public/application/model_management/models_list.tsx similarity index 94% rename from x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx rename to x-pack/plugins/ml/public/application/model_management/models_list.tsx index 9fbd05d978eae1..4d04e4b814254e 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx +++ b/x-pack/plugins/ml/public/application/model_management/models_list.tsx @@ -29,25 +29,25 @@ import { usePageUrlState } from '@kbn/ml-url-state'; import { useTimefilter } from '@kbn/ml-date-picker'; import { useModelActions } from './model_actions'; import { ModelsTableToConfigMapping } from '.'; -import { ModelsBarStats, StatsBar } from '../../components/stats_bar'; -import { useMlKibana } from '../../contexts/kibana'; -import { useTrainedModelsApiService } from '../../services/ml_api_service/trained_models'; +import { ModelsBarStats, StatsBar } from '../components/stats_bar'; +import { useMlKibana } from '../contexts/kibana'; +import { useTrainedModelsApiService } from '../services/ml_api_service/trained_models'; import { ModelPipelines, TrainedModelConfigResponse, TrainedModelStat, -} from '../../../../common/types/trained_models'; -import { BUILT_IN_MODEL_TAG } from '../../../../common/constants/data_frame_analytics'; +} from '../../../common/types/trained_models'; +import { BUILT_IN_MODEL_TAG } from '../../../common/constants/data_frame_analytics'; import { DeleteModelsModal } from './delete_models_modal'; -import { ML_PAGES } from '../../../../common/constants/locator'; -import { ListingPageUrlState } from '../../../../common/types/common'; +import { ML_PAGES } from '../../../common/constants/locator'; +import { ListingPageUrlState } from '../../../common/types/common'; import { ExpandedRow } from './expanded_row'; -import { useTableSettings } from '../../data_frame_analytics/pages/analytics_management/components/analytics_list/use_table_settings'; -import { useToastNotificationService } from '../../services/toast_notification_service'; -import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; -import { useRefresh } from '../../routing/use_refresh'; -import { BUILT_IN_MODEL_TYPE } from '../../../../common/constants/trained_models'; -import { SavedObjectsWarning } from '../../components/saved_objects_warning'; +import { useTableSettings } from '../data_frame_analytics/pages/analytics_management/components/analytics_list/use_table_settings'; +import { useToastNotificationService } from '../services/toast_notification_service'; +import { useFieldFormatter } from '../contexts/kibana/use_field_formatter'; +import { useRefresh } from '../routing/use_refresh'; +import { BUILT_IN_MODEL_TYPE } from '../../../common/constants/trained_models'; +import { SavedObjectsWarning } from '../components/saved_objects_warning'; import { TestTrainedModelFlyout } from './test_models'; type Stats = Omit; diff --git a/x-pack/plugins/ml/public/application/model_management/pipelines/expanded_row.tsx b/x-pack/plugins/ml/public/application/model_management/pipelines/expanded_row.tsx new file mode 100644 index 00000000000000..24b45659938e7f --- /dev/null +++ b/x-pack/plugins/ml/public/application/model_management/pipelines/expanded_row.tsx @@ -0,0 +1,184 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC } from 'react'; +import { EuiBadge, EuiInMemoryTable, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; + +import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; +import { i18n } from '@kbn/i18n'; +import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; +import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; +import { IngestStatsResponse } from './pipelines'; +import { HelpIcon } from '../../components/help_icon'; + +interface ProcessorsStatsProps { + stats: Exclude['pipelines'][string]['processors']; +} + +type ProcessorStatsItem = ProcessorsStatsProps['stats'][number][string] & { id: string }; + +export const ProcessorsStats: FC = ({ stats }) => { + const durationFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DURATION); + + const items: ProcessorStatsItem[] = stats.map((v, i) => { + const key = Object.keys(v)[0]; + return { + ...v[key], + id: `${key}_${i}`, + }; + }); + + const columns: Array> = [ + { + field: 'type', + name: i18n.translate( + 'xpack.ml.trainedModels.modelsList.pipelines.processorStats.typeHeader', + { + defaultMessage: 'Processor type', + } + ), + width: '100px', + sortable: true, + truncateText: false, + render: (type: string) => { + return {type}; + }, + 'data-test-subj': 'mlProcessorStatsType', + }, + { + field: 'stats.count', + name: ( + + + + + + + } + /> + + + ), + width: '100px', + truncateText: true, + 'data-test-subj': 'mlProcessorStatsCount', + }, + /** + * TODO Display when https://github.com/elastic/elasticsearch/issues/81037 is resolved + */ + ...(true + ? [] + : [ + { + field: 'stats.time_in_millis', + name: ( + + + + + + + } + /> + + + ), + width: '100px', + truncateText: false, + 'data-test-subj': 'mlProcessorStatsTimePerDoc', + render: (v: number) => { + return durationFormatter(v); + }, + }, + ]), + { + field: 'stats.current', + name: ( + + + + + + + } + /> + + + ), + width: '100px', + truncateText: false, + 'data-test-subj': 'mlProcessorStatsCurrent', + }, + { + field: 'stats.failed', + name: ( + + + + + + + } + /> + + + ), + width: '100px', + 'data-test-subj': 'mlProcessorStatsFailed', + }, + ]; + + return ( + + allowNeutralSort={false} + columns={columns} + hasActions={false} + isExpandable={false} + isSelectable={false} + items={items} + itemId={'id'} + rowProps={(item) => ({ + 'data-test-subj': `mlProcessorStatsTableRow row-${item.id}`, + })} + onTableChange={() => {}} + data-test-subj={'mlProcessorStatsTable'} + /> + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts b/x-pack/plugins/ml/public/application/model_management/pipelines/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts rename to x-pack/plugins/ml/public/application/model_management/pipelines/index.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx b/x-pack/plugins/ml/public/application/model_management/pipelines/pipelines.tsx similarity index 98% rename from x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx rename to x-pack/plugins/ml/public/application/model_management/pipelines/pipelines.tsx index 6ea883ed84706f..ac8156ae0053bd 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx +++ b/x-pack/plugins/ml/public/application/model_management/pipelines/pipelines.tsx @@ -16,7 +16,7 @@ import { EuiAccordion, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; -import { useMlKibana } from '../../../contexts/kibana'; +import { useMlKibana } from '../../contexts/kibana'; import { ModelItem } from '../models_list'; import { ProcessorsStats } from './expanded_row'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/index.ts b/x-pack/plugins/ml/public/application/model_management/test_models/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/index.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/index.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/inference_error.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/inference_error.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/inference_error.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/inference_error.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/index.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/index.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/index.ts diff --git a/x-pack/plugins/ml/public/application/model_management/test_models/models/index_input.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/index_input.tsx new file mode 100644 index 00000000000000..c80a84c5e1f4a3 --- /dev/null +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/index_input.tsx @@ -0,0 +1,211 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useState, useMemo, useEffect, useCallback } from 'react'; + +import useObservable from 'react-use/lib/useObservable'; +import { firstValueFrom } from 'rxjs'; +import { DataView } from '@kbn/data-views-plugin/common'; +import { EuiSpacer, EuiSelect, EuiFormRow, EuiAccordion, EuiCodeBlock } from '@elastic/eui'; + +import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import { i18n } from '@kbn/i18n'; +import { useMlKibana } from '../../../contexts/kibana'; +import { RUNNING_STATE } from './inference_base'; +import type { InferrerType } from '.'; + +interface Props { + inferrer: InferrerType; + data: ReturnType; +} + +export const InferenceInputFormIndexControls: FC = ({ inferrer, data }) => { + const { + dataViewListItems, + fieldNames, + selectedDataViewId, + setSelectedDataViewId, + selectedField, + setSelectedField, + } = data; + + const runningState = useObservable(inferrer.getRunningState$(), inferrer.getRunningState()); + const pipeline = useObservable(inferrer.getPipeline$(), inferrer.getPipeline()); + const inputComponent = useMemo(() => inferrer.getInputComponent(), [inferrer]); + + return ( + <> + + setSelectedDataViewId(e.target.value)} + hasNoInitialSelection={true} + disabled={runningState === RUNNING_STATE.RUNNING} + fullWidth + /> + + + + setSelectedField(e.target.value)} + hasNoInitialSelection={true} + disabled={runningState === RUNNING_STATE.RUNNING} + fullWidth + /> + + + <>{inputComponent} + + + + + + {JSON.stringify(pipeline, null, 2)} + + + + ); +}; + +export function useIndexInput({ inferrer }: { inferrer: InferrerType }) { + const { + services: { + data: { + dataViews, + search: { search }, + }, + }, + } = useMlKibana(); + + const [dataViewListItems, setDataViewListItems] = useState< + Array<{ value: string; text: string }> + >([]); + const [selectedDataViewId, setSelectedDataViewId] = useState(undefined); + const [selectedDataView, setSelectedDataView] = useState(null); + const [fieldNames, setFieldNames] = useState>([]); + const selectedField = useObservable(inferrer.getInputField$(), inferrer.getInputField()); + + const setSelectedField = useCallback( + (fieldName: string) => inferrer.setInputField(fieldName), + [inferrer] + ); + useEffect( + function loadDataViewListItems() { + dataViews.getIdsWithTitle().then((items) => { + setDataViewListItems( + items + .sort((a, b) => a.title.localeCompare(b.title)) + .map(({ id, title }) => ({ text: title, value: id })) + ); + }); + }, + [dataViews] + ); + + useEffect( + function loadSelectedDataView() { + inferrer.reset(); + setFieldNames([]); + if (selectedDataViewId !== undefined) { + dataViews.get(selectedDataViewId).then((dv) => setSelectedDataView(dv)); + } + }, + [selectedDataViewId, dataViews, inferrer] + ); + + const loadExamples = useCallback(() => { + inferrer.setInputText([]); + if (selectedField !== undefined && selectedDataView !== null) { + firstValueFrom( + search({ + params: { + index: selectedDataView.getIndexPattern(), + body: { + fields: [selectedField], + query: { + function_score: { + functions: [ + { + random_score: {}, + }, + ], + }, + }, + }, + }, + }) + ).then((resp) => { + const tempExamples = resp.rawResponse.hits.hits + .filter(({ fields }) => isPopulatedObject(fields, [selectedField])) + .map(({ fields }) => fields![selectedField][0]); + inferrer.setInputText(tempExamples); + }); + } + }, [inferrer, selectedDataView, search, selectedField]); + + useEffect( + function loadFieldNames() { + if (selectedDataView !== null) { + const tempFieldNames = selectedDataView.fields + .filter( + ({ displayName, esTypes }) => + esTypes && esTypes.includes('text') && !['_id', '_index'].includes(displayName) + ) + .sort((a, b) => a.displayName.localeCompare(b.displayName)) + .map(({ displayName }) => ({ + value: displayName, + text: displayName, + })); + setFieldNames(tempFieldNames); + + const fieldName = tempFieldNames.length === 1 ? tempFieldNames[0].value : undefined; + inferrer.setInputField(fieldName); + } + }, + [selectedDataView, inferrer] + ); + + useEffect( + function loadExamplesAfterFieldChange() { + loadExamples(); + }, + // only load examples if selectedField changes + // eslint-disable-next-line react-hooks/exhaustive-deps + [selectedField] + ); + + function reloadExamples() { + inferrer.reset(); + loadExamples(); + } + + return { + fieldNames, + dataViewListItems, + reloadExamples, + selectedDataViewId, + setSelectedDataViewId, + selectedField, + setSelectedField, + }; +} diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_base.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_base.ts similarity index 97% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_base.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/inference_base.ts index 28b3073cfbb14b..355137faeb1af9 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_base.ts +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_base.ts @@ -10,9 +10,9 @@ import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { i18n } from '@kbn/i18n'; import { map } from 'rxjs/operators'; -import { MLHttpFetchError } from '../../../../../../common/util/errors'; -import { SupportedPytorchTasksType } from '../../../../../../common/constants/trained_models'; -import { trainedModelsApiProvider } from '../../../../services/ml_api_service/trained_models'; +import { MLHttpFetchError } from '../../../../../common/util/errors'; +import { SupportedPytorchTasksType } from '../../../../../common/constants/trained_models'; +import { trainedModelsApiProvider } from '../../../services/ml_api_service/trained_models'; import { getInferenceInfoComponent } from './inference_info'; export type InferenceType = diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_info.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_info.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_info.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/inference_info.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/index.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/index.tsx diff --git a/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/index_input.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/index_input.tsx new file mode 100644 index 00000000000000..5060f0033fd6cb --- /dev/null +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/index_input.tsx @@ -0,0 +1,116 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useState, useMemo, useCallback, FormEventHandler } from 'react'; + +import useObservable from 'react-use/lib/useObservable'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { + EuiSpacer, + EuiButton, + EuiButtonEmpty, + EuiFlexGroup, + EuiFlexItem, + EuiHorizontalRule, + EuiLoadingSpinner, + EuiText, + EuiForm, +} from '@elastic/eui'; + +import { ErrorMessage } from '../../inference_error'; +import { extractErrorMessage } from '../../../../../../common'; +import type { InferrerType } from '..'; +import { useIndexInput, InferenceInputFormIndexControls } from '../index_input'; +import { RUNNING_STATE } from '../inference_base'; + +interface Props { + inferrer: InferrerType; +} + +export const IndexInputForm: FC = ({ inferrer }) => { + const data = useIndexInput({ inferrer }); + const { reloadExamples, selectedField } = data; + + const [errorText, setErrorText] = useState(null); + const runningState = useObservable(inferrer.getRunningState$(), inferrer.getRunningState()); + const examples = useObservable(inferrer.getInputText$(), inferrer.getInputText()); + const isValid = useObservable(inferrer.getIsValid$(), inferrer.getIsValid()); + const outputComponent = useMemo(() => inferrer.getOutputComponent(), [inferrer]); + const infoComponent = useMemo(() => inferrer.getInfoComponent(), [inferrer]); + + const run: FormEventHandler = useCallback( + async (event) => { + event.preventDefault(); + setErrorText(null); + try { + await inferrer.infer(); + } catch (e) { + setErrorText(extractErrorMessage(e)); + } + }, + [inferrer] + ); + + return ( + + <>{infoComponent} + + + + + + + + + + + + {runningState === RUNNING_STATE.RUNNING ? : null} + + + + + + + + + + + {errorText !== null || runningState === RUNNING_STATE.FINISHED_WITH_ERRORS ? ( + <> + + + + ) : null} + + {runningState !== RUNNING_STATE.FINISHED + ? examples.map((example) => ( + <> + {example} + + + )) + : null} + + {runningState === RUNNING_STATE.FINISHED ? <>{outputComponent} : null} + + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/inference_input_form.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/inference_input_form.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/inference_input_form.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/inference_input_form.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/text_input.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/text_input.tsx similarity index 98% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/text_input.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/text_input.tsx index eda62469515ee3..3446bda477b4ae 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/text_input.tsx +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/inference_input_form/text_input.tsx @@ -12,7 +12,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { EuiSpacer, EuiButton, EuiTabs, EuiTab, EuiForm } from '@elastic/eui'; import { ErrorMessage } from '../../inference_error'; -import { extractErrorMessage } from '../../../../../../../common'; +import { extractErrorMessage } from '../../../../../../common'; import type { InferrerType } from '..'; import { OutputLoadingContent } from '../../output_loading'; import { RUNNING_STATE } from '../inference_base'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/ner/index.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/ner/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/ner/index.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/ner/index.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/ner/ner_inference.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/ner/ner_inference.ts similarity index 95% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/ner/ner_inference.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/ner/ner_inference.ts index 94ec27ce0c4aaa..43306840869090 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/ner/ner_inference.ts +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/ner/ner_inference.ts @@ -7,12 +7,12 @@ import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { i18n } from '@kbn/i18n'; -import { trainedModelsApiProvider } from '../../../../../services/ml_api_service/trained_models'; +import { trainedModelsApiProvider } from '../../../../services/ml_api_service/trained_models'; import { InferenceBase, INPUT_TYPE } from '../inference_base'; import type { InferResponse } from '../inference_base'; import { getGeneralInputComponent } from '../text_input'; import { getNerOutputComponent } from './ner_output'; -import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../../common/constants/trained_models'; +import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../common/constants/trained_models'; export type FormattedNerResponse = Array<{ value: string; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/ner/ner_output.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/ner/ner_output.tsx similarity index 98% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/ner/ner_output.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/ner/ner_output.tsx index 9baeb3d0afb6b1..90b416b817b87f 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/ner/ner_output.tsx +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/ner/ner_output.tsx @@ -21,7 +21,7 @@ import { import { useCurrentEuiTheme, EuiThemeType, -} from '../../../../../components/color_range_legend/use_color_range'; +} from '../../../../components/color_range_legend/use_color_range'; import type { NerInference, NerResponse } from './ner_inference'; import { INPUT_TYPE } from '../inference_base'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/index.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/index.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/index.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/question_answering_inference.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/question_answering_inference.ts similarity index 96% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/question_answering_inference.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/question_answering_inference.ts index eb132ce2e3fddf..0555b5779900b0 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/question_answering_inference.ts +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/question_answering_inference.ts @@ -13,8 +13,8 @@ import { InferenceBase, INPUT_TYPE } from '../inference_base'; import type { InferResponse } from '../inference_base'; import { getQuestionAnsweringInput } from './question_answering_input'; import { getQuestionAnsweringOutputComponent } from './question_answering_output'; -import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../../common/constants/trained_models'; -import { trainedModelsApiProvider } from '../../../../../services/ml_api_service/trained_models'; +import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../common/constants/trained_models'; +import { trainedModelsApiProvider } from '../../../../services/ml_api_service/trained_models'; export interface RawQuestionAnsweringResponse { inference_results: Array<{ diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/question_answering_input.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/question_answering_input.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/question_answering_input.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/question_answering_input.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/question_answering_output.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/question_answering_output.tsx similarity index 95% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/question_answering_output.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/question_answering_output.tsx index 03bb94646635d3..54a2a618557586 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/question_answering/question_answering_output.tsx +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/question_answering/question_answering_output.tsx @@ -10,7 +10,7 @@ import useObservable from 'react-use/lib/useObservable'; import { EuiBadge, EuiHorizontalRule } from '@elastic/eui'; -import { useCurrentEuiTheme } from '../../../../../components/color_range_legend/use_color_range'; +import { useCurrentEuiTheme } from '../../../../components/color_range_legend/use_color_range'; import type { QuestionAnsweringInference, diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/raw_output.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/raw_output.tsx similarity index 96% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/raw_output.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/raw_output.tsx index 6656333f259f8c..59ffa21e9945a3 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/raw_output.tsx +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/raw_output.tsx @@ -9,7 +9,7 @@ import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import React, { FC } from 'react'; import { Observable } from 'rxjs'; import useObservable from 'react-use/lib/useObservable'; -import { MLJobEditor } from '../../../../jobs/jobs_list/components/ml_job_editor'; +import { MLJobEditor } from '../../../jobs/jobs_list/components/ml_job_editor'; import type { InferrerType } from '.'; import { NerResponse } from './ner'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/common.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/common.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/common.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/common.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/fill_mask_inference.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/fill_mask_inference.ts similarity index 93% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/fill_mask_inference.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/fill_mask_inference.ts index 2dd72529e7b7de..de3ac2528df5ed 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/fill_mask_inference.ts +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/fill_mask_inference.ts @@ -13,8 +13,8 @@ import type { TextClassificationResponse, RawTextClassificationResponse } from ' import { processResponse, processInferenceResult } from './common'; import { getGeneralInputComponent } from '../text_input'; import { getFillMaskOutputComponent } from './fill_mask_output'; -import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../../common/constants/trained_models'; -import { trainedModelsApiProvider } from '../../../../../services/ml_api_service/trained_models'; +import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../common/constants/trained_models'; +import { trainedModelsApiProvider } from '../../../../services/ml_api_service/trained_models'; const MASK = '[MASK]'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/fill_mask_output.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/fill_mask_output.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/fill_mask_output.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/fill_mask_output.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/index.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/index.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/index.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_codes.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/lang_codes.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_codes.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/lang_codes.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_inference.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/lang_ident_inference.ts similarity index 96% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_inference.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/lang_ident_inference.ts index 2309a8885e989a..ff6565de32b19c 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_inference.ts +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/lang_ident_inference.ts @@ -13,7 +13,7 @@ import { processInferenceResult, processResponse } from './common'; import { getGeneralInputComponent } from '../text_input'; import { getLangIdentOutputComponent } from './lang_ident_output'; import type { TextClassificationResponse, RawTextClassificationResponse } from './common'; -import { trainedModelsApiProvider } from '../../../../../services/ml_api_service/trained_models'; +import { trainedModelsApiProvider } from '../../../../services/ml_api_service/trained_models'; export class LangIdentInference extends InferenceBase { protected inferenceType: InferenceType = 'classification'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_output.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/lang_ident_output.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_output.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/lang_ident_output.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_inference.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/text_classification_inference.ts similarity index 93% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_inference.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/text_classification_inference.ts index 783483c161d2e3..0bb9640327548e 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_inference.ts +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/text_classification_inference.ts @@ -12,8 +12,8 @@ import { processInferenceResult, processResponse } from './common'; import type { TextClassificationResponse, RawTextClassificationResponse } from './common'; import { getGeneralInputComponent } from '../text_input'; import { getTextClassificationOutputComponent } from './text_classification_output'; -import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../../common/constants/trained_models'; -import { trainedModelsApiProvider } from '../../../../../services/ml_api_service/trained_models'; +import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../common/constants/trained_models'; +import { trainedModelsApiProvider } from '../../../../services/ml_api_service/trained_models'; export class TextClassificationInference extends InferenceBase { protected inferenceType = SUPPORTED_PYTORCH_TASKS.TEXT_CLASSIFICATION; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_output.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/text_classification_output.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_output.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/text_classification_output.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/zero_shot_classification_inference.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/zero_shot_classification_inference.ts similarity index 95% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/zero_shot_classification_inference.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/zero_shot_classification_inference.ts index de8ccbf99cbf51..8b04bb1ec8155a 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/zero_shot_classification_inference.ts +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/zero_shot_classification_inference.ts @@ -9,14 +9,14 @@ import { i18n } from '@kbn/i18n'; import { BehaviorSubject } from 'rxjs'; import { map } from 'rxjs/operators'; import { estypes } from '@elastic/elasticsearch'; -import { trainedModelsApiProvider } from '../../../../../services/ml_api_service/trained_models'; +import { trainedModelsApiProvider } from '../../../../services/ml_api_service/trained_models'; import { InferenceBase, INPUT_TYPE } from '../inference_base'; import { processInferenceResult, processResponse } from './common'; import type { TextClassificationResponse, RawTextClassificationResponse } from './common'; import { getZeroShotClassificationInput } from './zero_shot_classification_input'; import { getTextClassificationOutputComponent } from './text_classification_output'; -import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../../common/constants/trained_models'; +import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../common/constants/trained_models'; export class ZeroShotClassificationInference extends InferenceBase { protected inferenceType = SUPPORTED_PYTORCH_TASKS.ZERO_SHOT_CLASSIFICATION; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/zero_shot_classification_input.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/zero_shot_classification_input.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/zero_shot_classification_input.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_classification/zero_shot_classification_input.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_embedding/index.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_embedding/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_embedding/index.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_embedding/index.ts diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_embedding/text_embedding_inference.ts b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_embedding/text_embedding_inference.ts similarity index 94% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_embedding/text_embedding_inference.ts rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_embedding/text_embedding_inference.ts index 961d71fdc452a6..cbc6fd8edca682 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_embedding/text_embedding_inference.ts +++ b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_embedding/text_embedding_inference.ts @@ -11,8 +11,8 @@ import { InferenceBase, INPUT_TYPE } from '../inference_base'; import type { InferResponse } from '../inference_base'; import { getGeneralInputComponent } from '../text_input'; import { getTextEmbeddingOutputComponent } from './text_embedding_output'; -import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../../common/constants/trained_models'; -import { trainedModelsApiProvider } from '../../../../../services/ml_api_service/trained_models'; +import { SUPPORTED_PYTORCH_TASKS } from '../../../../../../common/constants/trained_models'; +import { trainedModelsApiProvider } from '../../../../services/ml_api_service/trained_models'; export interface RawTextEmbeddingResponse { inference_results: Array<{ predicted_value: number[] }>; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_embedding/text_embedding_output.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_embedding/text_embedding_output.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_embedding/text_embedding_output.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_embedding/text_embedding_output.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_input.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/models/text_input.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_input.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/models/text_input.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/output_loading.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/output_loading.tsx similarity index 100% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/output_loading.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/output_loading.tsx diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/selected_model.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/selected_model.tsx similarity index 95% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/selected_model.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/selected_model.tsx index 3f992b9d4aa282..d0dee3e32a1b36 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/selected_model.tsx +++ b/x-pack/plugins/ml/public/application/model_management/test_models/selected_model.tsx @@ -23,8 +23,8 @@ import { TextEmbeddingInference } from './models/text_embedding'; import { TRAINED_MODEL_TYPE, SUPPORTED_PYTORCH_TASKS, -} from '../../../../../common/constants/trained_models'; -import { useMlApiContext } from '../../../contexts/kibana'; +} from '../../../../common/constants/trained_models'; +import { useMlApiContext } from '../../contexts/kibana'; import { InferenceInputForm } from './models/inference_input_form'; import { InferrerType } from './models'; import { INPUT_TYPE } from './models/inference_base'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/test_flyout.tsx b/x-pack/plugins/ml/public/application/model_management/test_models/test_flyout.tsx similarity index 96% rename from x-pack/plugins/ml/public/application/trained_models/models_management/test_models/test_flyout.tsx rename to x-pack/plugins/ml/public/application/model_management/test_models/test_flyout.tsx index 6804a654711cfb..1ee8a853bb477a 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/test_flyout.tsx +++ b/x-pack/plugins/ml/public/application/model_management/test_models/test_flyout.tsx @@ -22,7 +22,7 @@ import { import { SelectedModel } from './selected_model'; import { INPUT_TYPE } from './models/inference_base'; -import { useTrainedModelsApiService } from '../../../services/ml_api_service/trained_models'; +import { useTrainedModelsApiService } from '../../services/ml_api_service/trained_models'; interface Props { modelId: string; diff --git a/x-pack/plugins/ml/public/application/model_management/test_models/utils.ts b/x-pack/plugins/ml/public/application/model_management/test_models/utils.ts new file mode 100644 index 00000000000000..431845d9c74e34 --- /dev/null +++ b/x-pack/plugins/ml/public/application/model_management/test_models/utils.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + TRAINED_MODEL_TYPE, + DEPLOYMENT_STATE, + SUPPORTED_PYTORCH_TASKS, +} from '../../../../common/constants/trained_models'; +import type { SupportedPytorchTasksType } from '../../../../common/constants/trained_models'; +import type { ModelItem } from '../models_list'; + +const PYTORCH_TYPES = Object.values(SUPPORTED_PYTORCH_TASKS); + +export function isTestable(modelItem: ModelItem, checkForState = false) { + if ( + modelItem.model_type === TRAINED_MODEL_TYPE.PYTORCH && + PYTORCH_TYPES.includes( + Object.keys(modelItem.inference_config)[0] as SupportedPytorchTasksType + ) && + (checkForState === false || + modelItem.stats?.deployment_stats?.state === DEPLOYMENT_STATE.STARTED) + ) { + return true; + } + + if (modelItem.model_type === TRAINED_MODEL_TYPE.LANG_IDENT) { + return true; + } + + return false; +} diff --git a/x-pack/plugins/ml/public/application/overview/components/getting_started_callout.tsx b/x-pack/plugins/ml/public/application/overview/components/getting_started_callout.tsx deleted file mode 100644 index d7a0370b4aeac5..00000000000000 --- a/x-pack/plugins/ml/public/application/overview/components/getting_started_callout.tsx +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { FC } from 'react'; -import { EuiButton, EuiCallOut, EuiLink, EuiSpacer } from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { useStorage } from '@kbn/ml-local-storage'; -import { useMlKibana } from '../../contexts/kibana'; -import { ML_GETTING_STARTED_CALLOUT_DISMISSED } from '../../../../common/types/storage'; - -const feedbackLink = 'https://www.elastic.co/community/'; - -export const GettingStartedCallout: FC = () => { - const { - services: { docLinks }, - } = useMlKibana(); - - const docsLink = docLinks.links.ml.guide; - - const [isCalloutDismissed, setIsCalloutDismissed] = useStorage( - ML_GETTING_STARTED_CALLOUT_DISMISSED, - false - ); - - if (isCalloutDismissed) return null; - - return ( - <> - - } - iconType="iInCircle" - > -

    - - - - ), - }} - /> -

    -

    - - - - ), - }} - /> -

    -

    - - - -

    -
    - - - - ); -}; diff --git a/x-pack/plugins/ml/public/application/overview/overview_page.tsx b/x-pack/plugins/ml/public/application/overview/overview_page.tsx index b6cd342eb11e9f..3a37e5bd623cca 100644 --- a/x-pack/plugins/ml/public/application/overview/overview_page.tsx +++ b/x-pack/plugins/ml/public/application/overview/overview_page.tsx @@ -11,7 +11,6 @@ import { i18n } from '@kbn/i18n'; import { mlTimefilterRefresh$, useTimefilter } from '@kbn/ml-date-picker'; import { checkPermission } from '../capabilities/check_capabilities'; import { mlNodesAvailable } from '../ml_nodes_check'; -import { GettingStartedCallout } from './components/getting_started_callout'; import { OverviewContent } from './components/content'; import { NodeAvailableWarning } from '../components/node_available_warning'; import { JobsAwaitingNodeWarning } from '../components/jobs_awaiting_node_warning'; @@ -19,11 +18,13 @@ import { SavedObjectsWarning } from '../components/saved_objects_warning'; import { UpgradeWarning } from '../components/upgrade'; import { HelpMenu } from '../components/help_menu'; import { useMlKibana } from '../contexts/kibana'; -import { NodesList } from '../trained_models/nodes_overview'; +import { NodesList } from '../memory_usage/nodes_overview'; import { MlPageHeader } from '../components/page_header'; import { PageTitle } from '../components/page_title'; +import { useIsServerless } from '../contexts/kibana/use_is_serverless'; export const OverviewPage: FC = () => { + const serverless = useIsServerless(); const canViewMlNodes = checkPermission('canViewMlNodes'); const disableCreateAnomalyDetectionJob = !checkPermission('canCreateJob') || !mlNodesAvailable(); @@ -60,9 +61,7 @@ export const OverviewPage: FC = () => { /> - - - {canViewMlNodes ? ( + {canViewMlNodes && serverless === false ? ( <> diff --git a/x-pack/plugins/ml/public/application/routing/router.tsx b/x-pack/plugins/ml/public/application/routing/router.tsx index e050bea78a5c94..4b9dab76994ede 100644 --- a/x-pack/plugins/ml/public/application/routing/router.tsx +++ b/x-pack/plugins/ml/public/application/routing/router.tsx @@ -19,6 +19,8 @@ import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import { EuiLoadingContent } from '@elastic/eui'; import { UrlStateProvider } from '@kbn/ml-url-state'; +import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; +import { SavedObjectsClientContract } from '@kbn/core/public'; import { MlNotificationsContextProvider } from '../contexts/ml/ml_notifications_context'; import { MlContext, MlContextValue } from '../contexts/ml'; @@ -65,6 +67,10 @@ export interface PageDependencies { dataViewsContract: DataViewsContract; setBreadcrumbs: ChromeStart['setBreadcrumbs']; redirectToMlAccessDeniedPage: () => Promise; + getSavedSearchDeps: { + search: DataPublicPluginStart['search']; + savedObjectsClient: SavedObjectsClientContract; + }; } export const PageLoader: FC<{ context: MlContextValue }> = ({ context, children }) => { diff --git a/x-pack/plugins/ml/public/application/routing/routes/access_denied.tsx b/x-pack/plugins/ml/public/application/routing/routes/access_denied.tsx index 1868c521c72fd8..d07f760adf791c 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/access_denied.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/access_denied.tsx @@ -30,7 +30,14 @@ export const accessDeniedRouteFactory = (): MlRoute => ({ }); const PageWrapper: FC = ({ deps }) => { - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, {}); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + {} + ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/aiops/change_point_detection.tsx b/x-pack/plugins/ml/public/application/routing/routes/aiops/change_point_detection.tsx index 8d85c09f5ddf1b..c825c579e64970 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/aiops/change_point_detection.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/aiops/change_point_detection.tsx @@ -43,10 +43,17 @@ export const changePointDetectionRouteFactory = ( const PageWrapper: FC = ({ location, deps }) => { const { index, savedSearchId }: Record = parse(location.search, { sort: false }); - const { context } = useResolver(index, savedSearchId, deps.config, deps.dataViewsContract, { - checkBasicLicense, - cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), - }); + const { context } = useResolver( + index, + savedSearchId, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkBasicLicense, + cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), + } + ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/aiops/explain_log_rate_spikes.tsx b/x-pack/plugins/ml/public/application/routing/routes/aiops/explain_log_rate_spikes.tsx index ac9728f0c54a06..b946f1a651099a 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/aiops/explain_log_rate_spikes.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/aiops/explain_log_rate_spikes.tsx @@ -50,15 +50,23 @@ export const explainLogRateSpikesRouteFactory = ( disabled: !AIOPS_ENABLED, }); -const PageWrapper: FC = ({ location, deps }) => { +const PageWrapper: FC = ({ location, deps, ...restProps }) => { const { redirectToMlAccessDeniedPage } = deps; const { index, savedSearchId }: Record = parse(location.search, { sort: false }); - const { context } = useResolver(index, savedSearchId, deps.config, deps.dataViewsContract, { - checkBasicLicense, - cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - }); + const { context } = useResolver( + index, + savedSearchId, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkBasicLicense, + cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + } + ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/aiops/log_categorization.tsx b/x-pack/plugins/ml/public/application/routing/routes/aiops/log_categorization.tsx index e3aebb87b53415..6002d86a695207 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/aiops/log_categorization.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/aiops/log_categorization.tsx @@ -50,11 +50,19 @@ const PageWrapper: FC = ({ location, deps }) => { const { redirectToMlAccessDeniedPage } = deps; const { index, savedSearchId }: Record = parse(location.search, { sort: false }); - const { context } = useResolver(index, savedSearchId, deps.config, deps.dataViewsContract, { - checkBasicLicense, - cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - }); + const { context } = useResolver( + index, + savedSearchId, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkBasicLicense, + cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + } + ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_job_creation.tsx b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_job_creation.tsx index fa0899ea234755..9466c271f31b05 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_job_creation.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_job_creation.tsx @@ -48,11 +48,18 @@ const PageWrapper: FC = ({ location, deps }) => { sort: false, }); - const { context } = useResolver(index, savedSearchId, deps.config, deps.dataViewsContract, { - ...basicResolvers(deps), - analyticsFields: () => - loadNewJobCapabilities(index, savedSearchId, deps.dataViewsContract, DATA_FRAME_ANALYTICS), - }); + const { context } = useResolver( + index, + savedSearchId, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + ...basicResolvers(deps), + analyticsFields: () => + loadNewJobCapabilities(index, savedSearchId, deps.dataViewsContract, DATA_FRAME_ANALYTICS), + } + ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_job_exploration.tsx b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_job_exploration.tsx index d47780553eede7..1d4e483126e7ff 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_job_exploration.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_job_exploration.tsx @@ -46,6 +46,7 @@ const PageWrapper: FC = ({ deps }) => { undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, basicResolvers(deps) ); diff --git a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_jobs_list.tsx b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_jobs_list.tsx index fd3a365d01179b..0b94eb490c7781 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_jobs_list.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_jobs_list.tsx @@ -44,6 +44,7 @@ const PageWrapper: FC = ({ location, deps }) => { undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, basicResolvers(deps) ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_map.tsx b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_map.tsx index faae919f722c8f..853be569433412 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_map.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_map.tsx @@ -45,6 +45,7 @@ const PageWrapper: FC = ({ deps }) => { undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, basicResolvers(deps) ); diff --git a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_source_selection.tsx b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_source_selection.tsx index e9ffcc509b1533..6d255a8fb5fb30 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_source_selection.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/data_frame_analytics/analytics_source_selection.tsx @@ -44,6 +44,7 @@ const PageWrapper: FC = ({ deps }) => { undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, basicResolvers(deps) ); diff --git a/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/datavisualizer.tsx b/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/datavisualizer.tsx index ad01c2d97b7180..29f9063cddd38c 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/datavisualizer.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/datavisualizer.tsx @@ -35,11 +35,18 @@ export const selectorRouteFactory = ( const PageWrapper: FC = ({ location, deps }) => { const { redirectToMlAccessDeniedPage } = deps; - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkBasicLicense, - checkFindFileStructurePrivilege: () => - checkFindFileStructurePrivilegeResolver(redirectToMlAccessDeniedPage), - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkBasicLicense, + checkFindFileStructurePrivilege: () => + checkFindFileStructurePrivilegeResolver(redirectToMlAccessDeniedPage), + } + ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/file_based.tsx b/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/file_based.tsx index 3d048e8d402838..3e58a2b2bd08f8 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/file_based.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/file_based.tsx @@ -45,12 +45,19 @@ export const fileBasedRouteFactory = ( const PageWrapper: FC = ({ deps }) => { const { redirectToMlAccessDeniedPage } = deps; - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkBasicLicense, - cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), - checkFindFileStructurePrivilege: () => - checkFindFileStructurePrivilegeResolver(redirectToMlAccessDeniedPage), - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkBasicLicense, + cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), + checkFindFileStructurePrivilege: () => + checkFindFileStructurePrivilegeResolver(redirectToMlAccessDeniedPage), + } + ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/index_based.tsx b/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/index_based.tsx index 1ba865435280ca..acd51501092b8b 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/index_based.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/datavisualizer/index_based.tsx @@ -47,11 +47,19 @@ const PageWrapper: FC = ({ location, deps }) => { const { redirectToMlAccessDeniedPage } = deps; const { index, savedSearchId }: Record = parse(location.search, { sort: false }); - const { context } = useResolver(index, savedSearchId, deps.config, deps.dataViewsContract, { - checkBasicLicense, - cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - }); + const { context } = useResolver( + index, + savedSearchId, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkBasicLicense, + cacheDataViewsContract: () => cacheDataViewsContract(deps.dataViewsContract), + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + } + ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx b/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx index e7e672248f6254..99c3f3ff38a688 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx @@ -75,6 +75,7 @@ const PageWrapper: FC = ({ deps }) => { undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, { ...basicResolvers(deps), jobs: mlJobService.loadJobsWrapper, diff --git a/x-pack/plugins/ml/public/application/routing/routes/index.ts b/x-pack/plugins/ml/public/application/routing/routes/index.ts index 3b481ab6cde59a..c25fa9a01a1dd2 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/index.ts +++ b/x-pack/plugins/ml/public/application/routing/routes/index.ts @@ -17,3 +17,4 @@ export * from './explorer'; export * from './access_denied'; export * from './trained_models'; export * from './notifications'; +export * from './memory_usage'; diff --git a/x-pack/plugins/ml/public/application/routing/routes/jobs_list.tsx b/x-pack/plugins/ml/public/application/routing/routes/jobs_list.tsx index 68c0cdbe6a24ff..bcf8929c7f470c 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/jobs_list.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/jobs_list.tsx @@ -50,6 +50,7 @@ const PageWrapper: FC = ({ deps }) => { undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, basicResolvers(deps) ); const timefilter = useTimefilter({ timeRangeSelector: false, autoRefreshSelector: true }); diff --git a/x-pack/plugins/ml/public/application/routing/routes/memory_usage.tsx b/x-pack/plugins/ml/public/application/routing/routes/memory_usage.tsx new file mode 100644 index 00000000000000..a10eb9610667b1 --- /dev/null +++ b/x-pack/plugins/ml/public/application/routing/routes/memory_usage.tsx @@ -0,0 +1,53 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC } from 'react'; +import { i18n } from '@kbn/i18n'; +import { ML_PAGES } from '../../../locator'; +import { NavigateToPath } from '../../contexts/kibana'; +import { MlRoute, PageLoader, PageProps, createPath } from '../router'; +import { useResolver } from '../use_resolver'; +import { basicResolvers } from '../resolvers'; +import { getBreadcrumbWithUrlForApp } from '../breadcrumbs'; +import { MemoryUsagePage } from '../../memory_usage'; + +export const nodesListRouteFactory = ( + navigateToPath: NavigateToPath, + basePath: string +): MlRoute => ({ + path: createPath(ML_PAGES.MEMORY_USAGE), + render: (props, deps) => , + title: i18n.translate('xpack.ml.modelManagement.memoryUsage.docTitle', { + defaultMessage: 'Memory Usage', + }), + breadcrumbs: [ + getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), + { + text: i18n.translate('xpack.ml.trainedModelsBreadcrumbs.nodeOverviewLabel', { + defaultMessage: 'Memory Usage', + }), + }, + ], + enableDatePicker: true, +}); + +const PageWrapper: FC = ({ location, deps }) => { + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + basicResolvers(deps) + ); + + return ( + + + + ); +}; diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/from_lens.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/from_lens.tsx index a0690b4987bc0c..0a9d1a30aad624 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/from_lens.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/from_lens.tsx @@ -30,9 +30,16 @@ const PageWrapper: FC = ({ location, deps }) => { } ); - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - redirect: () => resolver(lensId, vis, from, to, query, filters, layerIndex), - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + redirect: () => resolver(lensId, vis, from, to, query, filters, layerIndex), + } + ); return ( {} diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/from_map.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/from_map.tsx index 3f1ebb04162e64..e63a00735b3485 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/from_map.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/from_map.tsx @@ -36,10 +36,17 @@ const PageWrapper: FC = ({ location, deps }) => { sort: false, }); - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - redirect: () => - resolver(dashboard, dataViewId, embeddable, geoField, splitField, from, to, layer), - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + redirect: () => + resolver(dashboard, dataViewId, embeddable, geoField, splitField, from, to, layer), + } + ); return ( {} diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/index_or_search.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/index_or_search.tsx index 0383b48eabadcd..fa35731e567c77 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/index_or_search.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/index_or_search.tsx @@ -206,6 +206,7 @@ const PageWrapper: FC = ({ nextStepPath, deps, mode }) = undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, mode === MODE.NEW_JOB ? newJobResolvers : dataVizResolvers ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/job_type.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/job_type.tsx index e1d38875bc1dd5..e4c9fa21cbd46e 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/job_type.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/job_type.tsx @@ -41,6 +41,7 @@ const PageWrapper: FC = ({ location, deps }) => { savedSearchId, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, basicResolvers(deps) ); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/recognize.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/recognize.tsx index a68bb0d861a5cc..1c1c54aebc4cc5 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/recognize.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/recognize.tsx @@ -55,6 +55,8 @@ const PageWrapper: FC = ({ location, deps }) => { savedSearchId, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, + { ...basicResolvers(deps), existingJobsAndGroups: mlJobService.getJobAndGroupIds, @@ -77,7 +79,7 @@ const CheckViewOrCreateWrapper: FC = ({ location, deps }) => { const navigateToPath = useNavigateToPath(); // the single resolver checkViewOrCreateJobs redirects only. so will always reject - useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { + useResolver(undefined, undefined, deps.config, deps.dataViewsContract, deps.getSavedSearchDeps, { checkViewOrCreateJobs: () => checkViewOrCreateJobs(moduleId, dataViewId, createLinkWithUserDefaults, navigateToPath), }); diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/wizard.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/wizard.tsx index 8a4640a346a855..4300d73ae010e8 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/wizard.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/wizard.tsx @@ -200,6 +200,7 @@ const PageWrapper: FC = ({ location, jobType, deps }) => { savedSearchId, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, { ...basicResolvers(deps), privileges: () => checkCreateJobsCapabilitiesResolver(redirectToJobsManagementPage), diff --git a/x-pack/plugins/ml/public/application/routing/routes/notifications.tsx b/x-pack/plugins/ml/public/application/routing/routes/notifications.tsx index cb7cbc0c48c6e5..843cf54087c8f3 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/notifications.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/notifications.tsx @@ -46,12 +46,20 @@ export const notificationsRouteFactory = ( const PageWrapper: FC = ({ deps }) => { const { redirectToMlAccessDeniedPage } = deps; - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkFullLicense, - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - getMlNodeCount, - loadMlServerInfo, - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkFullLicense, + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + getMlNodeCount, + loadMlServerInfo, + } + ); useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/overview.tsx b/x-pack/plugins/ml/public/application/routing/routes/overview.tsx index 139e4635ce4127..111a1ae77916c6 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/overview.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/overview.tsx @@ -50,12 +50,20 @@ export const overviewRouteFactory = ( const PageWrapper: FC = ({ deps }) => { const { redirectToMlAccessDeniedPage } = deps; - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkFullLicense, - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - getMlNodeCount, - loadMlServerInfo, - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkFullLicense, + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + getMlNodeCount, + loadMlServerInfo, + } + ); useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); return ( diff --git a/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_list.tsx b/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_list.tsx index e257f0cde5aaca..2d43c5ab5675cf 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_list.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_list.tsx @@ -41,11 +41,19 @@ export const calendarListRouteFactory = ( const PageWrapper: FC = ({ deps }) => { const { redirectToMlAccessDeniedPage } = deps; - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkFullLicense, - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - getMlNodeCount, - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkFullLicense, + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + getMlNodeCount, + } + ); useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); diff --git a/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_new_edit.tsx b/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_new_edit.tsx index 9753e790cd543f..775ba25523a9d6 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_new_edit.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_new_edit.tsx @@ -85,11 +85,19 @@ const PageWrapper: FC = ({ location, mode, deps }) => { ML_PAGES.ANOMALY_DETECTION_JOBS_MANAGE ); - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkFullLicense, - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - checkMlNodesAvailable: () => checkMlNodesAvailable(redirectToJobsManagementPage), - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkFullLicense, + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + checkMlNodesAvailable: () => checkMlNodesAvailable(redirectToJobsManagementPage), + } + ); useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); diff --git a/x-pack/plugins/ml/public/application/routing/routes/settings/filter_list.tsx b/x-pack/plugins/ml/public/application/routing/routes/settings/filter_list.tsx index d4e8b61ef4870b..abbe806716feba 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/settings/filter_list.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/settings/filter_list.tsx @@ -41,11 +41,19 @@ export const filterListRouteFactory = ( const PageWrapper: FC = ({ deps }) => { const { redirectToMlAccessDeniedPage } = deps; - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkFullLicense, - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - getMlNodeCount, - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkFullLicense, + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + getMlNodeCount, + } + ); useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); diff --git a/x-pack/plugins/ml/public/application/routing/routes/settings/filter_list_new_edit.tsx b/x-pack/plugins/ml/public/application/routing/routes/settings/filter_list_new_edit.tsx index c501760080624c..9afa6ec8c8557a 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/settings/filter_list_new_edit.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/settings/filter_list_new_edit.tsx @@ -89,11 +89,19 @@ const PageWrapper: FC = ({ location, mode, deps }) => { ML_PAGES.ANOMALY_DETECTION_JOBS_MANAGE ); - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkFullLicense, - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - checkMlNodesAvailable: () => checkMlNodesAvailable(redirectToJobsManagementPage), - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkFullLicense, + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + checkMlNodesAvailable: () => checkMlNodesAvailable(redirectToJobsManagementPage), + } + ); useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); diff --git a/x-pack/plugins/ml/public/application/routing/routes/settings/settings.tsx b/x-pack/plugins/ml/public/application/routing/routes/settings/settings.tsx index 2e994cc4f85f9c..2b9af849e2157a 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/settings/settings.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/settings/settings.tsx @@ -41,11 +41,19 @@ export const settingsRouteFactory = ( const PageWrapper: FC = ({ deps }) => { const { redirectToMlAccessDeniedPage } = deps; - const { context } = useResolver(undefined, undefined, deps.config, deps.dataViewsContract, { - checkFullLicense, - checkGetJobsCapabilities: () => checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), - getMlNodeCount, - }); + const { context } = useResolver( + undefined, + undefined, + deps.config, + deps.dataViewsContract, + deps.getSavedSearchDeps, + { + checkFullLicense, + checkGetJobsCapabilities: () => + checkGetJobsCapabilitiesResolver(redirectToMlAccessDeniedPage), + getMlNodeCount, + } + ); useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); diff --git a/x-pack/plugins/ml/public/application/routing/routes/timeseriesexplorer.tsx b/x-pack/plugins/ml/public/application/routing/routes/timeseriesexplorer.tsx index e89a2cff138730..729bb5ae821d8c 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/timeseriesexplorer.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/timeseriesexplorer.tsx @@ -79,6 +79,7 @@ const PageWrapper: FC = ({ deps }) => { undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, { ...basicResolvers(deps), jobs: mlJobService.loadJobsWrapper, diff --git a/x-pack/plugins/ml/public/application/routing/routes/trained_models/index.ts b/x-pack/plugins/ml/public/application/routing/routes/trained_models/index.ts index 53b9ffd0ee87e1..d69a2256335e38 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/trained_models/index.ts +++ b/x-pack/plugins/ml/public/application/routing/routes/trained_models/index.ts @@ -6,4 +6,3 @@ */ export * from './models_list'; -export * from './nodes_list'; diff --git a/x-pack/plugins/ml/public/application/routing/routes/trained_models/models_list.tsx b/x-pack/plugins/ml/public/application/routing/routes/trained_models/models_list.tsx index e2b0b2709df528..e1d093f9003e77 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/trained_models/models_list.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/trained_models/models_list.tsx @@ -15,7 +15,7 @@ import { createPath, MlRoute, PageLoader, PageProps } from '../../router'; import { useResolver } from '../../use_resolver'; import { basicResolvers } from '../../resolvers'; import { getBreadcrumbWithUrlForApp } from '../../breadcrumbs'; -import { ModelsList } from '../../../trained_models/models_management'; +import { ModelsList } from '../../../model_management'; import { MlPageHeader } from '../../../components/page_header'; export const modelsListRouteFactory = ( @@ -47,11 +47,11 @@ const PageWrapper: FC = ({ location, deps }) => { undefined, deps.config, deps.dataViewsContract, + deps.getSavedSearchDeps, basicResolvers(deps) ); return ( - @@ -62,6 +62,7 @@ const PageWrapper: FC = ({ location, deps }) => { + ); }; diff --git a/x-pack/plugins/ml/public/application/routing/routes/trained_models/nodes_list.tsx b/x-pack/plugins/ml/public/application/routing/routes/trained_models/nodes_list.tsx deleted file mode 100644 index e6003f161b1c6b..00000000000000 --- a/x-pack/plugins/ml/public/application/routing/routes/trained_models/nodes_list.tsx +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { FC } from 'react'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { i18n } from '@kbn/i18n'; -import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; -import { useTimefilter } from '@kbn/ml-date-picker'; -import { ML_PAGES } from '../../../../locator'; -import { NavigateToPath } from '../../../contexts/kibana'; -import { createPath, MlRoute, PageLoader, PageProps } from '../../router'; -import { useResolver } from '../../use_resolver'; -import { basicResolvers } from '../../resolvers'; -import { getBreadcrumbWithUrlForApp } from '../../breadcrumbs'; -import { NodesList } from '../../../trained_models/nodes_overview'; -import { MlPageHeader } from '../../../components/page_header'; - -export const nodesListRouteFactory = ( - navigateToPath: NavigateToPath, - basePath: string -): MlRoute => ({ - path: createPath(ML_PAGES.TRAINED_MODELS_NODES), - render: (props, deps) => , - title: i18n.translate('xpack.ml.modelManagement.nodesOverview.docTitle', { - defaultMessage: 'Nodes', - }), - breadcrumbs: [ - getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), - getBreadcrumbWithUrlForApp('TRAINED_MODELS', navigateToPath, basePath), - { - text: i18n.translate('xpack.ml.trainedModelsBreadcrumbs.nodeOverviewLabel', { - defaultMessage: 'Nodes', - }), - }, - ], - enableDatePicker: true, -}); - -const PageWrapper: FC = ({ location, deps }) => { - const { context } = useResolver( - undefined, - undefined, - deps.config, - deps.dataViewsContract, - basicResolvers(deps) - ); - useTimefilter({ timeRangeSelector: false, autoRefreshSelector: true }); - return ( - - - - - - - - - - - ); -}; diff --git a/x-pack/plugins/ml/public/application/routing/use_resolver.test.ts b/x-pack/plugins/ml/public/application/routing/use_resolver.test.ts index 714df97142ccab..a75448459be960 100644 --- a/x-pack/plugins/ml/public/application/routing/use_resolver.test.ts +++ b/x-pack/plugins/ml/public/application/routing/use_resolver.test.ts @@ -13,7 +13,7 @@ import { useCreateAndNavigateToMlLink } from '../contexts/kibana/use_create_url' import { useNotifications } from '../contexts/kibana'; import type { DataViewsContract } from '@kbn/data-views-plugin/public'; -import { useResolver } from './use_resolver'; +import { type GetSavedSearchPageDeps, useResolver } from './use_resolver'; jest.mock('../contexts/kibana/use_create_url', () => { return { @@ -47,7 +47,14 @@ describe('useResolver', () => { it('should accept undefined as dataViewId and savedSearchId.', async () => { const { result, waitForNextUpdate } = renderHook(() => - useResolver(undefined, undefined, {} as IUiSettingsClient, {} as DataViewsContract, {}) + useResolver( + undefined, + undefined, + {} as IUiSettingsClient, + {} as DataViewsContract, + {} as GetSavedSearchPageDeps, + {} + ) ); await act(async () => { @@ -66,9 +73,10 @@ describe('useResolver', () => { }, }, currentDataView: null, - currentSavedSearch: null, + deprecatedSavedSearchObj: null, dataViewsContract: {}, kibanaConfig: {}, + selectedSavedSearch: null, }, results: {}, }); @@ -78,7 +86,14 @@ describe('useResolver', () => { it('should add an error toast and redirect if dataViewId is an empty string.', async () => { const { result } = renderHook(() => - useResolver('', undefined, {} as IUiSettingsClient, {} as DataViewsContract, {}) + useResolver( + '', + undefined, + {} as IUiSettingsClient, + {} as DataViewsContract, + {} as GetSavedSearchPageDeps, + {} + ) ); await act(async () => {}); diff --git a/x-pack/plugins/ml/public/application/routing/use_resolver.ts b/x-pack/plugins/ml/public/application/routing/use_resolver.ts index 6e16b1d42e6f63..0f999329b2fa18 100644 --- a/x-pack/plugins/ml/public/application/routing/use_resolver.ts +++ b/x-pack/plugins/ml/public/application/routing/use_resolver.ts @@ -6,21 +6,27 @@ */ import { useEffect, useState } from 'react'; -import { IUiSettingsClient } from '@kbn/core/public'; +import type { IUiSettingsClient, SavedObjectsClientContract } from '@kbn/core/public'; import { i18n } from '@kbn/i18n'; import type { DataViewsContract } from '@kbn/data-views-plugin/public'; +import { getSavedSearch } from '@kbn/saved-search-plugin/public'; +import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; import { getDataViewById, getDataViewAndSavedSearch, - DataViewAndSavedSearch, + type DataViewAndSavedSearch, } from '../util/index_utils'; import { createSearchItems } from '../jobs/new_job/utils/new_job_utils'; -import { ResolverResults, Resolvers } from './resolvers'; -import { MlContextValue } from '../contexts/ml'; +import type { ResolverResults, Resolvers } from './resolvers'; +import type { MlContextValue } from '../contexts/ml'; import { useNotifications } from '../contexts/kibana'; import { useCreateAndNavigateToMlLink } from '../contexts/kibana/use_create_url'; import { ML_PAGES } from '../../../common/constants/locator'; +export interface GetSavedSearchPageDeps { + search: DataPublicPluginStart['search']; + savedObjectsClient: SavedObjectsClientContract; +} /** * Hook to resolve route specific requirements * @param dataViewId optional Kibana data view id, used for wizards @@ -34,6 +40,10 @@ export const useResolver = ( savedSearchId: string | undefined, config: IUiSettingsClient, dataViewsContract: DataViewsContract, + getSavedSearchDeps: { + search: DataPublicPluginStart['search']; + savedObjectsClient: SavedObjectsClientContract; + }, resolvers: Resolvers ): { context: MlContextValue; results: ResolverResults } => { const notifications = useNotifications(); @@ -76,25 +86,28 @@ export const useResolver = ( savedSearch: null, dataView: null, }; + let savedSearch = null; if (savedSearchId !== undefined) { + savedSearch = await getSavedSearch(savedSearchId, getSavedSearchDeps); dataViewAndSavedSearch = await getDataViewAndSavedSearch(savedSearchId); } else if (dataViewId !== undefined) { dataViewAndSavedSearch.dataView = await getDataViewById(dataViewId); } - const { savedSearch, dataView } = dataViewAndSavedSearch; + const { savedSearch: deprecatedSavedSearchObj, dataView } = dataViewAndSavedSearch; const { combinedQuery } = createSearchItems( config, dataView !== null ? dataView : undefined, - savedSearch + deprecatedSavedSearchObj ); setContext({ combinedQuery, currentDataView: dataView, - currentSavedSearch: savedSearch, + deprecatedSavedSearchObj, + selectedSavedSearch: savedSearch, dataViewsContract, kibanaConfig: config, }); diff --git a/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts b/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts index 2d8864d755f3b1..1548a298acd186 100644 --- a/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts +++ b/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts @@ -9,6 +9,7 @@ import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { useMemo } from 'react'; import { HttpFetchQuery } from '@kbn/core/public'; +import { MlSavedObjectType } from '../../../../common/types/saved_objects'; import { HttpService } from '../http_service'; import { basePath } from '.'; import { useMlKibana } from '../../contexts/kibana'; @@ -17,6 +18,7 @@ import type { ModelPipelines, TrainedModelStat, NodesOverviewResponse, + MemoryUsageInfo, } from '../../../../common/types/trained_models'; export interface InferenceQueryParams { @@ -119,7 +121,7 @@ export function trainedModelsApiProvider(httpService: HttpService) { getTrainedModelsNodesOverview() { return httpService.http({ - path: `${apiBasePath}/trained_models/nodes_overview`, + path: `${apiBasePath}/model_management/nodes_overview`, method: 'GET', }); }, @@ -185,6 +187,14 @@ export function trainedModelsApiProvider(httpService: HttpService) { body, }); }, + + memoryUsage(type?: MlSavedObjectType, node?: string, showClosedJobs = false) { + return httpService.http({ + path: `${apiBasePath}/model_management/memory_usage`, + method: 'GET', + query: { type, node, showClosedJobs }, + }); + }, }; } diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx deleted file mode 100644 index daa813fe4e1e68..00000000000000 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx +++ /dev/null @@ -1,407 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { FC, useEffect, useState, useMemo, useCallback } from 'react'; -import { omit, pick } from 'lodash'; -import { - EuiBadge, - EuiCodeBlock, - EuiDescriptionList, - EuiDescriptionListProps, - EuiFlexGrid, - EuiFlexItem, - EuiNotificationBadge, - EuiPanel, - EuiSpacer, - EuiTabbedContent, - EuiTabbedContentTab, - EuiTitle, -} from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; -import { isPopulatedObject } from '@kbn/ml-is-populated-object'; -import { isDefined } from '@kbn/ml-is-defined'; -import type { ModelItemFull } from './models_list'; -import { ModelPipelines } from './pipelines'; -import { AllocatedModels } from '../nodes_overview/allocated_models'; -import type { AllocatedModel } from '../../../../common/types/trained_models'; -import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; - -interface ExpandedRowProps { - item: ModelItemFull; -} - -const badgeFormatter = (items: string[]) => { - if (items.length === 0) return; - return ( -
    - {items.map((item) => ( - - {item} - - ))} -
    - ); -}; - -export function useListItemsFormatter() { - const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); - const dateFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DATE); - - const formatterDictionary: Record JSX.Element | string | undefined> = - useMemo( - () => ({ - tags: badgeFormatter, - roles: badgeFormatter, - create_time: dateFormatter, - timestamp: dateFormatter, - model_size_bytes: bytesFormatter, - required_native_memory_bytes: bytesFormatter, - }), - // eslint-disable-next-line react-hooks/exhaustive-deps - [] - ); - - return useCallback( - (items: Record | object): EuiDescriptionListProps['listItems'] => { - return Object.entries(items) - .filter(([, value]) => isDefined(value)) - .map(([title, value]) => { - if (title in formatterDictionary) { - return { - title, - description: formatterDictionary[title](value), - }; - } - return { - title, - description: - typeof value === 'object' ? ( - - {JSON.stringify(value, null, 2)} - - ) : ( - value.toString() - ), - }; - }); - }, - [formatterDictionary] - ); -} - -export const ExpandedRow: FC = ({ item }) => { - const [modelItems, setModelItems] = useState([]); - - const formatToListItems = useListItemsFormatter(); - - const { - inference_config: inferenceConfig, - stats, - metadata, - tags, - version, - // eslint-disable-next-line @typescript-eslint/naming-convention - estimated_operations, - // eslint-disable-next-line @typescript-eslint/naming-convention - estimated_heap_memory_usage_bytes, - // eslint-disable-next-line @typescript-eslint/naming-convention - default_field_map, - // eslint-disable-next-line @typescript-eslint/naming-convention - license_level, - pipelines, - description, - } = item; - - const { analytics_config: analyticsConfig, ...restMetaData } = metadata ?? {}; - - const details = { - description, - tags, - version, - estimated_operations, - estimated_heap_memory_usage_bytes, - default_field_map, - license_level, - }; - - useEffect( - function updateModelItems() { - (async function () { - const deploymentStats = stats.deployment_stats; - const modelSizeStats = stats.model_size_stats; - - if (!deploymentStats || !modelSizeStats) return; - - const items: AllocatedModel[] = deploymentStats.nodes.map((n) => { - const nodeName = Object.values(n.node)[0].name; - return { - ...deploymentStats, - ...modelSizeStats, - node: { - ...pick(n, [ - 'average_inference_time_ms', - 'inference_count', - 'routing_state', - 'last_access', - 'number_of_pending_requests', - 'start_time', - 'throughput_last_minute', - 'number_of_allocations', - 'threads_per_allocation', - ]), - name: nodeName, - } as AllocatedModel['node'], - }; - }); - - setModelItems(items); - })(); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [stats.deployment_stats] - ); - - const tabs: EuiTabbedContentTab[] = [ - { - id: 'details', - 'data-test-subj': 'mlTrainedModelDetails', - name: ( - - ), - content: ( -
    - - - - - -
    - -
    -
    - - -
    -
    - {isPopulatedObject(restMetaData) ? ( - - - -
    - -
    -
    - - -
    -
    - ) : null} -
    -
    - ), - }, - ...(inferenceConfig - ? [ - { - id: 'config', - 'data-test-subj': 'mlTrainedModelInferenceConfig', - name: ( - - ), - content: ( -
    - - - - - -
    - -
    -
    - - -
    -
    - {analyticsConfig && ( - - - -
    - -
    -
    - - -
    -
    - )} -
    -
    - ), - }, - ] - : []), - ...(isPopulatedObject(omit(stats, ['pipeline_count', 'ingest'])) - ? [ - { - id: 'stats', - 'data-test-subj': 'mlTrainedModelStats', - name: ( - - ), - content: ( -
    - - - - {!!modelItems?.length ? ( - - - -
    - -
    -
    - - -
    -
    - ) : null} - {stats.inference_stats ? ( - - - -
    - -
    -
    - - -
    -
    - ) : null} - {isPopulatedObject(stats.model_size_stats) && - !isPopulatedObject(stats.inference_stats) ? ( - - - -
    - -
    -
    - - -
    -
    - ) : null} -
    -
    - ), - }, - ] - : []), - ...((pipelines && Object.keys(pipelines).length > 0) || stats.ingest - ? [ - { - id: 'pipelines', - 'data-test-subj': 'mlTrainedModelPipelines', - name: ( - <> - {' '} - {stats.pipeline_count} - - ), - content: ( -
    - - -
    - ), - }, - ] - : []), - ]; - - return ( - {}} - data-test-subj={'mlTrainedModelRowDetails'} - /> - ); -}; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx deleted file mode 100644 index 86284bd23796b1..00000000000000 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { FC } from 'react'; -import { EuiBadge, EuiInMemoryTable, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n-react'; - -import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; -import { i18n } from '@kbn/i18n'; -import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; -import { useFieldFormatter } from '../../../contexts/kibana/use_field_formatter'; -import { IngestStatsResponse } from './pipelines'; -import { HelpIcon } from '../../../components/help_icon'; - -interface ProcessorsStatsProps { - stats: Exclude['pipelines'][string]['processors']; -} - -type ProcessorStatsItem = ProcessorsStatsProps['stats'][number][string] & { id: string }; - -export const ProcessorsStats: FC = ({ stats }) => { - const durationFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DURATION); - - const items: ProcessorStatsItem[] = stats.map((v, i) => { - const key = Object.keys(v)[0]; - return { - ...v[key], - id: `${key}_${i}`, - }; - }); - - const columns: Array> = [ - { - field: 'type', - name: i18n.translate( - 'xpack.ml.trainedModels.modelsList.pipelines.processorStats.typeHeader', - { - defaultMessage: 'Processor type', - } - ), - width: '100px', - sortable: true, - truncateText: false, - render: (type: string) => { - return {type}; - }, - 'data-test-subj': 'mlProcessorStatsType', - }, - { - field: 'stats.count', - name: ( - - - - - - - } - /> - - - ), - width: '100px', - truncateText: true, - 'data-test-subj': 'mlProcessorStatsCount', - }, - /** - * TODO Display when https://github.com/elastic/elasticsearch/issues/81037 is resolved - */ - ...(true - ? [] - : [ - { - field: 'stats.time_in_millis', - name: ( - - - - - - - } - /> - - - ), - width: '100px', - truncateText: false, - 'data-test-subj': 'mlProcessorStatsTimePerDoc', - render: (v: number) => { - return durationFormatter(v); - }, - }, - ]), - { - field: 'stats.current', - name: ( - - - - - - - } - /> - - - ), - width: '100px', - truncateText: false, - 'data-test-subj': 'mlProcessorStatsCurrent', - }, - { - field: 'stats.failed', - name: ( - - - - - - - } - /> - - - ), - width: '100px', - 'data-test-subj': 'mlProcessorStatsFailed', - }, - ]; - - return ( - - allowNeutralSort={false} - columns={columns} - hasActions={false} - isExpandable={false} - isSelectable={false} - items={items} - itemId={'id'} - rowProps={(item) => ({ - 'data-test-subj': `mlProcessorStatsTableRow row-${item.id}`, - })} - onTableChange={() => {}} - data-test-subj={'mlProcessorStatsTable'} - /> - ); -}; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/index_input.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/index_input.tsx deleted file mode 100644 index 484515f4a59cf4..00000000000000 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/index_input.tsx +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { FC, useState, useMemo, useEffect, useCallback } from 'react'; - -import useObservable from 'react-use/lib/useObservable'; -import { firstValueFrom } from 'rxjs'; -import { DataView } from '@kbn/data-views-plugin/common'; -import { EuiSpacer, EuiSelect, EuiFormRow, EuiAccordion, EuiCodeBlock } from '@elastic/eui'; - -import { isPopulatedObject } from '@kbn/ml-is-populated-object'; -import { i18n } from '@kbn/i18n'; -import { useMlKibana } from '../../../../contexts/kibana'; -import { RUNNING_STATE } from './inference_base'; -import type { InferrerType } from '.'; - -interface Props { - inferrer: InferrerType; - data: ReturnType; -} - -export const InferenceInputFormIndexControls: FC = ({ inferrer, data }) => { - const { - dataViewListItems, - fieldNames, - selectedDataViewId, - setSelectedDataViewId, - selectedField, - setSelectedField, - } = data; - - const runningState = useObservable(inferrer.getRunningState$(), inferrer.getRunningState()); - const pipeline = useObservable(inferrer.getPipeline$(), inferrer.getPipeline()); - const inputComponent = useMemo(() => inferrer.getInputComponent(), [inferrer]); - - return ( - <> - - setSelectedDataViewId(e.target.value)} - hasNoInitialSelection={true} - disabled={runningState === RUNNING_STATE.RUNNING} - fullWidth - /> - - - - setSelectedField(e.target.value)} - hasNoInitialSelection={true} - disabled={runningState === RUNNING_STATE.RUNNING} - fullWidth - /> - - - <>{inputComponent} - - - - - - {JSON.stringify(pipeline, null, 2)} - - - - ); -}; - -export function useIndexInput({ inferrer }: { inferrer: InferrerType }) { - const { - services: { - data: { - dataViews, - search: { search }, - }, - }, - } = useMlKibana(); - - const [dataViewListItems, setDataViewListItems] = useState< - Array<{ value: string; text: string }> - >([]); - const [selectedDataViewId, setSelectedDataViewId] = useState(undefined); - const [selectedDataView, setSelectedDataView] = useState(null); - const [fieldNames, setFieldNames] = useState>([]); - const selectedField = useObservable(inferrer.getInputField$(), inferrer.getInputField()); - - const setSelectedField = useCallback( - (fieldName: string) => inferrer.setInputField(fieldName), - [inferrer] - ); - useEffect( - function loadDataViewListItems() { - dataViews.getIdsWithTitle().then((items) => { - setDataViewListItems( - items - .sort((a, b) => a.title.localeCompare(b.title)) - .map(({ id, title }) => ({ text: title, value: id })) - ); - }); - }, - [dataViews] - ); - - useEffect( - function loadSelectedDataView() { - inferrer.reset(); - setFieldNames([]); - if (selectedDataViewId !== undefined) { - dataViews.get(selectedDataViewId).then((dv) => setSelectedDataView(dv)); - } - }, - [selectedDataViewId, dataViews, inferrer] - ); - - const loadExamples = useCallback(() => { - inferrer.setInputText([]); - if (selectedField !== undefined && selectedDataView !== null) { - firstValueFrom( - search({ - params: { - index: selectedDataView.getIndexPattern(), - body: { - fields: [selectedField], - query: { - function_score: { - functions: [ - { - random_score: {}, - }, - ], - }, - }, - }, - }, - }) - ).then((resp) => { - const tempExamples = resp.rawResponse.hits.hits - .filter(({ fields }) => isPopulatedObject(fields, [selectedField])) - .map(({ fields }) => fields![selectedField][0]); - inferrer.setInputText(tempExamples); - }); - } - }, [inferrer, selectedDataView, search, selectedField]); - - useEffect( - function loadFieldNames() { - if (selectedDataView !== null) { - const tempFieldNames = selectedDataView.fields - .filter( - ({ displayName, esTypes }) => - esTypes && esTypes.includes('text') && !['_id', '_index'].includes(displayName) - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)) - .map(({ displayName }) => ({ - value: displayName, - text: displayName, - })); - setFieldNames(tempFieldNames); - - const fieldName = tempFieldNames.length === 1 ? tempFieldNames[0].value : undefined; - inferrer.setInputField(fieldName); - } - }, - [selectedDataView, inferrer] - ); - - useEffect( - function loadExamplesAfterFieldChange() { - loadExamples(); - }, - // only load examples if selectedField changes - // eslint-disable-next-line react-hooks/exhaustive-deps - [selectedField] - ); - - function reloadExamples() { - inferrer.reset(); - loadExamples(); - } - - return { - fieldNames, - dataViewListItems, - reloadExamples, - selectedDataViewId, - setSelectedDataViewId, - selectedField, - setSelectedField, - }; -} diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index_input.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index_input.tsx deleted file mode 100644 index 02a9a217f547ad..00000000000000 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index_input.tsx +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { FC, useState, useMemo, useCallback, FormEventHandler } from 'react'; - -import useObservable from 'react-use/lib/useObservable'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { - EuiSpacer, - EuiButton, - EuiButtonEmpty, - EuiFlexGroup, - EuiFlexItem, - EuiHorizontalRule, - EuiLoadingSpinner, - EuiText, - EuiForm, -} from '@elastic/eui'; - -import { ErrorMessage } from '../../inference_error'; -import { extractErrorMessage } from '../../../../../../../common'; -import type { InferrerType } from '..'; -import { useIndexInput, InferenceInputFormIndexControls } from '../index_input'; -import { RUNNING_STATE } from '../inference_base'; - -interface Props { - inferrer: InferrerType; -} - -export const IndexInputForm: FC = ({ inferrer }) => { - const data = useIndexInput({ inferrer }); - const { reloadExamples, selectedField } = data; - - const [errorText, setErrorText] = useState(null); - const runningState = useObservable(inferrer.getRunningState$(), inferrer.getRunningState()); - const examples = useObservable(inferrer.getInputText$(), inferrer.getInputText()); - const isValid = useObservable(inferrer.getIsValid$(), inferrer.getIsValid()); - const outputComponent = useMemo(() => inferrer.getOutputComponent(), [inferrer]); - const infoComponent = useMemo(() => inferrer.getInfoComponent(), [inferrer]); - - const run: FormEventHandler = useCallback( - async (event) => { - event.preventDefault(); - setErrorText(null); - try { - await inferrer.infer(); - } catch (e) { - setErrorText(extractErrorMessage(e)); - } - }, - [inferrer] - ); - - return ( - - <>{infoComponent} - - - - - - - - - - - - {runningState === RUNNING_STATE.RUNNING ? : null} - - - - - - - - - - - {errorText !== null || runningState === RUNNING_STATE.FINISHED_WITH_ERRORS ? ( - <> - - - - ) : null} - - {runningState !== RUNNING_STATE.FINISHED - ? examples.map((example) => ( - <> - {example} - - - )) - : null} - - {runningState === RUNNING_STATE.FINISHED ? <>{outputComponent} : null} - - ); -}; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/utils.ts b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/utils.ts deleted file mode 100644 index de38ac9b86c395..00000000000000 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/utils.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - TRAINED_MODEL_TYPE, - DEPLOYMENT_STATE, - SUPPORTED_PYTORCH_TASKS, -} from '../../../../../common/constants/trained_models'; -import type { SupportedPytorchTasksType } from '../../../../../common/constants/trained_models'; -import type { ModelItem } from '../models_list'; - -const PYTORCH_TYPES = Object.values(SUPPORTED_PYTORCH_TASKS); - -export function isTestable(modelItem: ModelItem, checkForState = false) { - if ( - modelItem.model_type === TRAINED_MODEL_TYPE.PYTORCH && - PYTORCH_TYPES.includes( - Object.keys(modelItem.inference_config)[0] as SupportedPytorchTasksType - ) && - (checkForState === false || - modelItem.stats?.deployment_stats?.state === DEPLOYMENT_STATE.STARTED) - ) { - return true; - } - - if (modelItem.model_type === TRAINED_MODEL_TYPE.LANG_IDENT) { - return true; - } - - return false; -} diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx deleted file mode 100644 index a6b6adc4fbc206..00000000000000 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { FC } from 'react'; -import { - EuiDescriptionList, - EuiFlexGrid, - EuiFlexItem, - EuiPanel, - EuiSpacer, - EuiTitle, -} from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { cloneDeep } from 'lodash'; -import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; -import { css } from '@emotion/react'; -import { NodeItem } from './nodes_list'; -import { useListItemsFormatter } from '../models_management/expanded_row'; -import { AllocatedModels } from './allocated_models'; -import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; - -interface ExpandedRowProps { - item: NodeItem; -} - -export const ExpandedRow: FC = ({ item }) => { - const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); - - const formatToListItems = useListItemsFormatter(); - - const { - allocated_models: allocatedModels, - attributes, - memory_overview: memoryOverview, - id, - ...details - } = cloneDeep(item); - - // Process node attributes - attributes['ml.machine_memory'] = bytesFormatter(attributes['ml.machine_memory']); - attributes['ml.max_jvm_size'] = bytesFormatter(attributes['ml.max_jvm_size']); - - return ( -
    - - - - -
    - -
    -
    - - -
    -
    - - - - -
    - -
    -
    - - -
    -
    -
    - - {allocatedModels.length > 0 ? ( - <> - - - -
    - -
    -
    - - - -
    - - ) : null} -
    - ); -}; diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx deleted file mode 100644 index 9ec06645d8e295..00000000000000 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; -import { - EuiButtonIcon, - EuiFlexGroup, - EuiFlexItem, - EuiInMemoryTable, - EuiSearchBarProps, - EuiSpacer, -} from '@elastic/eui'; -import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; -import { i18n } from '@kbn/i18n'; -import { cloneDeep } from 'lodash'; -import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; -import { usePageUrlState } from '@kbn/ml-url-state'; -import { ModelsBarStats, StatsBar } from '../../components/stats_bar'; -import { NodeDeploymentStatsResponse } from '../../../../common/types/trained_models'; -import { ML_PAGES } from '../../../../common/constants/locator'; -import { useTrainedModelsApiService } from '../../services/ml_api_service/trained_models'; -import { useTableSettings } from '../../data_frame_analytics/pages/analytics_management/components/analytics_list/use_table_settings'; -import { ExpandedRow } from './expanded_row'; -import { MemoryPreviewChart } from './memory_preview_chart'; -import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; -import { ListingPageUrlState } from '../../../../common/types/common'; -import { useToastNotificationService } from '../../services/toast_notification_service'; -import { useRefresh } from '../../routing/use_refresh'; - -export type NodeItem = NodeDeploymentStatsResponse; - -interface PageUrlState { - pageKey: typeof ML_PAGES.TRAINED_MODELS_NODES; - pageUrlState: ListingPageUrlState; -} - -export const getDefaultNodesListState = (): ListingPageUrlState => ({ - pageIndex: 0, - pageSize: 10, - sortField: 'name', - sortDirection: 'asc', -}); - -export interface NodesListProps { - compactView?: boolean; -} - -export const NodesList: FC = ({ compactView = false }) => { - const trainedModelsApiService = useTrainedModelsApiService(); - - const refresh = useRefresh(); - - const { displayErrorToast } = useToastNotificationService(); - const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); - const [items, setItems] = useState([]); - const [isLoading, setIsLoading] = useState(true); - const [itemIdToExpandedRowMap, setItemIdToExpandedRowMap] = useState>( - {} - ); - const [pageState, updatePageState] = usePageUrlState( - ML_PAGES.TRAINED_MODELS_NODES, - getDefaultNodesListState() - ); - - const searchQueryText = pageState.queryText ?? ''; - - const fetchNodesData = useCallback(async () => { - try { - const nodesResponse = await trainedModelsApiService.getTrainedModelsNodesOverview(); - setItems(nodesResponse.nodes); - - // Update expanded rows. - nodesResponse.nodes.forEach((node) => { - if (itemIdToExpandedRowMap[node.id]) { - itemIdToExpandedRowMap[node.id] = ; - } - }); - - setIsLoading(false); - } catch (e) { - displayErrorToast( - e, - i18n.translate('xpack.ml.trainedModels.nodesList.nodesFetchError', { - defaultMessage: 'Nodes fetch failed', - }) - ); - setIsLoading(false); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [itemIdToExpandedRowMap]); - - const toggleDetails = (item: NodeItem) => { - const itemIdToExpandedRowMapValues = cloneDeep(itemIdToExpandedRowMap); - if (itemIdToExpandedRowMapValues[item.id]) { - delete itemIdToExpandedRowMapValues[item.id]; - } else { - itemIdToExpandedRowMapValues[item.id] = ; - } - setItemIdToExpandedRowMap(itemIdToExpandedRowMapValues); - }; - - const columns: Array> = [ - { - align: 'left', - width: '40px', - isExpander: true, - render: (item: NodeItem) => ( - - ), - 'data-test-subj': 'mlNodesTableRowDetailsToggle', - }, - { - field: 'name', - name: i18n.translate('xpack.ml.trainedModels.nodesList.nodeNameHeader', { - defaultMessage: 'Name', - }), - width: '200px', - sortable: true, - truncateText: true, - 'data-test-subj': 'mlNodesTableColumnName', - }, - { - name: i18n.translate('xpack.ml.trainedModels.nodesList.nodeTotalMemoryHeader', { - defaultMessage: 'Total memory', - }), - width: '200px', - truncateText: true, - 'data-test-subj': 'mlNodesTableColumnTotalMemory', - render: (v: NodeItem) => { - return bytesFormatter(v.attributes['ml.machine_memory']); - }, - }, - { - name: i18n.translate('xpack.ml.trainedModels.nodesList.nodeMemoryUsageHeader', { - defaultMessage: 'Memory usage', - }), - truncateText: true, - 'data-test-subj': 'mlNodesTableColumnMemoryUsage', - render: (v: NodeItem) => { - return ; - }, - }, - ]; - - const nodesStats: ModelsBarStats = useMemo(() => { - return { - total: { - show: true, - value: items.length, - label: i18n.translate('xpack.ml.trainedModels.nodesList.totalAmountLabel', { - defaultMessage: 'Total machine learning nodes', - }), - 'data-test-subj': 'mlTotalNodesCount', - }, - }; - }, [items]); - - let tableSettings: object = useTableSettings(items.length, pageState, updatePageState); - - const search: EuiSearchBarProps = { - query: searchQueryText, - onChange: (searchChange) => { - if (searchChange.error !== null) { - return false; - } - updatePageState({ queryText: searchChange.queryText, pageIndex: 0 }); - return true; - }, - box: { - incremental: true, - }, - }; - - useEffect( - function updateOnTimerRefresh() { - fetchNodesData(); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [refresh] - ); - - if (compactView) { - tableSettings = {}; - } - - return ( -
    - - - {nodesStats && ( - - - - )} - - -
    - - allowNeutralSort={false} - columns={columns} - hasActions={false} - isExpandable={true} - itemIdToExpandedRowMap={itemIdToExpandedRowMap} - isSelectable={false} - items={items} - itemId={'id'} - loading={isLoading} - search={compactView ? undefined : search} - {...tableSettings} - rowProps={(item) => ({ - 'data-test-subj': `mlNodesTableRow row-${item.id}`, - })} - data-test-subj={isLoading ? 'mlNodesTable loading' : 'mlNodesTable loaded'} - /> -
    -
    - ); -}; diff --git a/x-pack/plugins/ml/public/locator/formatters/trained_models.ts b/x-pack/plugins/ml/public/locator/formatters/trained_models.ts index e2526480bbfaba..ddf4782005b42f 100644 --- a/x-pack/plugins/ml/public/locator/formatters/trained_models.ts +++ b/x-pack/plugins/ml/public/locator/formatters/trained_models.ts @@ -6,10 +6,7 @@ */ import { setStateToKbnUrl } from '@kbn/kibana-utils-plugin/public'; -import type { - TrainedModelsNodesUrlState, - TrainedModelsUrlState, -} from '../../../common/types/locator'; +import type { MemoryUsageUrlState, TrainedModelsUrlState } from '../../../common/types/locator'; import { ML_PAGES } from '../../../common/constants/locator'; import type { AppPageState, ListingPageUrlState } from '../../../common/types/common'; @@ -41,11 +38,11 @@ export function formatTrainedModelsManagementUrl( return url; } -export function formatTrainedModelsNodesManagementUrl( +export function formatMemoryUsageUrl( appBasePath: string, - mlUrlGeneratorState: TrainedModelsNodesUrlState['pageState'] + mlUrlGeneratorState: MemoryUsageUrlState['pageState'] ): string { - let url = `${appBasePath}/${ML_PAGES.TRAINED_MODELS_NODES}`; + let url = `${appBasePath}/${ML_PAGES.MEMORY_USAGE}`; if (mlUrlGeneratorState) { const { nodeId } = mlUrlGeneratorState; if (nodeId) { @@ -54,7 +51,7 @@ export function formatTrainedModelsNodesManagementUrl( }; const queryState: AppPageState = { - [ML_PAGES.TRAINED_MODELS_NODES]: nodesListState, + [ML_PAGES.MEMORY_USAGE]: nodesListState, }; url = setStateToKbnUrl>( diff --git a/x-pack/plugins/ml/public/locator/ml_locator.ts b/x-pack/plugins/ml/public/locator/ml_locator.ts index 8f9e83fa120341..765af5da1cf9d2 100644 --- a/x-pack/plugins/ml/public/locator/ml_locator.ts +++ b/x-pack/plugins/ml/public/locator/ml_locator.ts @@ -29,7 +29,7 @@ import { } from './formatters'; import { formatTrainedModelsManagementUrl, - formatTrainedModelsNodesManagementUrl, + formatMemoryUsageUrl, } from './formatters/trained_models'; export type { MlLocatorParams, MlLocator }; @@ -74,8 +74,8 @@ export class MlLocatorDefinition implements LocatorDefinition { case ML_PAGES.TRAINED_MODELS_MANAGE: path = formatTrainedModelsManagementUrl('', params.pageState); break; - case ML_PAGES.TRAINED_MODELS_NODES: - path = formatTrainedModelsNodesManagementUrl('', params.pageState); + case ML_PAGES.MEMORY_USAGE: + path = formatMemoryUsageUrl('', params.pageState); break; case ML_PAGES.ANOMALY_DETECTION_CREATE_JOB: case ML_PAGES.ANOMALY_DETECTION_CREATE_JOB_RECOGNIZER: diff --git a/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts b/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts index 979027ba30f55e..ab8b15c94e2603 100644 --- a/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts +++ b/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts @@ -49,11 +49,11 @@ const MODEL_MANAGEMENT_DEEP_LINK: AppDeepLink = { path: `/${ML_PAGES.TRAINED_MODELS_MANAGE}`, }, { - id: 'mlNodesOverviewDeepLink', - title: i18n.translate('xpack.ml.deepLink.nodesOverview', { - defaultMessage: 'Nodes', + id: 'mlMemoryUsageDeepLink', + title: i18n.translate('xpack.ml.deepLink.memoryUsage', { + defaultMessage: 'Memory usage', }), - path: `/${ML_PAGES.TRAINED_MODELS_NODES}`, + path: `/${ML_PAGES.MEMORY_USAGE}`, }, ], }; diff --git a/x-pack/plugins/ml/public/shared.ts b/x-pack/plugins/ml/public/shared.ts index 7fb27f889c4173..f247be10047181 100644 --- a/x-pack/plugins/ml/public/shared.ts +++ b/x-pack/plugins/ml/public/shared.ts @@ -21,4 +21,5 @@ export * from '../common/util/date_utils'; export * from './application/formatters/metric_change_description'; export * from './application/components/data_grid'; +export * from './application/components/field_stats_flyout'; export * from './application/data_frame_analytics/common'; diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/index.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/index.ts index 75c98bed17b8ee..7385ba566269c2 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/index.ts +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/index.ts @@ -6,5 +6,4 @@ */ export { analyticsAuditMessagesProvider } from './analytics_audit_messages'; -export { modelsProvider } from './models_provider'; export { AnalyticsManager } from './analytics_manager'; diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.test.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.test.ts deleted file mode 100644 index cf4ef22b440168..00000000000000 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.test.ts +++ /dev/null @@ -1,530 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { MemoryStatsResponse, ModelService, modelsProvider } from './models_provider'; -import { IScopedClusterClient } from '@kbn/core/server'; -import { MlClient } from '../../lib/ml_client'; -import mockResponse from './__mocks__/mock_deployment_response.json'; - -describe('Model service', () => { - const client = { - asInternalUser: {}, - } as unknown as jest.Mocked; - - const mlClient = { - getTrainedModelsStats: jest.fn(() => { - return Promise.resolve({ - trained_model_stats: mockResponse, - }); - }), - getMemoryStats: jest.fn(() => { - return Promise.resolve({ - _nodes: { - total: 4, - successful: 4, - failed: 0, - }, - cluster_name: 'test_cluster', - nodes: { - '3qIoLFnbSi-DwVr2333UCdw': { - name: 'node3', - transport_address: '10.10.10.2:9353', - // missing the ml role - roles: ['data', 'ingest', 'master', 'transform'], - attributes: {}, - jvm: { - heap_max_in_bytes: 1073741824, - java_inference_in_bytes: 0, - java_inference_max_in_bytes: 0, - }, - mem: { - adjusted_total_in_bytes: 15599742976, - total_in_bytes: 15599742976, - ml: { - data_frame_analytics_in_bytes: 0, - native_code_overhead_in_bytes: 0, - max_in_bytes: 1073741824, - anomaly_detectors_in_bytes: 0, - native_inference_in_bytes: 1555161790, - }, - }, - ephemeral_id: '3qIoLFnbSi-DwVrYioUCdw', - }, - '3qIoLFnbSi-DwVrYioUCdw': { - name: 'node3', - transport_address: '10.10.10.2:9353', - roles: ['data', 'ingest', 'master', 'ml', 'transform'], - attributes: { - 'ml.machine_memory': '15599742976', - 'ml.max_jvm_size': '1073741824', - }, - jvm: { - heap_max_in_bytes: 1073741824, - java_inference_in_bytes: 0, - java_inference_max_in_bytes: 0, - }, - mem: { - adjusted_total_in_bytes: 15599742976, - total_in_bytes: 15599742976, - ml: { - data_frame_analytics_in_bytes: 0, - native_code_overhead_in_bytes: 0, - max_in_bytes: 1073741824, - anomaly_detectors_in_bytes: 0, - native_inference_in_bytes: 1555161790, - }, - }, - ephemeral_id: '3qIoLFnbSi-DwVrYioUCdw', - }, - 'DpCy7SOBQla3pu0Dq-tnYw': { - name: 'node2', - transport_address: '10.10.10.2:9352', - roles: ['data', 'master', 'ml', 'transform'], - attributes: { - 'ml.machine_memory': '15599742976', - 'ml.max_jvm_size': '1073741824', - }, - jvm: { - heap_max_in_bytes: 1073741824, - java_inference_in_bytes: 0, - java_inference_max_in_bytes: 0, - }, - mem: { - adjusted_total_in_bytes: 15599742976, - total_in_bytes: 15599742976, - ml: { - data_frame_analytics_in_bytes: 0, - native_code_overhead_in_bytes: 0, - max_in_bytes: 1073741824, - anomaly_detectors_in_bytes: 0, - native_inference_in_bytes: 1555161790, - }, - }, - ephemeral_id: '3qIoLFnbSi-DwVrYioUCdw', - }, - 'pt7s6lKHQJaP4QHKtU-Q0Q': { - name: 'node1', - transport_address: '10.10.10.2:9351', - roles: ['data', 'master', 'ml'], - attributes: { - 'ml.machine_memory': '15599742976', - 'ml.max_jvm_size': '1073741824', - }, - jvm: { - heap_max_in_bytes: 1073741824, - java_inference_in_bytes: 0, - java_inference_max_in_bytes: 0, - }, - mem: { - adjusted_total_in_bytes: 15599742976, - total_in_bytes: 15599742976, - ml: { - data_frame_analytics_in_bytes: 0, - native_code_overhead_in_bytes: 0, - max_in_bytes: 1073741824, - anomaly_detectors_in_bytes: 0, - native_inference_in_bytes: 1555161790, - }, - }, - ephemeral_id: '3qIoLFnbSi-DwVrYioUCdw', - }, - }, - } as MemoryStatsResponse); - }), - } as unknown as jest.Mocked; - - let service: ModelService; - - beforeEach(() => { - service = modelsProvider(client, mlClient); - }); - - afterEach(() => {}); - - it('extract nodes list correctly', async () => { - expect(await service.getNodesOverview()).toEqual({ - _nodes: { - failed: 0, - successful: 3, - total: 3, - }, - nodes: [ - { - name: 'node3', - allocated_models: [ - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'distilbert-base-uncased-finetuned-sst-2-english', - model_size_bytes: 267386880, - required_native_memory_bytes: 534773760, - model_threads: 1, - state: 'started', - node: { - average_inference_time_ms: 0, - inference_count: 0, - routing_state: { - routing_state: 'started', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', - model_size_bytes: 260947500, - required_native_memory_bytes: 521895000, - model_threads: 1, - state: 'started', - node: { - average_inference_time_ms: 0, - inference_count: 0, - routing_state: { - routing_state: 'started', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', - model_size_bytes: 133378867, - required_native_memory_bytes: 266757734, - model_threads: 1, - state: 'started', - node: { - average_inference_time_ms: 0, - inference_count: 0, - routing_state: { - routing_state: 'started', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'typeform__mobilebert-uncased-mnli', - model_size_bytes: 100139008, - required_native_memory_bytes: 200278016, - model_threads: 1, - state: 'started', - node: { - average_inference_time_ms: 0, - inference_count: 0, - routing_state: { - routing_state: 'started', - }, - }, - }, - ], - attributes: { - 'ml.machine_memory': '15599742976', - 'ml.max_jvm_size': '1073741824', - }, - id: '3qIoLFnbSi-DwVrYioUCdw', - memory_overview: { - ml_max_in_bytes: 1073741824, - anomaly_detection: { - total: 0, - }, - dfa_training: { - total: 0, - }, - machine_memory: { - jvm: 1073741824, - total: 15599742976, - }, - trained_models: { - by_model: [ - { - model_id: 'distilbert-base-uncased-finetuned-sst-2-english', - model_size: 534773760, - }, - { - model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', - model_size: 521895000, - }, - { - model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', - model_size: 266757734, - }, - { - model_id: 'typeform__mobilebert-uncased-mnli', - model_size: 200278016, - }, - ], - total: 1555161790, - }, - }, - roles: ['data', 'ingest', 'master', 'ml', 'transform'], - }, - { - name: 'node2', - allocated_models: [ - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'distilbert-base-uncased-finetuned-sst-2-english', - model_size_bytes: 267386880, - required_native_memory_bytes: 534773760, - model_threads: 1, - state: 'started', - node: { - routing_state: { - reason: 'The object cannot be set twice!', - routing_state: 'failed', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', - model_size_bytes: 260947500, - required_native_memory_bytes: 521895000, - model_threads: 1, - state: 'started', - node: { - routing_state: { - reason: 'The object cannot be set twice!', - routing_state: 'failed', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', - model_size_bytes: 133378867, - required_native_memory_bytes: 266757734, - model_threads: 1, - state: 'started', - node: { - routing_state: { - reason: 'The object cannot be set twice!', - routing_state: 'failed', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'typeform__mobilebert-uncased-mnli', - model_size_bytes: 100139008, - required_native_memory_bytes: 200278016, - model_threads: 1, - state: 'started', - node: { - routing_state: { - reason: 'The object cannot be set twice!', - routing_state: 'failed', - }, - }, - }, - ], - attributes: { - 'ml.machine_memory': '15599742976', - 'ml.max_jvm_size': '1073741824', - }, - id: 'DpCy7SOBQla3pu0Dq-tnYw', - memory_overview: { - ml_max_in_bytes: 1073741824, - anomaly_detection: { - total: 0, - }, - dfa_training: { - total: 0, - }, - machine_memory: { - jvm: 1073741824, - total: 15599742976, - }, - trained_models: { - by_model: [ - { - model_id: 'distilbert-base-uncased-finetuned-sst-2-english', - model_size: 534773760, - }, - { - model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', - model_size: 521895000, - }, - { - model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', - model_size: 266757734, - }, - { - model_id: 'typeform__mobilebert-uncased-mnli', - model_size: 200278016, - }, - ], - total: 1555161790, - }, - }, - roles: ['data', 'master', 'ml', 'transform'], - }, - { - allocated_models: [ - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'distilbert-base-uncased-finetuned-sst-2-english', - model_size_bytes: 267386880, - required_native_memory_bytes: 534773760, - model_threads: 1, - state: 'started', - node: { - average_inference_time_ms: 0, - inference_count: 0, - routing_state: { - routing_state: 'started', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', - model_size_bytes: 260947500, - required_native_memory_bytes: 521895000, - model_threads: 1, - state: 'started', - node: { - average_inference_time_ms: 0, - inference_count: 0, - routing_state: { - routing_state: 'started', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', - model_size_bytes: 133378867, - required_native_memory_bytes: 266757734, - model_threads: 1, - state: 'started', - node: { - average_inference_time_ms: 0, - inference_count: 0, - routing_state: { - routing_state: 'started', - }, - }, - }, - { - allocation_status: { - allocation_count: 2, - state: 'started', - target_allocation_count: 3, - }, - inference_threads: 1, - model_id: 'typeform__mobilebert-uncased-mnli', - model_size_bytes: 100139008, - required_native_memory_bytes: 200278016, - model_threads: 1, - state: 'started', - node: { - average_inference_time_ms: 0, - inference_count: 0, - routing_state: { - routing_state: 'started', - }, - }, - }, - ], - attributes: { - 'ml.machine_memory': '15599742976', - 'ml.max_jvm_size': '1073741824', - }, - id: 'pt7s6lKHQJaP4QHKtU-Q0Q', - memory_overview: { - ml_max_in_bytes: 1073741824, - anomaly_detection: { - total: 0, - }, - dfa_training: { - total: 0, - }, - machine_memory: { - jvm: 1073741824, - total: 15599742976, - }, - trained_models: { - by_model: [ - { - model_id: 'distilbert-base-uncased-finetuned-sst-2-english', - model_size: 534773760, - }, - { - model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', - model_size: 521895000, - }, - { - model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', - model_size: 266757734, - }, - { - model_id: 'typeform__mobilebert-uncased-mnli', - model_size: 200278016, - }, - ], - total: 1555161790, - }, - }, - name: 'node1', - roles: ['data', 'master', 'ml'], - }, - ], - }); - }); -}); diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts deleted file mode 100644 index ccb60e6379e48e..00000000000000 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { IScopedClusterClient } from '@kbn/core/server'; -import { pick } from 'lodash'; -import { - MlTrainedModelStats, - NodesInfoNodeInfo, -} from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { isDefined } from '@kbn/ml-is-defined'; -import type { - NodeDeploymentStatsResponse, - PipelineDefinition, - NodesOverviewResponse, -} from '../../../common/types/trained_models'; -import type { MlClient } from '../../lib/ml_client'; -import { - TrainedModelDeploymentStatsResponse, - TrainedModelModelSizeStats, -} from '../../../common/types/trained_models'; - -export type ModelService = ReturnType; - -const NODE_FIELDS = ['attributes', 'name', 'roles'] as const; - -export type RequiredNodeFields = Pick; - -// @ts-expect-error TrainedModelDeploymentStatsResponse missing properties from MlTrainedModelDeploymentStats -interface TrainedModelStatsResponse extends MlTrainedModelStats { - deployment_stats?: Omit; - model_size_stats?: TrainedModelModelSizeStats; -} - -export interface MemoryStatsResponse { - _nodes: { total: number; failed: number; successful: number }; - cluster_name: string; - nodes: Record< - string, - { - jvm: { - heap_max_in_bytes: number; - java_inference_in_bytes: number; - java_inference_max_in_bytes: number; - }; - mem: { - adjusted_total_in_bytes: number; - total_in_bytes: number; - ml: { - data_frame_analytics_in_bytes: number; - native_code_overhead_in_bytes: number; - max_in_bytes: number; - anomaly_detectors_in_bytes: number; - native_inference_in_bytes: number; - }; - }; - transport_address: string; - roles: string[]; - name: string; - attributes: Record<`${'ml.'}${string}`, string>; - ephemeral_id: string; - } - >; -} - -export function modelsProvider(client: IScopedClusterClient, mlClient: MlClient) { - return { - /** - * Retrieves the map of model ids and aliases with associated pipelines. - * @param modelIds - Array of models ids and model aliases. - */ - async getModelsPipelines(modelIds: string[]) { - const modelIdsMap = new Map | null>( - modelIds.map((id: string) => [id, null]) - ); - - try { - const body = await client.asCurrentUser.ingest.getPipeline(); - - for (const [pipelineName, pipelineDefinition] of Object.entries(body)) { - const { processors } = pipelineDefinition as { processors: Array> }; - - for (const processor of processors) { - const id = processor.inference?.model_id; - if (modelIdsMap.has(id)) { - const obj = modelIdsMap.get(id); - if (obj === null) { - modelIdsMap.set(id, { [pipelineName]: pipelineDefinition }); - } else { - obj![pipelineName] = pipelineDefinition; - } - } - } - } - } catch (error) { - if (error.statusCode === 404) { - // ES returns 404 when there are no pipelines - // Instead, we should return the modelIdsMap and a 200 - return modelIdsMap; - } - throw error; - } - - return modelIdsMap; - }, - - /** - * Provides the ML nodes overview with allocated models. - */ - async getNodesOverview(): Promise { - // TODO set node_id to ml:true when elasticsearch client is updated. - const response = (await mlClient.getMemoryStats()) as MemoryStatsResponse; - - const { trained_model_stats: trainedModelStats } = await mlClient.getTrainedModelsStats({ - size: 10000, - }); - - const mlNodes = Object.entries(response.nodes).filter(([, node]) => - node.roles.includes('ml') - ); - - const nodeDeploymentStatsResponses: NodeDeploymentStatsResponse[] = mlNodes.map( - ([nodeId, node]) => { - const nodeFields = pick(node, NODE_FIELDS) as RequiredNodeFields; - - nodeFields.attributes = nodeFields.attributes; - - const allocatedModels = (trainedModelStats as TrainedModelStatsResponse[]) - .filter( - (d) => - isDefined(d.deployment_stats) && - isDefined(d.deployment_stats.nodes) && - d.deployment_stats.nodes.some((n) => Object.keys(n.node)[0] === nodeId) - ) - .map((d) => { - const modelSizeState = d.model_size_stats; - const deploymentStats = d.deployment_stats; - - if (!deploymentStats || !modelSizeState) { - throw new Error('deploymentStats or modelSizeState not defined'); - } - - const { nodes, ...rest } = deploymentStats; - - const { node: tempNode, ...nodeRest } = nodes.find( - (v) => Object.keys(v.node)[0] === nodeId - )!; - return { - model_id: d.model_id, - ...rest, - ...modelSizeState, - node: nodeRest, - }; - }); - - const modelsMemoryUsage = allocatedModels.map((v) => { - return { - model_id: v.model_id, - model_size: v.required_native_memory_bytes, - }; - }); - - const memoryRes = { - adTotalMemory: node.mem.ml.anomaly_detectors_in_bytes, - dfaTotalMemory: node.mem.ml.data_frame_analytics_in_bytes, - trainedModelsTotalMemory: node.mem.ml.native_inference_in_bytes, - }; - - for (const key of Object.keys(memoryRes)) { - if (memoryRes[key as keyof typeof memoryRes] > 0) { - /** - * The amount of memory needed to load the ML native code shared libraries. The assumption is that the first - * ML job to run on a given node will do this, and then subsequent ML jobs on the same node will reuse the - * same already-loaded code. - */ - memoryRes[key as keyof typeof memoryRes] += node.mem.ml.native_code_overhead_in_bytes; - break; - } - } - - return { - id: nodeId, - ...nodeFields, - allocated_models: allocatedModels, - memory_overview: { - machine_memory: { - total: node.mem.adjusted_total_in_bytes, - jvm: node.jvm.heap_max_in_bytes, - }, - anomaly_detection: { - total: memoryRes.adTotalMemory, - }, - dfa_training: { - total: memoryRes.dfaTotalMemory, - }, - trained_models: { - total: memoryRes.trainedModelsTotalMemory, - by_model: modelsMemoryUsage, - }, - ml_max_in_bytes: node.mem.ml.max_in_bytes, - }, - }; - } - ); - - return { - // TODO preserve _nodes from the response when getMemoryStats method is updated to support ml:true filter - _nodes: { - ...response._nodes, - total: mlNodes.length, - successful: mlNodes.length, - }, - nodes: nodeDeploymentStatsResponses, - }; - }, - }; -} diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json b/x-pack/plugins/ml/server/models/model_management/__mocks__/mock_deployment_response.json similarity index 100% rename from x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json rename to x-pack/plugins/ml/server/models/model_management/__mocks__/mock_deployment_response.json diff --git a/x-pack/plugins/ml/server/models/model_management/index.ts b/x-pack/plugins/ml/server/models/model_management/index.ts new file mode 100644 index 00000000000000..191d806ade22de --- /dev/null +++ b/x-pack/plugins/ml/server/models/model_management/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { modelsProvider } from './models_provider'; +export { MemoryUsageService } from './memory_usage'; diff --git a/x-pack/plugins/ml/server/models/model_management/memory_usage.test.ts b/x-pack/plugins/ml/server/models/model_management/memory_usage.test.ts new file mode 100644 index 00000000000000..e08a94e4d951cd --- /dev/null +++ b/x-pack/plugins/ml/server/models/model_management/memory_usage.test.ts @@ -0,0 +1,526 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { MemoryUsageService } from './memory_usage'; +import type { MlClient } from '../../lib/ml_client'; +import mockResponse from './__mocks__/mock_deployment_response.json'; +import type { MemoryStatsResponse } from '../../../common/types/trained_models'; + +describe('Model service', () => { + const mlClient = { + getTrainedModelsStats: jest.fn(() => { + return Promise.resolve({ + trained_model_stats: mockResponse, + }); + }), + getMemoryStats: jest.fn(() => { + return Promise.resolve({ + _nodes: { + total: 4, + successful: 4, + failed: 0, + }, + cluster_name: 'test_cluster', + nodes: { + '3qIoLFnbSi-DwVr2333UCdw': { + name: 'node3', + transport_address: '10.10.10.2:9353', + // missing the ml role + roles: ['data', 'ingest', 'master', 'transform'], + attributes: {}, + jvm: { + heap_max_in_bytes: 1073741824, + java_inference_in_bytes: 0, + java_inference_max_in_bytes: 0, + }, + mem: { + adjusted_total_in_bytes: 15599742976, + total_in_bytes: 15599742976, + ml: { + data_frame_analytics_in_bytes: 0, + native_code_overhead_in_bytes: 0, + max_in_bytes: 1073741824, + anomaly_detectors_in_bytes: 0, + native_inference_in_bytes: 1555161790, + }, + }, + ephemeral_id: '3qIoLFnbSi-DwVrYioUCdw', + }, + '3qIoLFnbSi-DwVrYioUCdw': { + name: 'node3', + transport_address: '10.10.10.2:9353', + roles: ['data', 'ingest', 'master', 'ml', 'transform'], + attributes: { + 'ml.machine_memory': '15599742976', + 'ml.max_jvm_size': '1073741824', + }, + jvm: { + heap_max_in_bytes: 1073741824, + java_inference_in_bytes: 0, + java_inference_max_in_bytes: 0, + }, + mem: { + adjusted_total_in_bytes: 15599742976, + total_in_bytes: 15599742976, + ml: { + data_frame_analytics_in_bytes: 0, + native_code_overhead_in_bytes: 0, + max_in_bytes: 1073741824, + anomaly_detectors_in_bytes: 0, + native_inference_in_bytes: 1555161790, + }, + }, + ephemeral_id: '3qIoLFnbSi-DwVrYioUCdw', + }, + 'DpCy7SOBQla3pu0Dq-tnYw': { + name: 'node2', + transport_address: '10.10.10.2:9352', + roles: ['data', 'master', 'ml', 'transform'], + attributes: { + 'ml.machine_memory': '15599742976', + 'ml.max_jvm_size': '1073741824', + }, + jvm: { + heap_max_in_bytes: 1073741824, + java_inference_in_bytes: 0, + java_inference_max_in_bytes: 0, + }, + mem: { + adjusted_total_in_bytes: 15599742976, + total_in_bytes: 15599742976, + ml: { + data_frame_analytics_in_bytes: 0, + native_code_overhead_in_bytes: 0, + max_in_bytes: 1073741824, + anomaly_detectors_in_bytes: 0, + native_inference_in_bytes: 1555161790, + }, + }, + ephemeral_id: '3qIoLFnbSi-DwVrYioUCdw', + }, + 'pt7s6lKHQJaP4QHKtU-Q0Q': { + name: 'node1', + transport_address: '10.10.10.2:9351', + roles: ['data', 'master', 'ml'], + attributes: { + 'ml.machine_memory': '15599742976', + 'ml.max_jvm_size': '1073741824', + }, + jvm: { + heap_max_in_bytes: 1073741824, + java_inference_in_bytes: 0, + java_inference_max_in_bytes: 0, + }, + mem: { + adjusted_total_in_bytes: 15599742976, + total_in_bytes: 15599742976, + ml: { + data_frame_analytics_in_bytes: 0, + native_code_overhead_in_bytes: 0, + max_in_bytes: 1073741824, + anomaly_detectors_in_bytes: 0, + native_inference_in_bytes: 1555161790, + }, + }, + ephemeral_id: '3qIoLFnbSi-DwVrYioUCdw', + }, + }, + } as MemoryStatsResponse); + }), + } as unknown as jest.Mocked; + + let service: MemoryUsageService; + + beforeEach(() => { + service = new MemoryUsageService(mlClient); + }); + + afterEach(() => {}); + + it('extract nodes list correctly', async () => { + expect(await service.getNodesOverview()).toEqual({ + _nodes: { + failed: 0, + successful: 3, + total: 3, + }, + nodes: [ + { + name: 'node3', + allocated_models: [ + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'distilbert-base-uncased-finetuned-sst-2-english', + model_size_bytes: 267386880, + required_native_memory_bytes: 534773760, + model_threads: 1, + state: 'started', + node: { + average_inference_time_ms: 0, + inference_count: 0, + routing_state: { + routing_state: 'started', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', + model_size_bytes: 260947500, + required_native_memory_bytes: 521895000, + model_threads: 1, + state: 'started', + node: { + average_inference_time_ms: 0, + inference_count: 0, + routing_state: { + routing_state: 'started', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', + model_size_bytes: 133378867, + required_native_memory_bytes: 266757734, + model_threads: 1, + state: 'started', + node: { + average_inference_time_ms: 0, + inference_count: 0, + routing_state: { + routing_state: 'started', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'typeform__mobilebert-uncased-mnli', + model_size_bytes: 100139008, + required_native_memory_bytes: 200278016, + model_threads: 1, + state: 'started', + node: { + average_inference_time_ms: 0, + inference_count: 0, + routing_state: { + routing_state: 'started', + }, + }, + }, + ], + attributes: { + 'ml.machine_memory': '15599742976', + 'ml.max_jvm_size': '1073741824', + }, + id: '3qIoLFnbSi-DwVrYioUCdw', + memory_overview: { + ml_max_in_bytes: 1073741824, + anomaly_detection: { + total: 0, + }, + dfa_training: { + total: 0, + }, + machine_memory: { + jvm: 1073741824, + total: 15599742976, + }, + trained_models: { + by_model: [ + { + model_id: 'distilbert-base-uncased-finetuned-sst-2-english', + model_size: 534773760, + }, + { + model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', + model_size: 521895000, + }, + { + model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', + model_size: 266757734, + }, + { + model_id: 'typeform__mobilebert-uncased-mnli', + model_size: 200278016, + }, + ], + total: 1555161790, + }, + }, + roles: ['data', 'ingest', 'master', 'ml', 'transform'], + }, + { + name: 'node2', + allocated_models: [ + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'distilbert-base-uncased-finetuned-sst-2-english', + model_size_bytes: 267386880, + required_native_memory_bytes: 534773760, + model_threads: 1, + state: 'started', + node: { + routing_state: { + reason: 'The object cannot be set twice!', + routing_state: 'failed', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', + model_size_bytes: 260947500, + required_native_memory_bytes: 521895000, + model_threads: 1, + state: 'started', + node: { + routing_state: { + reason: 'The object cannot be set twice!', + routing_state: 'failed', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', + model_size_bytes: 133378867, + required_native_memory_bytes: 266757734, + model_threads: 1, + state: 'started', + node: { + routing_state: { + reason: 'The object cannot be set twice!', + routing_state: 'failed', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'typeform__mobilebert-uncased-mnli', + model_size_bytes: 100139008, + required_native_memory_bytes: 200278016, + model_threads: 1, + state: 'started', + node: { + routing_state: { + reason: 'The object cannot be set twice!', + routing_state: 'failed', + }, + }, + }, + ], + attributes: { + 'ml.machine_memory': '15599742976', + 'ml.max_jvm_size': '1073741824', + }, + id: 'DpCy7SOBQla3pu0Dq-tnYw', + memory_overview: { + ml_max_in_bytes: 1073741824, + anomaly_detection: { + total: 0, + }, + dfa_training: { + total: 0, + }, + machine_memory: { + jvm: 1073741824, + total: 15599742976, + }, + trained_models: { + by_model: [ + { + model_id: 'distilbert-base-uncased-finetuned-sst-2-english', + model_size: 534773760, + }, + { + model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', + model_size: 521895000, + }, + { + model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', + model_size: 266757734, + }, + { + model_id: 'typeform__mobilebert-uncased-mnli', + model_size: 200278016, + }, + ], + total: 1555161790, + }, + }, + roles: ['data', 'master', 'ml', 'transform'], + }, + { + allocated_models: [ + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'distilbert-base-uncased-finetuned-sst-2-english', + model_size_bytes: 267386880, + required_native_memory_bytes: 534773760, + model_threads: 1, + state: 'started', + node: { + average_inference_time_ms: 0, + inference_count: 0, + routing_state: { + routing_state: 'started', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', + model_size_bytes: 260947500, + required_native_memory_bytes: 521895000, + model_threads: 1, + state: 'started', + node: { + average_inference_time_ms: 0, + inference_count: 0, + routing_state: { + routing_state: 'started', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', + model_size_bytes: 133378867, + required_native_memory_bytes: 266757734, + model_threads: 1, + state: 'started', + node: { + average_inference_time_ms: 0, + inference_count: 0, + routing_state: { + routing_state: 'started', + }, + }, + }, + { + allocation_status: { + allocation_count: 2, + state: 'started', + target_allocation_count: 3, + }, + inference_threads: 1, + model_id: 'typeform__mobilebert-uncased-mnli', + model_size_bytes: 100139008, + required_native_memory_bytes: 200278016, + model_threads: 1, + state: 'started', + node: { + average_inference_time_ms: 0, + inference_count: 0, + routing_state: { + routing_state: 'started', + }, + }, + }, + ], + attributes: { + 'ml.machine_memory': '15599742976', + 'ml.max_jvm_size': '1073741824', + }, + id: 'pt7s6lKHQJaP4QHKtU-Q0Q', + memory_overview: { + ml_max_in_bytes: 1073741824, + anomaly_detection: { + total: 0, + }, + dfa_training: { + total: 0, + }, + machine_memory: { + jvm: 1073741824, + total: 15599742976, + }, + trained_models: { + by_model: [ + { + model_id: 'distilbert-base-uncased-finetuned-sst-2-english', + model_size: 534773760, + }, + { + model_id: 'elastic__distilbert-base-cased-finetuned-conll03-english', + model_size: 521895000, + }, + { + model_id: 'sentence-transformers__msmarco-minilm-l-12-v3', + model_size: 266757734, + }, + { + model_id: 'typeform__mobilebert-uncased-mnli', + model_size: 200278016, + }, + ], + total: 1555161790, + }, + }, + name: 'node1', + roles: ['data', 'master', 'ml'], + }, + ], + }); + }); +}); diff --git a/x-pack/plugins/ml/server/models/model_management/memory_usage.ts b/x-pack/plugins/ml/server/models/model_management/memory_usage.ts new file mode 100644 index 00000000000000..29c51055efe5b2 --- /dev/null +++ b/x-pack/plugins/ml/server/models/model_management/memory_usage.ts @@ -0,0 +1,277 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import numeral from '@elastic/numeral'; +import { pick } from 'lodash'; +import { isDefined } from '@kbn/ml-is-defined'; +import type { + MemoryUsageInfo, + TrainedModelStatsResponse, + MemoryStatsResponse, +} from '../../../common/types/trained_models'; + +import type { JobStats } from '../../../common/types/anomaly_detection_jobs'; +import type { MlSavedObjectType } from '../../../common/types/saved_objects'; +import type { MlClient } from '../../lib/ml_client'; +import type { + NodeDeploymentStatsResponse, + NodesOverviewResponse, +} from '../../../common/types/trained_models'; + +// @ts-expect-error numeral missing value +const AD_EXTRA_MEMORY = numeral('10MB').value(); +// @ts-expect-error numeral missing value +const DFA_EXTRA_MEMORY = numeral('5MB').value(); + +const NODE_FIELDS = ['attributes', 'name', 'roles'] as const; + +export type RequiredNodeFields = Pick; + +export class MemoryUsageService { + constructor(private readonly mlClient: MlClient) {} + + public async getMemorySizes(itemType?: MlSavedObjectType, node?: string, showClosedJobs = false) { + let memories: MemoryUsageInfo[] = []; + + switch (itemType) { + case 'anomaly-detector': + memories = await this.getADJobsSizes(); + break; + case 'data-frame-analytics': + memories = await this.getDFAJobsSizes(); + break; + case 'trained-model': + memories = await this.getTrainedModelsSizes(); + break; + default: + memories = [ + ...(await this.getADJobsSizes()), + ...(await this.getDFAJobsSizes()), + ...(await this.getTrainedModelsSizes()), + ]; + break; + } + return memories.filter((m) => nodeFilter(m, node, showClosedJobs)); + } + + private async getADJobsSizes() { + const jobs = await this.mlClient.getJobStats(); + return jobs.jobs.map(this.getADJobMemorySize); + } + + private async getTrainedModelsSizes() { + const [models, stats] = await Promise.all([ + this.mlClient.getTrainedModels(), + this.mlClient.getTrainedModelsStats(), + ]); + const statsMap = stats.trained_model_stats.reduce>( + (acc, cur) => { + acc[cur.model_id] = cur; + return acc; + }, + {} + ); + + return models.trained_model_configs.map((m) => + this.getTrainedModelMemorySize(m, statsMap[m.model_id]) + ); + } + + private async getDFAJobsSizes() { + const [jobs, jobsStats] = await Promise.all([ + this.mlClient.getDataFrameAnalytics(), + this.mlClient.getDataFrameAnalyticsStats(), + ]); + const statsMap = jobsStats.data_frame_analytics.reduce< + Record + >((acc, cur) => { + acc[cur.id] = cur; + return acc; + }, {}); + + return jobs.data_frame_analytics.map((j) => this.getDFAJobMemorySize(j, statsMap[j.id])); + } + + private getADJobMemorySize(jobStats: JobStats): MemoryUsageInfo { + let memory = 0; + switch (jobStats.model_size_stats.assignment_memory_basis) { + case 'model_memory_limit': + memory = (jobStats.model_size_stats.model_bytes_memory_limit as number) ?? 0; + break; + case 'current_model_bytes': + memory = jobStats.model_size_stats.model_bytes as number; + break; + case 'peak_model_bytes': + memory = (jobStats.model_size_stats.peak_model_bytes as number) ?? 0; + break; + } + + const size = memory + AD_EXTRA_MEMORY; + const nodeName = jobStats.node?.name; + return { + id: jobStats.job_id, + type: 'anomaly-detector', + size, + nodeNames: nodeName ? [nodeName] : [], + }; + } + + private getDFAJobMemorySize( + job: estypes.MlDataframeAnalyticsSummary, + jobStats: estypes.MlDataframeAnalytics + ): MemoryUsageInfo { + const mml = job.model_memory_limit ?? '0mb'; + // @ts-expect-error numeral missing value + const memory = numeral(mml.toUpperCase()).value(); + const size = memory + DFA_EXTRA_MEMORY; + const nodeName = jobStats.node?.name; + return { + id: jobStats.id, + type: 'data-frame-analytics', + size, + nodeNames: nodeName ? [nodeName] : [], + }; + } + + private getTrainedModelMemorySize( + trainedModel: estypes.MlTrainedModelConfig, + trainedModelStats: estypes.MlTrainedModelStats + ): MemoryUsageInfo { + const memory = trainedModelStats.model_size_stats.required_native_memory_bytes; + + const size = memory + AD_EXTRA_MEMORY; + const nodes = (trainedModelStats.deployment_stats?.nodes ?? + []) as estypes.MlTrainedModelDeploymentNodesStats[]; + return { + id: trainedModelStats.model_id, + type: 'trained-model', + size, + nodeNames: nodes.map((n) => Object.values(n.node)[0].name), + }; + } + + /** + * Provides the ML nodes overview with allocated models. + */ + async getNodesOverview(): Promise { + // TODO set node_id to ml:true when elasticsearch client is updated. + const response = (await this.mlClient.getMemoryStats()) as MemoryStatsResponse; + + const { trained_model_stats: trainedModelStats } = await this.mlClient.getTrainedModelsStats({ + size: 10000, + }); + + const mlNodes = Object.entries(response.nodes).filter(([, node]) => node.roles.includes('ml')); + + const nodeDeploymentStatsResponses: NodeDeploymentStatsResponse[] = mlNodes.map( + ([nodeId, node]) => { + const nodeFields = pick(node, NODE_FIELDS) as RequiredNodeFields; + + nodeFields.attributes = nodeFields.attributes; + + const allocatedModels = (trainedModelStats as TrainedModelStatsResponse[]) + .filter( + (d) => + isDefined(d.deployment_stats) && + isDefined(d.deployment_stats.nodes) && + d.deployment_stats.nodes.some((n) => Object.keys(n.node)[0] === nodeId) + ) + .map((d) => { + const modelSizeState = d.model_size_stats; + const deploymentStats = d.deployment_stats; + + if (!deploymentStats || !modelSizeState) { + throw new Error('deploymentStats or modelSizeState not defined'); + } + + const { nodes, ...rest } = deploymentStats; + + const { node: tempNode, ...nodeRest } = nodes.find( + (v) => Object.keys(v.node)[0] === nodeId + )!; + return { + model_id: d.model_id, + ...rest, + ...modelSizeState, + node: nodeRest, + }; + }); + + const modelsMemoryUsage = allocatedModels.map((v) => { + return { + model_id: v.model_id, + model_size: v.required_native_memory_bytes, + }; + }); + + const memoryRes = { + adTotalMemory: node.mem.ml.anomaly_detectors_in_bytes, + dfaTotalMemory: node.mem.ml.data_frame_analytics_in_bytes, + trainedModelsTotalMemory: node.mem.ml.native_inference_in_bytes, + }; + + for (const key of Object.keys(memoryRes)) { + if (memoryRes[key as keyof typeof memoryRes] > 0) { + /** + * The amount of memory needed to load the ML native code shared libraries. The assumption is that the first + * ML job to run on a given node will do this, and then subsequent ML jobs on the same node will reuse the + * same already-loaded code. + */ + memoryRes[key as keyof typeof memoryRes] += node.mem.ml.native_code_overhead_in_bytes; + break; + } + } + + return { + id: nodeId, + ...nodeFields, + allocated_models: allocatedModels, + memory_overview: { + machine_memory: { + total: node.mem.adjusted_total_in_bytes, + jvm: node.jvm.heap_max_in_bytes, + }, + anomaly_detection: { + total: memoryRes.adTotalMemory, + }, + dfa_training: { + total: memoryRes.dfaTotalMemory, + }, + trained_models: { + total: memoryRes.trainedModelsTotalMemory, + by_model: modelsMemoryUsage, + }, + ml_max_in_bytes: node.mem.ml.max_in_bytes, + }, + }; + } + ); + + return { + // TODO preserve _nodes from the response when getMemoryStats method is updated to support ml:true filter + _nodes: { + ...response._nodes, + total: mlNodes.length, + successful: mlNodes.length, + }, + nodes: nodeDeploymentStatsResponses, + }; + } +} + +function nodeFilter(m: MemoryUsageInfo, node?: string, showClosedJobs = false) { + if (m.nodeNames.length === 0) { + return showClosedJobs; + } + + if (node === undefined) { + return true; + } + + return m.nodeNames.includes(node); +} diff --git a/x-pack/plugins/ml/server/models/model_management/models_provider.ts b/x-pack/plugins/ml/server/models/model_management/models_provider.ts new file mode 100644 index 00000000000000..e4ba7e2df04a95 --- /dev/null +++ b/x-pack/plugins/ml/server/models/model_management/models_provider.ts @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { IScopedClusterClient } from '@kbn/core/server'; + +import type { PipelineDefinition } from '../../../common/types/trained_models'; + +export type ModelService = ReturnType; + +export function modelsProvider(client: IScopedClusterClient) { + return { + /** + * Retrieves the map of model ids and aliases with associated pipelines. + * @param modelIds - Array of models ids and model aliases. + */ + async getModelsPipelines(modelIds: string[]) { + const modelIdsMap = new Map | null>( + modelIds.map((id: string) => [id, null]) + ); + + try { + const body = await client.asCurrentUser.ingest.getPipeline(); + + for (const [pipelineName, pipelineDefinition] of Object.entries(body)) { + const { processors } = pipelineDefinition as { processors: Array> }; + + for (const processor of processors) { + const id = processor.inference?.model_id; + if (modelIdsMap.has(id)) { + const obj = modelIdsMap.get(id); + if (obj === null) { + modelIdsMap.set(id, { [pipelineName]: pipelineDefinition }); + } else { + obj![pipelineName] = pipelineDefinition; + } + } + } + } + } catch (error) { + if (error.statusCode === 404) { + // ES returns 404 when there are no pipelines + // Instead, we should return the modelIdsMap and a 200 + return modelIdsMap; + } + throw error; + } + + return modelIdsMap; + }, + }; +} diff --git a/x-pack/plugins/ml/server/plugin.ts b/x-pack/plugins/ml/server/plugin.ts index fc12a261031ef4..f9b69c1c6ab2c8 100644 --- a/x-pack/plugins/ml/server/plugin.ts +++ b/x-pack/plugins/ml/server/plugin.ts @@ -47,6 +47,7 @@ import { jobServiceRoutes } from './routes/job_service'; import { savedObjectsRoutes } from './routes/saved_objects'; import { jobValidationRoutes } from './routes/job_validation'; import { resultsServiceRoutes } from './routes/results_service'; +import { modelManagementRoutes } from './routes/model_management'; import { systemRoutes } from './routes/system'; import { MlLicense } from '../common/license'; import { createSharedServices, SharedServices } from './shared_services'; @@ -217,6 +218,7 @@ export class MlServerPlugin jobRoutes(routeInit); jobServiceRoutes(routeInit); managementRoutes(routeInit); + modelManagementRoutes(routeInit); resultsServiceRoutes(routeInit); jobValidationRoutes(routeInit); savedObjectsRoutes(routeInit, { diff --git a/x-pack/plugins/ml/server/routes/apidoc.json b/x-pack/plugins/ml/server/routes/apidoc.json index e265f2c828f097..573080a1d187ae 100644 --- a/x-pack/plugins/ml/server/routes/apidoc.json +++ b/x-pack/plugins/ml/server/routes/apidoc.json @@ -170,7 +170,6 @@ "GetTrainedModel", "GetTrainedModelStats", "GetTrainedModelStatsById", - "GetTrainedModelsNodesOverview", "GetTrainedModelPipelines", "StartTrainedModelDeployment", "UpdateTrainedModelDeployment", @@ -184,6 +183,10 @@ "PreviewAlert", "Management", - "ManagementList" + "ManagementList", + + "ModelManagement", + "GetModelManagementNodesOverview", + "GetModelManagementMemoryUsage" ] } diff --git a/x-pack/plugins/ml/server/routes/model_management.ts b/x-pack/plugins/ml/server/routes/model_management.ts new file mode 100644 index 00000000000000..a72e515a6dd9d9 --- /dev/null +++ b/x-pack/plugins/ml/server/routes/model_management.ts @@ -0,0 +1,98 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { schema } from '@kbn/config-schema'; +import { RouteInitialization } from '../types'; +import { wrapError } from '../client/error_wrapper'; + +import { MemoryUsageService } from '../models/model_management'; +import { itemTypeLiterals } from './schemas/saved_objects'; + +export function modelManagementRoutes({ router, routeGuard }: RouteInitialization) { + /** + * @apiGroup ModelManagement + * + * @api {get} /api/ml/model_management/nodes_overview Get node overview about the models allocation + * @apiName GetModelManagementNodesOverview + * @apiDescription Retrieves the list of ML nodes with memory breakdown and allocated models info + */ + router.get( + { + path: '/api/ml/model_management/nodes_overview', + validate: {}, + options: { + tags: [ + 'access:ml:canViewMlNodes', + 'access:ml:canGetDataFrameAnalytics', + 'access:ml:canGetJobs', + 'access:ml:canGetTrainedModels', + ], + }, + }, + routeGuard.fullLicenseAPIGuard(async ({ client, mlClient, response }) => { + try { + const memoryUsageService = new MemoryUsageService(mlClient); + const result = await memoryUsageService.getNodesOverview(); + return response.ok({ + body: result, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup ModelManagement + * + * @api {get} /api/ml/model_management/memory_usage Memory usage for jobs and trained models + * @apiName GetModelManagementMemoryUsage + * @apiDescription Returns the memory usage for jobs and trained models + */ + router.get( + { + path: '/api/ml/model_management/memory_usage', + validate: { + query: schema.object({ + type: schema.maybe(itemTypeLiterals), + node: schema.maybe(schema.string()), + showClosedJobs: schema.maybe(schema.boolean()), + }), + }, + options: { + tags: [ + 'access:ml:canViewMlNodes', + 'access:ml:canGetDataFrameAnalytics', + 'access:ml:canGetJobs', + 'access:ml:canGetTrainedModels', + ], + }, + }, + + routeGuard.fullLicenseAPIGuard(async ({ mlClient, response, request }) => { + try { + const memoryUsageService = new MemoryUsageService(mlClient); + return response.ok({ + body: await memoryUsageService.getMemorySizes( + request.query.type, + request.query.node, + request.query.showClosedJobs + ), + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); +} diff --git a/x-pack/plugins/ml/server/routes/schemas/saved_objects.ts b/x-pack/plugins/ml/server/routes/schemas/saved_objects.ts index ef5c81a08a5163..fb133fb8955cc3 100644 --- a/x-pack/plugins/ml/server/routes/schemas/saved_objects.ts +++ b/x-pack/plugins/ml/server/routes/schemas/saved_objects.ts @@ -19,6 +19,7 @@ export const itemTypeLiterals = schema.oneOf([ ]); export const itemTypeSchema = schema.object({ jobType: itemTypeLiterals }); +export const jobTypeSchema = schema.object({ jobType: jobTypeLiterals }); export const updateJobsSpaces = schema.object({ jobType: jobTypeLiterals, diff --git a/x-pack/plugins/ml/server/routes/trained_models.ts b/x-pack/plugins/ml/server/routes/trained_models.ts index a234163dbde995..c09b46f7c23cbf 100644 --- a/x-pack/plugins/ml/server/routes/trained_models.ts +++ b/x-pack/plugins/ml/server/routes/trained_models.ts @@ -19,10 +19,11 @@ import { pipelineSimulateBody, updateDeploymentParamsSchema, } from './schemas/inference_schema'; -import { modelsProvider } from '../models/data_frame_analytics'; + import { TrainedModelConfigResponse } from '../../common/types/trained_models'; import { mlLog } from '../lib/log'; import { forceQuerySchema } from './schemas/anomaly_detectors_schema'; +import { modelsProvider } from '../models/model_management'; export function trainedModelsRoutes({ router, routeGuard }: RouteInitialization) { /** @@ -68,7 +69,7 @@ export function trainedModelsRoutes({ router, routeGuard }: RouteInitialization) ) ); - const pipelinesResponse = await modelsProvider(client, mlClient).getModelsPipelines( + const pipelinesResponse = await modelsProvider(client).getModelsPipelines( modelIdsAndAliases ); for (const model of result) { @@ -178,9 +179,7 @@ export function trainedModelsRoutes({ router, routeGuard }: RouteInitialization) routeGuard.fullLicenseAPIGuard(async ({ client, request, mlClient, response }) => { try { const { modelId } = request.params; - const result = await modelsProvider(client, mlClient).getModelsPipelines( - modelId.split(',') - ); + const result = await modelsProvider(client).getModelsPipelines(modelId.split(',')); return response.ok({ body: [...result].map(([id, pipelines]) => ({ model_id: id, pipelines })), }); @@ -260,38 +259,6 @@ export function trainedModelsRoutes({ router, routeGuard }: RouteInitialization) }) ); - /** - * @apiGroup TrainedModels - * - * @api {get} /api/ml/trained_models/nodes_overview Get node overview about the models allocation - * @apiName GetTrainedModelsNodesOverview - * @apiDescription Retrieves the list of ML nodes with memory breakdown and allocated models info - */ - router.get( - { - path: '/api/ml/trained_models/nodes_overview', - validate: {}, - options: { - tags: [ - 'access:ml:canViewMlNodes', - 'access:ml:canGetDataFrameAnalytics', - 'access:ml:canGetJobs', - 'access:ml:canGetTrainedModels', - ], - }, - }, - routeGuard.fullLicenseAPIGuard(async ({ client, mlClient, request, response }) => { - try { - const result = await modelsProvider(client, mlClient).getNodesOverview(); - return response.ok({ - body: result, - }); - } catch (e) { - return response.customError(wrapError(e)); - } - }) - ); - /** * @apiGroup TrainedModels * diff --git a/x-pack/plugins/ml/tsconfig.json b/x-pack/plugins/ml/tsconfig.json index d613793099257a..5dc4bfd67dc584 100644 --- a/x-pack/plugins/ml/tsconfig.json +++ b/x-pack/plugins/ml/tsconfig.json @@ -79,5 +79,6 @@ "@kbn/shared-ux-link-redirect-app", "@kbn/react-field", "@kbn/unified-field-list-plugin", + "@kbn/saved-search-plugin", ], } diff --git a/x-pack/plugins/monitoring/kibana.json b/x-pack/plugins/monitoring/kibana.json deleted file mode 100644 index 0781ecdc170c33..00000000000000 --- a/x-pack/plugins/monitoring/kibana.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "id": "monitoring", - "version": "8.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Stack Monitoring", - "githubTeam": "stack-monitoring-ui" - }, - "configPath": ["monitoring"], - "requiredPlugins": ["licensing", "features", "data", "navigation", "observability", "dataViews", "unifiedSearch"], - "optionalPlugins": [ - "infra", - "usageCollection", - "home", - "cloud", - "triggersActionsUi", - "alerting", - "actions", - "encryptedSavedObjects", - "dashboard", - "fleet" - ], - "server": true, - "ui": true, - "requiredBundles": [ - "kibanaUtils", - "alerting", - "kibanaReact" - ] -} diff --git a/x-pack/plugins/monitoring/kibana.jsonc b/x-pack/plugins/monitoring/kibana.jsonc new file mode 100644 index 00000000000000..0d1b906dcc4f45 --- /dev/null +++ b/x-pack/plugins/monitoring/kibana.jsonc @@ -0,0 +1,39 @@ +{ + "type": "plugin", + "id": "@kbn/monitoring-plugin", + "owner": "@elastic/infra-monitoring-ui", + "plugin": { + "id": "monitoring", + "server": true, + "browser": true, + "configPath": [ + "monitoring" + ], + "requiredPlugins": [ + "licensing", + "features", + "data", + "navigation", + "observability", + "dataViews", + "unifiedSearch" + ], + "optionalPlugins": [ + "infra", + "usageCollection", + "home", + "cloud", + "triggersActionsUi", + "alerting", + "actions", + "encryptedSavedObjects", + "dashboard", + "fleet" + ], + "requiredBundles": [ + "kibanaUtils", + "alerting", + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/monitoring_collection/kibana.json b/x-pack/plugins/monitoring_collection/kibana.json deleted file mode 100644 index d88b7e87861ea3..00000000000000 --- a/x-pack/plugins/monitoring_collection/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "monitoringCollection", - "version": "8.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Stack Monitoring", - "githubTeam": "stack-monitoring-ui" - }, - "configPath": ["monitoring_collection"], - "requiredPlugins": [], - "optionalPlugins": [ - ], - "server": true, - "ui": false -} diff --git a/x-pack/plugins/monitoring_collection/kibana.jsonc b/x-pack/plugins/monitoring_collection/kibana.jsonc new file mode 100644 index 00000000000000..1c84d9ee4f84c1 --- /dev/null +++ b/x-pack/plugins/monitoring_collection/kibana.jsonc @@ -0,0 +1,13 @@ +{ + "type": "plugin", + "id": "@kbn/monitoring-collection-plugin", + "owner": "@elastic/infra-monitoring-ui", + "plugin": { + "id": "monitoringCollection", + "server": true, + "browser": false, + "configPath": [ + "monitoring_collection" + ] + } +} diff --git a/x-pack/plugins/notifications/kibana.json b/x-pack/plugins/notifications/kibana.json deleted file mode 100755 index 45cf4c4cd47b0c..00000000000000 --- a/x-pack/plugins/notifications/kibana.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "notifications", - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "version": "kibana", - "server": true, - "ui": false, - "requiredPlugins": ["actions", "licensing"], - "optionalPlugins": [] -} diff --git a/x-pack/plugins/notifications/kibana.jsonc b/x-pack/plugins/notifications/kibana.jsonc new file mode 100644 index 00000000000000..b6c7c6a3e334fc --- /dev/null +++ b/x-pack/plugins/notifications/kibana.jsonc @@ -0,0 +1,14 @@ +{ + "type": "plugin", + "id": "@kbn/notifications-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "notifications", + "server": true, + "browser": false, + "requiredPlugins": [ + "actions", + "licensing" + ] + } +} diff --git a/x-pack/plugins/observability/common/guided_onboarding/kubernetes_guide_config.tsx b/x-pack/plugins/observability/common/guided_onboarding/kubernetes_guide_config.tsx index 239a5fcb36ed99..b5894732d6b2ab 100644 --- a/x-pack/plugins/observability/common/guided_onboarding/kubernetes_guide_config.tsx +++ b/x-pack/plugins/observability/common/guided_onboarding/kubernetes_guide_config.tsx @@ -11,10 +11,10 @@ import { i18n } from '@kbn/i18n'; export const kubernetesGuideId = 'kubernetes'; export const kubernetesGuideConfig: GuideConfig = { title: i18n.translate('xpack.observability.guideConfig.title', { - defaultMessage: 'Observe my Kubernetes infrastructure', + defaultMessage: 'Monitor my Kubernetes clusters', }), description: i18n.translate('xpack.observability.guideConfig.description', { - defaultMessage: `We'll help you quickly get visibility into your Kubernetes environment with our Elastic integration. Gain deep insights from your logs, metrics, and traces to proactively detect issues and take action to resolve them.`, + defaultMessage: `We'll help you connect Elastic and Kubernetes to start collecting and analyzing logs and metrics.`, }), guideName: 'Kubernetes', telemetryId: 'kubernetes', @@ -28,30 +28,26 @@ export const kubernetesGuideConfig: GuideConfig = { { id: 'add_data', title: i18n.translate('xpack.observability.guideConfig.addDataStep.title', { - defaultMessage: 'Add and verify your data', + defaultMessage: 'Add data', }), integration: 'kubernetes', - descriptionList: [ - { - descriptionText: i18n.translate( - 'xpack.observability.guideConfig.addDataStep.descriptionList.item1.descriptionText', - { - defaultMessage: 'Deploy kube-state-metrics service to your Kubernetes.', - } - ), - linkText: i18n.translate( - 'xpack.observability.guideConfig.addDataStep.descriptionList.item1.linkText', - { - defaultMessage: 'Learn more', - } - ), - linkUrl: 'https://github.com/kubernetes/kube-state-metrics', - isLinkExternal: true, - }, - i18n.translate('xpack.observability.guideConfig.addDataStep.descriptionList.item2', { - defaultMessage: 'Add the Elastic Kubernetes integration.', - }), - ], + description: { + descriptionText: i18n.translate( + 'xpack.observability.guideConfig.addDataStep.description.descriptionText', + { + defaultMessage: + 'To get your Kubernetes data flowing, install Elastic Agent in the Kubernetes cluster you want to monitor. Once Elastic Agent is deployed, you can optionally add kube-state-metrics for a more comprehensive metrics coverage.', + } + ), + linkText: i18n.translate( + 'xpack.observability.guideConfig.addDataStep.descriptionList.item1.linkText', + { + defaultMessage: 'Learn more', + } + ), + linkUrl: 'https://github.com/kubernetes/kube-state-metrics', + isLinkExternal: true, + }, location: { appID: 'integrations', path: '/detail/kubernetes/overview', @@ -60,10 +56,10 @@ export const kubernetesGuideConfig: GuideConfig = { { id: 'view_dashboard', title: i18n.translate('xpack.observability.guideConfig.viewDashboardStep.title', { - defaultMessage: 'Explore Kubernetes metrics', + defaultMessage: 'Explore Kubernetes metrics and logs', }), description: i18n.translate('xpack.observability.guideConfig.viewDashboardStep.description', { - defaultMessage: 'Stream, visualize, and analyze your Kubernetes infrastructure metrics.', + defaultMessage: 'Visualize and analyze your Kubernetes environment.', }), location: { appID: 'dashboards', @@ -79,7 +75,7 @@ export const kubernetesGuideConfig: GuideConfig = { description: i18n.translate( 'xpack.observability.guideConfig.viewDashboardStep.manualCompletionPopoverDescription', { - defaultMessage: `Take your time to explore these pre-built dashboards included with the Kubernetes integration. When you’re ready, click the Setup guide button to continue.`, + defaultMessage: `Take your time to explore these pre-built dashboards included with the Kubernetes integration. When you're ready, click the Setup guide button to continue.`, } ), readyToCompleteOnNavigation: true, @@ -93,8 +89,7 @@ export const kubernetesGuideConfig: GuideConfig = { description: i18n.translate( 'xpack.observability.guideConfig.tourObservabilityStep.description', { - defaultMessage: - 'Get familiar with the rest of Elastic Observability and explore even more integrations.', + defaultMessage: 'Get familiar with the rest of Elastic Observability.', } ), location: { diff --git a/x-pack/plugins/observability/common/index.ts b/x-pack/plugins/observability/common/index.ts index 0d3c846d3a3144..c82d4fbe6faedc 100644 --- a/x-pack/plugins/observability/common/index.ts +++ b/x-pack/plugins/observability/common/index.ts @@ -27,6 +27,8 @@ export { enableAgentExplorerView, apmAWSLambdaPriceFactor, apmAWSLambdaRequestCostPerMillion, + apmEnableServiceMetrics, + apmEnableContinuousRollups, enableCriticalPath, profilingElasticsearchPlugin, } from './ui_settings_keys'; diff --git a/x-pack/plugins/observability/common/ui_settings_keys.ts b/x-pack/plugins/observability/common/ui_settings_keys.ts index b4ddb17b7e9dab..80f94c34a647ab 100644 --- a/x-pack/plugins/observability/common/ui_settings_keys.ts +++ b/x-pack/plugins/observability/common/ui_settings_keys.ts @@ -22,4 +22,6 @@ export const enableAgentExplorerView = 'observability:apmAgentExplorerView'; export const apmAWSLambdaPriceFactor = 'observability:apmAWSLambdaPriceFactor'; export const apmAWSLambdaRequestCostPerMillion = 'observability:apmAWSLambdaRequestCostPerMillion'; export const enableCriticalPath = 'observability:apmEnableCriticalPath'; +export const apmEnableServiceMetrics = 'observability:apmEnableServiceMetrics'; +export const apmEnableContinuousRollups = 'observability:apmEnableContinuousRollups'; export const profilingElasticsearchPlugin = 'observability:profilingElasticsearchPlugin'; diff --git a/x-pack/plugins/observability/common/utils/get_inspect_response.ts b/x-pack/plugins/observability/common/utils/get_inspect_response.ts index 6af29c16d0457e..7c5d8368bd192a 100644 --- a/x-pack/plugins/observability/common/utils/get_inspect_response.ts +++ b/x-pack/plugins/observability/common/utils/get_inspect_response.ts @@ -150,7 +150,7 @@ export function getInspectResponse({ return { id, - json: esRequestParams.body, + json: esRequestParams.body ?? esRequestParams, name: id, response: { json: esError ? esError.originalError : esResponse, diff --git a/x-pack/plugins/observability/e2e/record_video.ts b/x-pack/plugins/observability/e2e/record_video.ts index 5b41b9efecd778..23bcdfb643e729 100644 --- a/x-pack/plugins/observability/e2e/record_video.ts +++ b/x-pack/plugins/observability/e2e/record_video.ts @@ -6,7 +6,7 @@ */ import fs from 'fs'; -import Runner from '@elastic/synthetics/src/core/runner'; +import Runner from '@elastic/synthetics/dist/core/runner'; import { after, Page } from '@elastic/synthetics'; const SYNTHETICS_RUNNER = Symbol.for('SYNTHETICS_RUNNER'); diff --git a/x-pack/plugins/observability/kibana.json b/x-pack/plugins/observability/kibana.json deleted file mode 100644 index a49e2ae723da4b..00000000000000 --- a/x-pack/plugins/observability/kibana.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "id": "observability", - "owner": { - "name": "Observability UI", - "githubTeam": "observability-ui" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": [ - "xpack", - "observability" - ], - "optionalPlugins": [ - "discover", - "embeddable", - "home", - "lens", - "licensing", - "spaces", - "usageCollection" - ], - "requiredPlugins": [ - "alerting", - "cases", - "charts", - "data", - "dataViews", - "features", - "inspector", - "ruleRegistry", - "triggersActionsUi", - "inspector", - "unifiedSearch", - "security", - "guidedOnboarding", - "share", - "spaces" - ], - "ui": true, - "server": true, - "requiredBundles": [ - "unifiedSearch", - "data", - "dataViews", - "embeddable", - "kibanaReact", - "kibanaUtils", - "lens", - "usageCollection", - "visualizations" - ], - "extraPublicDirs": [ - "common" - ] -} diff --git a/x-pack/plugins/observability/kibana.jsonc b/x-pack/plugins/observability/kibana.jsonc new file mode 100644 index 00000000000000..f35b6392d0ad8a --- /dev/null +++ b/x-pack/plugins/observability/kibana.jsonc @@ -0,0 +1,54 @@ +{ + "type": "plugin", + "id": "@kbn/observability-plugin", + "owner": "@elastic/observability-ui", + "plugin": { + "id": "observability", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "observability" + ], + "requiredPlugins": [ + "alerting", + "cases", + "charts", + "data", + "dataViews", + "features", + "inspector", + "ruleRegistry", + "triggersActionsUi", + "inspector", + "unifiedSearch", + "security", + "guidedOnboarding", + "share", + "spaces" + ], + "optionalPlugins": [ + "discover", + "embeddable", + "home", + "lens", + "licensing", + "spaces", + "usageCollection" + ], + "requiredBundles": [ + "unifiedSearch", + "data", + "dataViews", + "embeddable", + "kibanaReact", + "kibanaUtils", + "lens", + "usageCollection", + "visualizations" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/observability/public/components/app/section/metrics/index.tsx b/x-pack/plugins/observability/public/components/app/section/metrics/index.tsx index ee82b80c3ace40..2d02a4cbb35669 100644 --- a/x-pack/plugins/observability/public/components/app/section/metrics/index.tsx +++ b/x-pack/plugins/observability/public/components/app/section/metrics/index.tsx @@ -10,6 +10,7 @@ import { Direction, EuiBasicTable, EuiBasicTableColumn, + EuiLoadingChart, EuiTableSortingType, } from '@elastic/eui'; import numeral from '@elastic/numeral'; @@ -99,14 +100,7 @@ export function MetricsSection({ bucketSize }: Props) { } const isLoading = status === FETCH_STATUS.LOADING; - const isPending = status === FETCH_STATUS.LOADING; - if (isLoading || isPending) { - return
    Loading
    ; - } - - if (!data) { - return
    No Data
    ; - } + const isInitialLoad = isLoading && !data; const columns: Array> = [ { @@ -218,12 +212,27 @@ export function MetricsSection({ bucketSize }: Props) { }} hasError={status === FETCH_STATUS.FAILURE} > - + {isInitialLoad ? ( +
    + +
    + ) : ( + + )} ); } diff --git a/x-pack/plugins/observability/public/components/app/section/ux/index.tsx b/x-pack/plugins/observability/public/components/app/section/ux/index.tsx index bdc783938211f6..2bfc534c641dbf 100644 --- a/x-pack/plugins/observability/public/components/app/section/ux/index.tsx +++ b/x-pack/plugins/observability/public/components/app/section/ux/index.tsx @@ -9,8 +9,8 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; import { useKibana } from '@kbn/kibana-react-plugin/public'; import { CoreStart } from '@kbn/core/public'; +import { UX_APP } from '../../../../context/constants'; import { ObservabilityPublicPluginsStart } from '../../../..'; -import type { AppDataType } from '../../../shared/exploratory_view/types'; import { SectionContainer } from '..'; import { getDataHandler } from '../../../../data_handler'; import { FETCH_STATUS, useFetcher } from '../../../../hooks/use_fetcher'; @@ -52,7 +52,7 @@ export function UXSection({ bucketSize }: Props) { [SERVICE_NAME]: ['ALL_VALUES'], }, breakdown: SERVICE_NAME, - dataType: 'ux' as AppDataType, + dataType: UX_APP, selectedMetricField: TRANSACTION_DURATION, showPercentileAnnotations: false, }, diff --git a/x-pack/plugins/observability/public/context/constants.ts b/x-pack/plugins/observability/public/context/constants.ts new file mode 100644 index 00000000000000..695febb81aff61 --- /dev/null +++ b/x-pack/plugins/observability/public/context/constants.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const ALERT_APP = 'alert'; +export const UX_APP = 'ux'; +export const SYNTHETICS_APP = 'synthetics'; +export const APM_APP = 'apm'; +export const INFRA_LOGS_APP = 'infra_logs'; +export const INFRA_METRICS_APP = 'infra_metrics'; diff --git a/x-pack/plugins/observability/public/context/has_data_context.tsx b/x-pack/plugins/observability/public/context/has_data_context.tsx index e5e281979ef2fd..775b401b508662 100644 --- a/x-pack/plugins/observability/public/context/has_data_context.tsx +++ b/x-pack/plugins/observability/public/context/has_data_context.tsx @@ -10,6 +10,14 @@ import React, { createContext, useEffect, useState } from 'react'; import { useRouteMatch } from 'react-router-dom'; import { asyncForEach } from '@kbn/std'; import { useKibana } from '@kbn/kibana-react-plugin/public'; +import { + ALERT_APP, + APM_APP, + INFRA_LOGS_APP, + INFRA_METRICS_APP, + SYNTHETICS_APP, + UX_APP, +} from './constants'; import { getDataHandler } from '../data_handler'; import { FETCH_STATUS } from '../hooks/use_fetcher'; import { useDatePickerContext } from '../hooks/use_date_picker_context'; @@ -40,7 +48,14 @@ export interface HasDataContextValue { export const HasDataContext = createContext({} as HasDataContextValue); -const apps: DataContextApps[] = ['apm', 'synthetics', 'infra_logs', 'infra_metrics', 'ux', 'alert']; +const apps: DataContextApps[] = [ + APM_APP, + SYNTHETICS_APP, + INFRA_LOGS_APP, + INFRA_METRICS_APP, + UX_APP, + ALERT_APP, +]; export function HasDataContextProvider({ children }: { children: React.ReactNode }) { const { http } = useKibana().services; @@ -76,7 +91,7 @@ export function HasDataContextProvider({ children }: { children: React.ReactNode })); }; switch (app) { - case 'ux': + case UX_APP: const params = { absoluteTime: { start: absoluteStart!, end: absoluteEnd! } }; const resultUx = await getDataHandler(app)?.hasData(params); updateState({ @@ -85,24 +100,24 @@ export function HasDataContextProvider({ children }: { children: React.ReactNode serviceName: resultUx?.serviceName as string, }); break; - case 'synthetics': + case SYNTHETICS_APP: const resultSy = await getDataHandler(app)?.hasData(); updateState({ hasData: resultSy?.hasData, indices: resultSy?.indices }); break; - case 'apm': + case APM_APP: const resultApm = await getDataHandler(app)?.hasData(); updateState({ hasData: resultApm?.hasData, indices: resultApm?.indices }); break; - case 'infra_logs': + case INFRA_LOGS_APP: const resultInfraLogs = await getDataHandler(app)?.hasData(); updateState({ hasData: resultInfraLogs?.hasData, indices: resultInfraLogs?.indices, }); break; - case 'infra_metrics': + case INFRA_METRICS_APP: const resultInfraMetrics = await getDataHandler(app)?.hasData(); updateState({ hasData: resultInfraMetrics?.hasData, @@ -131,7 +146,7 @@ export function HasDataContextProvider({ children }: { children: React.ReactNode const alerts = await getObservabilityAlerts({ http }); setHasDataMap((prevState) => ({ ...prevState, - alert: { + [ALERT_APP]: { hasData: alerts.length > 0, status: FETCH_STATUS.SUCCESS, }, @@ -139,7 +154,7 @@ export function HasDataContextProvider({ children }: { children: React.ReactNode } catch (e) { setHasDataMap((prevState) => ({ ...prevState, - alert: { + [ALERT_APP]: { hasData: undefined, status: FETCH_STATUS.FAILURE, }, diff --git a/x-pack/plugins/observability/public/hooks/use_track_metric.tsx b/x-pack/plugins/observability/public/hooks/use_track_metric.tsx index 6a3f0c3e8965d9..7138c20ef6aa61 100644 --- a/x-pack/plugins/observability/public/hooks/use_track_metric.tsx +++ b/x-pack/plugins/observability/public/hooks/use_track_metric.tsx @@ -13,10 +13,8 @@ import { ObservabilityApp } from '../../typings/common'; /** * Note: The usage_collection plugin will take care of sending this data to the telemetry server. - * You can find these metrics stored at: - * stack_stats.kibana.plugins.ui_metric.{app}.{metric}(__delayed_{n}ms)? - * which will be an array of objects each containing a key, representing the metric, and - * a value, which will be a counter + * You can find the metrics that are collected by these hooks in Stack Telemetry. + * Search the index `kibana-ui-counter`. You can filter for `eventName` and/or `appName`. */ interface TrackOptions { diff --git a/x-pack/plugins/observability/public/observability_public_plugins_start.mock.tsx b/x-pack/plugins/observability/public/observability_public_plugins_start.mock.tsx index 6ccca21b37907d..f31f41c6a6357e 100644 --- a/x-pack/plugins/observability/public/observability_public_plugins_start.mock.tsx +++ b/x-pack/plugins/observability/public/observability_public_plugins_start.mock.tsx @@ -59,6 +59,9 @@ const triggersActionsUiStartMock = { )), getRuleTagFilter: jest.fn(() =>
    mocked component
    ), getRulesList: jest.fn(() =>
    mocked component
    ), + getRulesSettingsLink: jest.fn(() => ( +
    mocked component
    + )), ruleTypeRegistry: { has: jest.fn(), register: jest.fn(), diff --git a/x-pack/plugins/observability/public/pages/alerts/components/alerts_flyout/alerts_flyout_body.tsx b/x-pack/plugins/observability/public/pages/alerts/components/alerts_flyout/alerts_flyout_body.tsx index 56daa3a4f8f9b3..ead2b83388f87a 100644 --- a/x-pack/plugins/observability/public/pages/alerts/components/alerts_flyout/alerts_flyout_body.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/components/alerts_flyout/alerts_flyout_body.tsx @@ -19,17 +19,18 @@ import { ALERT_DURATION, ALERT_EVALUATION_THRESHOLD, ALERT_EVALUATION_VALUE, + ALERT_FLAPPING, ALERT_RULE_CATEGORY, ALERT_RULE_UUID, ALERT_STATUS_ACTIVE, ALERT_STATUS_RECOVERED, } from '@kbn/rule-data-utils'; +import { AlertLifecycleStatusBadge } from '@kbn/alerts-ui-shared'; import moment from 'moment-timezone'; import { useKibana, useUiSetting } from '@kbn/kibana-react-plugin/public'; import { RULE_DETAILS_PAGE_ID } from '../../../rule_details/constants'; import { asDuration } from '../../../../../common/utils/formatters'; import { translations, paths } from '../../../../config'; -import { AlertStatusIndicator } from '../../../../components/shared/alert_status_indicator'; import { FlyoutProps } from './types'; // eslint-disable-next-line import/no-default-export @@ -47,8 +48,9 @@ export default function AlertsFlyoutBody({ alert, id: pageId }: FlyoutProps) { { title: translations.alertsFlyout.statusLabel, description: ( - ), }, diff --git a/x-pack/plugins/observability/public/pages/rules/index.tsx b/x-pack/plugins/observability/public/pages/rules/index.tsx index 36968f5fc1b2ba..28c37ad7c454d9 100644 --- a/x-pack/plugins/observability/public/pages/rules/index.tsx +++ b/x-pack/plugins/observability/public/pages/rules/index.tsx @@ -34,7 +34,11 @@ function RulesPage() { const { http, docLinks, - triggersActionsUi: { getAddAlertFlyout: AddAlertFlyout, getRulesList: RuleList }, + triggersActionsUi: { + getAddAlertFlyout: AddAlertFlyout, + getRulesList: RuleList, + getRulesSettingsLink: RulesSettingsLink, + }, } = useKibana().services; const { status, setStatus, lastResponse, setLastResponse } = useRulesPageStateContainer(); @@ -83,6 +87,7 @@ function RulesPage() { defaultMessage="Create rule" />
    , + , { let appIndices = indices; + let hasData = false; if (!appIndices) { - appIndices = (await getDataTypeIndices(app)).indices; + const { indices: indicesT, hasData: hData } = await getDataTypeIndices(app); + hasData = hData; + appIndices = indicesT; } - if (appIndices) { + if (appIndices && (hasData || indices)) { try { const dataViewId = getAppDataViewId(app, appIndices); const dataViewTitle = getAppIndicesWithPattern(app, appIndices); diff --git a/x-pack/plugins/observability/scripts/e2e.js b/x-pack/plugins/observability/scripts/e2e.js index 5892b8f43336b7..85e6da4d3f60a6 100644 --- a/x-pack/plugins/observability/scripts/e2e.js +++ b/x-pack/plugins/observability/scripts/e2e.js @@ -6,9 +6,7 @@ */ /* eslint-disable no-console */ -/* eslint-disable @kbn/imports/uniform_imports */ - -const { executeSyntheticsRunner } = require('../../synthetics/scripts/base_e2e'); +const { executeSyntheticsRunner } = require('@kbn/synthetics-plugin/scripts/base_e2e'); const path = require('path'); const e2eDir = path.join(__dirname, '../e2e'); diff --git a/x-pack/plugins/observability/server/assets/component_templates/slo_mappings_template.ts b/x-pack/plugins/observability/server/assets/component_templates/slo_mappings_template.ts index faf415a3d91e8e..5b5340e75a2324 100644 --- a/x-pack/plugins/observability/server/assets/component_templates/slo_mappings_template.ts +++ b/x-pack/plugins/observability/server/assets/component_templates/slo_mappings_template.ts @@ -35,23 +35,6 @@ export const getSLOMappingsTemplate = (name: string) => ({ context: { type: 'flattened', }, - _internal: { - properties: { - name: { type: 'keyword', ignore_above: 256 }, - budgeting_method: { type: 'keyword' }, - objective: { - properties: { - target: { type: 'double' }, - }, - }, - time_window: { - properties: { - duration: { type: 'keyword' }, - is_rolling: { type: 'boolean' }, - }, - }, - }, - }, }, }, }, diff --git a/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/apm_transaction_duration.test.ts.snap b/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/apm_transaction_duration.test.ts.snap index 3802416f29ff53..1b8a2e6336e915 100644 --- a/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/apm_transaction_duration.test.ts.snap +++ b/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/apm_transaction_duration.test.ts.snap @@ -73,31 +73,6 @@ Object { "fixed_interval": "2m", }, }, - "slo._internal.budgeting_method": Object { - "terms": Object { - "field": "slo._internal.budgeting_method", - }, - }, - "slo._internal.name": Object { - "terms": Object { - "field": "slo._internal.name", - }, - }, - "slo._internal.objective.target": Object { - "terms": Object { - "field": "slo._internal.objective.target", - }, - }, - "slo._internal.time_window.duration": Object { - "terms": Object { - "field": "slo._internal.time_window.duration", - }, - }, - "slo._internal.time_window.is_rolling": Object { - "terms": Object { - "field": "slo._internal.time_window.is_rolling", - }, - }, "slo.id": Object { "terms": Object { "field": "slo.id", @@ -154,36 +129,6 @@ Object { }, }, "runtime_mappings": Object { - "slo._internal.budgeting_method": Object { - "script": Object { - "source": "emit('timeslices')", - }, - "type": "keyword", - }, - "slo._internal.name": Object { - "script": Object { - "source": "emit('irrelevant')", - }, - "type": "keyword", - }, - "slo._internal.objective.target": Object { - "script": Object { - "source": "emit(0.98)", - }, - "type": "double", - }, - "slo._internal.time_window.duration": Object { - "script": Object { - "source": "emit('7d')", - }, - "type": "keyword", - }, - "slo._internal.time_window.is_rolling": Object { - "script": Object { - "source": "emit(true)", - }, - "type": "boolean", - }, "slo.id": Object { "script": Object { "source": Any, @@ -251,31 +196,6 @@ Object { "fixed_interval": "1m", }, }, - "slo._internal.budgeting_method": Object { - "terms": Object { - "field": "slo._internal.budgeting_method", - }, - }, - "slo._internal.name": Object { - "terms": Object { - "field": "slo._internal.name", - }, - }, - "slo._internal.objective.target": Object { - "terms": Object { - "field": "slo._internal.objective.target", - }, - }, - "slo._internal.time_window.duration": Object { - "terms": Object { - "field": "slo._internal.time_window.duration", - }, - }, - "slo._internal.time_window.is_rolling": Object { - "terms": Object { - "field": "slo._internal.time_window.is_rolling", - }, - }, "slo.id": Object { "terms": Object { "field": "slo.id", @@ -332,36 +252,6 @@ Object { }, }, "runtime_mappings": Object { - "slo._internal.budgeting_method": Object { - "script": Object { - "source": "emit('occurrences')", - }, - "type": "keyword", - }, - "slo._internal.name": Object { - "script": Object { - "source": "emit('irrelevant')", - }, - "type": "keyword", - }, - "slo._internal.objective.target": Object { - "script": Object { - "source": "emit(0.999)", - }, - "type": "double", - }, - "slo._internal.time_window.duration": Object { - "script": Object { - "source": "emit('7d')", - }, - "type": "keyword", - }, - "slo._internal.time_window.is_rolling": Object { - "script": Object { - "source": "emit(true)", - }, - "type": "boolean", - }, "slo.id": Object { "script": Object { "source": Any, diff --git a/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/apm_transaction_error_rate.test.ts.snap b/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/apm_transaction_error_rate.test.ts.snap index 3a87b3031fdc0e..76657144e11f09 100644 --- a/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/apm_transaction_error_rate.test.ts.snap +++ b/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/apm_transaction_error_rate.test.ts.snap @@ -78,31 +78,6 @@ Object { "fixed_interval": "2m", }, }, - "slo._internal.budgeting_method": Object { - "terms": Object { - "field": "slo._internal.budgeting_method", - }, - }, - "slo._internal.name": Object { - "terms": Object { - "field": "slo._internal.name", - }, - }, - "slo._internal.objective.target": Object { - "terms": Object { - "field": "slo._internal.objective.target", - }, - }, - "slo._internal.time_window.duration": Object { - "terms": Object { - "field": "slo._internal.time_window.duration", - }, - }, - "slo._internal.time_window.is_rolling": Object { - "terms": Object { - "field": "slo._internal.time_window.is_rolling", - }, - }, "slo.id": Object { "terms": Object { "field": "slo.id", @@ -159,36 +134,6 @@ Object { }, }, "runtime_mappings": Object { - "slo._internal.budgeting_method": Object { - "script": Object { - "source": "emit('timeslices')", - }, - "type": "keyword", - }, - "slo._internal.name": Object { - "script": Object { - "source": "emit('irrelevant')", - }, - "type": "keyword", - }, - "slo._internal.objective.target": Object { - "script": Object { - "source": "emit(0.98)", - }, - "type": "double", - }, - "slo._internal.time_window.duration": Object { - "script": Object { - "source": "emit('7d')", - }, - "type": "keyword", - }, - "slo._internal.time_window.is_rolling": Object { - "script": Object { - "source": "emit(true)", - }, - "type": "boolean", - }, "slo.id": Object { "script": Object { "source": Any, @@ -261,31 +206,6 @@ Object { "fixed_interval": "1m", }, }, - "slo._internal.budgeting_method": Object { - "terms": Object { - "field": "slo._internal.budgeting_method", - }, - }, - "slo._internal.name": Object { - "terms": Object { - "field": "slo._internal.name", - }, - }, - "slo._internal.objective.target": Object { - "terms": Object { - "field": "slo._internal.objective.target", - }, - }, - "slo._internal.time_window.duration": Object { - "terms": Object { - "field": "slo._internal.time_window.duration", - }, - }, - "slo._internal.time_window.is_rolling": Object { - "terms": Object { - "field": "slo._internal.time_window.is_rolling", - }, - }, "slo.id": Object { "terms": Object { "field": "slo.id", @@ -342,36 +262,6 @@ Object { }, }, "runtime_mappings": Object { - "slo._internal.budgeting_method": Object { - "script": Object { - "source": "emit('occurrences')", - }, - "type": "keyword", - }, - "slo._internal.name": Object { - "script": Object { - "source": "emit('irrelevant')", - }, - "type": "keyword", - }, - "slo._internal.objective.target": Object { - "script": Object { - "source": "emit(0.999)", - }, - "type": "double", - }, - "slo._internal.time_window.duration": Object { - "script": Object { - "source": "emit('7d')", - }, - "type": "keyword", - }, - "slo._internal.time_window.is_rolling": Object { - "script": Object { - "source": "emit(true)", - }, - "type": "boolean", - }, "slo.id": Object { "script": Object { "source": Any, diff --git a/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/kql_custom.test.ts.snap b/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/kql_custom.test.ts.snap index f984620b8eefbe..fbfa14ecfb56bc 100644 --- a/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/kql_custom.test.ts.snap +++ b/x-pack/plugins/observability/server/services/slo/transform_generators/__snapshots__/kql_custom.test.ts.snap @@ -150,31 +150,6 @@ Object { "fixed_interval": "2m", }, }, - "slo._internal.budgeting_method": Object { - "terms": Object { - "field": "slo._internal.budgeting_method", - }, - }, - "slo._internal.name": Object { - "terms": Object { - "field": "slo._internal.name", - }, - }, - "slo._internal.objective.target": Object { - "terms": Object { - "field": "slo._internal.objective.target", - }, - }, - "slo._internal.time_window.duration": Object { - "terms": Object { - "field": "slo._internal.time_window.duration", - }, - }, - "slo._internal.time_window.is_rolling": Object { - "terms": Object { - "field": "slo._internal.time_window.is_rolling", - }, - }, "slo.id": Object { "terms": Object { "field": "slo.id", @@ -205,36 +180,6 @@ Object { }, }, "runtime_mappings": Object { - "slo._internal.budgeting_method": Object { - "script": Object { - "source": "emit('timeslices')", - }, - "type": "keyword", - }, - "slo._internal.name": Object { - "script": Object { - "source": "emit('irrelevant')", - }, - "type": "keyword", - }, - "slo._internal.objective.target": Object { - "script": Object { - "source": "emit(0.98)", - }, - "type": "double", - }, - "slo._internal.time_window.duration": Object { - "script": Object { - "source": "emit('7d')", - }, - "type": "keyword", - }, - "slo._internal.time_window.is_rolling": Object { - "script": Object { - "source": "emit(true)", - }, - "type": "boolean", - }, "slo.id": Object { "script": Object { "source": Any, @@ -300,31 +245,6 @@ Object { "fixed_interval": "1m", }, }, - "slo._internal.budgeting_method": Object { - "terms": Object { - "field": "slo._internal.budgeting_method", - }, - }, - "slo._internal.name": Object { - "terms": Object { - "field": "slo._internal.name", - }, - }, - "slo._internal.objective.target": Object { - "terms": Object { - "field": "slo._internal.objective.target", - }, - }, - "slo._internal.time_window.duration": Object { - "terms": Object { - "field": "slo._internal.time_window.duration", - }, - }, - "slo._internal.time_window.is_rolling": Object { - "terms": Object { - "field": "slo._internal.time_window.is_rolling", - }, - }, "slo.id": Object { "terms": Object { "field": "slo.id", @@ -355,36 +275,6 @@ Object { }, }, "runtime_mappings": Object { - "slo._internal.budgeting_method": Object { - "script": Object { - "source": "emit('occurrences')", - }, - "type": "keyword", - }, - "slo._internal.name": Object { - "script": Object { - "source": "emit('irrelevant')", - }, - "type": "keyword", - }, - "slo._internal.objective.target": Object { - "script": Object { - "source": "emit(0.999)", - }, - "type": "double", - }, - "slo._internal.time_window.duration": Object { - "script": Object { - "source": "emit('7d')", - }, - "type": "keyword", - }, - "slo._internal.time_window.is_rolling": Object { - "script": Object { - "source": "emit(true)", - }, - "type": "boolean", - }, "slo.id": Object { "script": Object { "source": Any, diff --git a/x-pack/plugins/observability/server/services/slo/transform_generators/transform_generator.ts b/x-pack/plugins/observability/server/services/slo/transform_generators/transform_generator.ts index a62c81b165dbe0..da88c48d5479c4 100644 --- a/x-pack/plugins/observability/server/services/slo/transform_generators/transform_generator.ts +++ b/x-pack/plugins/observability/server/services/slo/transform_generators/transform_generator.ts @@ -7,7 +7,7 @@ import { MappingRuntimeFieldType } from '@elastic/elasticsearch/lib/api/types'; import { TransformPutTransformRequest } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { calendarAlignedTimeWindowSchema, timeslicesBudgetingMethodSchema } from '@kbn/slo-schema'; +import { timeslicesBudgetingMethodSchema } from '@kbn/slo-schema'; import { TransformSettings } from '../../../assets/transform_templates/slo_transform_template'; import { SLO } from '../../../domain/models'; @@ -29,36 +29,6 @@ export abstract class TransformGenerator { source: `emit(${slo.revision})`, }, }, - 'slo._internal.name': { - type: 'keyword' as MappingRuntimeFieldType, - script: { - source: `emit('${slo.name}')`, - }, - }, - 'slo._internal.budgeting_method': { - type: 'keyword' as MappingRuntimeFieldType, - script: { - source: `emit('${slo.budgetingMethod}')`, - }, - }, - 'slo._internal.objective.target': { - type: 'double' as MappingRuntimeFieldType, - script: { - source: `emit(${slo.objective.target})`, - }, - }, - 'slo._internal.time_window.duration': { - type: 'keyword' as MappingRuntimeFieldType, - script: { - source: `emit('${slo.timeWindow.duration.format()}')`, - }, - }, - 'slo._internal.time_window.is_rolling': { - type: 'boolean' as MappingRuntimeFieldType, - script: { - source: calendarAlignedTimeWindowSchema.is(slo.timeWindow) ? `emit(false)` : `emit(true)`, - }, - }, }; } @@ -79,31 +49,6 @@ export abstract class TransformGenerator { field: 'slo.revision', }, }, - 'slo._internal.name': { - terms: { - field: 'slo._internal.name', - }, - }, - 'slo._internal.budgeting_method': { - terms: { - field: 'slo._internal.budgeting_method', - }, - }, - 'slo._internal.objective.target': { - terms: { - field: 'slo._internal.objective.target', - }, - }, - 'slo._internal.time_window.duration': { - terms: { - field: 'slo._internal.time_window.duration', - }, - }, - 'slo._internal.time_window.is_rolling': { - terms: { - field: 'slo._internal.time_window.is_rolling', - }, - }, // Field used in the destination index, using @timestamp as per mapping definition '@timestamp': { date_histogram: { diff --git a/x-pack/plugins/observability/server/ui_settings.ts b/x-pack/plugins/observability/server/ui_settings.ts index 26a2ea3e8cc2c8..3d1198dbe9aa53 100644 --- a/x-pack/plugins/observability/server/ui_settings.ts +++ b/x-pack/plugins/observability/server/ui_settings.ts @@ -23,11 +23,17 @@ import { enableAwsLambdaMetrics, apmAWSLambdaPriceFactor, apmAWSLambdaRequestCostPerMillion, + apmEnableServiceMetrics, + apmEnableContinuousRollups, enableCriticalPath, enableInfrastructureHostsView, profilingElasticsearchPlugin, } from '../common/ui_settings_keys'; +const betaLabel = i18n.translate('xpack.observability.uiSettings.betaLabel', { + defaultMessage: 'beta', +}); + const technicalPreviewLabel = i18n.translate( 'xpack.observability.uiSettings.technicalPreviewLabel', { defaultMessage: 'technical preview' } @@ -287,6 +293,34 @@ export const uiSettings: Record = { value: 0.2, schema: schema.number({ min: 0 }), }, + [apmEnableServiceMetrics]: { + category: [observabilityFeatureId], + name: i18n.translate('xpack.observability.apmEnableServiceMetrics', { + defaultMessage: 'Service transaction metrics', + }), + value: true, + description: i18n.translate('xpack.observability.apmEnableServiceMetricsDescription', { + defaultMessage: + '{betaLabel} Enables the usage of service transaction metrics, which are low cardinality metrics that can be used by certain views like the service inventory for faster loading times.', + values: { betaLabel: `[${betaLabel}]` }, + }), + schema: schema.boolean(), + requiresPageReload: true, + }, + [apmEnableContinuousRollups]: { + category: [observabilityFeatureId], + name: i18n.translate('xpack.observability.apmEnableContinuousRollups', { + defaultMessage: 'Continuous rollups', + }), + value: true, + description: i18n.translate('xpack.observability.apmEnableContinuousRollupsDescription', { + defaultMessage: + '{betaLabel} When continuous rollups is enabled, the UI will select metrics with the appropriate resolution. On larger time ranges, lower resolution metrics will be used, which will improve loading times.', + values: { betaLabel: `[${betaLabel}]` }, + }), + schema: schema.boolean(), + requiresPageReload: true, + }, [enableCriticalPath]: { category: [observabilityFeatureId], name: i18n.translate('xpack.observability.enableCriticalPath', { diff --git a/x-pack/plugins/observability/tsconfig.json b/x-pack/plugins/observability/tsconfig.json index 04217f4087e17a..2deabdc736d471 100644 --- a/x-pack/plugins/observability/tsconfig.json +++ b/x-pack/plugins/observability/tsconfig.json @@ -69,6 +69,7 @@ "@kbn/guided-onboarding", "@kbn/charts-plugin", "@kbn/securitysolution-ecs", + "@kbn/alerts-ui-shared", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts index 290aae563c37b1..a76e09a2cd5e2e 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts @@ -18,7 +18,9 @@ import { findAndClickButton, findFormFieldByRowsLabelAndType, inputQuery, + loadAlertsEvents, submitQuery, + toggleRuleOffAndOn, typeInECSFieldInput, } from '../../tasks/live_query'; import { preparePack } from '../../tasks/packs'; @@ -61,17 +63,10 @@ describe('Alert Event Details', () => { cy.contains(`Successfully updated "${PACK_NAME}" pack`); cy.getBySel('toastCloseButton').click(); - cy.visit('/app/security/rules'); - cy.contains(RULE_NAME); - cy.wait(2000); - cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'true'); - cy.getBySel('ruleSwitch').click(); - cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'false'); - cy.getBySel('ruleSwitch').click(); - cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'true'); + toggleRuleOffAndOn(RULE_NAME); }); - it('adds response actations with osquery with proper validation and form values', () => { + it('adds response actions with osquery with proper validation and form values', () => { cy.visit('/app/security/rules'); cy.contains(RULE_NAME).click(); cy.contains('Edit rule settings').click(); @@ -225,27 +220,19 @@ describe('Alert Event Details', () => { cy.contains('select * from uptime'); }); cy.getBySel(RESPONSE_ACTIONS_ITEM_2).within(() => { - cy.contains('SELECT * FROM processes;'); + cy.contains("SELECT * FROM os_version where name='{{host.os.name}}';"); }); cy.getBySel(RESPONSE_ACTIONS_ITEM_3).within(() => { cy.contains('select * from users'); }); + cy.contains('Save changes').click(); + cy.contains(`${RULE_NAME} was saved`).should('exist'); + cy.getBySel('toastCloseButton').click(); }); it('should be able to run live query and add to timeline (-depending on the previous test)', () => { const TIMELINE_NAME = 'Untitled timeline'; - cy.visit('/app/security/alerts'); - cy.getBySel('header-page-title').contains('Alerts').should('exist'); - cy.getBySel('expand-event') - .first() - .within(() => { - cy.get(`[data-is-loading="true"]`).should('exist'); - }); - cy.getBySel('expand-event') - .first() - .within(() => { - cy.get(`[data-is-loading="true"]`).should('not.exist'); - }); + loadAlertsEvents(); cy.getBySel('timeline-context-menu-button').first().click({ force: true }); cy.contains('Run Osquery'); cy.getBySel('expand-event').first().click({ force: true }); @@ -272,16 +259,41 @@ describe('Alert Event Details', () => { cy.visit('/app/osquery'); closeModalIfVisible(); }); - // TODO think on how to get these actions triggered faster (because now they are not triggered during the test). - // it.skip('sees osquery results from last action', () => { - // cy.visit('/app/security/alerts'); - // cy.getBySel('header-page-title').contains('Alerts').should('exist'); - // cy.getBySel('expand-event').first().click({ force: true }); - // cy.contains('Osquery Results').click(); - // cy.getBySel('osquery-results').should('exist'); - // cy.contains('select * from uptime'); - // cy.getBySel('osqueryResultsTable').within(() => { - // checkResults(); - // }); - // }); + + it('should substitute parameters in investigation guide', () => { + loadAlertsEvents(); + cy.getBySel('expand-event').first().click({ force: true }); + cy.contains('Get processes').click(); + cy.contains("SELECT * FROM os_version where name='Ubuntu';"); + }); + + it('sees osquery results from last action', () => { + toggleRuleOffAndOn(RULE_NAME); + cy.wait(2000); + cy.visit('/app/security/alerts'); + cy.getBySel('header-page-title').contains('Alerts').should('exist'); + cy.getBySel('expand-event').first().click({ force: true }); + cy.contains('Osquery Results').click(); + cy.getBySel('osquery-results').should('exist'); + cy.contains('select * from uptime'); + cy.contains('select * from users;'); + cy.contains("SELECT * FROM os_version where name='Ubuntu';"); + cy.getBySel('osquery-results-comment').each(($comment) => { + cy.wrap($comment).within(() => { + // On initial load result table might not render due to displayed error + if ($comment.find('div .euiDataGridRow').length <= 0) { + // If tabs are present try clicking between status and results to get rid of the error message + if ($comment.find('div .euiTabs').length > 0) { + cy.getBySel('osquery-status-tab').click(); + cy.getBySel('osquery-results-tab').click(); + cy.getBySel('dataGridRowCell', { timeout: 120000 }).should('have.lengthOf.above', 0); + } + } else { + // Result tab was rendered successfully + cy.getBySel('dataGridRowCell', { timeout: 120000 }).should('have.lengthOf.above', 0); + } + // } + }); + }); + }); }); diff --git a/x-pack/plugins/osquery/cypress/fixtures/saved_objects/rule.ndjson b/x-pack/plugins/osquery/cypress/fixtures/saved_objects/rule.ndjson index d1804c3aafec6e..0eec67de7ff2ed 100644 --- a/x-pack/plugins/osquery/cypress/fixtures/saved_objects/rule.ndjson +++ b/x-pack/plugins/osquery/cypress/fixtures/saved_objects/rule.ndjson @@ -48,7 +48,7 @@ ], "query": "_id:*", "filters": [], - "note": "!{osquery{\"query\":\"SELECT * FROM processes;\",\"label\":\"Get processes\",\"ecs_mapping\":{\"process.pid\":{\"field\":\"pid\"},\"process.name\":{\"field\":\"name\"},\"process.executable\":{\"field\":\"path\"},\"process.args\":{\"field\":\"cmdline\"},\"process.working_directory\":{\"field\":\"cwd\"},\"user.id\":{\"field\":\"uid\"},\"group.id\":{\"field\":\"gid\"},\"process.parent.pid\":{\"field\":\"parent\"},\"process.pgid\":{\"field\":\"pgroup\"}}}}\n\n!{osquery{\"query\":\"select * from users;\",\"label\":\"Get users\"}}" + "note": "!{osquery{\"query\":\"SELECT * FROM os_version where name='{{host.os.name}}';\",\"label\":\"Get processes\",\"ecs_mapping\":{\"process.pid\":{\"field\":\"pid\"},\"process.name\":{\"field\":\"name\"},\"process.executable\":{\"field\":\"path\"},\"process.args\":{\"field\":\"cmdline\"},\"process.working_directory\":{\"field\":\"cwd\"},\"user.id\":{\"field\":\"uid\"},\"group.id\":{\"field\":\"gid\"},\"process.parent.pid\":{\"field\":\"parent\"},\"process.pgid\":{\"field\":\"pgroup\"}}}}\n\n!{osquery{\"query\":\"select * from users;\",\"label\":\"Get users\"}}" }, "schedule": { "interval": "5m" @@ -94,4 +94,4 @@ "alert": "8.0.0" }, "coreMigrationVersion": "8.1.0" -} \ No newline at end of file +} diff --git a/x-pack/plugins/osquery/cypress/tasks/integrations.ts b/x-pack/plugins/osquery/cypress/tasks/integrations.ts index 0c2d789f4728aa..00a855207999c7 100644 --- a/x-pack/plugins/osquery/cypress/tasks/integrations.ts +++ b/x-pack/plugins/osquery/cypress/tasks/integrations.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { DEFAULT_POLICY } from '../screens/fleet'; import { ADD_POLICY_BTN, CONFIRM_MODAL_BTN, @@ -13,7 +14,7 @@ import { DATA_COLLECTION_SETUP_STEP, } from '../screens/integrations'; -export const addIntegration = (agentPolicy = 'Default Fleet Server policy') => { +export const addIntegration = (agentPolicy = DEFAULT_POLICY) => { cy.getBySel(ADD_POLICY_BTN).click(); cy.getBySel(DATA_COLLECTION_SETUP_STEP).find('.euiLoadingSpinner').should('not.exist'); cy.contains('Existing hosts').click(); diff --git a/x-pack/plugins/osquery/cypress/tasks/live_query.ts b/x-pack/plugins/osquery/cypress/tasks/live_query.ts index 519ebed2ce9a6d..b9d9fe581b76dd 100644 --- a/x-pack/plugins/osquery/cypress/tasks/live_query.ts +++ b/x-pack/plugins/osquery/cypress/tasks/live_query.ts @@ -64,3 +64,29 @@ export const deleteAndConfirm = (type: string) => { export const findAndClickButton = (text: string) => { cy.react('EuiButton').contains(text).click(); }; + +export const toggleRuleOffAndOn = (ruleName: string) => { + cy.visit('/app/security/rules'); + cy.contains(ruleName); + cy.wait(2000); + cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'true'); + cy.getBySel('ruleSwitch').click(); + cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'false'); + cy.getBySel('ruleSwitch').click(); + cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'true'); +}; + +export const loadAlertsEvents = () => { + cy.visit('/app/security/alerts'); + cy.getBySel('header-page-title').contains('Alerts').should('exist'); + cy.getBySel('expand-event') + .first() + .within(() => { + cy.get(`[data-is-loading="true"]`).should('exist'); + }); + cy.getBySel('expand-event') + .first() + .within(() => { + cy.get(`[data-is-loading="true"]`).should('not.exist'); + }); +}; diff --git a/x-pack/plugins/osquery/kibana.json b/x-pack/plugins/osquery/kibana.json deleted file mode 100644 index ec5443abd6fb13..00000000000000 --- a/x-pack/plugins/osquery/kibana.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "configPath": ["xpack", "osquery"], - "extraPublicDirs": ["common"], - "id": "osquery", - "owner": { - "name": "Security asset management", - "githubTeam": "security-asset-management" - }, - "kibanaVersion": "kibana", - "optionalPlugins": ["fleet", "home", "usageCollection", "lens", "telemetry", "cases"], - "requiredBundles": ["esUiShared", "fleet", "kibanaUtils", "kibanaReact", "lens", "cases"], - "requiredPlugins": [ - "actions", - "data", - "licensing", - "dataViews", - "discover", - "features", - "navigation", - "taskManager", - "triggersActionsUi", - "ruleRegistry", - "security" - ], - "server": true, - "ui": true, - "version": "8.0.0" -} diff --git a/x-pack/plugins/osquery/kibana.jsonc b/x-pack/plugins/osquery/kibana.jsonc new file mode 100644 index 00000000000000..d01388a1619cd9 --- /dev/null +++ b/x-pack/plugins/osquery/kibana.jsonc @@ -0,0 +1,46 @@ +{ + "type": "plugin", + "id": "@kbn/osquery-plugin", + "owner": "@elastic/security-defend-workflows", + "plugin": { + "id": "osquery", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "osquery" + ], + "requiredPlugins": [ + "actions", + "data", + "licensing", + "dataViews", + "discover", + "features", + "navigation", + "taskManager", + "triggersActionsUi", + "ruleRegistry", + "security" + ], + "optionalPlugins": [ + "fleet", + "home", + "usageCollection", + "lens", + "telemetry", + "cases" + ], + "requiredBundles": [ + "esUiShared", + "fleet", + "kibanaUtils", + "kibanaReact", + "lens", + "cases" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/osquery/package.json b/x-pack/plugins/osquery/package.json index fdda0a2316779b..3edfeb16a0f93a 100644 --- a/x-pack/plugins/osquery/package.json +++ b/x-pack/plugins/osquery/package.json @@ -1,9 +1,9 @@ { "author": "Elastic", - "name": "osquery", - "version": "8.0.0", + "name": "@kbn/osquery-plugin", + "version": "1.0.0", "private": true, - "license": "Elastic-License", + "license": "Elastic License 2.0", "scripts": { "cypress:open": "../../../node_modules/.bin/cypress open --config-file ./cypress.config.ts", "cypress:open-as-ci": "node ../../../scripts/functional_tests --config ../../test/osquery_cypress/visual_config.ts", diff --git a/x-pack/plugins/osquery/public/common/schemas/ecs/v8.5.0.json b/x-pack/plugins/osquery/public/common/schemas/ecs/v8.5.0.json deleted file mode 100644 index 5fe03a8130fd0a..00000000000000 --- a/x-pack/plugins/osquery/public/common/schemas/ecs/v8.5.0.json +++ /dev/null @@ -1 +0,0 @@ -[{"field":"labels","type":"object","normalization":"","example":{"application":"foo-bar","env":"production"},"description":"Custom key/value pairs."},{"field":"message","type":"match_only_text","normalization":"","example":"Hello World","description":"Log message optimized for viewing in a log viewer."},{"field":"tags","type":"keyword","normalization":"array","example":["production","env2"],"description":"List of keywords used to tag each event."},{"field":"agent.build.original","type":"keyword","normalization":"","example":"metricbeat version 7.6.0 (amd64), libbeat 7.6.0 [6a23e8f8f30f5001ba344e4e54d8d9cb82cb107c built 2020-02-05 23:10:10 +0000 UTC]","description":"Extended build information for the agent."},{"field":"client.address","type":"keyword","normalization":"","example":"","description":"Client network address."},{"field":"client.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"client.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"client.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"client.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the client to the server."},{"field":"client.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the client."},{"field":"client.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"client.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"client.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"client.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"client.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"client.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"client.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"client.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"client.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"client.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"client.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"client.ip","type":"ip","normalization":"","example":"","description":"IP address of the client."},{"field":"client.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the client."},{"field":"client.nat.ip","type":"ip","normalization":"","example":"","description":"Client NAT ip address"},{"field":"client.nat.port","type":"long","normalization":"","example":"","description":"Client NAT port"},{"field":"client.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the client to the server."},{"field":"client.port","type":"long","normalization":"","example":"","description":"Port of the client."},{"field":"client.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered client domain, stripped of the subdomain."},{"field":"client.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"client.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"client.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"client.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"client.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"client.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"client.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"client.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"client.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"client.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"client.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"client.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"client.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"client.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"cloud.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.origin.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.origin.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.origin.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.origin.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.origin.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.origin.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.origin.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.origin.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.origin.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.origin.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.origin.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"cloud.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"cloud.target.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.target.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.target.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.target.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.target.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.target.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.target.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.target.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.target.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.target.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.target.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"container.cpu.usage","type":"scaled_float","normalization":"","example":"","description":"Percent CPU used, between 0 and 1."},{"field":"container.disk.read.bytes","type":"long","normalization":"","example":"","description":"The number of bytes read by all disks."},{"field":"container.disk.write.bytes","type":"long","normalization":"","example":"","description":"The number of bytes written on all disks."},{"field":"container.id","type":"keyword","normalization":"","example":"","description":"Unique container id."},{"field":"container.image.hash.all","type":"keyword","normalization":"array","example":"[sha256:f8fefc80e3273dc756f288a63945820d6476ad64883892c771b5e2ece6bf1b26]","description":"An array of digests of the image the container was built on."},{"field":"container.image.name","type":"keyword","normalization":"","example":"","description":"Name of the image the container was built on."},{"field":"container.image.tag","type":"keyword","normalization":"array","example":"","description":"Container image tags."},{"field":"container.labels","type":"object","normalization":"","example":"","description":"Image labels."},{"field":"container.memory.usage","type":"scaled_float","normalization":"","example":"","description":"Percent memory used, between 0 and 1."},{"field":"container.name","type":"keyword","normalization":"","example":"","description":"Container name."},{"field":"container.network.egress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes sent on all network interfaces."},{"field":"container.network.ingress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes received on all network interfaces."},{"field":"container.runtime","type":"keyword","normalization":"","example":"docker","description":"Runtime managing this container."},{"field":"data_stream.dataset","type":"constant_keyword","normalization":"","example":"nginx.access","description":"The field can contain anything that makes sense to signify the source of the data."},{"field":"data_stream.namespace","type":"constant_keyword","normalization":"","example":"production","description":"A user defined namespace. Namespaces are useful to allow grouping of data."},{"field":"data_stream.type","type":"constant_keyword","normalization":"","example":"logs","description":"An overarching type for the data stream."},{"field":"destination.address","type":"keyword","normalization":"","example":"","description":"Destination network address."},{"field":"destination.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"destination.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"destination.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"destination.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the destination to the source."},{"field":"destination.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the destination."},{"field":"destination.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"destination.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"destination.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"destination.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"destination.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"destination.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"destination.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"destination.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"destination.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"destination.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"destination.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"destination.ip","type":"ip","normalization":"","example":"","description":"IP address of the destination."},{"field":"destination.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the destination."},{"field":"destination.nat.ip","type":"ip","normalization":"","example":"","description":"Destination NAT ip"},{"field":"destination.nat.port","type":"long","normalization":"","example":"","description":"Destination NAT Port"},{"field":"destination.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the destination to the source."},{"field":"destination.port","type":"long","normalization":"","example":"","description":"Port of the destination."},{"field":"destination.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered destination domain, stripped of the subdomain."},{"field":"destination.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"destination.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"destination.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"destination.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"destination.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"destination.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"destination.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"destination.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"destination.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"destination.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"destination.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"destination.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"destination.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"destination.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"dll.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"dll.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"dll.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"dll.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"dll.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"dll.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"dll.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"dll.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"dll.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"dll.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"dll.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"dll.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"dll.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"dll.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"dll.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"dll.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"dll.name","type":"keyword","normalization":"","example":"kernel32.dll","description":"Name of the library."},{"field":"dll.path","type":"keyword","normalization":"","example":"C:\\Windows\\System32\\kernel32.dll","description":"Full file path of the library."},{"field":"dll.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"dll.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"dll.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"dll.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"dll.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"dll.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"dll.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"dll.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"dns.answers","type":"object","normalization":"array","example":"","description":"Array of DNS answers."},{"field":"dns.answers.class","type":"keyword","normalization":"","example":"IN","description":"The class of DNS data contained in this resource record."},{"field":"dns.answers.data","type":"keyword","normalization":"","example":"10.10.10.10","description":"The data describing the resource."},{"field":"dns.answers.name","type":"keyword","normalization":"","example":"www.example.com","description":"The domain name to which this resource record pertains."},{"field":"dns.answers.ttl","type":"long","normalization":"","example":180,"description":"The time interval in seconds that this resource record may be cached before it should be discarded."},{"field":"dns.answers.type","type":"keyword","normalization":"","example":"CNAME","description":"The type of data contained in this resource record."},{"field":"dns.header_flags","type":"keyword","normalization":"array","example":["RD","RA"],"description":"Array of DNS header flags."},{"field":"dns.id","type":"keyword","normalization":"","example":62111,"description":"The DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response."},{"field":"dns.op_code","type":"keyword","normalization":"","example":"QUERY","description":"The DNS operation code that specifies the kind of query in the message."},{"field":"dns.question.class","type":"keyword","normalization":"","example":"IN","description":"The class of records being queried."},{"field":"dns.question.name","type":"keyword","normalization":"","example":"www.example.com","description":"The name being queried."},{"field":"dns.question.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered domain, stripped of the subdomain."},{"field":"dns.question.subdomain","type":"keyword","normalization":"","example":"www","description":"The subdomain of the domain."},{"field":"dns.question.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"dns.question.type","type":"keyword","normalization":"","example":"AAAA","description":"The type of record being queried."},{"field":"dns.resolved_ip","type":"ip","normalization":"array","example":["10.10.10.10","10.10.10.11"],"description":"Array containing all IPs seen in answers.data"},{"field":"dns.response_code","type":"keyword","normalization":"","example":"NOERROR","description":"The DNS response code."},{"field":"dns.type","type":"keyword","normalization":"","example":"answer","description":"The type of DNS event captured, query or answer."},{"field":"email.attachments","type":"nested","normalization":"array","example":"","description":"List of objects describing the attachments."},{"field":"email.attachments.file.extension","type":"keyword","normalization":"","example":"txt","description":"Attachment file extension."},{"field":"email.attachments.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"email.attachments.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"email.attachments.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"email.attachments.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"email.attachments.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"email.attachments.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"email.attachments.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"email.attachments.file.mime_type","type":"keyword","normalization":"","example":"text/plain","description":"MIME type of the attachment file."},{"field":"email.attachments.file.name","type":"keyword","normalization":"","example":"attachment.txt","description":"Name of the attachment file."},{"field":"email.attachments.file.size","type":"long","normalization":"","example":64329,"description":"Attachment file size."},{"field":"email.bcc.address","type":"keyword","normalization":"array","example":"bcc.user1@example.com","description":"Email address of BCC recipient"},{"field":"email.cc.address","type":"keyword","normalization":"array","example":"cc.user1@example.com","description":"Email address of CC recipient"},{"field":"email.content_type","type":"keyword","normalization":"","example":"text/plain","description":"MIME type of the email message."},{"field":"email.delivery_timestamp","type":"date","normalization":"","example":"2020-11-10T22:12:34.8196921Z","description":"Date and time when message was delivered."},{"field":"email.direction","type":"keyword","normalization":"","example":"inbound","description":"Direction of the message."},{"field":"email.from.address","type":"keyword","normalization":"array","example":"sender@example.com","description":"The sender's email address."},{"field":"email.local_id","type":"keyword","normalization":"","example":"c26dbea0-80d5-463b-b93c-4e8b708219ce","description":"Unique identifier given by the source."},{"field":"email.message_id","type":"wildcard","normalization":"","example":"81ce15$8r2j59@mail01.example.com","description":"Value from the Message-ID header."},{"field":"email.origination_timestamp","type":"date","normalization":"","example":"2020-11-10T22:12:34.8196921Z","description":"Date and time the email was composed."},{"field":"email.reply_to.address","type":"keyword","normalization":"array","example":"reply.here@example.com","description":"Address replies should be delivered to."},{"field":"email.sender.address","type":"keyword","normalization":"","example":"","description":"Address of the message sender."},{"field":"email.subject","type":"keyword","normalization":"","example":"Please see this important message.","description":"The subject of the email message."},{"field":"email.subject.text","type":"match_only_text","normalization":"","example":"Please see this important message.","description":"The subject of the email message."},{"field":"email.to.address","type":"keyword","normalization":"array","example":"user1@example.com","description":"Email address of recipient"},{"field":"email.x_mailer","type":"keyword","normalization":"","example":"Spambot v2.5","description":"Application that drafted email."},{"field":"error.code","type":"keyword","normalization":"","example":"","description":"Error code describing the error."},{"field":"error.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the error."},{"field":"error.message","type":"match_only_text","normalization":"","example":"","description":"Error message."},{"field":"error.stack_trace","type":"wildcard","normalization":"","example":"","description":"The stack trace of this error in plain text."},{"field":"error.stack_trace.text","type":"match_only_text","normalization":"","example":"","description":"The stack trace of this error in plain text."},{"field":"error.type","type":"keyword","normalization":"","example":"java.lang.NullPointerException","description":"The type of the error, for example the class name of the exception."},{"field":"event.action","type":"keyword","normalization":"","example":"user-password-change","description":"The action captured by the event."},{"field":"event.category","type":"keyword","normalization":"array","example":"authentication","description":"Event category. The second categorization field in the hierarchy."},{"field":"event.code","type":"keyword","normalization":"","example":4648,"description":"Identification code for this event."},{"field":"event.created","type":"date","normalization":"","example":"2016-05-23T08:05:34.857Z","description":"Time when the event was first read by an agent or by your pipeline."},{"field":"event.dataset","type":"keyword","normalization":"","example":"apache.access","description":"Name of the dataset."},{"field":"event.duration","type":"long","normalization":"","example":"","description":"Duration of the event in nanoseconds."},{"field":"event.end","type":"date","normalization":"","example":"","description":"event.end contains the date when the event ended or when the activity was last observed."},{"field":"event.hash","type":"keyword","normalization":"","example":"123456789012345678901234567890ABCD","description":"Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity."},{"field":"event.id","type":"keyword","normalization":"","example":"8a4f500d","description":"Unique ID to describe the event."},{"field":"event.kind","type":"keyword","normalization":"","example":"alert","description":"The kind of the event. The highest categorization field in the hierarchy."},{"field":"event.original","type":"keyword","normalization":"","example":"Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232","description":"Raw text message of entire event."},{"field":"event.outcome","type":"keyword","normalization":"","example":"success","description":"The outcome of the event. The lowest level categorization field in the hierarchy."},{"field":"event.provider","type":"keyword","normalization":"","example":"kernel","description":"Source of the event."},{"field":"event.reason","type":"keyword","normalization":"","example":"Terminated an unexpected process","description":"Reason why this event happened, according to the source"},{"field":"event.reference","type":"keyword","normalization":"","example":"https://system.example.com/event/#0001234","description":"Event reference URL"},{"field":"event.risk_score","type":"float","normalization":"","example":"","description":"Risk score or priority of the event (e.g. security solutions). Use your system's original value here."},{"field":"event.risk_score_norm","type":"float","normalization":"","example":"","description":"Normalized risk score or priority of the event (0-100)."},{"field":"event.sequence","type":"long","normalization":"","example":"","description":"Sequence number of the event."},{"field":"event.severity","type":"long","normalization":"","example":7,"description":"Numeric severity of the event."},{"field":"event.start","type":"date","normalization":"","example":"","description":"event.start contains the date when the event started or when the activity was first observed."},{"field":"event.timezone","type":"keyword","normalization":"","example":"","description":"Event time zone."},{"field":"event.type","type":"keyword","normalization":"array","example":"","description":"Event type. The third categorization field in the hierarchy."},{"field":"event.url","type":"keyword","normalization":"","example":"https://mysystem.example.com/alert/5271dedb-f5b0-4218-87f0-4ac4870a38fe","description":"Event investigation URL"},{"field":"faas.coldstart","type":"boolean","normalization":"","example":"","description":"Boolean value indicating a cold start of a function."},{"field":"faas.execution","type":"keyword","normalization":"","example":"af9d5aa4-a685-4c5f-a22b-444f80b3cc28","description":"The execution ID of the current function execution."},{"field":"faas.id","type":"keyword","normalization":"","example":"arn:aws:lambda:us-west-2:123456789012:function:my-function","description":"The unique identifier of a serverless function."},{"field":"faas.name","type":"keyword","normalization":"","example":"my-function","description":"The name of a serverless function."},{"field":"faas.trigger","type":"nested","normalization":"","example":"","description":"Details about the function trigger."},{"field":"faas.trigger.request_id","type":"keyword","normalization":"","example":123456789,"description":"The ID of the trigger request , message, event, etc."},{"field":"faas.trigger.type","type":"keyword","normalization":"","example":"http","description":"The trigger for the function execution."},{"field":"faas.version","type":"keyword","normalization":"","example":123,"description":"The version of a serverless function."},{"field":"file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"host.boot.id","type":"keyword","normalization":"","example":"88a1f0ed-5ae5-41ee-af6b-41921c311872","description":"Linux boot uuid taken from /proc/sys/kernel/random/boot_id"},{"field":"host.cpu.usage","type":"scaled_float","normalization":"","example":"","description":"Percent CPU used, between 0 and 1."},{"field":"host.disk.read.bytes","type":"long","normalization":"","example":"","description":"The number of bytes read by all disks."},{"field":"host.disk.write.bytes","type":"long","normalization":"","example":"","description":"The number of bytes written on all disks."},{"field":"host.domain","type":"keyword","normalization":"","example":"CONTOSO","description":"Name of the directory the group is a member of."},{"field":"host.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"host.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"host.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"host.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"host.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"host.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"host.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"host.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"host.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"host.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"host.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"host.name","type":"keyword","normalization":"","example":"","description":"Name of the host."},{"field":"host.network.egress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes sent on all network interfaces."},{"field":"host.network.egress.packets","type":"long","normalization":"","example":"","description":"The number of packets sent on all network interfaces."},{"field":"host.network.ingress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes received on all network interfaces."},{"field":"host.network.ingress.packets","type":"long","normalization":"","example":"","description":"The number of packets received on all network interfaces."},{"field":"host.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"host.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"host.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"host.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"host.pid_ns_ino","type":"keyword","normalization":"","example":256383,"description":"Pid namespace inode"},{"field":"host.risk.calculated_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"host.risk.calculated_score","type":"float","normalization":"","example":880.73,"description":"A risk classification score calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"host.risk.calculated_score_norm","type":"float","normalization":"","example":88.73,"description":"A normalized risk score calculated by an internal system."},{"field":"host.risk.static_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"host.risk.static_score","type":"float","normalization":"","example":830,"description":"A risk classification score obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"host.risk.static_score_norm","type":"float","normalization":"","example":83,"description":"A normalized risk score calculated by an external system."},{"field":"host.type","type":"keyword","normalization":"","example":"","description":"Type of host."},{"field":"host.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the host has been up."},{"field":"http.request.body.bytes","type":"long","normalization":"","example":887,"description":"Size in bytes of the request body."},{"field":"http.request.body.content","type":"wildcard","normalization":"","example":"Hello world","description":"The full HTTP request body."},{"field":"http.request.body.content.text","type":"match_only_text","normalization":"","example":"Hello world","description":"The full HTTP request body."},{"field":"http.request.bytes","type":"long","normalization":"","example":1437,"description":"Total size in bytes of the request (body and headers)."},{"field":"http.request.id","type":"keyword","normalization":"","example":"123e4567-e89b-12d3-a456-426614174000","description":"HTTP request ID."},{"field":"http.request.method","type":"keyword","normalization":"","example":"POST","description":"HTTP request method."},{"field":"http.request.mime_type","type":"keyword","normalization":"","example":"image/gif","description":"Mime type of the body of the request."},{"field":"http.request.referrer","type":"keyword","normalization":"","example":"https://blog.example.com/","description":"Referrer for this HTTP request."},{"field":"http.response.body.bytes","type":"long","normalization":"","example":887,"description":"Size in bytes of the response body."},{"field":"http.response.body.content","type":"wildcard","normalization":"","example":"Hello world","description":"The full HTTP response body."},{"field":"http.response.body.content.text","type":"match_only_text","normalization":"","example":"Hello world","description":"The full HTTP response body."},{"field":"http.response.bytes","type":"long","normalization":"","example":1437,"description":"Total size in bytes of the response (body and headers)."},{"field":"http.response.mime_type","type":"keyword","normalization":"","example":"image/gif","description":"Mime type of the body of the response."},{"field":"http.response.status_code","type":"long","normalization":"","example":404,"description":"HTTP response status code."},{"field":"http.version","type":"keyword","normalization":"","example":1.1,"description":"HTTP version."},{"field":"log.file.path","type":"keyword","normalization":"","example":"/var/log/fun-times.log","description":"Full path to the log file this event came from."},{"field":"log.level","type":"keyword","normalization":"","example":"error","description":"Log level of the log event."},{"field":"log.logger","type":"keyword","normalization":"","example":"org.elasticsearch.bootstrap.Bootstrap","description":"Name of the logger."},{"field":"log.origin.file.line","type":"long","normalization":"","example":42,"description":"The line number of the file which originated the log event."},{"field":"log.origin.file.name","type":"keyword","normalization":"","example":"Bootstrap.java","description":"The code file which originated the log event."},{"field":"log.origin.function","type":"keyword","normalization":"","example":"init","description":"The function which originated the log event."},{"field":"log.syslog","type":"object","normalization":"","example":"","description":"Syslog metadata"},{"field":"log.syslog.appname","type":"keyword","normalization":"","example":"sshd","description":"The device or application that originated the Syslog message."},{"field":"log.syslog.facility.code","type":"long","normalization":"","example":23,"description":"Syslog numeric facility of the event."},{"field":"log.syslog.facility.name","type":"keyword","normalization":"","example":"local7","description":"Syslog text-based facility of the event."},{"field":"log.syslog.hostname","type":"keyword","normalization":"","example":"example-host","description":"The host that originated the Syslog message."},{"field":"log.syslog.msgid","type":"keyword","normalization":"","example":"ID47","description":"An identifier for the type of Syslog message."},{"field":"log.syslog.priority","type":"long","normalization":"","example":135,"description":"Syslog priority of the event."},{"field":"log.syslog.procid","type":"keyword","normalization":"","example":12345,"description":"The process name or ID that originated the Syslog message."},{"field":"log.syslog.severity.code","type":"long","normalization":"","example":3,"description":"Syslog numeric severity of the event."},{"field":"log.syslog.severity.name","type":"keyword","normalization":"","example":"Error","description":"Syslog text-based severity of the event."},{"field":"log.syslog.structured_data","type":"flattened","normalization":"","example":"","description":"Structured data expressed in RFC 5424 messages."},{"field":"log.syslog.version","type":"keyword","normalization":"","example":1,"description":"Syslog protocol version."},{"field":"network.application","type":"keyword","normalization":"","example":"aim","description":"Application level protocol name."},{"field":"network.bytes","type":"long","normalization":"","example":368,"description":"Total bytes transferred in both directions."},{"field":"network.community_id","type":"keyword","normalization":"","example":"1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0=","description":"A hash of source and destination IPs and ports."},{"field":"network.direction","type":"keyword","normalization":"","example":"inbound","description":"Direction of the network traffic."},{"field":"network.forwarded_ip","type":"ip","normalization":"","example":"192.1.1.2","description":"Host IP address when the source IP address is the proxy."},{"field":"network.iana_number","type":"keyword","normalization":"","example":6,"description":"IANA Protocol Number."},{"field":"network.inner","type":"object","normalization":"","example":"","description":"Inner VLAN tag information"},{"field":"network.inner.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"network.inner.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"network.name","type":"keyword","normalization":"","example":"Guest Wifi","description":"Name given by operators to sections of their network."},{"field":"network.packets","type":"long","normalization":"","example":24,"description":"Total packets transferred in both directions."},{"field":"network.protocol","type":"keyword","normalization":"","example":"http","description":"Application protocol name."},{"field":"network.transport","type":"keyword","normalization":"","example":"tcp","description":"Protocol Name corresponding to the field `iana_number`."},{"field":"network.type","type":"keyword","normalization":"","example":"ipv4","description":"In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc"},{"field":"network.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"network.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.egress","type":"object","normalization":"","example":"","description":"Object field for egress information"},{"field":"observer.egress.interface.alias","type":"keyword","normalization":"","example":"outside","description":"Interface alias"},{"field":"observer.egress.interface.id","type":"keyword","normalization":"","example":10,"description":"Interface ID"},{"field":"observer.egress.interface.name","type":"keyword","normalization":"","example":"eth0","description":"Interface name"},{"field":"observer.egress.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"observer.egress.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.egress.zone","type":"keyword","normalization":"","example":"Public_Internet","description":"Observer Egress zone"},{"field":"observer.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"observer.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"observer.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"observer.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"observer.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"observer.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"observer.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"observer.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"observer.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"observer.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"observer.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"observer.hostname","type":"keyword","normalization":"","example":"","description":"Hostname of the observer."},{"field":"observer.ingress","type":"object","normalization":"","example":"","description":"Object field for ingress information"},{"field":"observer.ingress.interface.alias","type":"keyword","normalization":"","example":"outside","description":"Interface alias"},{"field":"observer.ingress.interface.id","type":"keyword","normalization":"","example":10,"description":"Interface ID"},{"field":"observer.ingress.interface.name","type":"keyword","normalization":"","example":"eth0","description":"Interface name"},{"field":"observer.ingress.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"observer.ingress.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.ingress.zone","type":"keyword","normalization":"","example":"DMZ","description":"Observer ingress zone"},{"field":"observer.ip","type":"ip","normalization":"array","example":"","description":"IP addresses of the observer."},{"field":"observer.mac","type":"keyword","normalization":"array","example":["00-00-5E-00-53-23","00-00-5E-00-53-24"],"description":"MAC addresses of the observer."},{"field":"observer.name","type":"keyword","normalization":"","example":"1_proxySG","description":"Custom name of the observer."},{"field":"observer.os.family","type":"keyword","normalization":"","example":"debian","description":"OS family (such as redhat, debian, freebsd, windows)."},{"field":"observer.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"observer.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"observer.os.kernel","type":"keyword","normalization":"","example":"4.4.0-112-generic","description":"Operating system kernel version as a raw string."},{"field":"observer.os.name","type":"keyword","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"observer.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"observer.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"observer.os.type","type":"keyword","normalization":"","example":"macos","description":"Which commercial OS family (one of: linux, macos, unix, windows, ios or android)."},{"field":"observer.os.version","type":"keyword","normalization":"","example":"10.14.1","description":"Operating system version as a raw string."},{"field":"observer.product","type":"keyword","normalization":"","example":"s200","description":"The product name of the observer."},{"field":"observer.serial_number","type":"keyword","normalization":"","example":"","description":"Observer serial number."},{"field":"observer.type","type":"keyword","normalization":"","example":"firewall","description":"The type of the observer the data is coming from."},{"field":"observer.vendor","type":"keyword","normalization":"","example":"Symantec","description":"Vendor name of the observer."},{"field":"observer.version","type":"keyword","normalization":"","example":"","description":"Observer version."},{"field":"orchestrator.api_version","type":"keyword","normalization":"","example":"v1beta1","description":"API version being used to carry out the action"},{"field":"orchestrator.cluster.id","type":"keyword","normalization":"","example":"","description":"Unique ID of the cluster."},{"field":"orchestrator.cluster.name","type":"keyword","normalization":"","example":"","description":"Name of the cluster."},{"field":"orchestrator.cluster.url","type":"keyword","normalization":"","example":"","description":"URL of the API used to manage the cluster."},{"field":"orchestrator.cluster.version","type":"keyword","normalization":"","example":"","description":"The version of the cluster."},{"field":"orchestrator.namespace","type":"keyword","normalization":"","example":"kube-system","description":"Namespace in which the action is taking place."},{"field":"orchestrator.organization","type":"keyword","normalization":"","example":"elastic","description":"Organization affected by the event (for multi-tenant orchestrator setups)."},{"field":"orchestrator.resource.id","type":"keyword","normalization":"","example":"","description":"Unique ID of the resource being acted upon."},{"field":"orchestrator.resource.ip","type":"ip","normalization":"array","example":"","description":"IP address assigned to the resource associated with the event being observed."},{"field":"orchestrator.resource.name","type":"keyword","normalization":"","example":"test-pod-cdcws","description":"Name of the resource being acted upon."},{"field":"orchestrator.resource.parent.type","type":"keyword","normalization":"","example":"DaemonSet","description":"Type or kind of the parent resource associated with the event being observed."},{"field":"orchestrator.resource.type","type":"keyword","normalization":"","example":"service","description":"Type of resource being acted upon."},{"field":"orchestrator.type","type":"keyword","normalization":"","example":"kubernetes","description":"Orchestrator cluster type (e.g. kubernetes, nomad or cloudfoundry)."},{"field":"organization.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the organization."},{"field":"organization.name","type":"keyword","normalization":"","example":"","description":"Organization name."},{"field":"organization.name.text","type":"match_only_text","normalization":"","example":"","description":"Organization name."},{"field":"package.architecture","type":"keyword","normalization":"","example":"x86_64","description":"Package architecture."},{"field":"package.build_version","type":"keyword","normalization":"","example":"36f4f7e89dd61b0988b12ee000b98966867710cd","description":"Build version information"},{"field":"package.checksum","type":"keyword","normalization":"","example":"68b329da9893e34099c7d8ad5cb9c940","description":"Checksum of the installed package for verification."},{"field":"package.description","type":"keyword","normalization":"","example":"Open source programming language to build simple/reliable/efficient software.","description":"Description of the package."},{"field":"package.install_scope","type":"keyword","normalization":"","example":"global","description":"Indicating how the package was installed, e.g. user-local, global."},{"field":"package.installed","type":"date","normalization":"","example":"","description":"Time when package was installed."},{"field":"package.license","type":"keyword","normalization":"","example":"Apache License 2.0","description":"Package license"},{"field":"package.name","type":"keyword","normalization":"","example":"go","description":"Package name"},{"field":"package.path","type":"keyword","normalization":"","example":"/usr/local/Cellar/go/1.12.9/","description":"Path where the package is installed."},{"field":"package.reference","type":"keyword","normalization":"","example":"https://golang.org","description":"Package home page or reference URL"},{"field":"package.size","type":"long","normalization":"","example":62231,"description":"Package size in bytes."},{"field":"package.type","type":"keyword","normalization":"","example":"rpm","description":"Package type"},{"field":"package.version","type":"keyword","normalization":"","example":"1.12.9","description":"Package version"},{"field":"process.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"process.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"process.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"process.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"process.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"process.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"process.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"process.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"process.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"process.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"process.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"process.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"process.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"process.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"process.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"process.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"process.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"process.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"process.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"process.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"process.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"process.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"process.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"process.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"process.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"process.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"process.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"process.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"process.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"process.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"process.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"process.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"process.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"process.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"process.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"process.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"process.end","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process ended."},{"field":"process.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.entry_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.entry_leader.attested_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.attested_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.attested_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.attested_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.entry_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.entry_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.entry_meta.source.ip","type":"ip","normalization":"","example":"","description":"IP address of the source."},{"field":"process.entry_leader.entry_meta.type","type":"keyword","normalization":"","example":"","description":"The entry type for the entry session leader."},{"field":"process.entry_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.entry_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.entry_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.entry_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.entry_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.entry_leader.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.parent.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.parent.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.parent.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.entry_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.entry_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.entry_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.entry_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.entry_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.env_vars","type":"keyword","normalization":"array","example":["PATH=/usr/local/bin:/usr/bin","USER=ubuntu"],"description":"Array of environment variable bindings."},{"field":"process.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.exit_code","type":"long","normalization":"","example":137,"description":"The exit code of the process."},{"field":"process.group_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.group_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.group_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.group_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.group_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.group_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.group_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.group_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.group_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.group_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.group_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.group_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.group_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.group_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.group_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.group_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.group_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.group_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"process.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"process.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"process.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"process.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"process.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"process.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"process.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.parent.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.parent.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"process.parent.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"process.parent.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"process.parent.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"process.parent.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"process.parent.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"process.parent.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"process.parent.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"process.parent.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"process.parent.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.parent.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.parent.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"process.parent.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"process.parent.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"process.parent.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"process.parent.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"process.parent.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"process.parent.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"process.parent.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"process.parent.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"process.parent.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"process.parent.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"process.parent.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"process.parent.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"process.parent.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.parent.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"process.parent.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"process.parent.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.parent.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"process.parent.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"process.parent.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"process.parent.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"process.parent.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"process.parent.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"process.parent.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"process.parent.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"process.parent.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"process.parent.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"process.parent.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"process.parent.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"process.parent.end","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process ended."},{"field":"process.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.parent.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.parent.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.parent.exit_code","type":"long","normalization":"","example":137,"description":"The exit code of the process."},{"field":"process.parent.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.group_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.parent.group_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.parent.group_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.parent.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"process.parent.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"process.parent.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"process.parent.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"process.parent.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"process.parent.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"process.parent.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"process.parent.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.parent.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"process.parent.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"process.parent.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"process.parent.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"process.parent.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"process.parent.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"process.parent.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"process.parent.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"process.parent.pgid","type":"long","normalization":"","example":"","description":"Deprecated identifier of the group of processes the process belongs to."},{"field":"process.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.parent.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.parent.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.thread.id","type":"long","normalization":"","example":4242,"description":"Thread ID."},{"field":"process.parent.thread.name","type":"keyword","normalization":"","example":"thread-0","description":"Thread name."},{"field":"process.parent.title","type":"keyword","normalization":"","example":"","description":"Process title."},{"field":"process.parent.title.text","type":"match_only_text","normalization":"","example":"","description":"Process title."},{"field":"process.parent.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.parent.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.parent.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.parent.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the process has been up."},{"field":"process.parent.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.parent.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"process.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"process.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"process.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"process.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"process.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"process.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"process.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"process.pgid","type":"long","normalization":"","example":"","description":"Deprecated identifier of the group of processes the process belongs to."},{"field":"process.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.previous.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.previous.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.previous.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.previous.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.session_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.session_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.session_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.session_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.session_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.session_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.session_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.session_leader.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.parent.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.parent.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.parent.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.session_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.session_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.session_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.session_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.session_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.thread.id","type":"long","normalization":"","example":4242,"description":"Thread ID."},{"field":"process.thread.name","type":"keyword","normalization":"","example":"thread-0","description":"Thread name."},{"field":"process.title","type":"keyword","normalization":"","example":"","description":"Process title."},{"field":"process.title.text","type":"match_only_text","normalization":"","example":"","description":"Process title."},{"field":"process.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.tty.columns","type":"long","normalization":"","example":80,"description":"The number of character columns per line. e.g terminal width"},{"field":"process.tty.rows","type":"long","normalization":"","example":24,"description":"The number of character rows in the terminal. e.g terminal height"},{"field":"process.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the process has been up."},{"field":"process.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"related.hash","type":"keyword","normalization":"array","example":"","description":"All the hashes seen on your event."},{"field":"related.hosts","type":"keyword","normalization":"array","example":"","description":"All the host identifiers seen on your event."},{"field":"related.ip","type":"ip","normalization":"array","example":"","description":"All of the IPs seen on your event."},{"field":"related.user","type":"keyword","normalization":"array","example":"","description":"All the user names or other user identifiers seen on the event."},{"field":"rule.author","type":"keyword","normalization":"array","example":["Star-Lord"],"description":"Rule author"},{"field":"rule.category","type":"keyword","normalization":"","example":"Attempted Information Leak","description":"Rule category"},{"field":"rule.description","type":"keyword","normalization":"","example":"Block requests to public DNS over HTTPS / TLS protocols","description":"Rule description"},{"field":"rule.id","type":"keyword","normalization":"","example":101,"description":"Rule ID"},{"field":"rule.license","type":"keyword","normalization":"","example":"Apache 2.0","description":"Rule license"},{"field":"rule.name","type":"keyword","normalization":"","example":"BLOCK_DNS_over_TLS","description":"Rule name"},{"field":"rule.reference","type":"keyword","normalization":"","example":"https://en.wikipedia.org/wiki/DNS_over_TLS","description":"Rule reference URL"},{"field":"rule.ruleset","type":"keyword","normalization":"","example":"Standard_Protocol_Filters","description":"Rule ruleset"},{"field":"rule.uuid","type":"keyword","normalization":"","example":1100110011,"description":"Rule UUID"},{"field":"rule.version","type":"keyword","normalization":"","example":1.1,"description":"Rule version"},{"field":"server.address","type":"keyword","normalization":"","example":"","description":"Server network address."},{"field":"server.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"server.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"server.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"server.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the server to the client."},{"field":"server.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the server."},{"field":"server.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"server.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"server.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"server.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"server.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"server.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"server.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"server.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"server.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"server.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"server.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"server.ip","type":"ip","normalization":"","example":"","description":"IP address of the server."},{"field":"server.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the server."},{"field":"server.nat.ip","type":"ip","normalization":"","example":"","description":"Server NAT ip"},{"field":"server.nat.port","type":"long","normalization":"","example":"","description":"Server NAT port"},{"field":"server.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the server to the client."},{"field":"server.port","type":"long","normalization":"","example":"","description":"Port of the server."},{"field":"server.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered server domain, stripped of the subdomain."},{"field":"server.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"server.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"server.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"server.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"server.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"server.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"server.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"server.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"server.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"server.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"server.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"server.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"server.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"server.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"service.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.origin.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.origin.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.origin.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.origin.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.origin.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.origin.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.origin.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.origin.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.origin.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.origin.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.origin.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"service.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.target.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.target.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.target.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.target.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.target.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.target.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.target.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.target.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.target.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.target.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.target.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"service.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"source.address","type":"keyword","normalization":"","example":"","description":"Source network address."},{"field":"source.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"source.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"source.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"source.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the source to the destination."},{"field":"source.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the source."},{"field":"source.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"source.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"source.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"source.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"source.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"source.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"source.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"source.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"source.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"source.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"source.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"source.ip","type":"ip","normalization":"","example":"","description":"IP address of the source."},{"field":"source.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the source."},{"field":"source.nat.ip","type":"ip","normalization":"","example":"","description":"Source NAT ip"},{"field":"source.nat.port","type":"long","normalization":"","example":"","description":"Source NAT port"},{"field":"source.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the source to the destination."},{"field":"source.port","type":"long","normalization":"","example":"","description":"Port of the source."},{"field":"source.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered source domain, stripped of the subdomain."},{"field":"source.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"source.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"source.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"source.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"source.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"source.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"source.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"source.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"source.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"source.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"source.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"source.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"source.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"source.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"span.id","type":"keyword","normalization":"","example":"3ff9a8981b7ccd5a","description":"Unique identifier of the span within the scope of its trace."},{"field":"threat.enrichments","type":"nested","normalization":"array","example":"","description":"List of objects containing indicators enriching the event."},{"field":"threat.enrichments.indicator","type":"object","normalization":"","example":"","description":"Object containing indicators enriching the event."},{"field":"threat.enrichments.indicator.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"threat.enrichments.indicator.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.enrichments.indicator.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.enrichments.indicator.confidence","type":"keyword","normalization":"","example":"Medium","description":"Indicator confidence rating"},{"field":"threat.enrichments.indicator.description","type":"keyword","normalization":"","example":"IP x.x.x.x was observed delivering the Angler EK.","description":"Indicator description"},{"field":"threat.enrichments.indicator.email.address","type":"keyword","normalization":"","example":"phish@example.com","description":"Indicator email address"},{"field":"threat.enrichments.indicator.file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"threat.enrichments.indicator.file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"threat.enrichments.indicator.file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"threat.enrichments.indicator.file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"threat.enrichments.indicator.file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"threat.enrichments.indicator.file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"threat.enrichments.indicator.file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"threat.enrichments.indicator.file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"threat.enrichments.indicator.file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"threat.enrichments.indicator.file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"threat.enrichments.indicator.file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"threat.enrichments.indicator.file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"threat.enrichments.indicator.file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"threat.enrichments.indicator.file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"threat.enrichments.indicator.file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"threat.enrichments.indicator.file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"threat.enrichments.indicator.file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"threat.enrichments.indicator.file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"threat.enrichments.indicator.file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"threat.enrichments.indicator.file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"threat.enrichments.indicator.file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"threat.enrichments.indicator.file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.enrichments.indicator.file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"threat.enrichments.indicator.file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.enrichments.indicator.file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"threat.enrichments.indicator.file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"threat.enrichments.indicator.file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"threat.enrichments.indicator.file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"threat.enrichments.indicator.file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"threat.enrichments.indicator.file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"threat.enrichments.indicator.file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"threat.enrichments.indicator.file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"threat.enrichments.indicator.file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"threat.enrichments.indicator.file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"threat.enrichments.indicator.file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"threat.enrichments.indicator.file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"threat.enrichments.indicator.file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"threat.enrichments.indicator.file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"threat.enrichments.indicator.file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"threat.enrichments.indicator.file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"threat.enrichments.indicator.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"threat.enrichments.indicator.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"threat.enrichments.indicator.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"threat.enrichments.indicator.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"threat.enrichments.indicator.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"threat.enrichments.indicator.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"threat.enrichments.indicator.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"threat.enrichments.indicator.file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"threat.enrichments.indicator.file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"threat.enrichments.indicator.file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"threat.enrichments.indicator.file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"threat.enrichments.indicator.file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"threat.enrichments.indicator.file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"threat.enrichments.indicator.file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.enrichments.indicator.file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.enrichments.indicator.file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"threat.enrichments.indicator.file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"threat.enrichments.indicator.file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"threat.enrichments.indicator.file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"threat.enrichments.indicator.file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"threat.enrichments.indicator.file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.enrichments.indicator.file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.enrichments.indicator.file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"threat.enrichments.indicator.file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"threat.enrichments.indicator.file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.enrichments.indicator.file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.enrichments.indicator.file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.enrichments.indicator.file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.enrichments.indicator.file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.enrichments.indicator.file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.enrichments.indicator.file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.enrichments.indicator.file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.enrichments.indicator.file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.enrichments.indicator.file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.enrichments.indicator.file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.enrichments.indicator.file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.enrichments.indicator.file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.enrichments.indicator.first_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was first reported."},{"field":"threat.enrichments.indicator.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"threat.enrichments.indicator.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"threat.enrichments.indicator.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"threat.enrichments.indicator.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"threat.enrichments.indicator.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"threat.enrichments.indicator.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"threat.enrichments.indicator.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"threat.enrichments.indicator.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"threat.enrichments.indicator.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"threat.enrichments.indicator.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"threat.enrichments.indicator.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"threat.enrichments.indicator.ip","type":"ip","normalization":"","example":"1.2.3.4","description":"Indicator IP address"},{"field":"threat.enrichments.indicator.last_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last reported."},{"field":"threat.enrichments.indicator.marking.tlp","type":"keyword","normalization":"","example":"WHITE","description":"Indicator TLP marking"},{"field":"threat.enrichments.indicator.modified_at","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last updated."},{"field":"threat.enrichments.indicator.port","type":"long","normalization":"","example":443,"description":"Indicator port"},{"field":"threat.enrichments.indicator.provider","type":"keyword","normalization":"","example":"lrz_urlhaus","description":"Indicator provider"},{"field":"threat.enrichments.indicator.reference","type":"keyword","normalization":"","example":"https://system.example.com/indicator/0001234","description":"Indicator reference URL"},{"field":"threat.enrichments.indicator.registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"threat.enrichments.indicator.registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"threat.enrichments.indicator.registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"threat.enrichments.indicator.registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"threat.enrichments.indicator.registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"threat.enrichments.indicator.registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"threat.enrichments.indicator.registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"threat.enrichments.indicator.scanner_stats","type":"long","normalization":"","example":4,"description":"Scanner statistics"},{"field":"threat.enrichments.indicator.sightings","type":"long","normalization":"","example":20,"description":"Number of times indicator observed"},{"field":"threat.enrichments.indicator.type","type":"keyword","normalization":"","example":"ipv4-addr","description":"Type of indicator"},{"field":"threat.enrichments.indicator.url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"threat.enrichments.indicator.url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"threat.enrichments.indicator.url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"threat.enrichments.indicator.url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.enrichments.indicator.url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.enrichments.indicator.url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.enrichments.indicator.url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.enrichments.indicator.url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"threat.enrichments.indicator.url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"threat.enrichments.indicator.url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"threat.enrichments.indicator.url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"threat.enrichments.indicator.url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"threat.enrichments.indicator.url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"threat.enrichments.indicator.url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"threat.enrichments.indicator.url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"threat.enrichments.indicator.url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"threat.enrichments.indicator.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.enrichments.indicator.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.enrichments.indicator.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.enrichments.indicator.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.enrichments.indicator.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.enrichments.indicator.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.enrichments.indicator.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.enrichments.indicator.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.enrichments.indicator.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.enrichments.indicator.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.enrichments.indicator.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.enrichments.indicator.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.enrichments.indicator.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.enrichments.indicator.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.enrichments.indicator.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.enrichments.indicator.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.enrichments.matched.atomic","type":"keyword","normalization":"","example":"bad-domain.com","description":"Matched indicator value"},{"field":"threat.enrichments.matched.field","type":"keyword","normalization":"","example":"file.hash.sha256","description":"Matched indicator field"},{"field":"threat.enrichments.matched.id","type":"keyword","normalization":"","example":"ff93aee5-86a1-4a61-b0e6-0cdc313d01b5","description":"Matched indicator identifier"},{"field":"threat.enrichments.matched.index","type":"keyword","normalization":"","example":"filebeat-8.0.0-2021.05.23-000011","description":"Matched indicator index"},{"field":"threat.enrichments.matched.occurred","type":"date","normalization":"","example":"2021-10-05T17:00:58.326Z","description":"Date of match"},{"field":"threat.enrichments.matched.type","type":"keyword","normalization":"","example":"indicator_match_rule","description":"Type of indicator match"},{"field":"threat.feed.dashboard_id","type":"keyword","normalization":"","example":"5ba16340-72e6-11eb-a3e3-b3cc7c78a70f","description":"Feed dashboard ID."},{"field":"threat.feed.description","type":"keyword","normalization":"","example":"Threat feed from the AlienVault Open Threat eXchange network.","description":"Description of the threat feed."},{"field":"threat.feed.name","type":"keyword","normalization":"","example":"AlienVault OTX","description":"Name of the threat feed."},{"field":"threat.feed.reference","type":"keyword","normalization":"","example":"https://otx.alienvault.com","description":"Reference for the threat feed."},{"field":"threat.framework","type":"keyword","normalization":"","example":"MITRE ATT&CK","description":"Threat classification framework."},{"field":"threat.group.alias","type":"keyword","normalization":"array","example":["Magecart Group 6"],"description":"Alias of the group."},{"field":"threat.group.id","type":"keyword","normalization":"","example":"G0037","description":"ID of the group."},{"field":"threat.group.name","type":"keyword","normalization":"","example":"FIN6","description":"Name of the group."},{"field":"threat.group.reference","type":"keyword","normalization":"","example":"https://attack.mitre.org/groups/G0037/","description":"Reference URL of the group."},{"field":"threat.indicator.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"threat.indicator.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.indicator.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.indicator.confidence","type":"keyword","normalization":"","example":"Medium","description":"Indicator confidence rating"},{"field":"threat.indicator.description","type":"keyword","normalization":"","example":"IP x.x.x.x was observed delivering the Angler EK.","description":"Indicator description"},{"field":"threat.indicator.email.address","type":"keyword","normalization":"","example":"phish@example.com","description":"Indicator email address"},{"field":"threat.indicator.file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"threat.indicator.file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"threat.indicator.file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"threat.indicator.file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"threat.indicator.file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"threat.indicator.file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"threat.indicator.file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"threat.indicator.file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"threat.indicator.file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"threat.indicator.file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"threat.indicator.file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"threat.indicator.file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"threat.indicator.file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"threat.indicator.file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"threat.indicator.file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"threat.indicator.file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"threat.indicator.file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"threat.indicator.file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"threat.indicator.file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"threat.indicator.file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"threat.indicator.file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"threat.indicator.file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"threat.indicator.file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"threat.indicator.file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"threat.indicator.file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"threat.indicator.file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"threat.indicator.file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"threat.indicator.file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"threat.indicator.file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"threat.indicator.file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.indicator.file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"threat.indicator.file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"threat.indicator.file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.indicator.file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"threat.indicator.file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"threat.indicator.file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"threat.indicator.file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"threat.indicator.file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"threat.indicator.file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"threat.indicator.file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"threat.indicator.file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"threat.indicator.file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"threat.indicator.file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"threat.indicator.file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"threat.indicator.file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"threat.indicator.file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"threat.indicator.file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"threat.indicator.file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"threat.indicator.file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"threat.indicator.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"threat.indicator.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"threat.indicator.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"threat.indicator.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"threat.indicator.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"threat.indicator.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"threat.indicator.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"threat.indicator.file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"threat.indicator.file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"threat.indicator.file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"threat.indicator.file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"threat.indicator.file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"threat.indicator.file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"threat.indicator.file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.indicator.file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.indicator.file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"threat.indicator.file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"threat.indicator.file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"threat.indicator.file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"threat.indicator.file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"threat.indicator.file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"threat.indicator.file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.indicator.file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.indicator.file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"threat.indicator.file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"threat.indicator.file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.indicator.file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.indicator.file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.indicator.file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.indicator.file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.indicator.file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.indicator.file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.indicator.file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.indicator.file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.indicator.file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.indicator.file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.indicator.file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.indicator.file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.indicator.file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.indicator.file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.indicator.file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.indicator.file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.indicator.file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.indicator.first_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was first reported."},{"field":"threat.indicator.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"threat.indicator.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"threat.indicator.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"threat.indicator.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"threat.indicator.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"threat.indicator.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"threat.indicator.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"threat.indicator.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"threat.indicator.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"threat.indicator.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"threat.indicator.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"threat.indicator.ip","type":"ip","normalization":"","example":"1.2.3.4","description":"Indicator IP address"},{"field":"threat.indicator.last_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last reported."},{"field":"threat.indicator.marking.tlp","type":"keyword","normalization":"","example":"WHITE","description":"Indicator TLP marking"},{"field":"threat.indicator.modified_at","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last updated."},{"field":"threat.indicator.port","type":"long","normalization":"","example":443,"description":"Indicator port"},{"field":"threat.indicator.provider","type":"keyword","normalization":"","example":"lrz_urlhaus","description":"Indicator provider"},{"field":"threat.indicator.reference","type":"keyword","normalization":"","example":"https://system.example.com/indicator/0001234","description":"Indicator reference URL"},{"field":"threat.indicator.registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"threat.indicator.registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"threat.indicator.registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"threat.indicator.registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"threat.indicator.registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"threat.indicator.registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"threat.indicator.registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"threat.indicator.scanner_stats","type":"long","normalization":"","example":4,"description":"Scanner statistics"},{"field":"threat.indicator.sightings","type":"long","normalization":"","example":20,"description":"Number of times indicator observed"},{"field":"threat.indicator.type","type":"keyword","normalization":"","example":"ipv4-addr","description":"Type of indicator"},{"field":"threat.indicator.url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"threat.indicator.url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"threat.indicator.url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"threat.indicator.url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.indicator.url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.indicator.url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.indicator.url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.indicator.url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"threat.indicator.url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"threat.indicator.url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"threat.indicator.url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"threat.indicator.url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"threat.indicator.url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"threat.indicator.url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"threat.indicator.url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"threat.indicator.url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"threat.indicator.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.indicator.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.indicator.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.indicator.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.indicator.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.indicator.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.indicator.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.indicator.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.indicator.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.indicator.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.indicator.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.indicator.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.indicator.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.indicator.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.indicator.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.indicator.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.indicator.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.indicator.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.software.alias","type":"keyword","normalization":"array","example":["X-Agent"],"description":"Alias of the software"},{"field":"threat.software.id","type":"keyword","normalization":"","example":"S0552","description":"ID of the software"},{"field":"threat.software.name","type":"keyword","normalization":"","example":"AdFind","description":"Name of the software."},{"field":"threat.software.platforms","type":"keyword","normalization":"array","example":["Windows"],"description":"Platforms of the software."},{"field":"threat.software.reference","type":"keyword","normalization":"","example":"https://attack.mitre.org/software/S0552/","description":"Software reference URL."},{"field":"threat.software.type","type":"keyword","normalization":"","example":"Tool","description":"Software type."},{"field":"threat.tactic.id","type":"keyword","normalization":"array","example":"TA0002","description":"Threat tactic id."},{"field":"threat.tactic.name","type":"keyword","normalization":"array","example":"Execution","description":"Threat tactic."},{"field":"threat.tactic.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/tactics/TA0002/","description":"Threat tactic URL reference."},{"field":"threat.technique.id","type":"keyword","normalization":"array","example":"T1059","description":"Threat technique id."},{"field":"threat.technique.name","type":"keyword","normalization":"array","example":"Command and Scripting Interpreter","description":"Threat technique name."},{"field":"threat.technique.name.text","type":"match_only_text","normalization":"","example":"Command and Scripting Interpreter","description":"Threat technique name."},{"field":"threat.technique.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/techniques/T1059/","description":"Threat technique URL reference."},{"field":"threat.technique.subtechnique.id","type":"keyword","normalization":"array","example":"T1059.001","description":"Threat subtechnique id."},{"field":"threat.technique.subtechnique.name","type":"keyword","normalization":"array","example":"PowerShell","description":"Threat subtechnique name."},{"field":"threat.technique.subtechnique.name.text","type":"match_only_text","normalization":"","example":"PowerShell","description":"Threat subtechnique name."},{"field":"threat.technique.subtechnique.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/techniques/T1059/001/","description":"Threat subtechnique URL reference."},{"field":"tls.cipher","type":"keyword","normalization":"","example":"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256","description":"String indicating the cipher used during the current connection."},{"field":"tls.client.certificate","type":"keyword","normalization":"","example":"MII...","description":"PEM-encoded stand-alone certificate offered by the client."},{"field":"tls.client.certificate_chain","type":"keyword","normalization":"array","example":["MII...","MII..."],"description":"Array of PEM-encoded certificates that make up the certificate chain offered by the client."},{"field":"tls.client.hash.md5","type":"keyword","normalization":"","example":"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC","description":"Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.hash.sha1","type":"keyword","normalization":"","example":"9E393D93138888D288266C2D915214D1D1CCEB2A","description":"Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.hash.sha256","type":"keyword","normalization":"","example":"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0","description":"Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.issuer","type":"keyword","normalization":"","example":"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com","description":"Distinguished name of subject of the issuer of the x.509 certificate presented by the client."},{"field":"tls.client.ja3","type":"keyword","normalization":"","example":"d4e5b18d6b55c71272893221c96ba240","description":"A hash that identifies clients based on how they perform an SSL/TLS handshake."},{"field":"tls.client.not_after","type":"date","normalization":"","example":"2021-01-01T00:00:00.000Z","description":"Date/Time indicating when client certificate is no longer considered valid."},{"field":"tls.client.not_before","type":"date","normalization":"","example":"1970-01-01T00:00:00.000Z","description":"Date/Time indicating when client certificate is first considered valid."},{"field":"tls.client.server_name","type":"keyword","normalization":"","example":"www.elastic.co","description":"Hostname the client is trying to connect to. Also called the SNI."},{"field":"tls.client.subject","type":"keyword","normalization":"","example":"CN=myclient, OU=Documentation Team, DC=example, DC=com","description":"Distinguished name of subject of the x.509 certificate presented by the client."},{"field":"tls.client.supported_ciphers","type":"keyword","normalization":"array","example":["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","..."],"description":"Array of ciphers offered by the client during the client hello."},{"field":"tls.client.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"tls.client.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"tls.client.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"tls.client.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"tls.client.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"tls.client.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"tls.client.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"tls.client.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.client.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"tls.client.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"tls.client.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"tls.client.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"tls.client.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"tls.client.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"tls.client.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"tls.client.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"tls.client.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"tls.client.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"tls.client.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"tls.client.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"tls.client.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"tls.client.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"tls.client.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.client.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"tls.curve","type":"keyword","normalization":"","example":"secp256r1","description":"String indicating the curve used for the given cipher, when applicable."},{"field":"tls.established","type":"boolean","normalization":"","example":"","description":"Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel."},{"field":"tls.next_protocol","type":"keyword","normalization":"","example":"http/1.1","description":"String indicating the protocol being tunneled."},{"field":"tls.resumed","type":"boolean","normalization":"","example":"","description":"Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation."},{"field":"tls.server.certificate","type":"keyword","normalization":"","example":"MII...","description":"PEM-encoded stand-alone certificate offered by the server."},{"field":"tls.server.certificate_chain","type":"keyword","normalization":"array","example":["MII...","MII..."],"description":"Array of PEM-encoded certificates that make up the certificate chain offered by the server."},{"field":"tls.server.hash.md5","type":"keyword","normalization":"","example":"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC","description":"Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.hash.sha1","type":"keyword","normalization":"","example":"9E393D93138888D288266C2D915214D1D1CCEB2A","description":"Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.hash.sha256","type":"keyword","normalization":"","example":"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0","description":"Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.issuer","type":"keyword","normalization":"","example":"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com","description":"Subject of the issuer of the x.509 certificate presented by the server."},{"field":"tls.server.ja3s","type":"keyword","normalization":"","example":"394441ab65754e2207b1e1b457b3641d","description":"A hash that identifies servers based on how they perform an SSL/TLS handshake."},{"field":"tls.server.not_after","type":"date","normalization":"","example":"2021-01-01T00:00:00.000Z","description":"Timestamp indicating when server certificate is no longer considered valid."},{"field":"tls.server.not_before","type":"date","normalization":"","example":"1970-01-01T00:00:00.000Z","description":"Timestamp indicating when server certificate is first considered valid."},{"field":"tls.server.subject","type":"keyword","normalization":"","example":"CN=www.example.com, OU=Infrastructure Team, DC=example, DC=com","description":"Subject of the x.509 certificate presented by the server."},{"field":"tls.server.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"tls.server.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"tls.server.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"tls.server.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"tls.server.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"tls.server.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"tls.server.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"tls.server.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.server.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"tls.server.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"tls.server.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"tls.server.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"tls.server.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"tls.server.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"tls.server.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"tls.server.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"tls.server.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"tls.server.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"tls.server.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"tls.server.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"tls.server.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"tls.server.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"tls.server.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.server.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"tls.version","type":"keyword","normalization":"","example":1.2,"description":"Numeric part of the version parsed from the original string."},{"field":"tls.version_protocol","type":"keyword","normalization":"","example":"tls","description":"Normalized lowercase protocol name parsed from original string."},{"field":"trace.id","type":"keyword","normalization":"","example":"4bf92f3577b34da6a3ce929d0e0e4736","description":"Unique identifier of the trace."},{"field":"transaction.id","type":"keyword","normalization":"","example":"00f067aa0ba902b7","description":"Unique identifier of the transaction within the scope of its trace."},{"field":"url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"user.changes.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.changes.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.changes.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.changes.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.changes.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.changes.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.changes.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.changes.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.changes.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.changes.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.changes.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.changes.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.effective.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.effective.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.effective.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.effective.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.effective.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.effective.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.effective.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.effective.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.effective.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.effective.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.effective.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.effective.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.risk.calculated_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"user.risk.calculated_score","type":"float","normalization":"","example":880.73,"description":"A risk classification score calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"user.risk.calculated_score_norm","type":"float","normalization":"","example":88.73,"description":"A normalized risk score calculated by an internal system."},{"field":"user.risk.static_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"user.risk.static_score","type":"float","normalization":"","example":830,"description":"A risk classification score obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"user.risk.static_score_norm","type":"float","normalization":"","example":83,"description":"A normalized risk score calculated by an external system."},{"field":"user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.target.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.target.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.target.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.target.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.target.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.target.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.target.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.target.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.target.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.target.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.target.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.target.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user_agent.device.name","type":"keyword","normalization":"","example":"iPhone","description":"Name of the device."},{"field":"user_agent.name","type":"keyword","normalization":"","example":"Safari","description":"Name of the user agent."},{"field":"user_agent.original","type":"keyword","normalization":"","example":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1","description":"Unparsed user_agent string."},{"field":"user_agent.original.text","type":"match_only_text","normalization":"","example":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1","description":"Unparsed user_agent string."},{"field":"user_agent.os.family","type":"keyword","normalization":"","example":"debian","description":"OS family (such as redhat, debian, freebsd, windows)."},{"field":"user_agent.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"user_agent.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"user_agent.os.kernel","type":"keyword","normalization":"","example":"4.4.0-112-generic","description":"Operating system kernel version as a raw string."},{"field":"user_agent.os.name","type":"keyword","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"user_agent.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"user_agent.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"user_agent.os.type","type":"keyword","normalization":"","example":"macos","description":"Which commercial OS family (one of: linux, macos, unix, windows, ios or android)."},{"field":"user_agent.os.version","type":"keyword","normalization":"","example":"10.14.1","description":"Operating system version as a raw string."},{"field":"user_agent.version","type":"keyword","normalization":"","example":12,"description":"Version of the user agent."},{"field":"vulnerability.category","type":"keyword","normalization":"array","example":["Firewall"],"description":"Category of a vulnerability."},{"field":"vulnerability.classification","type":"keyword","normalization":"","example":"CVSS","description":"Classification of the vulnerability."},{"field":"vulnerability.description","type":"keyword","normalization":"","example":"In macOS before 2.12.6, there is a vulnerability in the RPC...","description":"Description of the vulnerability."},{"field":"vulnerability.description.text","type":"match_only_text","normalization":"","example":"In macOS before 2.12.6, there is a vulnerability in the RPC...","description":"Description of the vulnerability."},{"field":"vulnerability.enumeration","type":"keyword","normalization":"","example":"CVE","description":"Identifier of the vulnerability."},{"field":"vulnerability.id","type":"keyword","normalization":"","example":"CVE-2019-00001","description":"ID of the vulnerability."},{"field":"vulnerability.reference","type":"keyword","normalization":"","example":"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6111","description":"Reference of the vulnerability."},{"field":"vulnerability.report_id","type":"keyword","normalization":"","example":20191018.0001,"description":"Scan identification number."},{"field":"vulnerability.scanner.vendor","type":"keyword","normalization":"","example":"Tenable","description":"Name of the scanner vendor."},{"field":"vulnerability.score.base","type":"float","normalization":"","example":5.5,"description":"Vulnerability Base score."},{"field":"vulnerability.score.environmental","type":"float","normalization":"","example":5.5,"description":"Vulnerability Environmental score."},{"field":"vulnerability.score.temporal","type":"float","normalization":"","example":"","description":"Vulnerability Temporal score."},{"field":"vulnerability.score.version","type":"keyword","normalization":"","example":2,"description":"CVSS version."},{"field":"vulnerability.severity","type":"keyword","normalization":"","example":"Critical","description":"Severity of the vulnerability."}] \ No newline at end of file diff --git a/x-pack/plugins/osquery/public/common/schemas/ecs/v8.7.0.json b/x-pack/plugins/osquery/public/common/schemas/ecs/v8.7.0.json new file mode 100644 index 00000000000000..0961ad25572a42 --- /dev/null +++ b/x-pack/plugins/osquery/public/common/schemas/ecs/v8.7.0.json @@ -0,0 +1 @@ +[{"field":"labels","type":"object","normalization":"","example":{"application":"foo-bar","env":"production"},"description":"Custom key/value pairs."},{"field":"message","type":"match_only_text","normalization":"","example":"Hello World","description":"Log message optimized for viewing in a log viewer."},{"field":"tags","type":"keyword","normalization":"array","example":["production","env2"],"description":"List of keywords used to tag each event."},{"field":"agent.build.original","type":"keyword","normalization":"","example":"metricbeat version 7.6.0 (amd64), libbeat 7.6.0 [6a23e8f8f30f5001ba344e4e54d8d9cb82cb107c built 2020-02-05 23:10:10 +0000 UTC]","description":"Extended build information for the agent."},{"field":"client.address","type":"keyword","normalization":"","example":"","description":"Client network address."},{"field":"client.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"client.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"client.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"client.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the client to the server."},{"field":"client.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the client."},{"field":"client.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"client.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"client.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"client.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"client.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"client.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"client.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"client.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"client.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"client.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"client.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"client.ip","type":"ip","normalization":"","example":"","description":"IP address of the client."},{"field":"client.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the client."},{"field":"client.nat.ip","type":"ip","normalization":"","example":"","description":"Client NAT ip address"},{"field":"client.nat.port","type":"long","normalization":"","example":"","description":"Client NAT port"},{"field":"client.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the client to the server."},{"field":"client.port","type":"long","normalization":"","example":"","description":"Port of the client."},{"field":"client.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered client domain, stripped of the subdomain."},{"field":"client.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"client.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"client.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"client.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"client.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"client.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"client.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"client.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"client.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"client.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"client.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"client.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"client.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"client.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"cloud.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.origin.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.origin.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.origin.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.origin.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.origin.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.origin.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.origin.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.origin.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.origin.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.origin.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.origin.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"cloud.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"cloud.target.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.target.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.target.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.target.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.target.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.target.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.target.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.target.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.target.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.target.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.target.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"container.cpu.usage","type":"scaled_float","normalization":"","example":"","description":"Percent CPU used, between 0 and 1."},{"field":"container.disk.read.bytes","type":"long","normalization":"","example":"","description":"The number of bytes read by all disks."},{"field":"container.disk.write.bytes","type":"long","normalization":"","example":"","description":"The number of bytes written on all disks."},{"field":"container.id","type":"keyword","normalization":"","example":"","description":"Unique container id."},{"field":"container.image.hash.all","type":"keyword","normalization":"array","example":"[sha256:f8fefc80e3273dc756f288a63945820d6476ad64883892c771b5e2ece6bf1b26]","description":"An array of digests of the image the container was built on."},{"field":"container.image.name","type":"keyword","normalization":"","example":"","description":"Name of the image the container was built on."},{"field":"container.image.tag","type":"keyword","normalization":"array","example":"","description":"Container image tags."},{"field":"container.labels","type":"object","normalization":"","example":"","description":"Image labels."},{"field":"container.memory.usage","type":"scaled_float","normalization":"","example":"","description":"Percent memory used, between 0 and 1."},{"field":"container.name","type":"keyword","normalization":"","example":"","description":"Container name."},{"field":"container.network.egress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes sent on all network interfaces."},{"field":"container.network.ingress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes received on all network interfaces."},{"field":"container.runtime","type":"keyword","normalization":"","example":"docker","description":"Runtime managing this container."},{"field":"data_stream.dataset","type":"constant_keyword","normalization":"","example":"nginx.access","description":"The field can contain anything that makes sense to signify the source of the data."},{"field":"data_stream.namespace","type":"constant_keyword","normalization":"","example":"production","description":"A user defined namespace. Namespaces are useful to allow grouping of data."},{"field":"data_stream.type","type":"constant_keyword","normalization":"","example":"logs","description":"An overarching type for the data stream."},{"field":"destination.address","type":"keyword","normalization":"","example":"","description":"Destination network address."},{"field":"destination.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"destination.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"destination.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"destination.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the destination to the source."},{"field":"destination.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the destination."},{"field":"destination.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"destination.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"destination.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"destination.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"destination.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"destination.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"destination.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"destination.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"destination.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"destination.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"destination.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"destination.ip","type":"ip","normalization":"","example":"","description":"IP address of the destination."},{"field":"destination.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the destination."},{"field":"destination.nat.ip","type":"ip","normalization":"","example":"","description":"Destination NAT ip"},{"field":"destination.nat.port","type":"long","normalization":"","example":"","description":"Destination NAT Port"},{"field":"destination.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the destination to the source."},{"field":"destination.port","type":"long","normalization":"","example":"","description":"Port of the destination."},{"field":"destination.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered destination domain, stripped of the subdomain."},{"field":"destination.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"destination.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"destination.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"destination.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"destination.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"destination.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"destination.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"destination.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"destination.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"destination.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"destination.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"destination.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"destination.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"destination.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"device.id","type":"keyword","normalization":"","example":"00000000-54b3-e7c7-0000-000046bffd97","description":"The unique identifier of a device."},{"field":"device.manufacturer","type":"keyword","normalization":"","example":"Samsung","description":"The vendor name of the device manufacturer."},{"field":"device.model.identifier","type":"keyword","normalization":"","example":"SM-G920F","description":"The machine readable identifier of the device model."},{"field":"device.model.name","type":"keyword","normalization":"","example":"Samsung Galaxy S6","description":"The human readable marketing name of the device model."},{"field":"dll.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"dll.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"dll.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"dll.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"dll.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"dll.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"dll.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"dll.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"dll.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"dll.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"dll.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"dll.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"dll.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"dll.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"dll.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"dll.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"dll.name","type":"keyword","normalization":"","example":"kernel32.dll","description":"Name of the library."},{"field":"dll.path","type":"keyword","normalization":"","example":"C:\\Windows\\System32\\kernel32.dll","description":"Full file path of the library."},{"field":"dll.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"dll.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"dll.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"dll.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"dll.pe.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a PE file."},{"field":"dll.pe.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"dll.pe.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"dll.pe.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"dll.pe.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"dll.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"dll.pe.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a PE file."},{"field":"dll.pe.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"dll.pe.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"dll.pe.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"dll.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"dll.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"dll.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"dll.pe.sections","type":"nested","normalization":"array","example":"","description":"Section information of the PE file."},{"field":"dll.pe.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"dll.pe.sections.name","type":"keyword","normalization":"","example":"","description":"PE Section List name."},{"field":"dll.pe.sections.physical_size","type":"long","normalization":"","example":"","description":"PE Section List physical size."},{"field":"dll.pe.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"dll.pe.sections.virtual_size","type":"long","normalization":"","example":"","description":"PE Section List virtual size. This is always the same as `physical_size`."},{"field":"dns.answers","type":"object","normalization":"array","example":"","description":"Array of DNS answers."},{"field":"dns.answers.class","type":"keyword","normalization":"","example":"IN","description":"The class of DNS data contained in this resource record."},{"field":"dns.answers.data","type":"keyword","normalization":"","example":"10.10.10.10","description":"The data describing the resource."},{"field":"dns.answers.name","type":"keyword","normalization":"","example":"www.example.com","description":"The domain name to which this resource record pertains."},{"field":"dns.answers.ttl","type":"long","normalization":"","example":180,"description":"The time interval in seconds that this resource record may be cached before it should be discarded."},{"field":"dns.answers.type","type":"keyword","normalization":"","example":"CNAME","description":"The type of data contained in this resource record."},{"field":"dns.header_flags","type":"keyword","normalization":"array","example":["RD","RA"],"description":"Array of DNS header flags."},{"field":"dns.id","type":"keyword","normalization":"","example":62111,"description":"The DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response."},{"field":"dns.op_code","type":"keyword","normalization":"","example":"QUERY","description":"The DNS operation code that specifies the kind of query in the message."},{"field":"dns.question.class","type":"keyword","normalization":"","example":"IN","description":"The class of records being queried."},{"field":"dns.question.name","type":"keyword","normalization":"","example":"www.example.com","description":"The name being queried."},{"field":"dns.question.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered domain, stripped of the subdomain."},{"field":"dns.question.subdomain","type":"keyword","normalization":"","example":"www","description":"The subdomain of the domain."},{"field":"dns.question.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"dns.question.type","type":"keyword","normalization":"","example":"AAAA","description":"The type of record being queried."},{"field":"dns.resolved_ip","type":"ip","normalization":"array","example":["10.10.10.10","10.10.10.11"],"description":"Array containing all IPs seen in answers.data"},{"field":"dns.response_code","type":"keyword","normalization":"","example":"NOERROR","description":"The DNS response code."},{"field":"dns.type","type":"keyword","normalization":"","example":"answer","description":"The type of DNS event captured, query or answer."},{"field":"email.attachments","type":"nested","normalization":"array","example":"","description":"List of objects describing the attachments."},{"field":"email.attachments.file.extension","type":"keyword","normalization":"","example":"txt","description":"Attachment file extension."},{"field":"email.attachments.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"email.attachments.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"email.attachments.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"email.attachments.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"email.attachments.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"email.attachments.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"email.attachments.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"email.attachments.file.mime_type","type":"keyword","normalization":"","example":"text/plain","description":"MIME type of the attachment file."},{"field":"email.attachments.file.name","type":"keyword","normalization":"","example":"attachment.txt","description":"Name of the attachment file."},{"field":"email.attachments.file.size","type":"long","normalization":"","example":64329,"description":"Attachment file size."},{"field":"email.bcc.address","type":"keyword","normalization":"array","example":"bcc.user1@example.com","description":"Email address of BCC recipient"},{"field":"email.cc.address","type":"keyword","normalization":"array","example":"cc.user1@example.com","description":"Email address of CC recipient"},{"field":"email.content_type","type":"keyword","normalization":"","example":"text/plain","description":"MIME type of the email message."},{"field":"email.delivery_timestamp","type":"date","normalization":"","example":"2020-11-10T22:12:34.8196921Z","description":"Date and time when message was delivered."},{"field":"email.direction","type":"keyword","normalization":"","example":"inbound","description":"Direction of the message."},{"field":"email.from.address","type":"keyword","normalization":"array","example":"sender@example.com","description":"The sender's email address."},{"field":"email.local_id","type":"keyword","normalization":"","example":"c26dbea0-80d5-463b-b93c-4e8b708219ce","description":"Unique identifier given by the source."},{"field":"email.message_id","type":"wildcard","normalization":"","example":"81ce15$8r2j59@mail01.example.com","description":"Value from the Message-ID header."},{"field":"email.origination_timestamp","type":"date","normalization":"","example":"2020-11-10T22:12:34.8196921Z","description":"Date and time the email was composed."},{"field":"email.reply_to.address","type":"keyword","normalization":"array","example":"reply.here@example.com","description":"Address replies should be delivered to."},{"field":"email.sender.address","type":"keyword","normalization":"","example":"","description":"Address of the message sender."},{"field":"email.subject","type":"keyword","normalization":"","example":"Please see this important message.","description":"The subject of the email message."},{"field":"email.subject.text","type":"match_only_text","normalization":"","example":"Please see this important message.","description":"The subject of the email message."},{"field":"email.to.address","type":"keyword","normalization":"array","example":"user1@example.com","description":"Email address of recipient"},{"field":"email.x_mailer","type":"keyword","normalization":"","example":"Spambot v2.5","description":"Application that drafted email."},{"field":"error.code","type":"keyword","normalization":"","example":"","description":"Error code describing the error."},{"field":"error.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the error."},{"field":"error.message","type":"match_only_text","normalization":"","example":"","description":"Error message."},{"field":"error.stack_trace","type":"wildcard","normalization":"","example":"","description":"The stack trace of this error in plain text."},{"field":"error.stack_trace.text","type":"match_only_text","normalization":"","example":"","description":"The stack trace of this error in plain text."},{"field":"error.type","type":"keyword","normalization":"","example":"java.lang.NullPointerException","description":"The type of the error, for example the class name of the exception."},{"field":"event.action","type":"keyword","normalization":"","example":"user-password-change","description":"The action captured by the event."},{"field":"event.category","type":"keyword","normalization":"array","example":"authentication","description":"Event category. The second categorization field in the hierarchy."},{"field":"event.code","type":"keyword","normalization":"","example":4648,"description":"Identification code for this event."},{"field":"event.created","type":"date","normalization":"","example":"2016-05-23T08:05:34.857Z","description":"Time when the event was first read by an agent or by your pipeline."},{"field":"event.dataset","type":"keyword","normalization":"","example":"apache.access","description":"Name of the dataset."},{"field":"event.duration","type":"long","normalization":"","example":"","description":"Duration of the event in nanoseconds."},{"field":"event.end","type":"date","normalization":"","example":"","description":"event.end contains the date when the event ended or when the activity was last observed."},{"field":"event.hash","type":"keyword","normalization":"","example":"123456789012345678901234567890ABCD","description":"Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity."},{"field":"event.id","type":"keyword","normalization":"","example":"8a4f500d","description":"Unique ID to describe the event."},{"field":"event.kind","type":"keyword","normalization":"","example":"alert","description":"The kind of the event. The highest categorization field in the hierarchy."},{"field":"event.original","type":"keyword","normalization":"","example":"Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232","description":"Raw text message of entire event."},{"field":"event.outcome","type":"keyword","normalization":"","example":"success","description":"The outcome of the event. The lowest level categorization field in the hierarchy."},{"field":"event.provider","type":"keyword","normalization":"","example":"kernel","description":"Source of the event."},{"field":"event.reason","type":"keyword","normalization":"","example":"Terminated an unexpected process","description":"Reason why this event happened, according to the source"},{"field":"event.reference","type":"keyword","normalization":"","example":"https://system.example.com/event/#0001234","description":"Event reference URL"},{"field":"event.risk_score","type":"float","normalization":"","example":"","description":"Risk score or priority of the event (e.g. security solutions). Use your system's original value here."},{"field":"event.risk_score_norm","type":"float","normalization":"","example":"","description":"Normalized risk score or priority of the event (0-100)."},{"field":"event.sequence","type":"long","normalization":"","example":"","description":"Sequence number of the event."},{"field":"event.severity","type":"long","normalization":"","example":7,"description":"Numeric severity of the event."},{"field":"event.start","type":"date","normalization":"","example":"","description":"event.start contains the date when the event started or when the activity was first observed."},{"field":"event.timezone","type":"keyword","normalization":"","example":"","description":"Event time zone."},{"field":"event.type","type":"keyword","normalization":"array","example":"","description":"Event type. The third categorization field in the hierarchy."},{"field":"event.url","type":"keyword","normalization":"","example":"https://mysystem.example.com/alert/5271dedb-f5b0-4218-87f0-4ac4870a38fe","description":"Event investigation URL"},{"field":"faas.coldstart","type":"boolean","normalization":"","example":"","description":"Boolean value indicating a cold start of a function."},{"field":"faas.execution","type":"keyword","normalization":"","example":"af9d5aa4-a685-4c5f-a22b-444f80b3cc28","description":"The execution ID of the current function execution."},{"field":"faas.id","type":"keyword","normalization":"","example":"arn:aws:lambda:us-west-2:123456789012:function:my-function","description":"The unique identifier of a serverless function."},{"field":"faas.name","type":"keyword","normalization":"","example":"my-function","description":"The name of a serverless function."},{"field":"faas.trigger","type":"nested","normalization":"","example":"","description":"Details about the function trigger."},{"field":"faas.trigger.request_id","type":"keyword","normalization":"","example":123456789,"description":"The ID of the trigger request , message, event, etc."},{"field":"faas.trigger.type","type":"keyword","normalization":"","example":"http","description":"The trigger for the function execution."},{"field":"faas.version","type":"keyword","normalization":"","example":123,"description":"The version of a serverless function."},{"field":"file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"file.elf.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in an ELF file."},{"field":"file.elf.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"file.elf.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"file.elf.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"file.elf.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"file.elf.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in an ELF file."},{"field":"file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"file.elf.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"file.elf.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"file.elf.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"file.macho.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a Mach-O file."},{"field":"file.macho.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"file.macho.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"file.macho.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"file.macho.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"file.macho.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a Mach-O file."},{"field":"file.macho.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"file.macho.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"file.macho.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"file.macho.sections","type":"nested","normalization":"array","example":"","description":"Section information of the Mach-O file."},{"field":"file.macho.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"file.macho.sections.name","type":"keyword","normalization":"","example":"","description":"Mach-O Section List name."},{"field":"file.macho.sections.physical_size","type":"long","normalization":"","example":"","description":"Mach-O Section List physical size."},{"field":"file.macho.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"file.macho.sections.virtual_size","type":"long","normalization":"","example":"","description":"Mach-O Section List virtual size. This is always the same as `physical_size`."},{"field":"file.macho.symhash","type":"keyword","normalization":"","example":"d3ccf195b62a9279c3c19af1080497ec","description":"A hash of the imports in a Mach-O file."},{"field":"file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"file.pe.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a PE file."},{"field":"file.pe.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"file.pe.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"file.pe.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"file.pe.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"file.pe.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a PE file."},{"field":"file.pe.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"file.pe.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"file.pe.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"file.pe.sections","type":"nested","normalization":"array","example":"","description":"Section information of the PE file."},{"field":"file.pe.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"file.pe.sections.name","type":"keyword","normalization":"","example":"","description":"PE Section List name."},{"field":"file.pe.sections.physical_size","type":"long","normalization":"","example":"","description":"PE Section List physical size."},{"field":"file.pe.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"file.pe.sections.virtual_size","type":"long","normalization":"","example":"","description":"PE Section List virtual size. This is always the same as `physical_size`."},{"field":"file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"host.boot.id","type":"keyword","normalization":"","example":"88a1f0ed-5ae5-41ee-af6b-41921c311872","description":"Linux boot uuid taken from /proc/sys/kernel/random/boot_id"},{"field":"host.cpu.usage","type":"scaled_float","normalization":"","example":"","description":"Percent CPU used, between 0 and 1."},{"field":"host.disk.read.bytes","type":"long","normalization":"","example":"","description":"The number of bytes read by all disks."},{"field":"host.disk.write.bytes","type":"long","normalization":"","example":"","description":"The number of bytes written on all disks."},{"field":"host.domain","type":"keyword","normalization":"","example":"CONTOSO","description":"Name of the directory the group is a member of."},{"field":"host.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"host.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"host.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"host.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"host.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"host.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"host.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"host.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"host.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"host.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"host.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"host.name","type":"keyword","normalization":"","example":"","description":"Name of the host."},{"field":"host.network.egress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes sent on all network interfaces."},{"field":"host.network.egress.packets","type":"long","normalization":"","example":"","description":"The number of packets sent on all network interfaces."},{"field":"host.network.ingress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes received on all network interfaces."},{"field":"host.network.ingress.packets","type":"long","normalization":"","example":"","description":"The number of packets received on all network interfaces."},{"field":"host.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"host.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"host.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"host.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"host.pid_ns_ino","type":"keyword","normalization":"","example":256383,"description":"Pid namespace inode"},{"field":"host.risk.calculated_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"host.risk.calculated_score","type":"float","normalization":"","example":880.73,"description":"A risk classification score calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"host.risk.calculated_score_norm","type":"float","normalization":"","example":88.73,"description":"A normalized risk score calculated by an internal system."},{"field":"host.risk.static_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"host.risk.static_score","type":"float","normalization":"","example":830,"description":"A risk classification score obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"host.risk.static_score_norm","type":"float","normalization":"","example":83,"description":"A normalized risk score calculated by an external system."},{"field":"host.type","type":"keyword","normalization":"","example":"","description":"Type of host."},{"field":"host.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the host has been up."},{"field":"http.request.body.bytes","type":"long","normalization":"","example":887,"description":"Size in bytes of the request body."},{"field":"http.request.body.content","type":"wildcard","normalization":"","example":"Hello world","description":"The full HTTP request body."},{"field":"http.request.body.content.text","type":"match_only_text","normalization":"","example":"Hello world","description":"The full HTTP request body."},{"field":"http.request.bytes","type":"long","normalization":"","example":1437,"description":"Total size in bytes of the request (body and headers)."},{"field":"http.request.id","type":"keyword","normalization":"","example":"123e4567-e89b-12d3-a456-426614174000","description":"HTTP request ID."},{"field":"http.request.method","type":"keyword","normalization":"","example":"POST","description":"HTTP request method."},{"field":"http.request.mime_type","type":"keyword","normalization":"","example":"image/gif","description":"Mime type of the body of the request."},{"field":"http.request.referrer","type":"keyword","normalization":"","example":"https://blog.example.com/","description":"Referrer for this HTTP request."},{"field":"http.response.body.bytes","type":"long","normalization":"","example":887,"description":"Size in bytes of the response body."},{"field":"http.response.body.content","type":"wildcard","normalization":"","example":"Hello world","description":"The full HTTP response body."},{"field":"http.response.body.content.text","type":"match_only_text","normalization":"","example":"Hello world","description":"The full HTTP response body."},{"field":"http.response.bytes","type":"long","normalization":"","example":1437,"description":"Total size in bytes of the response (body and headers)."},{"field":"http.response.mime_type","type":"keyword","normalization":"","example":"image/gif","description":"Mime type of the body of the response."},{"field":"http.response.status_code","type":"long","normalization":"","example":404,"description":"HTTP response status code."},{"field":"http.version","type":"keyword","normalization":"","example":1.1,"description":"HTTP version."},{"field":"log.file.path","type":"keyword","normalization":"","example":"/var/log/fun-times.log","description":"Full path to the log file this event came from."},{"field":"log.level","type":"keyword","normalization":"","example":"error","description":"Log level of the log event."},{"field":"log.logger","type":"keyword","normalization":"","example":"org.elasticsearch.bootstrap.Bootstrap","description":"Name of the logger."},{"field":"log.origin.file.line","type":"long","normalization":"","example":42,"description":"The line number of the file which originated the log event."},{"field":"log.origin.file.name","type":"keyword","normalization":"","example":"Bootstrap.java","description":"The code file which originated the log event."},{"field":"log.origin.function","type":"keyword","normalization":"","example":"init","description":"The function which originated the log event."},{"field":"log.syslog","type":"object","normalization":"","example":"","description":"Syslog metadata"},{"field":"log.syslog.appname","type":"keyword","normalization":"","example":"sshd","description":"The device or application that originated the Syslog message."},{"field":"log.syslog.facility.code","type":"long","normalization":"","example":23,"description":"Syslog numeric facility of the event."},{"field":"log.syslog.facility.name","type":"keyword","normalization":"","example":"local7","description":"Syslog text-based facility of the event."},{"field":"log.syslog.hostname","type":"keyword","normalization":"","example":"example-host","description":"The host that originated the Syslog message."},{"field":"log.syslog.msgid","type":"keyword","normalization":"","example":"ID47","description":"An identifier for the type of Syslog message."},{"field":"log.syslog.priority","type":"long","normalization":"","example":135,"description":"Syslog priority of the event."},{"field":"log.syslog.procid","type":"keyword","normalization":"","example":12345,"description":"The process name or ID that originated the Syslog message."},{"field":"log.syslog.severity.code","type":"long","normalization":"","example":3,"description":"Syslog numeric severity of the event."},{"field":"log.syslog.severity.name","type":"keyword","normalization":"","example":"Error","description":"Syslog text-based severity of the event."},{"field":"log.syslog.structured_data","type":"flattened","normalization":"","example":"","description":"Structured data expressed in RFC 5424 messages."},{"field":"log.syslog.version","type":"keyword","normalization":"","example":1,"description":"Syslog protocol version."},{"field":"network.application","type":"keyword","normalization":"","example":"aim","description":"Application level protocol name."},{"field":"network.bytes","type":"long","normalization":"","example":368,"description":"Total bytes transferred in both directions."},{"field":"network.community_id","type":"keyword","normalization":"","example":"1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0=","description":"A hash of source and destination IPs and ports."},{"field":"network.direction","type":"keyword","normalization":"","example":"inbound","description":"Direction of the network traffic."},{"field":"network.forwarded_ip","type":"ip","normalization":"","example":"192.1.1.2","description":"Host IP address when the source IP address is the proxy."},{"field":"network.iana_number","type":"keyword","normalization":"","example":6,"description":"IANA Protocol Number."},{"field":"network.inner","type":"object","normalization":"","example":"","description":"Inner VLAN tag information"},{"field":"network.inner.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"network.inner.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"network.name","type":"keyword","normalization":"","example":"Guest Wifi","description":"Name given by operators to sections of their network."},{"field":"network.packets","type":"long","normalization":"","example":24,"description":"Total packets transferred in both directions."},{"field":"network.protocol","type":"keyword","normalization":"","example":"http","description":"Application protocol name."},{"field":"network.transport","type":"keyword","normalization":"","example":"tcp","description":"Protocol Name corresponding to the field `iana_number`."},{"field":"network.type","type":"keyword","normalization":"","example":"ipv4","description":"In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc"},{"field":"network.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"network.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.egress","type":"object","normalization":"","example":"","description":"Object field for egress information"},{"field":"observer.egress.interface.alias","type":"keyword","normalization":"","example":"outside","description":"Interface alias"},{"field":"observer.egress.interface.id","type":"keyword","normalization":"","example":10,"description":"Interface ID"},{"field":"observer.egress.interface.name","type":"keyword","normalization":"","example":"eth0","description":"Interface name"},{"field":"observer.egress.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"observer.egress.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.egress.zone","type":"keyword","normalization":"","example":"Public_Internet","description":"Observer Egress zone"},{"field":"observer.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"observer.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"observer.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"observer.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"observer.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"observer.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"observer.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"observer.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"observer.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"observer.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"observer.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"observer.hostname","type":"keyword","normalization":"","example":"","description":"Hostname of the observer."},{"field":"observer.ingress","type":"object","normalization":"","example":"","description":"Object field for ingress information"},{"field":"observer.ingress.interface.alias","type":"keyword","normalization":"","example":"outside","description":"Interface alias"},{"field":"observer.ingress.interface.id","type":"keyword","normalization":"","example":10,"description":"Interface ID"},{"field":"observer.ingress.interface.name","type":"keyword","normalization":"","example":"eth0","description":"Interface name"},{"field":"observer.ingress.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"observer.ingress.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.ingress.zone","type":"keyword","normalization":"","example":"DMZ","description":"Observer ingress zone"},{"field":"observer.ip","type":"ip","normalization":"array","example":"","description":"IP addresses of the observer."},{"field":"observer.mac","type":"keyword","normalization":"array","example":["00-00-5E-00-53-23","00-00-5E-00-53-24"],"description":"MAC addresses of the observer."},{"field":"observer.name","type":"keyword","normalization":"","example":"1_proxySG","description":"Custom name of the observer."},{"field":"observer.os.family","type":"keyword","normalization":"","example":"debian","description":"OS family (such as redhat, debian, freebsd, windows)."},{"field":"observer.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"observer.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"observer.os.kernel","type":"keyword","normalization":"","example":"4.4.0-112-generic","description":"Operating system kernel version as a raw string."},{"field":"observer.os.name","type":"keyword","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"observer.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"observer.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"observer.os.type","type":"keyword","normalization":"","example":"macos","description":"Which commercial OS family (one of: linux, macos, unix, windows, ios or android)."},{"field":"observer.os.version","type":"keyword","normalization":"","example":"10.14.1","description":"Operating system version as a raw string."},{"field":"observer.product","type":"keyword","normalization":"","example":"s200","description":"The product name of the observer."},{"field":"observer.serial_number","type":"keyword","normalization":"","example":"","description":"Observer serial number."},{"field":"observer.type","type":"keyword","normalization":"","example":"firewall","description":"The type of the observer the data is coming from."},{"field":"observer.vendor","type":"keyword","normalization":"","example":"Symantec","description":"Vendor name of the observer."},{"field":"observer.version","type":"keyword","normalization":"","example":"","description":"Observer version."},{"field":"orchestrator.api_version","type":"keyword","normalization":"","example":"v1beta1","description":"API version being used to carry out the action"},{"field":"orchestrator.cluster.id","type":"keyword","normalization":"","example":"","description":"Unique ID of the cluster."},{"field":"orchestrator.cluster.name","type":"keyword","normalization":"","example":"","description":"Name of the cluster."},{"field":"orchestrator.cluster.url","type":"keyword","normalization":"","example":"","description":"URL of the API used to manage the cluster."},{"field":"orchestrator.cluster.version","type":"keyword","normalization":"","example":"","description":"The version of the cluster."},{"field":"orchestrator.namespace","type":"keyword","normalization":"","example":"kube-system","description":"Namespace in which the action is taking place."},{"field":"orchestrator.organization","type":"keyword","normalization":"","example":"elastic","description":"Organization affected by the event (for multi-tenant orchestrator setups)."},{"field":"orchestrator.resource.id","type":"keyword","normalization":"","example":"","description":"Unique ID of the resource being acted upon."},{"field":"orchestrator.resource.ip","type":"ip","normalization":"array","example":"","description":"IP address assigned to the resource associated with the event being observed."},{"field":"orchestrator.resource.name","type":"keyword","normalization":"","example":"test-pod-cdcws","description":"Name of the resource being acted upon."},{"field":"orchestrator.resource.parent.type","type":"keyword","normalization":"","example":"DaemonSet","description":"Type or kind of the parent resource associated with the event being observed."},{"field":"orchestrator.resource.type","type":"keyword","normalization":"","example":"service","description":"Type of resource being acted upon."},{"field":"orchestrator.type","type":"keyword","normalization":"","example":"kubernetes","description":"Orchestrator cluster type (e.g. kubernetes, nomad or cloudfoundry)."},{"field":"organization.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the organization."},{"field":"organization.name","type":"keyword","normalization":"","example":"","description":"Organization name."},{"field":"organization.name.text","type":"match_only_text","normalization":"","example":"","description":"Organization name."},{"field":"package.architecture","type":"keyword","normalization":"","example":"x86_64","description":"Package architecture."},{"field":"package.build_version","type":"keyword","normalization":"","example":"36f4f7e89dd61b0988b12ee000b98966867710cd","description":"Build version information"},{"field":"package.checksum","type":"keyword","normalization":"","example":"68b329da9893e34099c7d8ad5cb9c940","description":"Checksum of the installed package for verification."},{"field":"package.description","type":"keyword","normalization":"","example":"Open source programming language to build simple/reliable/efficient software.","description":"Description of the package."},{"field":"package.install_scope","type":"keyword","normalization":"","example":"global","description":"Indicating how the package was installed, e.g. user-local, global."},{"field":"package.installed","type":"date","normalization":"","example":"","description":"Time when package was installed."},{"field":"package.license","type":"keyword","normalization":"","example":"Apache License 2.0","description":"Package license"},{"field":"package.name","type":"keyword","normalization":"","example":"go","description":"Package name"},{"field":"package.path","type":"keyword","normalization":"","example":"/usr/local/Cellar/go/1.12.9/","description":"Path where the package is installed."},{"field":"package.reference","type":"keyword","normalization":"","example":"https://golang.org","description":"Package home page or reference URL"},{"field":"package.size","type":"long","normalization":"","example":62231,"description":"Package size in bytes."},{"field":"package.type","type":"keyword","normalization":"","example":"rpm","description":"Package type"},{"field":"package.version","type":"keyword","normalization":"","example":"1.12.9","description":"Package version"},{"field":"process.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"process.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"process.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"process.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"process.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"process.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"process.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"process.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"process.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"process.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"process.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"process.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"process.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"process.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"process.elf.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in an ELF file."},{"field":"process.elf.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"process.elf.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"process.elf.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"process.elf.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"process.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"process.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"process.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"process.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"process.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"process.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"process.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"process.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"process.elf.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in an ELF file."},{"field":"process.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.elf.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"process.elf.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"process.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"process.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"process.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"process.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"process.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"process.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"process.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"process.elf.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"process.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"process.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"process.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"process.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"process.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"process.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"process.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"process.end","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process ended."},{"field":"process.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.entry_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.entry_leader.attested_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.attested_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.attested_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.attested_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.entry_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.entry_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.entry_meta.source.ip","type":"ip","normalization":"","example":"","description":"IP address of the source."},{"field":"process.entry_leader.entry_meta.type","type":"keyword","normalization":"","example":"","description":"The entry type for the entry session leader."},{"field":"process.entry_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.entry_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.entry_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.entry_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.entry_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.entry_leader.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.parent.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.parent.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.parent.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.entry_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.entry_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.entry_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.entry_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.entry_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.env_vars","type":"keyword","normalization":"array","example":["PATH=/usr/local/bin:/usr/bin","USER=ubuntu"],"description":"Array of environment variable bindings."},{"field":"process.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.exit_code","type":"long","normalization":"","example":137,"description":"The exit code of the process."},{"field":"process.group_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.group_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.group_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.group_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.group_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.group_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.group_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.group_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.group_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.group_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.group_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.group_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.group_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.group_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.group_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.group_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.group_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.group_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"process.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"process.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"process.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"process.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"process.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"process.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"process.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.io","type":"object","normalization":"","example":"","description":"A chunk of input or output (IO) from a single process."},{"field":"process.io.bytes_skipped","type":"object","normalization":"array","example":"","description":"An array of byte offsets and lengths denoting where IO data has been skipped."},{"field":"process.io.bytes_skipped.length","type":"long","normalization":"","example":"","description":"The length of bytes skipped."},{"field":"process.io.bytes_skipped.offset","type":"long","normalization":"","example":"","description":"The byte offset into this event's io.text (or io.bytes in the future) where length bytes were skipped."},{"field":"process.io.max_bytes_per_process_exceeded","type":"boolean","normalization":"","example":"","description":"If true, the process producing the output has exceeded the max_kilobytes_per_process configuration setting."},{"field":"process.io.text","type":"wildcard","normalization":"","example":"","description":"A chunk of output or input sanitized to UTF-8."},{"field":"process.io.total_bytes_captured","type":"long","normalization":"","example":"","description":"The total number of bytes captured in this event."},{"field":"process.io.total_bytes_skipped","type":"long","normalization":"","example":"","description":"The total number of bytes that were not captured due to implementation restrictions such as buffer size limits."},{"field":"process.io.type","type":"keyword","normalization":"","example":"","description":"The type of object on which the IO action (read or write) was taken."},{"field":"process.macho.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a Mach-O file."},{"field":"process.macho.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"process.macho.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"process.macho.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"process.macho.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"process.macho.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a Mach-O file."},{"field":"process.macho.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.macho.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"process.macho.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"process.macho.sections","type":"nested","normalization":"array","example":"","description":"Section information of the Mach-O file."},{"field":"process.macho.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.macho.sections.name","type":"keyword","normalization":"","example":"","description":"Mach-O Section List name."},{"field":"process.macho.sections.physical_size","type":"long","normalization":"","example":"","description":"Mach-O Section List physical size."},{"field":"process.macho.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"process.macho.sections.virtual_size","type":"long","normalization":"","example":"","description":"Mach-O Section List virtual size. This is always the same as `physical_size`."},{"field":"process.macho.symhash","type":"keyword","normalization":"","example":"d3ccf195b62a9279c3c19af1080497ec","description":"A hash of the imports in a Mach-O file."},{"field":"process.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.parent.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.parent.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"process.parent.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"process.parent.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"process.parent.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"process.parent.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"process.parent.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"process.parent.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"process.parent.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"process.parent.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"process.parent.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.parent.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.parent.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"process.parent.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"process.parent.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"process.parent.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"process.parent.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"process.parent.elf.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in an ELF file."},{"field":"process.parent.elf.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"process.parent.elf.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"process.parent.elf.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"process.parent.elf.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"process.parent.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"process.parent.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"process.parent.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"process.parent.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"process.parent.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"process.parent.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"process.parent.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"process.parent.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"process.parent.elf.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in an ELF file."},{"field":"process.parent.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.parent.elf.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"process.parent.elf.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"process.parent.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"process.parent.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"process.parent.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.parent.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"process.parent.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"process.parent.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"process.parent.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"process.parent.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"process.parent.elf.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"process.parent.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"process.parent.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"process.parent.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"process.parent.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"process.parent.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"process.parent.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"process.parent.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"process.parent.end","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process ended."},{"field":"process.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.parent.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.parent.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.parent.exit_code","type":"long","normalization":"","example":137,"description":"The exit code of the process."},{"field":"process.parent.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.group_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.parent.group_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.parent.group_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.parent.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"process.parent.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"process.parent.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"process.parent.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"process.parent.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"process.parent.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"process.parent.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"process.parent.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.parent.macho.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a Mach-O file."},{"field":"process.parent.macho.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"process.parent.macho.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"process.parent.macho.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"process.parent.macho.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"process.parent.macho.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a Mach-O file."},{"field":"process.parent.macho.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.parent.macho.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"process.parent.macho.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"process.parent.macho.sections","type":"nested","normalization":"array","example":"","description":"Section information of the Mach-O file."},{"field":"process.parent.macho.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.parent.macho.sections.name","type":"keyword","normalization":"","example":"","description":"Mach-O Section List name."},{"field":"process.parent.macho.sections.physical_size","type":"long","normalization":"","example":"","description":"Mach-O Section List physical size."},{"field":"process.parent.macho.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"process.parent.macho.sections.virtual_size","type":"long","normalization":"","example":"","description":"Mach-O Section List virtual size. This is always the same as `physical_size`."},{"field":"process.parent.macho.symhash","type":"keyword","normalization":"","example":"d3ccf195b62a9279c3c19af1080497ec","description":"A hash of the imports in a Mach-O file."},{"field":"process.parent.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"process.parent.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"process.parent.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"process.parent.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"process.parent.pe.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a PE file."},{"field":"process.parent.pe.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"process.parent.pe.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"process.parent.pe.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"process.parent.pe.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"process.parent.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"process.parent.pe.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a PE file."},{"field":"process.parent.pe.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.parent.pe.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"process.parent.pe.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"process.parent.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"process.parent.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"process.parent.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"process.parent.pe.sections","type":"nested","normalization":"array","example":"","description":"Section information of the PE file."},{"field":"process.parent.pe.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.parent.pe.sections.name","type":"keyword","normalization":"","example":"","description":"PE Section List name."},{"field":"process.parent.pe.sections.physical_size","type":"long","normalization":"","example":"","description":"PE Section List physical size."},{"field":"process.parent.pe.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"process.parent.pe.sections.virtual_size","type":"long","normalization":"","example":"","description":"PE Section List virtual size. This is always the same as `physical_size`."},{"field":"process.parent.pgid","type":"long","normalization":"","example":"","description":"Deprecated identifier of the group of processes the process belongs to."},{"field":"process.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.parent.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.parent.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.thread.id","type":"long","normalization":"","example":4242,"description":"Thread ID."},{"field":"process.parent.thread.name","type":"keyword","normalization":"","example":"thread-0","description":"Thread name."},{"field":"process.parent.title","type":"keyword","normalization":"","example":"","description":"Process title."},{"field":"process.parent.title.text","type":"match_only_text","normalization":"","example":"","description":"Process title."},{"field":"process.parent.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.parent.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.parent.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.parent.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the process has been up."},{"field":"process.parent.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.parent.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"process.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"process.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"process.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"process.pe.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a PE file."},{"field":"process.pe.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"process.pe.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"process.pe.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"process.pe.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"process.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"process.pe.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a PE file."},{"field":"process.pe.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.pe.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"process.pe.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"process.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"process.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"process.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"process.pe.sections","type":"nested","normalization":"array","example":"","description":"Section information of the PE file."},{"field":"process.pe.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.pe.sections.name","type":"keyword","normalization":"","example":"","description":"PE Section List name."},{"field":"process.pe.sections.physical_size","type":"long","normalization":"","example":"","description":"PE Section List physical size."},{"field":"process.pe.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"process.pe.sections.virtual_size","type":"long","normalization":"","example":"","description":"PE Section List virtual size. This is always the same as `physical_size`."},{"field":"process.pgid","type":"long","normalization":"","example":"","description":"Deprecated identifier of the group of processes the process belongs to."},{"field":"process.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.previous.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.previous.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.previous.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.previous.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.session_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.session_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.session_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.session_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.session_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.session_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.session_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.session_leader.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.parent.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.parent.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.parent.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.session_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.session_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.session_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.session_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.session_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.thread.id","type":"long","normalization":"","example":4242,"description":"Thread ID."},{"field":"process.thread.name","type":"keyword","normalization":"","example":"thread-0","description":"Thread name."},{"field":"process.title","type":"keyword","normalization":"","example":"","description":"Process title."},{"field":"process.title.text","type":"match_only_text","normalization":"","example":"","description":"Process title."},{"field":"process.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.tty.columns","type":"long","normalization":"","example":80,"description":"The number of character columns per line. e.g terminal width"},{"field":"process.tty.rows","type":"long","normalization":"","example":24,"description":"The number of character rows in the terminal. e.g terminal height"},{"field":"process.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the process has been up."},{"field":"process.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"related.hash","type":"keyword","normalization":"array","example":"","description":"All the hashes seen on your event."},{"field":"related.hosts","type":"keyword","normalization":"array","example":"","description":"All the host identifiers seen on your event."},{"field":"related.ip","type":"ip","normalization":"array","example":"","description":"All of the IPs seen on your event."},{"field":"related.user","type":"keyword","normalization":"array","example":"","description":"All the user names or other user identifiers seen on the event."},{"field":"rule.author","type":"keyword","normalization":"array","example":["Star-Lord"],"description":"Rule author"},{"field":"rule.category","type":"keyword","normalization":"","example":"Attempted Information Leak","description":"Rule category"},{"field":"rule.description","type":"keyword","normalization":"","example":"Block requests to public DNS over HTTPS / TLS protocols","description":"Rule description"},{"field":"rule.id","type":"keyword","normalization":"","example":101,"description":"Rule ID"},{"field":"rule.license","type":"keyword","normalization":"","example":"Apache 2.0","description":"Rule license"},{"field":"rule.name","type":"keyword","normalization":"","example":"BLOCK_DNS_over_TLS","description":"Rule name"},{"field":"rule.reference","type":"keyword","normalization":"","example":"https://en.wikipedia.org/wiki/DNS_over_TLS","description":"Rule reference URL"},{"field":"rule.ruleset","type":"keyword","normalization":"","example":"Standard_Protocol_Filters","description":"Rule ruleset"},{"field":"rule.uuid","type":"keyword","normalization":"","example":1100110011,"description":"Rule UUID"},{"field":"rule.version","type":"keyword","normalization":"","example":1.1,"description":"Rule version"},{"field":"server.address","type":"keyword","normalization":"","example":"","description":"Server network address."},{"field":"server.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"server.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"server.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"server.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the server to the client."},{"field":"server.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the server."},{"field":"server.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"server.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"server.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"server.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"server.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"server.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"server.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"server.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"server.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"server.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"server.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"server.ip","type":"ip","normalization":"","example":"","description":"IP address of the server."},{"field":"server.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the server."},{"field":"server.nat.ip","type":"ip","normalization":"","example":"","description":"Server NAT ip"},{"field":"server.nat.port","type":"long","normalization":"","example":"","description":"Server NAT port"},{"field":"server.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the server to the client."},{"field":"server.port","type":"long","normalization":"","example":"","description":"Port of the server."},{"field":"server.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered server domain, stripped of the subdomain."},{"field":"server.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"server.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"server.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"server.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"server.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"server.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"server.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"server.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"server.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"server.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"server.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"server.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"server.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"server.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"service.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.origin.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.origin.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.origin.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.origin.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.origin.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.origin.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.origin.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.origin.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.origin.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.origin.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.origin.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"service.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.target.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.target.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.target.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.target.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.target.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.target.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.target.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.target.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.target.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.target.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.target.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"service.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"source.address","type":"keyword","normalization":"","example":"","description":"Source network address."},{"field":"source.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"source.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"source.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"source.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the source to the destination."},{"field":"source.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the source."},{"field":"source.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"source.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"source.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"source.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"source.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"source.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"source.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"source.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"source.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"source.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"source.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"source.ip","type":"ip","normalization":"","example":"","description":"IP address of the source."},{"field":"source.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the source."},{"field":"source.nat.ip","type":"ip","normalization":"","example":"","description":"Source NAT ip"},{"field":"source.nat.port","type":"long","normalization":"","example":"","description":"Source NAT port"},{"field":"source.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the source to the destination."},{"field":"source.port","type":"long","normalization":"","example":"","description":"Port of the source."},{"field":"source.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered source domain, stripped of the subdomain."},{"field":"source.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"source.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"source.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"source.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"source.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"source.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"source.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"source.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"source.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"source.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"source.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"source.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"source.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"source.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"span.id","type":"keyword","normalization":"","example":"3ff9a8981b7ccd5a","description":"Unique identifier of the span within the scope of its trace."},{"field":"threat.enrichments","type":"nested","normalization":"array","example":"","description":"List of objects containing indicators enriching the event."},{"field":"threat.enrichments.indicator","type":"object","normalization":"","example":"","description":"Object containing indicators enriching the event."},{"field":"threat.enrichments.indicator.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"threat.enrichments.indicator.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.enrichments.indicator.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.enrichments.indicator.confidence","type":"keyword","normalization":"","example":"Medium","description":"Indicator confidence rating"},{"field":"threat.enrichments.indicator.description","type":"keyword","normalization":"","example":"IP x.x.x.x was observed delivering the Angler EK.","description":"Indicator description"},{"field":"threat.enrichments.indicator.email.address","type":"keyword","normalization":"","example":"phish@example.com","description":"Indicator email address"},{"field":"threat.enrichments.indicator.file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"threat.enrichments.indicator.file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"threat.enrichments.indicator.file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"threat.enrichments.indicator.file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"threat.enrichments.indicator.file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"threat.enrichments.indicator.file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"threat.enrichments.indicator.file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"threat.enrichments.indicator.file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"threat.enrichments.indicator.file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"threat.enrichments.indicator.file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"threat.enrichments.indicator.file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"threat.enrichments.indicator.file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"threat.enrichments.indicator.file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"threat.enrichments.indicator.file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"threat.enrichments.indicator.file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"threat.enrichments.indicator.file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"threat.enrichments.indicator.file.elf.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in an ELF file."},{"field":"threat.enrichments.indicator.file.elf.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"threat.enrichments.indicator.file.elf.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"threat.enrichments.indicator.file.elf.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"threat.enrichments.indicator.file.elf.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"threat.enrichments.indicator.file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"threat.enrichments.indicator.file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"threat.enrichments.indicator.file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"threat.enrichments.indicator.file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"threat.enrichments.indicator.file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"threat.enrichments.indicator.file.elf.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in an ELF file."},{"field":"threat.enrichments.indicator.file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.enrichments.indicator.file.elf.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"threat.enrichments.indicator.file.elf.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"threat.enrichments.indicator.file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"threat.enrichments.indicator.file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.enrichments.indicator.file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"threat.enrichments.indicator.file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"threat.enrichments.indicator.file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"threat.enrichments.indicator.file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"threat.enrichments.indicator.file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"threat.enrichments.indicator.file.elf.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"threat.enrichments.indicator.file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"threat.enrichments.indicator.file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"threat.enrichments.indicator.file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"threat.enrichments.indicator.file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"threat.enrichments.indicator.file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"threat.enrichments.indicator.file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"threat.enrichments.indicator.file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"threat.enrichments.indicator.file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"threat.enrichments.indicator.file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"threat.enrichments.indicator.file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"threat.enrichments.indicator.file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"threat.enrichments.indicator.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"threat.enrichments.indicator.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"threat.enrichments.indicator.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"threat.enrichments.indicator.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"threat.enrichments.indicator.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"threat.enrichments.indicator.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"threat.enrichments.indicator.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"threat.enrichments.indicator.file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"threat.enrichments.indicator.file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"threat.enrichments.indicator.file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"threat.enrichments.indicator.file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"threat.enrichments.indicator.file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"threat.enrichments.indicator.file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"threat.enrichments.indicator.file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.enrichments.indicator.file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.enrichments.indicator.file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"threat.enrichments.indicator.file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"threat.enrichments.indicator.file.pe.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a PE file."},{"field":"threat.enrichments.indicator.file.pe.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"threat.enrichments.indicator.file.pe.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"threat.enrichments.indicator.file.pe.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"threat.enrichments.indicator.file.pe.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"threat.enrichments.indicator.file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"threat.enrichments.indicator.file.pe.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a PE file."},{"field":"threat.enrichments.indicator.file.pe.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.enrichments.indicator.file.pe.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"threat.enrichments.indicator.file.pe.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"threat.enrichments.indicator.file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"threat.enrichments.indicator.file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.sections","type":"nested","normalization":"array","example":"","description":"Section information of the PE file."},{"field":"threat.enrichments.indicator.file.pe.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.enrichments.indicator.file.pe.sections.name","type":"keyword","normalization":"","example":"","description":"PE Section List name."},{"field":"threat.enrichments.indicator.file.pe.sections.physical_size","type":"long","normalization":"","example":"","description":"PE Section List physical size."},{"field":"threat.enrichments.indicator.file.pe.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"threat.enrichments.indicator.file.pe.sections.virtual_size","type":"long","normalization":"","example":"","description":"PE Section List virtual size. This is always the same as `physical_size`."},{"field":"threat.enrichments.indicator.file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"threat.enrichments.indicator.file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.enrichments.indicator.file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.enrichments.indicator.file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"threat.enrichments.indicator.file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"threat.enrichments.indicator.file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.enrichments.indicator.file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.enrichments.indicator.file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.enrichments.indicator.file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.enrichments.indicator.file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.enrichments.indicator.file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.enrichments.indicator.file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.enrichments.indicator.file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.enrichments.indicator.file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.enrichments.indicator.file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.enrichments.indicator.file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.enrichments.indicator.file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.enrichments.indicator.file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.enrichments.indicator.first_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was first reported."},{"field":"threat.enrichments.indicator.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"threat.enrichments.indicator.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"threat.enrichments.indicator.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"threat.enrichments.indicator.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"threat.enrichments.indicator.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"threat.enrichments.indicator.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"threat.enrichments.indicator.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"threat.enrichments.indicator.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"threat.enrichments.indicator.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"threat.enrichments.indicator.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"threat.enrichments.indicator.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"threat.enrichments.indicator.ip","type":"ip","normalization":"","example":"1.2.3.4","description":"Indicator IP address"},{"field":"threat.enrichments.indicator.last_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last reported."},{"field":"threat.enrichments.indicator.marking.tlp","type":"keyword","normalization":"","example":"CLEAR","description":"Indicator TLP marking"},{"field":"threat.enrichments.indicator.marking.tlp_version","type":"keyword","normalization":"","example":2,"description":"Indicator TLP version"},{"field":"threat.enrichments.indicator.modified_at","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last updated."},{"field":"threat.enrichments.indicator.name","type":"keyword","normalization":"","example":"5.2.75.227","description":"Indicator display name"},{"field":"threat.enrichments.indicator.port","type":"long","normalization":"","example":443,"description":"Indicator port"},{"field":"threat.enrichments.indicator.provider","type":"keyword","normalization":"","example":"lrz_urlhaus","description":"Indicator provider"},{"field":"threat.enrichments.indicator.reference","type":"keyword","normalization":"","example":"https://system.example.com/indicator/0001234","description":"Indicator reference URL"},{"field":"threat.enrichments.indicator.registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"threat.enrichments.indicator.registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"threat.enrichments.indicator.registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"threat.enrichments.indicator.registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"threat.enrichments.indicator.registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"threat.enrichments.indicator.registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"threat.enrichments.indicator.registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"threat.enrichments.indicator.scanner_stats","type":"long","normalization":"","example":4,"description":"Scanner statistics"},{"field":"threat.enrichments.indicator.sightings","type":"long","normalization":"","example":20,"description":"Number of times indicator observed"},{"field":"threat.enrichments.indicator.type","type":"keyword","normalization":"","example":"ipv4-addr","description":"Type of indicator"},{"field":"threat.enrichments.indicator.url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"threat.enrichments.indicator.url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"threat.enrichments.indicator.url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"threat.enrichments.indicator.url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.enrichments.indicator.url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.enrichments.indicator.url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.enrichments.indicator.url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.enrichments.indicator.url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"threat.enrichments.indicator.url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"threat.enrichments.indicator.url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"threat.enrichments.indicator.url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"threat.enrichments.indicator.url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"threat.enrichments.indicator.url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"threat.enrichments.indicator.url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"threat.enrichments.indicator.url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"threat.enrichments.indicator.url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"threat.enrichments.indicator.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.enrichments.indicator.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.enrichments.indicator.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.enrichments.indicator.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.enrichments.indicator.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.enrichments.indicator.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.enrichments.indicator.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.enrichments.indicator.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.enrichments.indicator.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.enrichments.indicator.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.enrichments.indicator.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.enrichments.indicator.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.enrichments.indicator.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.enrichments.indicator.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.enrichments.indicator.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.enrichments.indicator.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.enrichments.matched.atomic","type":"keyword","normalization":"","example":"bad-domain.com","description":"Matched indicator value"},{"field":"threat.enrichments.matched.field","type":"keyword","normalization":"","example":"file.hash.sha256","description":"Matched indicator field"},{"field":"threat.enrichments.matched.id","type":"keyword","normalization":"","example":"ff93aee5-86a1-4a61-b0e6-0cdc313d01b5","description":"Matched indicator identifier"},{"field":"threat.enrichments.matched.index","type":"keyword","normalization":"","example":"filebeat-8.0.0-2021.05.23-000011","description":"Matched indicator index"},{"field":"threat.enrichments.matched.occurred","type":"date","normalization":"","example":"2021-10-05T17:00:58.326Z","description":"Date of match"},{"field":"threat.enrichments.matched.type","type":"keyword","normalization":"","example":"indicator_match_rule","description":"Type of indicator match"},{"field":"threat.feed.dashboard_id","type":"keyword","normalization":"","example":"5ba16340-72e6-11eb-a3e3-b3cc7c78a70f","description":"Feed dashboard ID."},{"field":"threat.feed.description","type":"keyword","normalization":"","example":"Threat feed from the AlienVault Open Threat eXchange network.","description":"Description of the threat feed."},{"field":"threat.feed.name","type":"keyword","normalization":"","example":"AlienVault OTX","description":"Name of the threat feed."},{"field":"threat.feed.reference","type":"keyword","normalization":"","example":"https://otx.alienvault.com","description":"Reference for the threat feed."},{"field":"threat.framework","type":"keyword","normalization":"","example":"MITRE ATT&CK","description":"Threat classification framework."},{"field":"threat.group.alias","type":"keyword","normalization":"array","example":["Magecart Group 6"],"description":"Alias of the group."},{"field":"threat.group.id","type":"keyword","normalization":"","example":"G0037","description":"ID of the group."},{"field":"threat.group.name","type":"keyword","normalization":"","example":"FIN6","description":"Name of the group."},{"field":"threat.group.reference","type":"keyword","normalization":"","example":"https://attack.mitre.org/groups/G0037/","description":"Reference URL of the group."},{"field":"threat.indicator.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"threat.indicator.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.indicator.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.indicator.confidence","type":"keyword","normalization":"","example":"Medium","description":"Indicator confidence rating"},{"field":"threat.indicator.description","type":"keyword","normalization":"","example":"IP x.x.x.x was observed delivering the Angler EK.","description":"Indicator description"},{"field":"threat.indicator.email.address","type":"keyword","normalization":"","example":"phish@example.com","description":"Indicator email address"},{"field":"threat.indicator.file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"threat.indicator.file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"threat.indicator.file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"threat.indicator.file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"threat.indicator.file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"threat.indicator.file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"threat.indicator.file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"threat.indicator.file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"threat.indicator.file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"threat.indicator.file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"threat.indicator.file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"threat.indicator.file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"threat.indicator.file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"threat.indicator.file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"threat.indicator.file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"threat.indicator.file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"threat.indicator.file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"threat.indicator.file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"threat.indicator.file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"threat.indicator.file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"threat.indicator.file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"threat.indicator.file.elf.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in an ELF file."},{"field":"threat.indicator.file.elf.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"threat.indicator.file.elf.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"threat.indicator.file.elf.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"threat.indicator.file.elf.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"threat.indicator.file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"threat.indicator.file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"threat.indicator.file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"threat.indicator.file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"threat.indicator.file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"threat.indicator.file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"threat.indicator.file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"threat.indicator.file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"threat.indicator.file.elf.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in an ELF file."},{"field":"threat.indicator.file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.indicator.file.elf.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"threat.indicator.file.elf.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"threat.indicator.file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"threat.indicator.file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"threat.indicator.file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.indicator.file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"threat.indicator.file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"threat.indicator.file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"threat.indicator.file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"threat.indicator.file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"threat.indicator.file.elf.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"threat.indicator.file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"threat.indicator.file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"threat.indicator.file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"threat.indicator.file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"threat.indicator.file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"threat.indicator.file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"threat.indicator.file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"threat.indicator.file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"threat.indicator.file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"threat.indicator.file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"threat.indicator.file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"threat.indicator.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"threat.indicator.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"threat.indicator.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"threat.indicator.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"threat.indicator.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"threat.indicator.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"threat.indicator.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"threat.indicator.file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"threat.indicator.file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"threat.indicator.file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"threat.indicator.file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"threat.indicator.file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"threat.indicator.file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"threat.indicator.file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.indicator.file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.indicator.file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"threat.indicator.file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"threat.indicator.file.pe.go_import_hash","type":"keyword","normalization":"","example":"10bddcb4cee42080f76c88d9ff964491","description":"A hash of the Go language imports in a PE file."},{"field":"threat.indicator.file.pe.go_imports","type":"flattened","normalization":"","example":"","description":"List of imported Go language element names and types."},{"field":"threat.indicator.file.pe.go_imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of Go imports."},{"field":"threat.indicator.file.pe.go_imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of Go imports."},{"field":"threat.indicator.file.pe.go_stripped","type":"boolean","normalization":"","example":"","description":"Whether the file is a stripped or obfuscated Go executable."},{"field":"threat.indicator.file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"threat.indicator.file.pe.import_hash","type":"keyword","normalization":"","example":"d41d8cd98f00b204e9800998ecf8427e","description":"A hash of the imports in a PE file."},{"field":"threat.indicator.file.pe.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.indicator.file.pe.imports_names_entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the list of imported element names and types."},{"field":"threat.indicator.file.pe.imports_names_var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the list of imported element names and types."},{"field":"threat.indicator.file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"threat.indicator.file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.sections","type":"nested","normalization":"array","example":"","description":"Section information of the PE file."},{"field":"threat.indicator.file.pe.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.indicator.file.pe.sections.name","type":"keyword","normalization":"","example":"","description":"PE Section List name."},{"field":"threat.indicator.file.pe.sections.physical_size","type":"long","normalization":"","example":"","description":"PE Section List physical size."},{"field":"threat.indicator.file.pe.sections.var_entropy","type":"long","normalization":"","example":"","description":"Variance for Shannon entropy calculation from the section."},{"field":"threat.indicator.file.pe.sections.virtual_size","type":"long","normalization":"","example":"","description":"PE Section List virtual size. This is always the same as `physical_size`."},{"field":"threat.indicator.file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"threat.indicator.file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.indicator.file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.indicator.file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"threat.indicator.file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"threat.indicator.file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.indicator.file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.indicator.file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.indicator.file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.indicator.file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.indicator.file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.indicator.file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.indicator.file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.indicator.file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.indicator.file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.indicator.file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.indicator.file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.indicator.file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.indicator.file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.indicator.file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.indicator.file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.indicator.file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.indicator.file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.indicator.first_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was first reported."},{"field":"threat.indicator.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"threat.indicator.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"threat.indicator.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"threat.indicator.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"threat.indicator.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"threat.indicator.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"threat.indicator.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"threat.indicator.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"threat.indicator.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"threat.indicator.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"threat.indicator.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"threat.indicator.ip","type":"ip","normalization":"","example":"1.2.3.4","description":"Indicator IP address"},{"field":"threat.indicator.last_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last reported."},{"field":"threat.indicator.marking.tlp","type":"keyword","normalization":"","example":"CLEAR","description":"Indicator TLP marking"},{"field":"threat.indicator.marking.tlp_version","type":"keyword","normalization":"","example":2,"description":"Indicator TLP version"},{"field":"threat.indicator.modified_at","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last updated."},{"field":"threat.indicator.name","type":"keyword","normalization":"","example":"5.2.75.227","description":"Indicator display name"},{"field":"threat.indicator.port","type":"long","normalization":"","example":443,"description":"Indicator port"},{"field":"threat.indicator.provider","type":"keyword","normalization":"","example":"lrz_urlhaus","description":"Indicator provider"},{"field":"threat.indicator.reference","type":"keyword","normalization":"","example":"https://system.example.com/indicator/0001234","description":"Indicator reference URL"},{"field":"threat.indicator.registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"threat.indicator.registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"threat.indicator.registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"threat.indicator.registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"threat.indicator.registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"threat.indicator.registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"threat.indicator.registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"threat.indicator.scanner_stats","type":"long","normalization":"","example":4,"description":"Scanner statistics"},{"field":"threat.indicator.sightings","type":"long","normalization":"","example":20,"description":"Number of times indicator observed"},{"field":"threat.indicator.type","type":"keyword","normalization":"","example":"ipv4-addr","description":"Type of indicator"},{"field":"threat.indicator.url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"threat.indicator.url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"threat.indicator.url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"threat.indicator.url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.indicator.url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.indicator.url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.indicator.url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.indicator.url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"threat.indicator.url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"threat.indicator.url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"threat.indicator.url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"threat.indicator.url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"threat.indicator.url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"threat.indicator.url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"threat.indicator.url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"threat.indicator.url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"threat.indicator.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.indicator.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.indicator.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.indicator.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.indicator.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.indicator.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.indicator.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.indicator.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.indicator.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.indicator.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.indicator.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.indicator.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.indicator.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.indicator.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.indicator.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.indicator.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.indicator.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.indicator.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.software.alias","type":"keyword","normalization":"array","example":["X-Agent"],"description":"Alias of the software"},{"field":"threat.software.id","type":"keyword","normalization":"","example":"S0552","description":"ID of the software"},{"field":"threat.software.name","type":"keyword","normalization":"","example":"AdFind","description":"Name of the software."},{"field":"threat.software.platforms","type":"keyword","normalization":"array","example":["Windows"],"description":"Platforms of the software."},{"field":"threat.software.reference","type":"keyword","normalization":"","example":"https://attack.mitre.org/software/S0552/","description":"Software reference URL."},{"field":"threat.software.type","type":"keyword","normalization":"","example":"Tool","description":"Software type."},{"field":"threat.tactic.id","type":"keyword","normalization":"array","example":"TA0002","description":"Threat tactic id."},{"field":"threat.tactic.name","type":"keyword","normalization":"array","example":"Execution","description":"Threat tactic."},{"field":"threat.tactic.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/tactics/TA0002/","description":"Threat tactic URL reference."},{"field":"threat.technique.id","type":"keyword","normalization":"array","example":"T1059","description":"Threat technique id."},{"field":"threat.technique.name","type":"keyword","normalization":"array","example":"Command and Scripting Interpreter","description":"Threat technique name."},{"field":"threat.technique.name.text","type":"match_only_text","normalization":"","example":"Command and Scripting Interpreter","description":"Threat technique name."},{"field":"threat.technique.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/techniques/T1059/","description":"Threat technique URL reference."},{"field":"threat.technique.subtechnique.id","type":"keyword","normalization":"array","example":"T1059.001","description":"Threat subtechnique id."},{"field":"threat.technique.subtechnique.name","type":"keyword","normalization":"array","example":"PowerShell","description":"Threat subtechnique name."},{"field":"threat.technique.subtechnique.name.text","type":"match_only_text","normalization":"","example":"PowerShell","description":"Threat subtechnique name."},{"field":"threat.technique.subtechnique.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/techniques/T1059/001/","description":"Threat subtechnique URL reference."},{"field":"tls.cipher","type":"keyword","normalization":"","example":"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256","description":"String indicating the cipher used during the current connection."},{"field":"tls.client.certificate","type":"keyword","normalization":"","example":"MII...","description":"PEM-encoded stand-alone certificate offered by the client."},{"field":"tls.client.certificate_chain","type":"keyword","normalization":"array","example":["MII...","MII..."],"description":"Array of PEM-encoded certificates that make up the certificate chain offered by the client."},{"field":"tls.client.hash.md5","type":"keyword","normalization":"","example":"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC","description":"Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.hash.sha1","type":"keyword","normalization":"","example":"9E393D93138888D288266C2D915214D1D1CCEB2A","description":"Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.hash.sha256","type":"keyword","normalization":"","example":"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0","description":"Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.issuer","type":"keyword","normalization":"","example":"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com","description":"Distinguished name of subject of the issuer of the x.509 certificate presented by the client."},{"field":"tls.client.ja3","type":"keyword","normalization":"","example":"d4e5b18d6b55c71272893221c96ba240","description":"A hash that identifies clients based on how they perform an SSL/TLS handshake."},{"field":"tls.client.not_after","type":"date","normalization":"","example":"2021-01-01T00:00:00.000Z","description":"Date/Time indicating when client certificate is no longer considered valid."},{"field":"tls.client.not_before","type":"date","normalization":"","example":"1970-01-01T00:00:00.000Z","description":"Date/Time indicating when client certificate is first considered valid."},{"field":"tls.client.server_name","type":"keyword","normalization":"","example":"www.elastic.co","description":"Hostname the client is trying to connect to. Also called the SNI."},{"field":"tls.client.subject","type":"keyword","normalization":"","example":"CN=myclient, OU=Documentation Team, DC=example, DC=com","description":"Distinguished name of subject of the x.509 certificate presented by the client."},{"field":"tls.client.supported_ciphers","type":"keyword","normalization":"array","example":["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","..."],"description":"Array of ciphers offered by the client during the client hello."},{"field":"tls.client.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"tls.client.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"tls.client.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"tls.client.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"tls.client.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"tls.client.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"tls.client.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"tls.client.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.client.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"tls.client.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"tls.client.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"tls.client.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"tls.client.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"tls.client.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"tls.client.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"tls.client.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"tls.client.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"tls.client.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"tls.client.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"tls.client.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"tls.client.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"tls.client.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"tls.client.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.client.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"tls.curve","type":"keyword","normalization":"","example":"secp256r1","description":"String indicating the curve used for the given cipher, when applicable."},{"field":"tls.established","type":"boolean","normalization":"","example":"","description":"Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel."},{"field":"tls.next_protocol","type":"keyword","normalization":"","example":"http/1.1","description":"String indicating the protocol being tunneled."},{"field":"tls.resumed","type":"boolean","normalization":"","example":"","description":"Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation."},{"field":"tls.server.certificate","type":"keyword","normalization":"","example":"MII...","description":"PEM-encoded stand-alone certificate offered by the server."},{"field":"tls.server.certificate_chain","type":"keyword","normalization":"array","example":["MII...","MII..."],"description":"Array of PEM-encoded certificates that make up the certificate chain offered by the server."},{"field":"tls.server.hash.md5","type":"keyword","normalization":"","example":"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC","description":"Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.hash.sha1","type":"keyword","normalization":"","example":"9E393D93138888D288266C2D915214D1D1CCEB2A","description":"Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.hash.sha256","type":"keyword","normalization":"","example":"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0","description":"Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.issuer","type":"keyword","normalization":"","example":"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com","description":"Subject of the issuer of the x.509 certificate presented by the server."},{"field":"tls.server.ja3s","type":"keyword","normalization":"","example":"394441ab65754e2207b1e1b457b3641d","description":"A hash that identifies servers based on how they perform an SSL/TLS handshake."},{"field":"tls.server.not_after","type":"date","normalization":"","example":"2021-01-01T00:00:00.000Z","description":"Timestamp indicating when server certificate is no longer considered valid."},{"field":"tls.server.not_before","type":"date","normalization":"","example":"1970-01-01T00:00:00.000Z","description":"Timestamp indicating when server certificate is first considered valid."},{"field":"tls.server.subject","type":"keyword","normalization":"","example":"CN=www.example.com, OU=Infrastructure Team, DC=example, DC=com","description":"Subject of the x.509 certificate presented by the server."},{"field":"tls.server.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"tls.server.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"tls.server.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"tls.server.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"tls.server.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"tls.server.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"tls.server.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"tls.server.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.server.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"tls.server.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"tls.server.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"tls.server.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"tls.server.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"tls.server.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"tls.server.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"tls.server.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"tls.server.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"tls.server.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"tls.server.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"tls.server.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"tls.server.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"tls.server.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"tls.server.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.server.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"tls.version","type":"keyword","normalization":"","example":1.2,"description":"Numeric part of the version parsed from the original string."},{"field":"tls.version_protocol","type":"keyword","normalization":"","example":"tls","description":"Normalized lowercase protocol name parsed from original string."},{"field":"trace.id","type":"keyword","normalization":"","example":"4bf92f3577b34da6a3ce929d0e0e4736","description":"Unique identifier of the trace."},{"field":"transaction.id","type":"keyword","normalization":"","example":"00f067aa0ba902b7","description":"Unique identifier of the transaction within the scope of its trace."},{"field":"url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"user.changes.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.changes.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.changes.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.changes.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.changes.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.changes.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.changes.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.changes.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.changes.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.changes.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.changes.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.changes.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.effective.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.effective.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.effective.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.effective.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.effective.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.effective.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.effective.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.effective.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.effective.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.effective.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.effective.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.effective.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.risk.calculated_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"user.risk.calculated_score","type":"float","normalization":"","example":880.73,"description":"A risk classification score calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"user.risk.calculated_score_norm","type":"float","normalization":"","example":88.73,"description":"A normalized risk score calculated by an internal system."},{"field":"user.risk.static_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"user.risk.static_score","type":"float","normalization":"","example":830,"description":"A risk classification score obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"user.risk.static_score_norm","type":"float","normalization":"","example":83,"description":"A normalized risk score calculated by an external system."},{"field":"user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.target.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.target.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.target.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.target.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.target.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.target.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.target.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.target.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.target.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.target.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.target.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.target.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user_agent.device.name","type":"keyword","normalization":"","example":"iPhone","description":"Name of the device."},{"field":"user_agent.name","type":"keyword","normalization":"","example":"Safari","description":"Name of the user agent."},{"field":"user_agent.original","type":"keyword","normalization":"","example":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1","description":"Unparsed user_agent string."},{"field":"user_agent.original.text","type":"match_only_text","normalization":"","example":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1","description":"Unparsed user_agent string."},{"field":"user_agent.os.family","type":"keyword","normalization":"","example":"debian","description":"OS family (such as redhat, debian, freebsd, windows)."},{"field":"user_agent.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"user_agent.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"user_agent.os.kernel","type":"keyword","normalization":"","example":"4.4.0-112-generic","description":"Operating system kernel version as a raw string."},{"field":"user_agent.os.name","type":"keyword","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"user_agent.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"user_agent.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"user_agent.os.type","type":"keyword","normalization":"","example":"macos","description":"Which commercial OS family (one of: linux, macos, unix, windows, ios or android)."},{"field":"user_agent.os.version","type":"keyword","normalization":"","example":"10.14.1","description":"Operating system version as a raw string."},{"field":"user_agent.version","type":"keyword","normalization":"","example":12,"description":"Version of the user agent."},{"field":"vulnerability.category","type":"keyword","normalization":"array","example":["Firewall"],"description":"Category of a vulnerability."},{"field":"vulnerability.classification","type":"keyword","normalization":"","example":"CVSS","description":"Classification of the vulnerability."},{"field":"vulnerability.description","type":"keyword","normalization":"","example":"In macOS before 2.12.6, there is a vulnerability in the RPC...","description":"Description of the vulnerability."},{"field":"vulnerability.description.text","type":"match_only_text","normalization":"","example":"In macOS before 2.12.6, there is a vulnerability in the RPC...","description":"Description of the vulnerability."},{"field":"vulnerability.enumeration","type":"keyword","normalization":"","example":"CVE","description":"Identifier of the vulnerability."},{"field":"vulnerability.id","type":"keyword","normalization":"","example":"CVE-2019-00001","description":"ID of the vulnerability."},{"field":"vulnerability.reference","type":"keyword","normalization":"","example":"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6111","description":"Reference of the vulnerability."},{"field":"vulnerability.report_id","type":"keyword","normalization":"","example":20191018.0001,"description":"Scan identification number."},{"field":"vulnerability.scanner.vendor","type":"keyword","normalization":"","example":"Tenable","description":"Name of the scanner vendor."},{"field":"vulnerability.score.base","type":"float","normalization":"","example":5.5,"description":"Vulnerability Base score."},{"field":"vulnerability.score.environmental","type":"float","normalization":"","example":5.5,"description":"Vulnerability Environmental score."},{"field":"vulnerability.score.temporal","type":"float","normalization":"","example":"","description":"Vulnerability Temporal score."},{"field":"vulnerability.score.version","type":"keyword","normalization":"","example":2,"description":"CVSS version."},{"field":"vulnerability.severity","type":"keyword","normalization":"","example":"Critical","description":"Severity of the vulnerability."}] \ No newline at end of file diff --git a/x-pack/plugins/osquery/public/common/schemas/osquery/v5.5.1.json b/x-pack/plugins/osquery/public/common/schemas/osquery/v5.5.1.json deleted file mode 100644 index 046fd2e7a6a39f..00000000000000 --- a/x-pack/plugins/osquery/public/common/schemas/osquery/v5.5.1.json +++ /dev/null @@ -1 +0,0 @@ -[{"name":"account_policy_data","description":"Additional macOS user account data from the AccountPolicy section of OpenDirectory.","platforms":["darwin"],"columns":[{"name":"uid","description":"User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"creation_time","description":"When the account was first created","type":"double","hidden":false,"required":false,"index":false},{"name":"failed_login_count","description":"The number of failed login attempts using an incorrect password. Count resets after a correct password is entered.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"failed_login_timestamp","description":"The time of the last failed login attempt. Resets after a correct password is entered","type":"double","hidden":false,"required":false,"index":false},{"name":"password_last_set_time","description":"The time the password was last changed","type":"double","hidden":false,"required":false,"index":false}]},{"name":"acpi_tables","description":"Firmware ACPI functional table common metadata and content.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"ACPI table name","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of compiled table data","type":"integer","hidden":false,"required":false,"index":false},{"name":"md5","description":"MD5 hash of table content","type":"text","hidden":false,"required":false,"index":false}]},{"name":"ad_config","description":"macOS Active Directory configuration.","platforms":["darwin"],"columns":[{"name":"name","description":"The macOS-specific configuration name","type":"text","hidden":false,"required":false,"index":false},{"name":"domain","description":"Active Directory trust domain","type":"text","hidden":false,"required":false,"index":false},{"name":"option","description":"Canonical name of option","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Variable typed option value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"alf","description":"macOS application layer firewall (ALF) service details.","platforms":["darwin"],"columns":[{"name":"allow_signed_enabled","description":"1 If allow signed mode is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"firewall_unload","description":"1 If firewall unloading enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"global_state","description":"1 If the firewall is enabled with exceptions, 2 if the firewall is configured to block all incoming connections, else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"logging_enabled","description":"1 If logging mode is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"logging_option","description":"Firewall logging option","type":"integer","hidden":false,"required":false,"index":false},{"name":"stealth_enabled","description":"1 If stealth mode is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"version","description":"Application Layer Firewall version","type":"text","hidden":false,"required":false,"index":false}]},{"name":"alf_exceptions","description":"macOS application layer firewall (ALF) service exceptions.","platforms":["darwin"],"columns":[{"name":"path","description":"Path to the executable that is excepted","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"Firewall exception state","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"alf_explicit_auths","description":"ALF services explicitly allowed to perform networking.","platforms":["darwin"],"columns":[{"name":"process","description":"Process name explicitly allowed","type":"text","hidden":false,"required":false,"index":false}]},{"name":"app_schemes","description":"macOS application schemes and handlers (e.g., http, file, mailto).","platforms":["darwin"],"columns":[{"name":"scheme","description":"Name of the scheme/protocol","type":"text","hidden":false,"required":false,"index":false},{"name":"handler","description":"Application label for the handler","type":"text","hidden":false,"required":false,"index":false},{"name":"enabled","description":"1 if this handler is the OS default, else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"external","description":"1 if this handler does NOT exist on macOS by default, else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"protected","description":"1 if this handler is protected (reserved) by macOS, else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"apparmor_events","description":"Track AppArmor events.","platforms":["linux"],"columns":[{"name":"type","description":"Event type","type":"text","hidden":false,"required":false,"index":false},{"name":"message","description":"Raw audit message","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false},{"name":"apparmor","description":"Apparmor Status like ALLOWED, DENIED etc.","type":"text","hidden":false,"required":false,"index":false},{"name":"operation","description":"Permission requested by the process","type":"text","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process PID","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"profile","description":"Apparmor profile name","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Process name","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"comm","description":"Command-line name of the command that was used to invoke the analyzed process","type":"text","hidden":false,"required":false,"index":false},{"name":"denied_mask","description":"Denied permissions for the process","type":"text","hidden":false,"required":false,"index":false},{"name":"capname","description":"Capability requested by the process","type":"text","hidden":false,"required":false,"index":false},{"name":"fsuid","description":"Filesystem user ID","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"ouid","description":"Object owner's user ID","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"capability","description":"Capability number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"requested_mask","description":"Requested access mask","type":"text","hidden":false,"required":false,"index":false},{"name":"info","description":"Additional information","type":"text","hidden":false,"required":false,"index":false},{"name":"error","description":"Error information","type":"text","hidden":false,"required":false,"index":false},{"name":"namespace","description":"AppArmor namespace","type":"text","hidden":false,"required":false,"index":false},{"name":"label","description":"AppArmor label","type":"text","hidden":false,"required":false,"index":false}]},{"name":"apparmor_profiles","description":"Track active AppArmor profiles.","platforms":["linux"],"columns":[{"name":"path","description":"Unique, aa-status compatible, policy identifier.","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Policy name.","type":"text","hidden":false,"required":false,"index":false},{"name":"attach","description":"Which executable(s) a profile will attach to.","type":"text","hidden":false,"required":false,"index":false},{"name":"mode","description":"How the policy is applied.","type":"text","hidden":false,"required":false,"index":false},{"name":"sha1","description":"A unique hash that identifies this policy.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"appcompat_shims","description":"Application Compatibility shims are a way to persist malware. This table presents the AppCompat Shim information from the registry in a nice format. See http://files.brucon.org/2015/Tomczak_and_Ballenthin_Shims_for_the_Win.pdf for more details.","platforms":["windows"],"columns":[{"name":"executable","description":"Name of the executable that is being shimmed. This is pulled from the registry.","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"This is the path to the SDB database.","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Description of the SDB.","type":"text","hidden":false,"required":false,"index":false},{"name":"install_time","description":"Install time of the SDB","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of the SDB database.","type":"text","hidden":false,"required":false,"index":false},{"name":"sdb_id","description":"Unique GUID of the SDB.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"apps","description":"macOS applications installed in known search paths (e.g., /Applications).","platforms":["darwin"],"columns":[{"name":"name","description":"Name of the Name.app folder","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Absolute and full Name.app path","type":"text","hidden":false,"required":false,"index":false},{"name":"bundle_executable","description":"Info properties CFBundleExecutable label","type":"text","hidden":false,"required":false,"index":false},{"name":"bundle_identifier","description":"Info properties CFBundleIdentifier label","type":"text","hidden":false,"required":false,"index":false},{"name":"bundle_name","description":"Info properties CFBundleName label","type":"text","hidden":false,"required":false,"index":false},{"name":"bundle_short_version","description":"Info properties CFBundleShortVersionString label","type":"text","hidden":false,"required":false,"index":false},{"name":"bundle_version","description":"Info properties CFBundleVersion label","type":"text","hidden":false,"required":false,"index":false},{"name":"bundle_package_type","description":"Info properties CFBundlePackageType label","type":"text","hidden":false,"required":false,"index":false},{"name":"environment","description":"Application-set environment variables","type":"text","hidden":false,"required":false,"index":false},{"name":"element","description":"Does the app identify as a background agent","type":"text","hidden":false,"required":false,"index":false},{"name":"compiler","description":"Info properties DTCompiler label","type":"text","hidden":false,"required":false,"index":false},{"name":"development_region","description":"Info properties CFBundleDevelopmentRegion label","type":"text","hidden":false,"required":false,"index":false},{"name":"display_name","description":"Info properties CFBundleDisplayName label","type":"text","hidden":false,"required":false,"index":false},{"name":"info_string","description":"Info properties CFBundleGetInfoString label","type":"text","hidden":false,"required":false,"index":false},{"name":"minimum_system_version","description":"Minimum version of macOS required for the app to run","type":"text","hidden":false,"required":false,"index":false},{"name":"category","description":"The UTI that categorizes the app for the App Store","type":"text","hidden":false,"required":false,"index":false},{"name":"applescript_enabled","description":"Info properties NSAppleScriptEnabled label","type":"text","hidden":false,"required":false,"index":false},{"name":"copyright","description":"Info properties NSHumanReadableCopyright label","type":"text","hidden":false,"required":false,"index":false},{"name":"last_opened_time","description":"The time that the app was last used","type":"double","hidden":false,"required":false,"index":false}]},{"name":"apt_sources","description":"Current list of APT repositories or software channels.","platforms":["linux"],"columns":[{"name":"name","description":"Repository name","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Source file","type":"text","hidden":false,"required":false,"index":false},{"name":"base_uri","description":"Repository base URI","type":"text","hidden":false,"required":false,"index":false},{"name":"release","description":"Release name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Repository source version","type":"text","hidden":false,"required":false,"index":false},{"name":"maintainer","description":"Repository maintainer","type":"text","hidden":false,"required":false,"index":false},{"name":"components","description":"Repository components","type":"text","hidden":false,"required":false,"index":false},{"name":"architectures","description":"Repository architectures","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"arp_cache","description":"Address resolution cache, both static and dynamic (from ARP, NDP).","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"address","description":"IPv4 address target","type":"text","hidden":false,"required":false,"index":false},{"name":"mac","description":"MAC address of broadcasted address","type":"text","hidden":false,"required":false,"index":false},{"name":"interface","description":"Interface of the network for the MAC","type":"text","hidden":false,"required":false,"index":false},{"name":"permanent","description":"1 for true, 0 for false","type":"text","hidden":false,"required":false,"index":false}]},{"name":"asl","description":"Queries the Apple System Log data structure for system events.","platforms":["darwin"],"columns":[{"name":"time","description":"Unix timestamp. Set automatically","type":"integer","hidden":false,"required":false,"index":false},{"name":"time_nano_sec","description":"Nanosecond time.","type":"integer","hidden":false,"required":false,"index":false},{"name":"host","description":"Sender's address (set by the server).","type":"text","hidden":false,"required":false,"index":false},{"name":"sender","description":"Sender's identification string. Default is process name.","type":"text","hidden":false,"required":false,"index":false},{"name":"facility","description":"Sender's facility. Default is 'user'.","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Sending process ID encoded as a string. Set automatically.","type":"integer","hidden":false,"required":false,"index":false},{"name":"gid","description":"GID that sent the log message (set by the server).","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid","description":"UID that sent the log message (set by the server).","type":"bigint","hidden":false,"required":false,"index":false},{"name":"level","description":"Log level number. See levels in asl.h.","type":"integer","hidden":false,"required":false,"index":false},{"name":"message","description":"Message text.","type":"text","hidden":false,"required":false,"index":false},{"name":"ref_pid","description":"Reference PID for messages proxied by launchd","type":"integer","hidden":false,"required":false,"index":false},{"name":"ref_proc","description":"Reference process for messages proxied by launchd","type":"text","hidden":false,"required":false,"index":false},{"name":"extra","description":"Extra columns, in JSON format. Queries against this column are performed entirely in SQLite, so do not benefit from efficient querying via asl.h.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"atom_packages","description":"Lists all atom packages in a directory or globally installed in a system.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"name","description":"Package display name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Package supplied version","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Package supplied description","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Package's package.json path","type":"text","hidden":false,"required":false,"index":false},{"name":"license","description":"License for package","type":"text","hidden":false,"required":false,"index":false},{"name":"homepage","description":"Package supplied homepage","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"The local user that owns the plugin","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"augeas","description":"Configuration files parsed by augeas.","platforms":["darwin","linux"],"columns":[{"name":"node","description":"The node path of the configuration item","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"The value of the configuration item","type":"text","hidden":false,"required":false,"index":false},{"name":"label","description":"The label of the configuration item","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"The path to the configuration file","type":"text","hidden":false,"required":false,"index":false}]},{"name":"authenticode","description":"File (executable, bundle, installer, disk) code signing status.","platforms":["windows"],"columns":[{"name":"path","description":"Must provide a path or directory","type":"text","hidden":false,"required":true,"index":false},{"name":"original_program_name","description":"The original program name that the publisher has signed","type":"text","hidden":false,"required":false,"index":false},{"name":"serial_number","description":"The certificate serial number","type":"text","hidden":false,"required":false,"index":false},{"name":"issuer_name","description":"The certificate issuer name","type":"text","hidden":false,"required":false,"index":false},{"name":"subject_name","description":"The certificate subject name","type":"text","hidden":false,"required":false,"index":false},{"name":"result","description":"The signature check result","type":"text","hidden":false,"required":false,"index":false}]},{"name":"authorization_mechanisms","description":"macOS Authorization mechanisms database.","platforms":["darwin"],"columns":[{"name":"label","description":"Label of the authorization right","type":"text","hidden":false,"required":false,"index":false},{"name":"plugin","description":"Authorization plugin name","type":"text","hidden":false,"required":false,"index":false},{"name":"mechanism","description":"Name of the mechanism that will be called","type":"text","hidden":false,"required":false,"index":false},{"name":"privileged","description":"If privileged it will run as root, else as an anonymous user","type":"text","hidden":false,"required":false,"index":false},{"name":"entry","description":"The whole string entry","type":"text","hidden":false,"required":false,"index":false}]},{"name":"authorizations","description":"macOS Authorization rights database.","platforms":["darwin"],"columns":[{"name":"label","description":"Item name, usually in reverse domain format","type":"text","hidden":false,"required":false,"index":false},{"name":"modified","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"allow_root","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"timeout","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"tries","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"authenticate_user","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"shared","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"comment","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"created","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"session_owner","description":"Label top-level key","type":"text","hidden":false,"required":false,"index":false}]},{"name":"authorized_keys","description":"A line-delimited authorized_keys table.","platforms":["darwin","linux"],"columns":[{"name":"uid","description":"The local owner of authorized_keys file","type":"bigint","hidden":false,"required":false,"index":false},{"name":"algorithm","description":"Key type","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Key encoded as base64","type":"text","hidden":false,"required":false,"index":false},{"name":"options","description":"Optional list of login options","type":"text","hidden":false,"required":false,"index":false},{"name":"comment","description":"Optional comment","type":"text","hidden":false,"required":false,"index":false},{"name":"key_file","description":"Path to the authorized_keys file","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"autoexec","description":"Aggregate of executables that will automatically execute on the target machine. This is an amalgamation of other tables like services, scheduled_tasks, startup_items and more.","platforms":["windows"],"columns":[{"name":"path","description":"Path to the executable","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the program","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Source table of the autoexec item","type":"text","hidden":false,"required":false,"index":false}]},{"name":"azure_instance_metadata","description":"Azure instance metadata.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"location","description":"Azure Region the VM is running in","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"offer","description":"Offer information for the VM image (Azure image gallery VMs only)","type":"text","hidden":false,"required":false,"index":false},{"name":"publisher","description":"Publisher of the VM image","type":"text","hidden":false,"required":false,"index":false},{"name":"sku","description":"SKU for the VM image","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Version of the VM image","type":"text","hidden":false,"required":false,"index":false},{"name":"os_type","description":"Linux or Windows","type":"text","hidden":false,"required":false,"index":false},{"name":"platform_update_domain","description":"Update domain the VM is running in","type":"text","hidden":false,"required":false,"index":false},{"name":"platform_fault_domain","description":"Fault domain the VM is running in","type":"text","hidden":false,"required":false,"index":false},{"name":"vm_id","description":"Unique identifier for the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"vm_size","description":"VM size","type":"text","hidden":false,"required":false,"index":false},{"name":"subscription_id","description":"Azure subscription for the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"resource_group_name","description":"Resource group for the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"placement_group_id","description":"Placement group for the VM scale set","type":"text","hidden":false,"required":false,"index":false},{"name":"vm_scale_set_name","description":"VM scale set name","type":"text","hidden":false,"required":false,"index":false},{"name":"zone","description":"Availability zone of the VM","type":"text","hidden":false,"required":false,"index":false}]},{"name":"azure_instance_tags","description":"Azure instance tags.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"vm_id","description":"Unique identifier for the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"The tag key","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"The tag value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"background_activities_moderator","description":"Background Activities Moderator (BAM) tracks application execution.","platforms":["windows"],"columns":[{"name":"path","description":"Application file path.","type":"text","hidden":false,"required":false,"index":false},{"name":"last_execution_time","description":"Most recent time application was executed.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sid","description":"User SID.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"battery","description":"Provides information about the internal battery of a Macbook.","platforms":["darwin"],"columns":[{"name":"manufacturer","description":"The battery manufacturer's name","type":"text","hidden":false,"required":false,"index":false},{"name":"manufacture_date","description":"The date the battery was manufactured UNIX Epoch","type":"integer","hidden":false,"required":false,"index":false},{"name":"model","description":"The battery's model number","type":"text","hidden":false,"required":false,"index":false},{"name":"serial_number","description":"The battery's unique serial number","type":"text","hidden":false,"required":false,"index":false},{"name":"cycle_count","description":"The number of charge/discharge cycles","type":"integer","hidden":false,"required":false,"index":false},{"name":"health","description":"One of the following: \"Good\" describes a well-performing battery, \"Fair\" describes a functional battery with limited capacity, or \"Poor\" describes a battery that's not capable of providing power","type":"text","hidden":false,"required":false,"index":false},{"name":"condition","description":"One of the following: \"Normal\" indicates the condition of the battery is within normal tolerances, \"Service Needed\" indicates that the battery should be checked out by a licensed Mac repair service, \"Permanent Failure\" indicates the battery needs replacement","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"One of the following: \"AC Power\" indicates the battery is connected to an external power source, \"Battery Power\" indicates that the battery is drawing internal power, \"Off Line\" indicates the battery is off-line or no longer connected","type":"text","hidden":false,"required":false,"index":false},{"name":"charging","description":"1 if the battery is currently being charged by a power source. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"charged","description":"1 if the battery is currently completely charged. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"designed_capacity","description":"The battery's designed capacity in mAh","type":"integer","hidden":false,"required":false,"index":false},{"name":"max_capacity","description":"The battery's actual capacity when it is fully charged in mAh","type":"integer","hidden":false,"required":false,"index":false},{"name":"current_capacity","description":"The battery's current charged capacity in mAh","type":"integer","hidden":false,"required":false,"index":false},{"name":"percent_remaining","description":"The percentage of battery remaining before it is drained","type":"integer","hidden":false,"required":false,"index":false},{"name":"amperage","description":"The battery's current amperage in mA","type":"integer","hidden":false,"required":false,"index":false},{"name":"voltage","description":"The battery's current voltage in mV","type":"integer","hidden":false,"required":false,"index":false},{"name":"minutes_until_empty","description":"The number of minutes until the battery is fully depleted. This value is -1 if this time is still being calculated","type":"integer","hidden":false,"required":false,"index":false},{"name":"minutes_to_full_charge","description":"The number of minutes until the battery is fully charged. This value is -1 if this time is still being calculated","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"bitlocker_info","description":"Retrieve bitlocker status of the machine.","platforms":["windows"],"columns":[{"name":"device_id","description":"ID of the encrypted drive.","type":"text","hidden":false,"required":false,"index":false},{"name":"drive_letter","description":"Drive letter of the encrypted drive.","type":"text","hidden":false,"required":false,"index":false},{"name":"persistent_volume_id","description":"Persistent ID of the drive.","type":"text","hidden":false,"required":false,"index":false},{"name":"conversion_status","description":"The bitlocker conversion status of the drive.","type":"integer","hidden":false,"required":false,"index":false},{"name":"protection_status","description":"The bitlocker protection status of the drive.","type":"integer","hidden":false,"required":false,"index":false},{"name":"encryption_method","description":"The encryption type of the device.","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"The FVE metadata version of the drive.","type":"integer","hidden":false,"required":false,"index":false},{"name":"percentage_encrypted","description":"The percentage of the drive that is encrypted.","type":"integer","hidden":false,"required":false,"index":false},{"name":"lock_status","description":"The accessibility status of the drive from Windows.","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"block_devices","description":"Block (buffered access) device file nodes: disks, ramdisks, and DMG containers.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Block device name","type":"text","hidden":false,"required":false,"index":false},{"name":"parent","description":"Block device parent name","type":"text","hidden":false,"required":false,"index":false},{"name":"vendor","description":"Block device vendor string","type":"text","hidden":false,"required":false,"index":false},{"name":"model","description":"Block device model string identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Block device size in blocks","type":"bigint","hidden":false,"required":false,"index":false},{"name":"block_size","description":"Block size in bytes","type":"integer","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Block device Universally Unique Identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Block device type string","type":"text","hidden":false,"required":false,"index":false},{"name":"label","description":"Block device label string","type":"text","hidden":false,"required":false,"index":false}]},{"name":"bpf_process_events","description":"Track time/action process executions.","platforms":["linux"],"columns":[{"name":"tid","description":"Thread ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cid","description":"Cgroup ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"exit_code","description":"Exit code of the system call","type":"text","hidden":false,"required":false,"index":false},{"name":"probe_error","description":"Set to 1 if one or more buffers could not be captured","type":"integer","hidden":false,"required":false,"index":false},{"name":"syscall","description":"System call name","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Binary path","type":"text","hidden":false,"required":false,"index":false},{"name":"cwd","description":"Current working directory","type":"text","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Command line arguments","type":"text","hidden":false,"required":false,"index":false},{"name":"duration","description":"How much time was spent inside the syscall (nsecs)","type":"integer","hidden":false,"required":false,"index":false},{"name":"json_cmdline","description":"Command line arguments, in JSON format","type":"text","hidden":true,"required":false,"index":false},{"name":"ntime","description":"The nsecs uptime timestamp as obtained from BPF","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":true,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"bpf_socket_events","description":"Track network socket opens and closes.","platforms":["linux"],"columns":[{"name":"tid","description":"Thread ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cid","description":"Cgroup ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"exit_code","description":"Exit code of the system call","type":"text","hidden":false,"required":false,"index":false},{"name":"probe_error","description":"Set to 1 if one or more buffers could not be captured","type":"integer","hidden":false,"required":false,"index":false},{"name":"syscall","description":"System call name","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","hidden":false,"required":false,"index":false},{"name":"fd","description":"The file description for the process socket","type":"text","hidden":false,"required":false,"index":false},{"name":"family","description":"The Internet protocol family ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"The socket type","type":"integer","hidden":false,"required":false,"index":false},{"name":"protocol","description":"The network protocol ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"local_address","description":"Local address associated with socket","type":"text","hidden":false,"required":false,"index":false},{"name":"remote_address","description":"Remote address associated with socket","type":"text","hidden":false,"required":false,"index":false},{"name":"local_port","description":"Local network protocol port number","type":"integer","hidden":false,"required":false,"index":false},{"name":"remote_port","description":"Remote network protocol port number","type":"integer","hidden":false,"required":false,"index":false},{"name":"duration","description":"How much time was spent inside the syscall (nsecs)","type":"integer","hidden":false,"required":false,"index":false},{"name":"ntime","description":"The nsecs uptime timestamp as obtained from BPF","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":true,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"browser_plugins","description":"All C/NPAPI browser plugin details for all users. C/NPAPI has been deprecated on all major browsers. To query for plugins on modern browsers, try: `chrome_extensions` `firefox_addons` `safari_extensions`.","platforms":["darwin"],"columns":[{"name":"uid","description":"The local user that owns the plugin","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"Plugin display name","type":"text","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Plugin identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Plugin short version","type":"text","hidden":false,"required":false,"index":false},{"name":"sdk","description":"Build SDK used to compile plugin","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Plugin description text","type":"text","hidden":false,"required":false,"index":false},{"name":"development_region","description":"Plugin language-localization","type":"text","hidden":false,"required":false,"index":false},{"name":"native","description":"Plugin requires native execution","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to plugin bundle","type":"text","hidden":false,"required":false,"index":false},{"name":"disabled","description":"Is the plugin disabled. 1 = Disabled","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"carbon_black_info","description":"Returns info about a Carbon Black sensor install.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"sensor_id","description":"Sensor ID of the Carbon Black sensor","type":"integer","hidden":false,"required":false,"index":false},{"name":"config_name","description":"Sensor group","type":"text","hidden":false,"required":false,"index":false},{"name":"collect_store_files","description":"If the sensor is configured to send back binaries to the Carbon Black server","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_module_loads","description":"If the sensor is configured to capture module loads","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_module_info","description":"If the sensor is configured to collect metadata of binaries","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_file_mods","description":"If the sensor is configured to collect file modification events","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_reg_mods","description":"If the sensor is configured to collect registry modification events","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_net_conns","description":"If the sensor is configured to collect network connections","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_processes","description":"If the sensor is configured to process events","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_cross_processes","description":"If the sensor is configured to cross process events","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_emet_events","description":"If the sensor is configured to EMET events","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_data_file_writes","description":"If the sensor is configured to collect non binary file writes","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_process_user_context","description":"If the sensor is configured to collect the user running a process","type":"integer","hidden":false,"required":false,"index":false},{"name":"collect_sensor_operations","description":"Unknown","type":"integer","hidden":false,"required":false,"index":false},{"name":"log_file_disk_quota_mb","description":"Event file disk quota in MB","type":"integer","hidden":false,"required":false,"index":false},{"name":"log_file_disk_quota_percentage","description":"Event file disk quota in a percentage","type":"integer","hidden":false,"required":false,"index":false},{"name":"protection_disabled","description":"If the sensor is configured to report tamper events","type":"integer","hidden":false,"required":false,"index":false},{"name":"sensor_ip_addr","description":"IP address of the sensor","type":"text","hidden":false,"required":false,"index":false},{"name":"sensor_backend_server","description":"Carbon Black server","type":"text","hidden":false,"required":false,"index":false},{"name":"event_queue","description":"Size in bytes of Carbon Black event files on disk","type":"integer","hidden":false,"required":false,"index":false},{"name":"binary_queue","description":"Size in bytes of binaries waiting to be sent to Carbon Black server","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"carves","description":"List the set of completed and in-progress carves. If carve=1 then the query is treated as a new carve request.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"time","description":"Time at which the carve was kicked off","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sha256","description":"A SHA256 sum of the carved archive","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of the carved archive","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"The path of the requested carve","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"Status of the carve, can be STARTING, PENDING, SUCCESS, or FAILED","type":"text","hidden":false,"required":false,"index":false},{"name":"carve_guid","description":"Identifying value of the carve session","type":"text","hidden":false,"required":false,"index":false},{"name":"request_id","description":"Identifying value of the carve request (e.g., scheduled query name, distributed request, etc)","type":"text","hidden":false,"required":false,"index":false},{"name":"carve","description":"Set this value to '1' to start a file carve","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"certificates","description":"Certificate Authorities installed in Keychains/ca-bundles.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"common_name","description":"Certificate CommonName","type":"text","hidden":false,"required":false,"index":false},{"name":"subject","description":"Certificate distinguished name (deprecated, use subject2)","type":"text","hidden":false,"required":false,"index":false},{"name":"issuer","description":"Certificate issuer distinguished name (deprecated, use issuer2)","type":"text","hidden":false,"required":false,"index":false},{"name":"ca","description":"1 if CA: true (certificate is an authority) else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"self_signed","description":"1 if self-signed, else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"not_valid_before","description":"Lower bound of valid date","type":"text","hidden":false,"required":false,"index":false},{"name":"not_valid_after","description":"Certificate expiration data","type":"text","hidden":false,"required":false,"index":false},{"name":"signing_algorithm","description":"Signing algorithm used","type":"text","hidden":false,"required":false,"index":false},{"name":"key_algorithm","description":"Key algorithm used","type":"text","hidden":false,"required":false,"index":false},{"name":"key_strength","description":"Key size used for RSA/DSA, or curve name","type":"text","hidden":false,"required":false,"index":false},{"name":"key_usage","description":"Certificate key usage and extended key usage","type":"text","hidden":false,"required":false,"index":false},{"name":"subject_key_id","description":"SKID an optionally included SHA1","type":"text","hidden":false,"required":false,"index":false},{"name":"authority_key_id","description":"AKID an optionally included SHA1","type":"text","hidden":false,"required":false,"index":false},{"name":"sha1","description":"SHA1 hash of the raw certificate contents","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to Keychain or PEM bundle","type":"text","hidden":false,"required":false,"index":false},{"name":"serial","description":"Certificate serial number","type":"text","hidden":false,"required":false,"index":false},{"name":"sid","description":"SID","type":"text","hidden":true,"required":false,"index":false},{"name":"store_location","description":"Certificate system store location","type":"text","hidden":true,"required":false,"index":false},{"name":"store","description":"Certificate system store","type":"text","hidden":true,"required":false,"index":false},{"name":"username","description":"Username","type":"text","hidden":true,"required":false,"index":false},{"name":"store_id","description":"Exists for service/user stores. Contains raw store id provided by WinAPI.","type":"text","hidden":true,"required":false,"index":false},{"name":"issuer2","description":"Certificate issuer distinguished name","type":"text","hidden":true,"required":false,"index":false},{"name":"subject2","description":"Certificate distinguished name","type":"text","hidden":true,"required":false,"index":false}]},{"name":"chassis_info","description":"Display information pertaining to the chassis and its security status.","platforms":["windows"],"columns":[{"name":"audible_alarm","description":"If TRUE, the frame is equipped with an audible alarm.","type":"text","hidden":false,"required":false,"index":false},{"name":"breach_description","description":"If provided, gives a more detailed description of a detected security breach.","type":"text","hidden":false,"required":false,"index":false},{"name":"chassis_types","description":"A comma-separated list of chassis types, such as Desktop or Laptop.","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"An extended description of the chassis if available.","type":"text","hidden":false,"required":false,"index":false},{"name":"lock","description":"If TRUE, the frame is equipped with a lock.","type":"text","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"The manufacturer of the chassis.","type":"text","hidden":false,"required":false,"index":false},{"name":"model","description":"The model of the chassis.","type":"text","hidden":false,"required":false,"index":false},{"name":"security_breach","description":"The physical status of the chassis such as Breach Successful, Breach Attempted, etc.","type":"text","hidden":false,"required":false,"index":false},{"name":"serial","description":"The serial number of the chassis.","type":"text","hidden":false,"required":false,"index":false},{"name":"smbios_tag","description":"The assigned asset tag number of the chassis.","type":"text","hidden":false,"required":false,"index":false},{"name":"sku","description":"The Stock Keeping Unit number if available.","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"If available, gives various operational or nonoperational statuses such as OK, Degraded, and Pred Fail.","type":"text","hidden":false,"required":false,"index":false},{"name":"visible_alarm","description":"If TRUE, the frame is equipped with a visual alarm.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"chocolatey_packages","description":"Chocolatey packages installed in a system.","platforms":["windows"],"columns":[{"name":"name","description":"Package display name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Package-supplied version","type":"text","hidden":false,"required":false,"index":false},{"name":"summary","description":"Package-supplied summary","type":"text","hidden":false,"required":false,"index":false},{"name":"author","description":"Optional package author","type":"text","hidden":false,"required":false,"index":false},{"name":"license","description":"License under which package is launched","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path at which this package resides","type":"text","hidden":false,"required":false,"index":false}]},{"name":"chrome_extension_content_scripts","description":"Chrome browser extension content scripts.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"browser_type","description":"The browser type (Valid values: chrome, chromium, opera, yandex, brave)","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"The local user that owns the extension","type":"bigint","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Extension identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension-supplied version","type":"text","hidden":false,"required":false,"index":false},{"name":"script","description":"The content script used by the extension","type":"text","hidden":false,"required":false,"index":false},{"name":"match","description":"The pattern that the script is matched against","type":"text","hidden":false,"required":false,"index":false},{"name":"profile_path","description":"The profile path","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to extension folder","type":"text","hidden":false,"required":false,"index":false},{"name":"referenced","description":"1 if this extension is referenced by the Preferences file of the profile","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"chrome_extensions","description":"Chrome-based browser extensions.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"browser_type","description":"The browser type (Valid values: chrome, chromium, opera, yandex, brave, edge, edge_beta)","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"The local user that owns the extension","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"Extension display name","type":"text","hidden":false,"required":false,"index":false},{"name":"profile","description":"The name of the Chrome profile that contains this extension","type":"text","hidden":false,"required":false,"index":false},{"name":"profile_path","description":"The profile path","type":"text","hidden":false,"required":false,"index":false},{"name":"referenced_identifier","description":"Extension identifier, as specified by the preferences file. Empty if the extension is not in the profile.","type":"text","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Extension identifier, computed from its manifest. Empty in case of error.","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension-supplied version","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Extension-optional description","type":"text","hidden":false,"required":false,"index":false},{"name":"default_locale","description":"Default locale supported by extension","type":"text","hidden":false,"required":false,"index":false},{"name":"current_locale","description":"Current locale supported by extension","type":"text","hidden":false,"required":false,"index":false},{"name":"update_url","description":"Extension-supplied update URI","type":"text","hidden":false,"required":false,"index":false},{"name":"author","description":"Optional extension author","type":"text","hidden":false,"required":false,"index":false},{"name":"persistent","description":"1 If extension is persistent across all tabs else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to extension folder","type":"text","hidden":false,"required":false,"index":false},{"name":"permissions","description":"The permissions required by the extension","type":"text","hidden":false,"required":false,"index":false},{"name":"permissions_json","description":"The JSON-encoded permissions required by the extension","type":"text","hidden":true,"required":false,"index":false},{"name":"optional_permissions","description":"The permissions optionally required by the extensions","type":"text","hidden":false,"required":false,"index":false},{"name":"optional_permissions_json","description":"The JSON-encoded permissions optionally required by the extensions","type":"text","hidden":true,"required":false,"index":false},{"name":"manifest_hash","description":"The SHA256 hash of the manifest.json file","type":"text","hidden":false,"required":false,"index":false},{"name":"referenced","description":"1 if this extension is referenced by the Preferences file of the profile","type":"bigint","hidden":false,"required":false,"index":false},{"name":"from_webstore","description":"True if this extension was installed from the web store","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"1 if this extension is enabled","type":"text","hidden":false,"required":false,"index":false},{"name":"install_time","description":"Extension install time, in its original Webkit format","type":"text","hidden":false,"required":false,"index":false},{"name":"install_timestamp","description":"Extension install time, converted to unix time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"manifest_json","description":"The manifest file of the extension","type":"text","hidden":true,"required":false,"index":false},{"name":"key","description":"The extension key, from the manifest file","type":"text","hidden":true,"required":false,"index":false}]},{"name":"connectivity","description":"Provides the overall system's network state.","platforms":["windows"],"columns":[{"name":"disconnected","description":"True if the all interfaces are not connected to any network","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv4_no_traffic","description":"True if any interface is connected via IPv4, but has seen no traffic","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv6_no_traffic","description":"True if any interface is connected via IPv6, but has seen no traffic","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv4_subnet","description":"True if any interface is connected to the local subnet via IPv4","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv4_local_network","description":"True if any interface is connected to a routed network via IPv4","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv4_internet","description":"True if any interface is connected to the Internet via IPv4","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv6_subnet","description":"True if any interface is connected to the local subnet via IPv6","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv6_local_network","description":"True if any interface is connected to a routed network via IPv6","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv6_internet","description":"True if any interface is connected to the Internet via IPv6","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"cpu_info","description":"Retrieve cpu hardware info of the machine.","platforms":["linux","windows"],"columns":[{"name":"device_id","description":"The DeviceID of the CPU.","type":"text","hidden":false,"required":false,"index":false},{"name":"model","description":"The model of the CPU.","type":"text","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"The manufacturer of the CPU.","type":"text","hidden":false,"required":false,"index":false},{"name":"processor_type","description":"The processor type, such as Central, Math, or Video.","type":"text","hidden":false,"required":false,"index":false},{"name":"cpu_status","description":"The current operating status of the CPU.","type":"integer","hidden":false,"required":false,"index":false},{"name":"number_of_cores","description":"The number of cores of the CPU.","type":"text","hidden":false,"required":false,"index":false},{"name":"logical_processors","description":"The number of logical processors of the CPU.","type":"integer","hidden":false,"required":false,"index":false},{"name":"address_width","description":"The width of the CPU address bus.","type":"text","hidden":false,"required":false,"index":false},{"name":"current_clock_speed","description":"The current frequency of the CPU.","type":"integer","hidden":false,"required":false,"index":false},{"name":"max_clock_speed","description":"The maximum possible frequency of the CPU.","type":"integer","hidden":false,"required":false,"index":false},{"name":"socket_designation","description":"The assigned socket on the board for the given CPU.","type":"text","hidden":false,"required":false,"index":false},{"name":"availability","description":"The availability and status of the CPU.","type":"text","hidden":true,"required":false,"index":false}]},{"name":"cpu_time","description":"Displays information from /proc/stat file about the time the cpu cores spent in different parts of the system.","platforms":["darwin","linux"],"columns":[{"name":"core","description":"Name of the cpu (core)","type":"integer","hidden":false,"required":false,"index":false},{"name":"user","description":"Time spent in user mode","type":"bigint","hidden":false,"required":false,"index":false},{"name":"nice","description":"Time spent in user mode with low priority (nice)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"system","description":"Time spent in system mode","type":"bigint","hidden":false,"required":false,"index":false},{"name":"idle","description":"Time spent in the idle task","type":"bigint","hidden":false,"required":false,"index":false},{"name":"iowait","description":"Time spent waiting for I/O to complete","type":"bigint","hidden":false,"required":false,"index":false},{"name":"irq","description":"Time spent servicing interrupts","type":"bigint","hidden":false,"required":false,"index":false},{"name":"softirq","description":"Time spent servicing softirqs","type":"bigint","hidden":false,"required":false,"index":false},{"name":"steal","description":"Time spent in other operating systems when running in a virtualized environment","type":"bigint","hidden":false,"required":false,"index":false},{"name":"guest","description":"Time spent running a virtual CPU for a guest OS under the control of the Linux kernel","type":"bigint","hidden":false,"required":false,"index":false},{"name":"guest_nice","description":"Time spent running a niced guest ","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"cpuid","description":"Useful CPU features from the cpuid ASM call.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"feature","description":"Present feature flags","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Bit value or string","type":"text","hidden":false,"required":false,"index":false},{"name":"output_register","description":"Register used to for feature value","type":"text","hidden":false,"required":false,"index":false},{"name":"output_bit","description":"Bit in register value for feature value","type":"integer","hidden":false,"required":false,"index":false},{"name":"input_eax","description":"Value of EAX used","type":"text","hidden":false,"required":false,"index":false}]},{"name":"crashes","description":"Application, System, and Mobile App crash logs.","platforms":["darwin"],"columns":[{"name":"type","description":"Type of crash log","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID of the crashed process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"crash_path","description":"Location of log file","type":"text","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Identifier of the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Version info of the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent PID of the crashed process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"responsible","description":"Process responsible for the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID of the crashed process","type":"integer","hidden":false,"required":false,"index":false},{"name":"datetime","description":"Date/Time at which the crash occurred","type":"text","hidden":false,"required":false,"index":false},{"name":"crashed_thread","description":"Thread ID which crashed","type":"bigint","hidden":false,"required":false,"index":false},{"name":"stack_trace","description":"Most recent frame from the stack trace","type":"text","hidden":false,"required":false,"index":false},{"name":"exception_type","description":"Exception type of the crash","type":"text","hidden":false,"required":false,"index":false},{"name":"exception_codes","description":"Exception codes from the crash","type":"text","hidden":false,"required":false,"index":false},{"name":"exception_notes","description":"Exception notes from the crash","type":"text","hidden":false,"required":false,"index":false},{"name":"registers","description":"The value of the system registers","type":"text","hidden":false,"required":false,"index":false}]},{"name":"crontab","description":"Line parsed values from system and user cron/tab.","platforms":["darwin","linux"],"columns":[{"name":"event","description":"The job @event name (rare)","type":"text","hidden":false,"required":false,"index":false},{"name":"minute","description":"The exact minute for the job","type":"text","hidden":false,"required":false,"index":false},{"name":"hour","description":"The hour of the day for the job","type":"text","hidden":false,"required":false,"index":false},{"name":"day_of_month","description":"The day of the month for the job","type":"text","hidden":false,"required":false,"index":false},{"name":"month","description":"The month of the year for the job","type":"text","hidden":false,"required":false,"index":false},{"name":"day_of_week","description":"The day of the week for the job","type":"text","hidden":false,"required":false,"index":false},{"name":"command","description":"Raw command string","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"File parsed","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"cups_destinations","description":"Returns all configured printers.","platforms":["darwin"],"columns":[{"name":"name","description":"Name of the printer","type":"text","hidden":false,"required":false,"index":false},{"name":"option_name","description":"Option name","type":"text","hidden":false,"required":false,"index":false},{"name":"option_value","description":"Option value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"cups_jobs","description":"Returns all completed print jobs from cups.","platforms":["darwin"],"columns":[{"name":"title","description":"Title of the printed job","type":"text","hidden":false,"required":false,"index":false},{"name":"destination","description":"The printer the job was sent to","type":"text","hidden":false,"required":false,"index":false},{"name":"user","description":"The user who printed the job","type":"text","hidden":false,"required":false,"index":false},{"name":"format","description":"The format of the print job","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"The size of the print job","type":"integer","hidden":false,"required":false,"index":false},{"name":"completed_time","description":"When the job completed printing","type":"integer","hidden":false,"required":false,"index":false},{"name":"processing_time","description":"How long the job took to process","type":"integer","hidden":false,"required":false,"index":false},{"name":"creation_time","description":"When the print request was initiated","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"curl","description":"Perform an http request and return stats about it.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"url","description":"The url for the request","type":"text","hidden":false,"required":true,"index":false},{"name":"method","description":"The HTTP method for the request","type":"text","hidden":false,"required":false,"index":false},{"name":"user_agent","description":"The user-agent string to use for the request","type":"text","hidden":false,"required":false,"index":false},{"name":"response_code","description":"The HTTP status code for the response","type":"integer","hidden":false,"required":false,"index":false},{"name":"round_trip_time","description":"Time taken to complete the request","type":"bigint","hidden":false,"required":false,"index":false},{"name":"bytes","description":"Number of bytes in the response","type":"bigint","hidden":false,"required":false,"index":false},{"name":"result","description":"The HTTP response body","type":"text","hidden":false,"required":false,"index":false}]},{"name":"curl_certificate","description":"Inspect TLS certificates by connecting to input hostnames.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"hostname","description":"Hostname to CURL (domain[:port], e.g. osquery.io)","type":"text","hidden":false,"required":true,"index":false},{"name":"common_name","description":"Common name of company issued to","type":"text","hidden":false,"required":false,"index":false},{"name":"organization","description":"Organization issued to","type":"text","hidden":false,"required":false,"index":false},{"name":"organization_unit","description":"Organization unit issued to","type":"text","hidden":false,"required":false,"index":false},{"name":"serial_number","description":"Certificate serial number","type":"text","hidden":false,"required":false,"index":false},{"name":"issuer_common_name","description":"Issuer common name","type":"text","hidden":false,"required":false,"index":false},{"name":"issuer_organization","description":"Issuer organization","type":"text","hidden":false,"required":false,"index":false},{"name":"issuer_organization_unit","description":"Issuer organization unit","type":"text","hidden":false,"required":false,"index":false},{"name":"valid_from","description":"Period of validity start date","type":"text","hidden":false,"required":false,"index":false},{"name":"valid_to","description":"Period of validity end date","type":"text","hidden":false,"required":false,"index":false},{"name":"sha256_fingerprint","description":"SHA-256 fingerprint","type":"text","hidden":false,"required":false,"index":false},{"name":"sha1_fingerprint","description":"SHA1 fingerprint","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Version Number","type":"integer","hidden":false,"required":false,"index":false},{"name":"signature_algorithm","description":"Signature Algorithm","type":"text","hidden":false,"required":false,"index":false},{"name":"signature","description":"Signature","type":"text","hidden":false,"required":false,"index":false},{"name":"subject_key_identifier","description":"Subject Key Identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"authority_key_identifier","description":"Authority Key Identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"key_usage","description":"Usage of key in certificate","type":"text","hidden":false,"required":false,"index":false},{"name":"extended_key_usage","description":"Extended usage of key in certificate","type":"text","hidden":false,"required":false,"index":false},{"name":"policies","description":"Certificate Policies","type":"text","hidden":false,"required":false,"index":false},{"name":"subject_alternative_names","description":"Subject Alternative Name","type":"text","hidden":false,"required":false,"index":false},{"name":"issuer_alternative_names","description":"Issuer Alternative Name","type":"text","hidden":false,"required":false,"index":false},{"name":"info_access","description":"Authority Information Access","type":"text","hidden":false,"required":false,"index":false},{"name":"subject_info_access","description":"Subject Information Access","type":"text","hidden":false,"required":false,"index":false},{"name":"policy_mappings","description":"Policy Mappings","type":"text","hidden":false,"required":false,"index":false},{"name":"has_expired","description":"1 if the certificate has expired, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"basic_constraint","description":"Basic Constraints","type":"text","hidden":false,"required":false,"index":false},{"name":"name_constraints","description":"Name Constraints","type":"text","hidden":false,"required":false,"index":false},{"name":"policy_constraints","description":"Policy Constraints","type":"text","hidden":false,"required":false,"index":false},{"name":"dump_certificate","description":"Set this value to '1' to dump certificate","type":"integer","hidden":true,"required":false,"index":false},{"name":"timeout","description":"Set this value to the timeout in seconds to complete the TLS handshake (default 4s, use 0 for no timeout)","type":"integer","hidden":true,"required":false,"index":false},{"name":"pem","description":"Certificate PEM format","type":"text","hidden":false,"required":false,"index":false}]},{"name":"deb_packages","description":"The installed DEB package database.","platforms":["linux"],"columns":[{"name":"name","description":"Package name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Package version","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Package source","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Package size in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"arch","description":"Package architecture","type":"text","hidden":false,"required":false,"index":false},{"name":"revision","description":"Package revision","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"Package status","type":"text","hidden":false,"required":false,"index":false},{"name":"maintainer","description":"Package maintainer","type":"text","hidden":false,"required":false,"index":false},{"name":"section","description":"Package section","type":"text","hidden":false,"required":false,"index":false},{"name":"priority","description":"Package priority","type":"text","hidden":false,"required":false,"index":false},{"name":"admindir","description":"libdpkg admindir. Defaults to /var/lib/dpkg","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","hidden":true,"required":false,"index":false}]},{"name":"default_environment","description":"Default environment variables and values.","platforms":["windows"],"columns":[{"name":"variable","description":"Name of the environment variable","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Value of the environment variable","type":"text","hidden":false,"required":false,"index":false},{"name":"expand","description":"1 if the variable needs expanding, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"device_file","description":"Similar to the file table, but use TSK and allow block address access.","platforms":["darwin","linux"],"columns":[{"name":"device","description":"Absolute file path to device node","type":"text","hidden":false,"required":true,"index":false},{"name":"partition","description":"A partition number","type":"text","hidden":false,"required":true,"index":false},{"name":"path","description":"A logical path within the device node","type":"text","hidden":false,"required":false,"index":false},{"name":"filename","description":"Name portion of file path","type":"text","hidden":false,"required":false,"index":false},{"name":"inode","description":"Filesystem inode number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid","description":"Owning user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Owning group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mode","description":"Permission bits","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of file in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"block_size","description":"Block size of filesystem","type":"integer","hidden":false,"required":false,"index":false},{"name":"atime","description":"Last access time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Last modification time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Creation time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"hard_links","description":"Number of hard links","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"File status","type":"text","hidden":false,"required":false,"index":false}]},{"name":"device_firmware","description":"A best-effort list of discovered firmware versions.","platforms":["darwin"],"columns":[{"name":"type","description":"Type of device","type":"text","hidden":false,"required":false,"index":false},{"name":"device","description":"The device name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Firmware version","type":"text","hidden":false,"required":false,"index":false}]},{"name":"device_hash","description":"Similar to the hash table, but use TSK and allow block address access.","platforms":["darwin","linux"],"columns":[{"name":"device","description":"Absolute file path to device node","type":"text","hidden":false,"required":true,"index":false},{"name":"partition","description":"A partition number","type":"text","hidden":false,"required":true,"index":false},{"name":"inode","description":"Filesystem inode number","type":"bigint","hidden":false,"required":true,"index":false},{"name":"md5","description":"MD5 hash of provided inode data","type":"text","hidden":false,"required":false,"index":false},{"name":"sha1","description":"SHA1 hash of provided inode data","type":"text","hidden":false,"required":false,"index":false},{"name":"sha256","description":"SHA256 hash of provided inode data","type":"text","hidden":false,"required":false,"index":false}]},{"name":"device_partitions","description":"Use TSK to enumerate details about partitions on a disk device.","platforms":["darwin","linux"],"columns":[{"name":"device","description":"Absolute file path to device node","type":"text","hidden":false,"required":true,"index":false},{"name":"partition","description":"A partition number or description","type":"integer","hidden":false,"required":false,"index":false},{"name":"label","description":"","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"","type":"text","hidden":false,"required":false,"index":false},{"name":"offset","description":"","type":"bigint","hidden":false,"required":false,"index":false},{"name":"blocks_size","description":"Byte size of each block","type":"bigint","hidden":false,"required":false,"index":false},{"name":"blocks","description":"Number of blocks","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inodes","description":"Number of meta nodes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"flags","description":"","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"disk_encryption","description":"Disk encryption status and information.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Disk name","type":"text","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Disk Universally Unique Identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"encrypted","description":"1 If encrypted: true (disk is encrypted), else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"Description of cipher type and mode if available","type":"text","hidden":false,"required":false,"index":false},{"name":"encryption_status","description":"Disk encryption status with one of following values: encrypted | not encrypted | undefined","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"Currently authenticated user if available","type":"text","hidden":false,"required":false,"index":false},{"name":"user_uuid","description":"UUID of authenticated user if available","type":"text","hidden":false,"required":false,"index":false},{"name":"filevault_status","description":"FileVault status with one of following values: on | off | unknown","type":"text","hidden":false,"required":false,"index":false}]},{"name":"disk_events","description":"Track DMG disk image events (appearance/disappearance) when opened.","platforms":["darwin"],"columns":[{"name":"action","description":"Appear or disappear","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of the DMG file accessed","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Disk event name","type":"text","hidden":false,"required":false,"index":false},{"name":"device","description":"Disk event BSD name","type":"text","hidden":false,"required":false,"index":false},{"name":"uuid","description":"UUID of the volume inside DMG if available","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of partition in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ejectable","description":"1 if ejectable, 0 if not","type":"integer","hidden":false,"required":false,"index":false},{"name":"mountable","description":"1 if mountable, 0 if not","type":"integer","hidden":false,"required":false,"index":false},{"name":"writable","description":"1 if writable, 0 if not","type":"integer","hidden":false,"required":false,"index":false},{"name":"content","description":"Disk event content","type":"text","hidden":false,"required":false,"index":false},{"name":"media_name","description":"Disk event media name string","type":"text","hidden":false,"required":false,"index":false},{"name":"vendor","description":"Disk event vendor string","type":"text","hidden":false,"required":false,"index":false},{"name":"filesystem","description":"Filesystem if available","type":"text","hidden":false,"required":false,"index":false},{"name":"checksum","description":"UDIF Master checksum if available (CRC32)","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of appearance/disappearance in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"disk_info","description":"Retrieve basic information about the physical disks of a system.","platforms":["windows"],"columns":[{"name":"partitions","description":"Number of detected partitions on disk.","type":"integer","hidden":false,"required":false,"index":false},{"name":"disk_index","description":"Physical drive number of the disk.","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"The interface type of the disk.","type":"text","hidden":false,"required":false,"index":false},{"name":"id","description":"The unique identifier of the drive on the system.","type":"text","hidden":false,"required":false,"index":false},{"name":"pnp_device_id","description":"The unique identifier of the drive on the system.","type":"text","hidden":false,"required":false,"index":false},{"name":"disk_size","description":"Size of the disk.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"The manufacturer of the disk.","type":"text","hidden":false,"required":false,"index":false},{"name":"hardware_model","description":"Hard drive model.","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"The label of the disk object.","type":"text","hidden":false,"required":false,"index":false},{"name":"serial","description":"The serial number of the disk.","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"The OS's description of the disk.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"dns_cache","description":"Enumerate the DNS cache using the undocumented DnsGetCacheDataTable function in dnsapi.dll.","platforms":["windows"],"columns":[{"name":"name","description":"DNS record name","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"DNS record type","type":"text","hidden":false,"required":false,"index":false},{"name":"flags","description":"DNS record flags","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"dns_resolvers","description":"Resolvers used by this host.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Address type index or order","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"Address type: sortlist, nameserver, search","type":"text","hidden":false,"required":false,"index":false},{"name":"address","description":"Resolver IP/IPv6 address","type":"text","hidden":false,"required":false,"index":false},{"name":"netmask","description":"Address (sortlist) netmask length","type":"text","hidden":false,"required":false,"index":false},{"name":"options","description":"Resolver options","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"docker_container_envs","description":"Docker container environment variables.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Environment variable name","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Environment variable value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_container_fs_changes","description":"Changes to files or directories on container's filesystem.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":true,"index":false},{"name":"path","description":"FIle or directory path relative to rootfs","type":"text","hidden":false,"required":false,"index":false},{"name":"change_type","description":"Type of change: C:Modified, A:Added, D:Deleted","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_container_labels","description":"Docker container labels.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Label key","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Optional label value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_container_mounts","description":"Docker container mounts.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of mount (bind, volume)","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Optional mount name","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Source path on host","type":"text","hidden":false,"required":false,"index":false},{"name":"destination","description":"Destination path inside container","type":"text","hidden":false,"required":false,"index":false},{"name":"driver","description":"Driver providing the mount","type":"text","hidden":false,"required":false,"index":false},{"name":"mode","description":"Mount options (rw, ro)","type":"text","hidden":false,"required":false,"index":false},{"name":"rw","description":"1 if read/write. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"propagation","description":"Mount propagation","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_container_networks","description":"Docker container networks.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Network name","type":"text","hidden":false,"required":false,"index":false},{"name":"network_id","description":"Network ID","type":"text","hidden":false,"required":false,"index":false},{"name":"endpoint_id","description":"Endpoint ID","type":"text","hidden":false,"required":false,"index":false},{"name":"gateway","description":"Gateway","type":"text","hidden":false,"required":false,"index":false},{"name":"ip_address","description":"IP address","type":"text","hidden":false,"required":false,"index":false},{"name":"ip_prefix_len","description":"IP subnet prefix length","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv6_gateway","description":"IPv6 gateway","type":"text","hidden":false,"required":false,"index":false},{"name":"ipv6_address","description":"IPv6 address","type":"text","hidden":false,"required":false,"index":false},{"name":"ipv6_prefix_len","description":"IPv6 subnet prefix length","type":"integer","hidden":false,"required":false,"index":false},{"name":"mac_address","description":"MAC address","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_container_ports","description":"Docker container ports.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Protocol (tcp, udp)","type":"text","hidden":false,"required":false,"index":false},{"name":"port","description":"Port inside the container","type":"integer","hidden":false,"required":false,"index":false},{"name":"host_ip","description":"Host IP address on which public port is listening","type":"text","hidden":false,"required":false,"index":false},{"name":"host_port","description":"Host port","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"docker_container_processes","description":"Docker container processes.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":true,"index":false},{"name":"pid","description":"Process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"The process path or shorthand argv[0]","type":"text","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Complete argv","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"Process state","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"euid","description":"Effective user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"egid","description":"Effective group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"suid","description":"Saved user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sgid","description":"Saved group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"wired_size","description":"Bytes of unpageable memory used by process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"resident_size","description":"Bytes of private memory used by process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"total_size","description":"Total virtual memory size","type":"bigint","hidden":false,"required":false,"index":false},{"name":"start_time","description":"Process start in seconds since boot (non-sleeping)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"parent","description":"Process parent's PID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pgroup","description":"Process group","type":"bigint","hidden":false,"required":false,"index":false},{"name":"threads","description":"Number of threads used by process","type":"integer","hidden":false,"required":false,"index":false},{"name":"nice","description":"Process nice level (-20 to 20, default 0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"user","description":"User name","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Cumulative CPU time. [DD-]HH:MM:SS format","type":"text","hidden":false,"required":false,"index":false},{"name":"cpu","description":"CPU utilization as percentage","type":"double","hidden":false,"required":false,"index":false},{"name":"mem","description":"Memory utilization as percentage","type":"double","hidden":false,"required":false,"index":false}]},{"name":"docker_container_stats","description":"Docker container statistics. Queries on this table take at least one second.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":true,"index":false},{"name":"name","description":"Container name","type":"text","hidden":false,"required":false,"index":false},{"name":"pids","description":"Number of processes","type":"integer","hidden":false,"required":false,"index":false},{"name":"read","description":"UNIX time when stats were read","type":"bigint","hidden":false,"required":false,"index":false},{"name":"preread","description":"UNIX time when stats were last read","type":"bigint","hidden":false,"required":false,"index":false},{"name":"interval","description":"Difference between read and preread in nano-seconds","type":"bigint","hidden":false,"required":false,"index":false},{"name":"disk_read","description":"Total disk read bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"disk_write","description":"Total disk write bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"num_procs","description":"Number of processors","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_total_usage","description":"Total CPU usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cpu_kernelmode_usage","description":"CPU kernel mode usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cpu_usermode_usage","description":"CPU user mode usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"system_cpu_usage","description":"CPU system usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"online_cpus","description":"Online CPUs","type":"integer","hidden":false,"required":false,"index":false},{"name":"pre_cpu_total_usage","description":"Last read total CPU usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pre_cpu_kernelmode_usage","description":"Last read CPU kernel mode usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pre_cpu_usermode_usage","description":"Last read CPU user mode usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pre_system_cpu_usage","description":"Last read CPU system usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pre_online_cpus","description":"Last read online CPUs","type":"integer","hidden":false,"required":false,"index":false},{"name":"memory_usage","description":"Memory usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"memory_max_usage","description":"Memory maximum usage","type":"bigint","hidden":false,"required":false,"index":false},{"name":"memory_limit","description":"Memory limit","type":"bigint","hidden":false,"required":false,"index":false},{"name":"network_rx_bytes","description":"Total network bytes read","type":"bigint","hidden":false,"required":false,"index":false},{"name":"network_tx_bytes","description":"Total network bytes transmitted","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"docker_containers","description":"Docker containers information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Container name","type":"text","hidden":false,"required":false,"index":false},{"name":"image","description":"Docker image (name) used to launch this container","type":"text","hidden":false,"required":false,"index":false},{"name":"image_id","description":"Docker image ID","type":"text","hidden":false,"required":false,"index":false},{"name":"command","description":"Command with arguments","type":"text","hidden":false,"required":false,"index":false},{"name":"created","description":"Time of creation as UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"state","description":"Container state (created, restarting, running, removing, paused, exited, dead)","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"Container status information","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Identifier of the initial process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Container path","type":"text","hidden":false,"required":false,"index":false},{"name":"config_entrypoint","description":"Container entrypoint(s)","type":"text","hidden":false,"required":false,"index":false},{"name":"started_at","description":"Container start time as string","type":"text","hidden":false,"required":false,"index":false},{"name":"finished_at","description":"Container finish time as string","type":"text","hidden":false,"required":false,"index":false},{"name":"privileged","description":"Is the container privileged","type":"integer","hidden":false,"required":false,"index":false},{"name":"security_options","description":"List of container security options","type":"text","hidden":false,"required":false,"index":false},{"name":"env_variables","description":"Container environmental variables","type":"text","hidden":false,"required":false,"index":false},{"name":"readonly_rootfs","description":"Is the root filesystem mounted as read only","type":"integer","hidden":false,"required":false,"index":false},{"name":"cgroup_namespace","description":"cgroup namespace","type":"text","hidden":true,"required":false,"index":false},{"name":"ipc_namespace","description":"IPC namespace","type":"text","hidden":true,"required":false,"index":false},{"name":"mnt_namespace","description":"Mount namespace","type":"text","hidden":true,"required":false,"index":false},{"name":"net_namespace","description":"Network namespace","type":"text","hidden":true,"required":false,"index":false},{"name":"pid_namespace","description":"PID namespace","type":"text","hidden":true,"required":false,"index":false},{"name":"user_namespace","description":"User namespace","type":"text","hidden":true,"required":false,"index":false},{"name":"uts_namespace","description":"UTS namespace","type":"text","hidden":true,"required":false,"index":false}]},{"name":"docker_image_history","description":"Docker image history information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Image ID","type":"text","hidden":false,"required":false,"index":false},{"name":"created","description":"Time of creation as UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of instruction in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"created_by","description":"Created by instruction","type":"text","hidden":false,"required":false,"index":false},{"name":"tags","description":"Comma-separated list of tags","type":"text","hidden":false,"required":false,"index":false},{"name":"comment","description":"Instruction comment","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_image_labels","description":"Docker image labels.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Image ID","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Label key","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Optional label value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_image_layers","description":"Docker image layers information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Image ID","type":"text","hidden":false,"required":false,"index":false},{"name":"layer_id","description":"Layer ID","type":"text","hidden":false,"required":false,"index":false},{"name":"layer_order","description":"Layer Order (1 = base layer)","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"docker_images","description":"Docker images information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Image ID","type":"text","hidden":false,"required":false,"index":false},{"name":"created","description":"Time of creation as UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"size_bytes","description":"Size of image in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"tags","description":"Comma-separated list of repository tags","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_info","description":"Docker system information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Docker system ID","type":"text","hidden":false,"required":false,"index":false},{"name":"containers","description":"Total number of containers","type":"integer","hidden":false,"required":false,"index":false},{"name":"containers_running","description":"Number of containers currently running","type":"integer","hidden":false,"required":false,"index":false},{"name":"containers_paused","description":"Number of containers in paused state","type":"integer","hidden":false,"required":false,"index":false},{"name":"containers_stopped","description":"Number of containers in stopped state","type":"integer","hidden":false,"required":false,"index":false},{"name":"images","description":"Number of images","type":"integer","hidden":false,"required":false,"index":false},{"name":"storage_driver","description":"Storage driver","type":"text","hidden":false,"required":false,"index":false},{"name":"memory_limit","description":"1 if memory limit support is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"swap_limit","description":"1 if swap limit support is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"kernel_memory","description":"1 if kernel memory limit support is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_cfs_period","description":"1 if CPU Completely Fair Scheduler (CFS) period support is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_cfs_quota","description":"1 if CPU Completely Fair Scheduler (CFS) quota support is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_shares","description":"1 if CPU share weighting support is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_set","description":"1 if CPU set selection support is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv4_forwarding","description":"1 if IPv4 forwarding is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"bridge_nf_iptables","description":"1 if bridge netfilter iptables is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"bridge_nf_ip6tables","description":"1 if bridge netfilter ip6tables is enabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"oom_kill_disable","description":"1 if Out-of-memory kill is disabled. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"logging_driver","description":"Logging driver","type":"text","hidden":false,"required":false,"index":false},{"name":"cgroup_driver","description":"Control groups driver","type":"text","hidden":false,"required":false,"index":false},{"name":"kernel_version","description":"Kernel version","type":"text","hidden":false,"required":false,"index":false},{"name":"os","description":"Operating system","type":"text","hidden":false,"required":false,"index":false},{"name":"os_type","description":"Operating system type","type":"text","hidden":false,"required":false,"index":false},{"name":"architecture","description":"Hardware architecture","type":"text","hidden":false,"required":false,"index":false},{"name":"cpus","description":"Number of CPUs","type":"integer","hidden":false,"required":false,"index":false},{"name":"memory","description":"Total memory","type":"bigint","hidden":false,"required":false,"index":false},{"name":"http_proxy","description":"HTTP proxy","type":"text","hidden":false,"required":false,"index":false},{"name":"https_proxy","description":"HTTPS proxy","type":"text","hidden":false,"required":false,"index":false},{"name":"no_proxy","description":"Comma-separated list of domain extensions proxy should not be used for","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the docker host","type":"text","hidden":false,"required":false,"index":false},{"name":"server_version","description":"Server version","type":"text","hidden":false,"required":false,"index":false},{"name":"root_dir","description":"Docker root directory","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_network_labels","description":"Docker network labels.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Network ID","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Label key","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Optional label value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_networks","description":"Docker networks information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Network ID","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Network name","type":"text","hidden":false,"required":false,"index":false},{"name":"driver","description":"Network driver","type":"text","hidden":false,"required":false,"index":false},{"name":"created","description":"Time of creation as UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"enable_ipv6","description":"1 if IPv6 is enabled on this network. 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"subnet","description":"Network subnet","type":"text","hidden":false,"required":false,"index":false},{"name":"gateway","description":"Network gateway","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_version","description":"Docker version information.","platforms":["darwin","linux"],"columns":[{"name":"version","description":"Docker version","type":"text","hidden":false,"required":false,"index":false},{"name":"api_version","description":"API version","type":"text","hidden":false,"required":false,"index":false},{"name":"min_api_version","description":"Minimum API version supported","type":"text","hidden":false,"required":false,"index":false},{"name":"git_commit","description":"Docker build git commit","type":"text","hidden":false,"required":false,"index":false},{"name":"go_version","description":"Go version","type":"text","hidden":false,"required":false,"index":false},{"name":"os","description":"Operating system","type":"text","hidden":false,"required":false,"index":false},{"name":"arch","description":"Hardware architecture","type":"text","hidden":false,"required":false,"index":false},{"name":"kernel_version","description":"Kernel version","type":"text","hidden":false,"required":false,"index":false},{"name":"build_time","description":"Build time","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_volume_labels","description":"Docker volume labels.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Volume name","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Label key","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Optional label value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"docker_volumes","description":"Docker volumes information.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Volume name","type":"text","hidden":false,"required":false,"index":false},{"name":"driver","description":"Volume driver","type":"text","hidden":false,"required":false,"index":false},{"name":"mount_point","description":"Mount point","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Volume type","type":"text","hidden":false,"required":false,"index":false}]},{"name":"drivers","description":"Details for in-use Windows device drivers. This does not display installed but unused drivers.","platforms":["windows"],"columns":[{"name":"device_id","description":"Device ID","type":"text","hidden":false,"required":false,"index":false},{"name":"device_name","description":"Device name","type":"text","hidden":false,"required":false,"index":false},{"name":"image","description":"Path to driver image file","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Driver description","type":"text","hidden":false,"required":false,"index":false},{"name":"service","description":"Driver service name, if one exists","type":"text","hidden":false,"required":false,"index":false},{"name":"service_key","description":"Driver service registry key","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Driver version","type":"text","hidden":false,"required":false,"index":false},{"name":"inf","description":"Associated inf file","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"Device/driver class name","type":"text","hidden":false,"required":false,"index":false},{"name":"provider","description":"Driver provider","type":"text","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"Device manufacturer","type":"text","hidden":false,"required":false,"index":false},{"name":"driver_key","description":"Driver key","type":"text","hidden":false,"required":false,"index":false},{"name":"date","description":"Driver date","type":"bigint","hidden":false,"required":false,"index":false},{"name":"signed","description":"Whether the driver is signed or not","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"ec2_instance_metadata","description":"EC2 instance metadata.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"instance_id","description":"EC2 instance ID","type":"text","hidden":false,"required":false,"index":false},{"name":"instance_type","description":"EC2 instance type","type":"text","hidden":false,"required":false,"index":false},{"name":"architecture","description":"Hardware architecture of this EC2 instance","type":"text","hidden":false,"required":false,"index":false},{"name":"region","description":"AWS region in which this instance launched","type":"text","hidden":false,"required":false,"index":false},{"name":"availability_zone","description":"Availability zone in which this instance launched","type":"text","hidden":false,"required":false,"index":false},{"name":"local_hostname","description":"Private IPv4 DNS hostname of the first interface of this instance","type":"text","hidden":false,"required":false,"index":false},{"name":"local_ipv4","description":"Private IPv4 address of the first interface of this instance","type":"text","hidden":false,"required":false,"index":false},{"name":"mac","description":"MAC address for the first network interface of this EC2 instance","type":"text","hidden":false,"required":false,"index":false},{"name":"security_groups","description":"Comma separated list of security group names","type":"text","hidden":false,"required":false,"index":false},{"name":"iam_arn","description":"If there is an IAM role associated with the instance, contains instance profile ARN","type":"text","hidden":false,"required":false,"index":false},{"name":"ami_id","description":"AMI ID used to launch this EC2 instance","type":"text","hidden":false,"required":false,"index":false},{"name":"reservation_id","description":"ID of the reservation","type":"text","hidden":false,"required":false,"index":false},{"name":"account_id","description":"AWS account ID which owns this EC2 instance","type":"text","hidden":false,"required":false,"index":false},{"name":"ssh_public_key","description":"SSH public key. Only available if supplied at instance launch time","type":"text","hidden":false,"required":false,"index":false}]},{"name":"ec2_instance_tags","description":"EC2 instance tag key value pairs.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"instance_id","description":"EC2 instance ID","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Tag key","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Tag value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"es_process_events","description":"Process execution events from EndpointSecurity.","platforms":["darwin"],"columns":[{"name":"version","description":"Version of EndpointSecurity event","type":"integer","hidden":false,"required":false,"index":false},{"name":"seq_num","description":"Per event sequence number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"global_seq_num","description":"Global sequence number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"original_parent","description":"Original parent process ID in case of reparenting","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Command line arguments (argv)","type":"text","hidden":false,"required":false,"index":false},{"name":"cmdline_count","description":"Number of command line arguments","type":"bigint","hidden":false,"required":false,"index":false},{"name":"env","description":"Environment variables delimited by spaces","type":"text","hidden":false,"required":false,"index":false},{"name":"env_count","description":"Number of environment variables","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cwd","description":"The process current working directory","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID of the process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"euid","description":"Effective User ID of the process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID of the process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"egid","description":"Effective Group ID of the process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"username","description":"Username","type":"text","hidden":false,"required":false,"index":false},{"name":"signing_id","description":"Signature identifier of the process","type":"text","hidden":false,"required":false,"index":false},{"name":"team_id","description":"Team identifier of thd process","type":"text","hidden":false,"required":false,"index":false},{"name":"cdhash","description":"Codesigning hash of the process","type":"text","hidden":false,"required":false,"index":false},{"name":"platform_binary","description":"Indicates if the binary is Apple signed binary (1) or not (0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"exit_code","description":"Exit code of a process in case of an exit event","type":"integer","hidden":false,"required":false,"index":false},{"name":"child_pid","description":"Process ID of a child process in case of a fork event","type":"bigint","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"event_type","description":"Type of EndpointSecurity event","type":"text","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"es_process_file_events","description":"Process execution events from EndpointSecurity.","platforms":["darwin"],"columns":[{"name":"version","description":"Version of EndpointSecurity event","type":"integer","hidden":false,"required":false,"index":false},{"name":"seq_num","description":"Per event sequence number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"global_seq_num","description":"Global sequence number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","hidden":false,"required":false,"index":false},{"name":"filename","description":"The source or target filename for the event","type":"text","hidden":false,"required":false,"index":false},{"name":"dest_filename","description":"Destination filename for the event","type":"text","hidden":false,"required":false,"index":false},{"name":"event_type","description":"Type of EndpointSecurity event","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"etc_hosts","description":"Line-parsed /etc/hosts.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"address","description":"IP address mapping","type":"text","hidden":false,"required":false,"index":false},{"name":"hostnames","description":"Raw hosts mapping","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"etc_protocols","description":"Line-parsed /etc/protocols.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"name","description":"Protocol name","type":"text","hidden":false,"required":false,"index":false},{"name":"number","description":"Protocol number","type":"integer","hidden":false,"required":false,"index":false},{"name":"alias","description":"Protocol alias","type":"text","hidden":false,"required":false,"index":false},{"name":"comment","description":"Comment with protocol description","type":"text","hidden":false,"required":false,"index":false}]},{"name":"etc_services","description":"Line-parsed /etc/services.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"name","description":"Service name","type":"text","hidden":false,"required":false,"index":false},{"name":"port","description":"Service port number","type":"integer","hidden":false,"required":false,"index":false},{"name":"protocol","description":"Transport protocol (TCP/UDP)","type":"text","hidden":false,"required":false,"index":false},{"name":"aliases","description":"Optional space separated list of other names for a service","type":"text","hidden":false,"required":false,"index":false},{"name":"comment","description":"Optional comment for a service.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"event_taps","description":"Returns information about installed event taps.","platforms":["darwin"],"columns":[{"name":"enabled","description":"Is the Event Tap enabled","type":"integer","hidden":false,"required":false,"index":false},{"name":"event_tap_id","description":"Unique ID for the Tap","type":"integer","hidden":false,"required":false,"index":false},{"name":"event_tapped","description":"The mask that identifies the set of events to be observed.","type":"text","hidden":false,"required":false,"index":false},{"name":"process_being_tapped","description":"The process ID of the target application","type":"integer","hidden":false,"required":false,"index":false},{"name":"tapping_process","description":"The process ID of the application that created the event tap.","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"extended_attributes","description":"Returns the extended attributes for files (similar to Windows ADS).","platforms":["darwin","linux"],"columns":[{"name":"path","description":"Absolute file path","type":"text","hidden":false,"required":true,"index":false},{"name":"directory","description":"Directory of file(s)","type":"text","hidden":false,"required":true,"index":false},{"name":"key","description":"Name of the value generated from the extended attribute","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"The parsed information from the attribute","type":"text","hidden":false,"required":false,"index":false},{"name":"base64","description":"1 if the value is base64 encoded else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"fan_speed_sensors","description":"Fan speeds.","platforms":["darwin"],"columns":[{"name":"fan","description":"Fan number","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Fan name","type":"text","hidden":false,"required":false,"index":false},{"name":"actual","description":"Actual speed","type":"integer","hidden":false,"required":false,"index":false},{"name":"min","description":"Minimum speed","type":"integer","hidden":false,"required":false,"index":false},{"name":"max","description":"Maximum speed","type":"integer","hidden":false,"required":false,"index":false},{"name":"target","description":"Target speed","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"fbsd_kmods","description":"Loaded FreeBSD kernel modules.","platforms":["freebsd"],"columns":[{"name":"name","description":"Module name","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of module content","type":"integer","hidden":false,"required":false,"index":false},{"name":"refs","description":"Module reverse dependencies","type":"integer","hidden":false,"required":false,"index":false},{"name":"address","description":"Kernel module address","type":"text","hidden":false,"required":false,"index":false}]},{"name":"file","description":"Interactive filesystem attributes and metadata.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"path","description":"Absolute file path","type":"text","hidden":false,"required":true,"index":false},{"name":"directory","description":"Directory of file(s)","type":"text","hidden":false,"required":true,"index":false},{"name":"filename","description":"Name portion of file path","type":"text","hidden":false,"required":false,"index":false},{"name":"inode","description":"Filesystem inode number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid","description":"Owning user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Owning group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mode","description":"Permission bits","type":"text","hidden":false,"required":false,"index":false},{"name":"device","description":"Device ID (optional)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of file in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"block_size","description":"Block size of filesystem","type":"integer","hidden":false,"required":false,"index":false},{"name":"atime","description":"Last access time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Last modification time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Last status change time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"btime","description":"(B)irth or (cr)eate time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"hard_links","description":"Number of hard links","type":"integer","hidden":false,"required":false,"index":false},{"name":"symlink","description":"1 if the path is a symlink, otherwise 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"File status","type":"text","hidden":false,"required":false,"index":false},{"name":"attributes","description":"File attrib string. See: https://ss64.com/nt/attrib.html","type":"text","hidden":true,"required":false,"index":false},{"name":"volume_serial","description":"Volume serial number","type":"text","hidden":true,"required":false,"index":false},{"name":"file_id","description":"file ID","type":"text","hidden":true,"required":false,"index":false},{"name":"file_version","description":"File version","type":"text","hidden":true,"required":false,"index":false},{"name":"product_version","description":"File product version","type":"text","hidden":true,"required":false,"index":false},{"name":"original_filename","description":"(Executable files only) Original filename","type":"text","hidden":true,"required":false,"index":false},{"name":"bsd_flags","description":"The BSD file flags (chflags). Possible values: NODUMP, UF_IMMUTABLE, UF_APPEND, OPAQUE, HIDDEN, ARCHIVED, SF_IMMUTABLE, SF_APPEND","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","hidden":true,"required":false,"index":false}]},{"name":"file_events","description":"Track time/action changes to files specified in configuration data.","platforms":["darwin","linux"],"columns":[{"name":"target_path","description":"The path associated with the event","type":"text","hidden":false,"required":false,"index":false},{"name":"category","description":"The category of the file defined in the config","type":"text","hidden":false,"required":false,"index":false},{"name":"action","description":"Change action (UPDATE, REMOVE, etc)","type":"text","hidden":false,"required":false,"index":false},{"name":"transaction_id","description":"ID used during bulk update","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inode","description":"Filesystem inode number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid","description":"Owning user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Owning group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mode","description":"Permission bits","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of file in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"atime","description":"Last access time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Last modification time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Last status change time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"md5","description":"The MD5 of the file after change","type":"text","hidden":false,"required":false,"index":false},{"name":"sha1","description":"The SHA1 of the file after change","type":"text","hidden":false,"required":false,"index":false},{"name":"sha256","description":"The SHA256 of the file after change","type":"text","hidden":false,"required":false,"index":false},{"name":"hashed","description":"1 if the file was hashed, 0 if not, -1 if hashing failed","type":"integer","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of file event","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"firefox_addons","description":"Firefox browser extensions, webapps, and addons.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"uid","description":"The local user that owns the addon","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"Addon display name","type":"text","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Addon identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"creator","description":"Addon-supported creator string","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Extension, addon, webapp","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Addon-supplied version string","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Addon-supplied description string","type":"text","hidden":false,"required":false,"index":false},{"name":"source_url","description":"URL that installed the addon","type":"text","hidden":false,"required":false,"index":false},{"name":"visible","description":"1 If the addon is shown in browser else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"active","description":"1 If the addon is active else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"disabled","description":"1 If the addon is application-disabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"autoupdate","description":"1 If the addon applies background updates else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"native","description":"1 If the addon includes binary components else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"location","description":"Global, profile location","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to plugin bundle","type":"text","hidden":false,"required":false,"index":false}]},{"name":"gatekeeper","description":"macOS Gatekeeper Details.","platforms":["darwin"],"columns":[{"name":"assessments_enabled","description":"1 If a Gatekeeper is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"dev_id_enabled","description":"1 If a Gatekeeper allows execution from identified developers else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"version","description":"Version of Gatekeeper's gke.bundle","type":"text","hidden":false,"required":false,"index":false},{"name":"opaque_version","description":"Version of Gatekeeper's gkopaque.bundle","type":"text","hidden":false,"required":false,"index":false}]},{"name":"gatekeeper_approved_apps","description":"Gatekeeper apps a user has allowed to run.","platforms":["darwin"],"columns":[{"name":"path","description":"Path of executable allowed to run","type":"text","hidden":false,"required":false,"index":false},{"name":"requirement","description":"Code signing requirement language","type":"text","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Last change time","type":"double","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Last modification time","type":"double","hidden":false,"required":false,"index":false}]},{"name":"groups","description":"Local system groups.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"gid","description":"Unsigned int64 group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid_signed","description":"A signed int64 version of gid","type":"bigint","hidden":false,"required":false,"index":false},{"name":"groupname","description":"Canonical local group name","type":"text","hidden":false,"required":false,"index":false},{"name":"group_sid","description":"Unique group ID","type":"text","hidden":true,"required":false,"index":false},{"name":"comment","description":"Remarks or comments associated with the group","type":"text","hidden":true,"required":false,"index":false},{"name":"is_hidden","description":"IsHidden attribute set in OpenDirectory","type":"integer","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"hardware_events","description":"Hardware (PCI/USB/HID) events from UDEV or IOKit.","platforms":["darwin","linux"],"columns":[{"name":"action","description":"Remove, insert, change properties, etc","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Local device path assigned (optional)","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of hardware and hardware event","type":"text","hidden":false,"required":false,"index":false},{"name":"driver","description":"Driver claiming the device","type":"text","hidden":false,"required":false,"index":false},{"name":"vendor","description":"Hardware device vendor","type":"text","hidden":false,"required":false,"index":false},{"name":"vendor_id","description":"Hex encoded Hardware vendor identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"model","description":"Hardware device model","type":"text","hidden":false,"required":false,"index":false},{"name":"model_id","description":"Hex encoded Hardware model identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"serial","description":"Device serial (optional)","type":"text","hidden":false,"required":false,"index":false},{"name":"revision","description":"Device revision (optional)","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of hardware event","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"hash","description":"Filesystem hash data.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"path","description":"Must provide a path or directory","type":"text","hidden":false,"required":true,"index":false},{"name":"directory","description":"Must provide a path or directory","type":"text","hidden":false,"required":true,"index":false},{"name":"md5","description":"MD5 hash of provided filesystem data","type":"text","hidden":false,"required":false,"index":false},{"name":"sha1","description":"SHA1 hash of provided filesystem data","type":"text","hidden":false,"required":false,"index":false},{"name":"sha256","description":"SHA256 hash of provided filesystem data","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","hidden":true,"required":false,"index":false}]},{"name":"homebrew_packages","description":"The installed homebrew package database.","platforms":["darwin"],"columns":[{"name":"name","description":"Package name","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Package install path","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Current 'linked' version","type":"text","hidden":false,"required":false,"index":false},{"name":"prefix","description":"Homebrew install prefix","type":"text","hidden":true,"required":false,"index":false}]},{"name":"hvci_status","description":"Retrieve HVCI info of the machine.","platforms":["windows"],"columns":[{"name":"version","description":"The version number of the Device Guard build.","type":"text","hidden":false,"required":false,"index":false},{"name":"instance_identifier","description":"The instance ID of Device Guard.","type":"text","hidden":false,"required":false,"index":false},{"name":"vbs_status","description":"The status of the virtualization based security settings. Returns UNKNOWN if an error is encountered.","type":"text","hidden":false,"required":false,"index":false},{"name":"code_integrity_policy_enforcement_status","description":"The status of the code integrity policy enforcement settings. Returns UNKNOWN if an error is encountered.","type":"text","hidden":false,"required":false,"index":false},{"name":"umci_policy_status","description":"The status of the User Mode Code Integrity security settings. Returns UNKNOWN if an error is encountered.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"ibridge_info","description":"Information about the Apple iBridge hardware controller.","platforms":["darwin"],"columns":[{"name":"boot_uuid","description":"Boot UUID of the iBridge controller","type":"text","hidden":false,"required":false,"index":false},{"name":"coprocessor_version","description":"The manufacturer and chip version","type":"text","hidden":false,"required":false,"index":false},{"name":"firmware_version","description":"The build version of the firmware","type":"text","hidden":false,"required":false,"index":false},{"name":"unique_chip_id","description":"Unique id of the iBridge controller","type":"text","hidden":false,"required":false,"index":false}]},{"name":"ie_extensions","description":"Internet Explorer browser extensions.","platforms":["windows"],"columns":[{"name":"name","description":"Extension display name","type":"text","hidden":false,"required":false,"index":false},{"name":"registry_path","description":"Extension identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Version of the executable","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to executable","type":"text","hidden":false,"required":false,"index":false}]},{"name":"intel_me_info","description":"Intel ME/CSE Info.","platforms":["linux","windows"],"columns":[{"name":"version","description":"Intel ME version","type":"text","hidden":false,"required":false,"index":false}]},{"name":"interface_addresses","description":"Network interfaces and relevant metadata.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"interface","description":"Interface name","type":"text","hidden":false,"required":false,"index":false},{"name":"address","description":"Specific address for interface","type":"text","hidden":false,"required":false,"index":false},{"name":"mask","description":"Interface netmask","type":"text","hidden":false,"required":false,"index":false},{"name":"broadcast","description":"Broadcast address for the interface","type":"text","hidden":false,"required":false,"index":false},{"name":"point_to_point","description":"PtP address for the interface","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of address. One of dhcp, manual, auto, other, unknown","type":"text","hidden":false,"required":false,"index":false},{"name":"friendly_name","description":"The friendly display name of the interface.","type":"text","hidden":true,"required":false,"index":false}]},{"name":"interface_details","description":"Detailed information and stats of network interfaces.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"interface","description":"Interface name","type":"text","hidden":false,"required":false,"index":false},{"name":"mac","description":"MAC of interface (optional)","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Interface type (includes virtual)","type":"integer","hidden":false,"required":false,"index":false},{"name":"mtu","description":"Network MTU","type":"integer","hidden":false,"required":false,"index":false},{"name":"metric","description":"Metric based on the speed of the interface","type":"integer","hidden":false,"required":false,"index":false},{"name":"flags","description":"Flags (netdevice) for the device","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipackets","description":"Input packets","type":"bigint","hidden":false,"required":false,"index":false},{"name":"opackets","description":"Output packets","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ibytes","description":"Input bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"obytes","description":"Output bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ierrors","description":"Input errors","type":"bigint","hidden":false,"required":false,"index":false},{"name":"oerrors","description":"Output errors","type":"bigint","hidden":false,"required":false,"index":false},{"name":"idrops","description":"Input drops","type":"bigint","hidden":false,"required":false,"index":false},{"name":"odrops","description":"Output drops","type":"bigint","hidden":false,"required":false,"index":false},{"name":"collisions","description":"Packet Collisions detected","type":"bigint","hidden":false,"required":false,"index":false},{"name":"last_change","description":"Time of last device modification (optional)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"link_speed","description":"Interface speed in Mb/s","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pci_slot","description":"PCI slot number","type":"text","hidden":true,"required":false,"index":false},{"name":"friendly_name","description":"The friendly display name of the interface.","type":"text","hidden":true,"required":false,"index":false},{"name":"description","description":"Short description of the object a one-line string.","type":"text","hidden":true,"required":false,"index":false},{"name":"manufacturer","description":"Name of the network adapter's manufacturer.","type":"text","hidden":true,"required":false,"index":false},{"name":"connection_id","description":"Name of the network connection as it appears in the Network Connections Control Panel program.","type":"text","hidden":true,"required":false,"index":false},{"name":"connection_status","description":"State of the network adapter connection to the network.","type":"text","hidden":true,"required":false,"index":false},{"name":"enabled","description":"Indicates whether the adapter is enabled or not.","type":"integer","hidden":true,"required":false,"index":false},{"name":"physical_adapter","description":"Indicates whether the adapter is a physical or a logical adapter.","type":"integer","hidden":true,"required":false,"index":false},{"name":"speed","description":"Estimate of the current bandwidth in bits per second.","type":"integer","hidden":true,"required":false,"index":false},{"name":"service","description":"The name of the service the network adapter uses.","type":"text","hidden":true,"required":false,"index":false},{"name":"dhcp_enabled","description":"If TRUE, the dynamic host configuration protocol (DHCP) server automatically assigns an IP address to the computer system when establishing a network connection.","type":"integer","hidden":true,"required":false,"index":false},{"name":"dhcp_lease_expires","description":"Expiration date and time for a leased IP address that was assigned to the computer by the dynamic host configuration protocol (DHCP) server.","type":"text","hidden":true,"required":false,"index":false},{"name":"dhcp_lease_obtained","description":"Date and time the lease was obtained for the IP address assigned to the computer by the dynamic host configuration protocol (DHCP) server.","type":"text","hidden":true,"required":false,"index":false},{"name":"dhcp_server","description":"IP address of the dynamic host configuration protocol (DHCP) server.","type":"text","hidden":true,"required":false,"index":false},{"name":"dns_domain","description":"Organization name followed by a period and an extension that indicates the type of organization, such as 'microsoft.com'.","type":"text","hidden":true,"required":false,"index":false},{"name":"dns_domain_suffix_search_order","description":"Array of DNS domain suffixes to be appended to the end of host names during name resolution.","type":"text","hidden":true,"required":false,"index":false},{"name":"dns_host_name","description":"Host name used to identify the local computer for authentication by some utilities.","type":"text","hidden":true,"required":false,"index":false},{"name":"dns_server_search_order","description":"Array of server IP addresses to be used in querying for DNS servers.","type":"text","hidden":true,"required":false,"index":false}]},{"name":"interface_ipv6","description":"IPv6 configuration and stats of network interfaces.","platforms":["darwin","linux"],"columns":[{"name":"interface","description":"Interface name","type":"text","hidden":false,"required":false,"index":false},{"name":"hop_limit","description":"Current Hop Limit","type":"integer","hidden":false,"required":false,"index":false},{"name":"forwarding_enabled","description":"Enable IP forwarding","type":"integer","hidden":false,"required":false,"index":false},{"name":"redirect_accept","description":"Accept ICMP redirect messages","type":"integer","hidden":false,"required":false,"index":false},{"name":"rtadv_accept","description":"Accept ICMP Router Advertisement","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"iokit_devicetree","description":"The IOKit registry matching the DeviceTree plane.","platforms":["darwin"],"columns":[{"name":"name","description":"Device node name","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"Best matching device class (most-specific category)","type":"text","hidden":false,"required":false,"index":false},{"name":"id","description":"IOKit internal registry ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent device registry ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"device_path","description":"Device tree path","type":"text","hidden":false,"required":false,"index":false},{"name":"service","description":"1 if the device conforms to IOService else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"busy_state","description":"1 if the device is in a busy state else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"retain_count","description":"The device reference count","type":"integer","hidden":false,"required":false,"index":false},{"name":"depth","description":"Device nested depth","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"iokit_registry","description":"The full IOKit registry without selecting a plane.","platforms":["darwin"],"columns":[{"name":"name","description":"Default name of the node","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"Best matching device class (most-specific category)","type":"text","hidden":false,"required":false,"index":false},{"name":"id","description":"IOKit internal registry ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent registry ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"busy_state","description":"1 if the node is in a busy state else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"retain_count","description":"The node reference count","type":"integer","hidden":false,"required":false,"index":false},{"name":"depth","description":"Node nested depth","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"iptables","description":"Linux IP packet filtering and NAT tool.","platforms":["linux"],"columns":[{"name":"filter_name","description":"Packet matching filter table name.","type":"text","hidden":false,"required":false,"index":false},{"name":"chain","description":"Size of module content.","type":"text","hidden":false,"required":false,"index":false},{"name":"policy","description":"Policy that applies for this rule.","type":"text","hidden":false,"required":false,"index":false},{"name":"target","description":"Target that applies for this rule.","type":"text","hidden":false,"required":false,"index":false},{"name":"protocol","description":"Protocol number identification.","type":"integer","hidden":false,"required":false,"index":false},{"name":"src_port","description":"Protocol source port(s).","type":"text","hidden":false,"required":false,"index":false},{"name":"dst_port","description":"Protocol destination port(s).","type":"text","hidden":false,"required":false,"index":false},{"name":"src_ip","description":"Source IP address.","type":"text","hidden":false,"required":false,"index":false},{"name":"src_mask","description":"Source IP address mask.","type":"text","hidden":false,"required":false,"index":false},{"name":"iniface","description":"Input interface for the rule.","type":"text","hidden":false,"required":false,"index":false},{"name":"iniface_mask","description":"Input interface mask for the rule.","type":"text","hidden":false,"required":false,"index":false},{"name":"dst_ip","description":"Destination IP address.","type":"text","hidden":false,"required":false,"index":false},{"name":"dst_mask","description":"Destination IP address mask.","type":"text","hidden":false,"required":false,"index":false},{"name":"outiface","description":"Output interface for the rule.","type":"text","hidden":false,"required":false,"index":false},{"name":"outiface_mask","description":"Output interface mask for the rule.","type":"text","hidden":false,"required":false,"index":false},{"name":"match","description":"Matching rule that applies.","type":"text","hidden":false,"required":false,"index":false},{"name":"packets","description":"Number of matching packets for this rule.","type":"integer","hidden":false,"required":false,"index":false},{"name":"bytes","description":"Number of matching bytes for this rule.","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"kernel_extensions","description":"macOS's kernel extensions, both loaded and within the load search path.","platforms":["darwin"],"columns":[{"name":"idx","description":"Extension load tag or index","type":"integer","hidden":false,"required":false,"index":false},{"name":"refs","description":"Reference count","type":"integer","hidden":false,"required":false,"index":false},{"name":"size","description":"Bytes of wired memory used by extension","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"Extension label","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension version","type":"text","hidden":false,"required":false,"index":false},{"name":"linked_against","description":"Indexes of extensions this extension is linked against","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Optional path to extension bundle","type":"text","hidden":false,"required":false,"index":false}]},{"name":"kernel_info","description":"Basic active kernel information.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"version","description":"Kernel version","type":"text","hidden":false,"required":false,"index":false},{"name":"arguments","description":"Kernel arguments","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Kernel path","type":"text","hidden":false,"required":false,"index":false},{"name":"device","description":"Kernel device identifier","type":"text","hidden":false,"required":false,"index":false}]},{"name":"kernel_modules","description":"Linux kernel modules both loaded and within the load search path.","platforms":["linux"],"columns":[{"name":"name","description":"Module name","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of module content","type":"bigint","hidden":false,"required":false,"index":false},{"name":"used_by","description":"Module reverse dependencies","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"Kernel module status","type":"text","hidden":false,"required":false,"index":false},{"name":"address","description":"Kernel module address","type":"text","hidden":false,"required":false,"index":false}]},{"name":"kernel_panics","description":"System kernel panic logs.","platforms":["darwin"],"columns":[{"name":"path","description":"Location of log file","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Formatted time of the event","type":"text","hidden":false,"required":false,"index":false},{"name":"registers","description":"A space delimited line of register:value pairs","type":"text","hidden":false,"required":false,"index":false},{"name":"frame_backtrace","description":"Backtrace of the crashed module","type":"text","hidden":false,"required":false,"index":false},{"name":"module_backtrace","description":"Modules appearing in the crashed module's backtrace","type":"text","hidden":false,"required":false,"index":false},{"name":"dependencies","description":"Module dependencies existing in crashed module's backtrace","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Process name corresponding to crashed thread","type":"text","hidden":false,"required":false,"index":false},{"name":"os_version","description":"Version of the operating system","type":"text","hidden":false,"required":false,"index":false},{"name":"kernel_version","description":"Version of the system kernel","type":"text","hidden":false,"required":false,"index":false},{"name":"system_model","description":"Physical system model, for example 'MacBookPro12,1 (Mac-E43C1C25D4880AD6)'","type":"text","hidden":false,"required":false,"index":false},{"name":"uptime","description":"System uptime at kernel panic in nanoseconds","type":"bigint","hidden":false,"required":false,"index":false},{"name":"last_loaded","description":"Last loaded module before panic","type":"text","hidden":false,"required":false,"index":false},{"name":"last_unloaded","description":"Last unloaded module before panic","type":"text","hidden":false,"required":false,"index":false}]},{"name":"keychain_acls","description":"Applications that have ACL entries in the keychain.","platforms":["darwin"],"columns":[{"name":"keychain_path","description":"The path of the keychain","type":"text","hidden":false,"required":false,"index":false},{"name":"authorizations","description":"A space delimited set of authorization attributes","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"The path of the authorized application","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"The description included with the ACL entry","type":"text","hidden":false,"required":false,"index":false},{"name":"label","description":"An optional label tag that may be included with the keychain entry","type":"text","hidden":false,"required":false,"index":false}]},{"name":"keychain_items","description":"Generic details about keychain items.","platforms":["darwin"],"columns":[{"name":"label","description":"Generic item name","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Optional item description","type":"text","hidden":false,"required":false,"index":false},{"name":"comment","description":"Optional keychain comment","type":"text","hidden":false,"required":false,"index":false},{"name":"account","description":"Optional item account","type":"text","hidden":false,"required":false,"index":false},{"name":"created","description":"Data item was created","type":"text","hidden":false,"required":false,"index":false},{"name":"modified","description":"Date of last modification","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Keychain item type (class)","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to keychain containing item","type":"text","hidden":false,"required":false,"index":false}]},{"name":"known_hosts","description":"A line-delimited known_hosts table.","platforms":["darwin","linux"],"columns":[{"name":"uid","description":"The local user that owns the known_hosts file","type":"bigint","hidden":false,"required":false,"index":false},{"name":"key","description":"parsed authorized keys line","type":"text","hidden":false,"required":false,"index":false},{"name":"key_file","description":"Path to known_hosts file","type":"text","hidden":false,"required":false,"index":false}]},{"name":"kva_speculative_info","description":"Display kernel virtual address and speculative execution information for the system.","platforms":["windows"],"columns":[{"name":"kva_shadow_enabled","description":"Kernel Virtual Address shadowing is enabled.","type":"integer","hidden":false,"required":false,"index":false},{"name":"kva_shadow_user_global","description":"User pages are marked as global.","type":"integer","hidden":false,"required":false,"index":false},{"name":"kva_shadow_pcid","description":"Kernel VA PCID flushing optimization is enabled.","type":"integer","hidden":false,"required":false,"index":false},{"name":"kva_shadow_inv_pcid","description":"Kernel VA INVPCID is enabled.","type":"integer","hidden":false,"required":false,"index":false},{"name":"bp_mitigations","description":"Branch Prediction mitigations are enabled.","type":"integer","hidden":false,"required":false,"index":false},{"name":"bp_system_pol_disabled","description":"Branch Predictions are disabled via system policy.","type":"integer","hidden":false,"required":false,"index":false},{"name":"bp_microcode_disabled","description":"Branch Predictions are disabled due to lack of microcode update.","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_spec_ctrl_supported","description":"SPEC_CTRL MSR supported by CPU Microcode.","type":"integer","hidden":false,"required":false,"index":false},{"name":"ibrs_support_enabled","description":"Windows uses IBRS.","type":"integer","hidden":false,"required":false,"index":false},{"name":"stibp_support_enabled","description":"Windows uses STIBP.","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_pred_cmd_supported","description":"PRED_CMD MSR supported by CPU Microcode.","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"last","description":"System logins and logouts.","platforms":["darwin","linux"],"columns":[{"name":"username","description":"Entry username","type":"text","hidden":false,"required":false,"index":false},{"name":"tty","description":"Entry terminal","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"Entry type, according to ut_type types (utmp.h)","type":"integer","hidden":false,"required":false,"index":false},{"name":"type_name","description":"Entry type name, according to ut_type types (utmp.h)","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Entry timestamp","type":"integer","hidden":false,"required":false,"index":false},{"name":"host","description":"Entry hostname","type":"text","hidden":false,"required":false,"index":false}]},{"name":"launchd","description":"LaunchAgents and LaunchDaemons from default search paths.","platforms":["darwin"],"columns":[{"name":"path","description":"Path to daemon or agent plist","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"File name of plist (used by launchd)","type":"text","hidden":false,"required":false,"index":false},{"name":"label","description":"Daemon or agent service name","type":"text","hidden":false,"required":false,"index":false},{"name":"program","description":"Path to target program","type":"text","hidden":false,"required":false,"index":false},{"name":"run_at_load","description":"Should the program run on launch load","type":"text","hidden":false,"required":false,"index":false},{"name":"keep_alive","description":"Should the process be restarted if killed","type":"text","hidden":false,"required":false,"index":false},{"name":"on_demand","description":"Deprecated key, replaced by keep_alive","type":"text","hidden":false,"required":false,"index":false},{"name":"disabled","description":"Skip loading this daemon or agent on boot","type":"text","hidden":false,"required":false,"index":false},{"name":"username","description":"Run this daemon or agent as this username","type":"text","hidden":false,"required":false,"index":false},{"name":"groupname","description":"Run this daemon or agent as this group","type":"text","hidden":false,"required":false,"index":false},{"name":"stdout_path","description":"Pipe stdout to a target path","type":"text","hidden":false,"required":false,"index":false},{"name":"stderr_path","description":"Pipe stderr to a target path","type":"text","hidden":false,"required":false,"index":false},{"name":"start_interval","description":"Frequency to run in seconds","type":"text","hidden":false,"required":false,"index":false},{"name":"program_arguments","description":"Command line arguments passed to program","type":"text","hidden":false,"required":false,"index":false},{"name":"watch_paths","description":"Key that launches daemon or agent if path is modified","type":"text","hidden":false,"required":false,"index":false},{"name":"queue_directories","description":"Similar to watch_paths but only with non-empty directories","type":"text","hidden":false,"required":false,"index":false},{"name":"inetd_compatibility","description":"Run this daemon or agent as it was launched from inetd","type":"text","hidden":false,"required":false,"index":false},{"name":"start_on_mount","description":"Run daemon or agent every time a filesystem is mounted","type":"text","hidden":false,"required":false,"index":false},{"name":"root_directory","description":"Key used to specify a directory to chroot to before launch","type":"text","hidden":false,"required":false,"index":false},{"name":"working_directory","description":"Key used to specify a directory to chdir to before launch","type":"text","hidden":false,"required":false,"index":false},{"name":"process_type","description":"Key describes the intended purpose of the job","type":"text","hidden":false,"required":false,"index":false}]},{"name":"launchd_overrides","description":"Override keys, per user, for LaunchDaemons and Agents.","platforms":["darwin"],"columns":[{"name":"label","description":"Daemon or agent service name","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Name of the override key","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Overridden value","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID applied to the override, 0 applies to all","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to daemon or agent plist","type":"text","hidden":false,"required":false,"index":false}]},{"name":"listening_ports","description":"Processes with listening (bound) network sockets/ports.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"port","description":"Transport layer port","type":"integer","hidden":false,"required":false,"index":false},{"name":"protocol","description":"Transport protocol (TCP/UDP)","type":"integer","hidden":false,"required":false,"index":false},{"name":"family","description":"Network protocol (IPv4, IPv6)","type":"integer","hidden":false,"required":false,"index":false},{"name":"address","description":"Specific address for bind","type":"text","hidden":false,"required":false,"index":false},{"name":"fd","description":"Socket file descriptor number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"socket","description":"Socket handle or inode number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Path for UNIX domain sockets","type":"text","hidden":false,"required":false,"index":false},{"name":"net_namespace","description":"The inode number of the network namespace","type":"text","hidden":true,"required":false,"index":false}]},{"name":"load_average","description":"Displays information about the system wide load averages.","platforms":["darwin","linux"],"columns":[{"name":"period","description":"Period over which the average is calculated.","type":"text","hidden":false,"required":false,"index":false},{"name":"average","description":"Load average over the specified period.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"location_services","description":"Reports the status of the Location Services feature of the OS.","platforms":["darwin"],"columns":[{"name":"enabled","description":"1 if Location Services are enabled, else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"logged_in_users","description":"Users with an active shell on the system.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"type","description":"Login type","type":"text","hidden":false,"required":false,"index":false},{"name":"user","description":"User login name","type":"text","hidden":false,"required":false,"index":false},{"name":"tty","description":"Device name","type":"text","hidden":false,"required":false,"index":false},{"name":"host","description":"Remote hostname","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time entry was made","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"sid","description":"The user's unique security identifier","type":"text","hidden":true,"required":false,"index":false},{"name":"registry_hive","description":"HKEY_USERS registry hive","type":"text","hidden":true,"required":false,"index":false}]},{"name":"logical_drives","description":"Details for logical drives on the system. A logical drive generally represents a single partition.","platforms":["windows"],"columns":[{"name":"device_id","description":"The drive id, usually the drive name, e.g., 'C:'.","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Deprecated (always 'Unknown').","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"The canonical description of the drive, e.g. 'Logical Fixed Disk', 'CD-ROM Disk'.","type":"text","hidden":false,"required":false,"index":false},{"name":"free_space","description":"The amount of free space, in bytes, of the drive (-1 on failure).","type":"bigint","hidden":false,"required":false,"index":false},{"name":"size","description":"The total amount of space, in bytes, of the drive (-1 on failure).","type":"bigint","hidden":false,"required":false,"index":false},{"name":"file_system","description":"The file system of the drive.","type":"text","hidden":false,"required":false,"index":false},{"name":"boot_partition","description":"True if Windows booted from this drive.","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"logon_sessions","description":"Windows Logon Session.","platforms":["windows"],"columns":[{"name":"logon_id","description":"A locally unique identifier (LUID) that identifies a logon session.","type":"integer","hidden":false,"required":false,"index":false},{"name":"user","description":"The account name of the security principal that owns the logon session.","type":"text","hidden":false,"required":false,"index":false},{"name":"logon_domain","description":"The name of the domain used to authenticate the owner of the logon session.","type":"text","hidden":false,"required":false,"index":false},{"name":"authentication_package","description":"The authentication package used to authenticate the owner of the logon session.","type":"text","hidden":false,"required":false,"index":false},{"name":"logon_type","description":"The logon method.","type":"text","hidden":false,"required":false,"index":false},{"name":"session_id","description":"The Terminal Services session identifier.","type":"integer","hidden":false,"required":false,"index":false},{"name":"logon_sid","description":"The user's security identifier (SID).","type":"text","hidden":false,"required":false,"index":false},{"name":"logon_time","description":"The time the session owner logged on.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"logon_server","description":"The name of the server used to authenticate the owner of the logon session.","type":"text","hidden":false,"required":false,"index":false},{"name":"dns_domain_name","description":"The DNS name for the owner of the logon session.","type":"text","hidden":false,"required":false,"index":false},{"name":"upn","description":"The user principal name (UPN) for the owner of the logon session.","type":"text","hidden":false,"required":false,"index":false},{"name":"logon_script","description":"The script used for logging on.","type":"text","hidden":false,"required":false,"index":false},{"name":"profile_path","description":"The home directory for the logon session.","type":"text","hidden":false,"required":false,"index":false},{"name":"home_directory","description":"The home directory for the logon session.","type":"text","hidden":false,"required":false,"index":false},{"name":"home_directory_drive","description":"The drive location of the home directory of the logon session.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"lxd_certificates","description":"LXD certificates information.","platforms":["linux"],"columns":[{"name":"name","description":"Name of the certificate","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of the certificate","type":"text","hidden":false,"required":false,"index":false},{"name":"fingerprint","description":"SHA256 hash of the certificate","type":"text","hidden":false,"required":false,"index":false},{"name":"certificate","description":"Certificate content","type":"text","hidden":false,"required":false,"index":false}]},{"name":"lxd_cluster","description":"LXD cluster information.","platforms":["linux"],"columns":[{"name":"server_name","description":"Name of the LXD server node","type":"text","hidden":false,"required":false,"index":false},{"name":"enabled","description":"Whether clustering enabled (1) or not (0) on this node","type":"integer","hidden":false,"required":false,"index":false},{"name":"member_config_entity","description":"Type of configuration parameter for this node","type":"text","hidden":false,"required":false,"index":false},{"name":"member_config_name","description":"Name of configuration parameter","type":"text","hidden":false,"required":false,"index":false},{"name":"member_config_key","description":"Config key","type":"text","hidden":false,"required":false,"index":false},{"name":"member_config_value","description":"Config value","type":"text","hidden":false,"required":false,"index":false},{"name":"member_config_description","description":"Config description","type":"text","hidden":false,"required":false,"index":false}]},{"name":"lxd_cluster_members","description":"LXD cluster members information.","platforms":["linux"],"columns":[{"name":"server_name","description":"Name of the LXD server node","type":"text","hidden":false,"required":false,"index":false},{"name":"url","description":"URL of the node","type":"text","hidden":false,"required":false,"index":false},{"name":"database","description":"Whether the server is a database node (1) or not (0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"status","description":"Status of the node (Online/Offline)","type":"text","hidden":false,"required":false,"index":false},{"name":"message","description":"Message from the node (Online/Offline)","type":"text","hidden":false,"required":false,"index":false}]},{"name":"lxd_images","description":"LXD images information.","platforms":["linux"],"columns":[{"name":"id","description":"Image ID","type":"text","hidden":false,"required":false,"index":false},{"name":"architecture","description":"Target architecture for the image","type":"text","hidden":false,"required":false,"index":false},{"name":"os","description":"OS on which image is based","type":"text","hidden":false,"required":false,"index":false},{"name":"release","description":"OS release version on which the image is based","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Image description","type":"text","hidden":false,"required":false,"index":false},{"name":"aliases","description":"Comma-separated list of image aliases","type":"text","hidden":false,"required":false,"index":false},{"name":"filename","description":"Filename of the image file","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of image in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"auto_update","description":"Whether the image auto-updates (1) or not (0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"cached","description":"Whether image is cached (1) or not (0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"public","description":"Whether image is public (1) or not (0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"created_at","description":"ISO time of image creation","type":"text","hidden":false,"required":false,"index":false},{"name":"expires_at","description":"ISO time of image expiration","type":"text","hidden":false,"required":false,"index":false},{"name":"uploaded_at","description":"ISO time of image upload","type":"text","hidden":false,"required":false,"index":false},{"name":"last_used_at","description":"ISO time for the most recent use of this image in terms of container spawn","type":"text","hidden":false,"required":false,"index":false},{"name":"update_source_server","description":"Server for image update","type":"text","hidden":false,"required":false,"index":false},{"name":"update_source_protocol","description":"Protocol used for image information update and image import from source server","type":"text","hidden":false,"required":false,"index":false},{"name":"update_source_certificate","description":"Certificate for update source server","type":"text","hidden":false,"required":false,"index":false},{"name":"update_source_alias","description":"Alias of image at update source server","type":"text","hidden":false,"required":false,"index":false}]},{"name":"lxd_instance_config","description":"LXD instance configuration information.","platforms":["linux"],"columns":[{"name":"name","description":"Instance name","type":"text","hidden":false,"required":true,"index":false},{"name":"key","description":"Configuration parameter name","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Configuration parameter value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"lxd_instance_devices","description":"LXD instance devices information.","platforms":["linux"],"columns":[{"name":"name","description":"Instance name","type":"text","hidden":false,"required":true,"index":false},{"name":"device","description":"Name of the device","type":"text","hidden":false,"required":false,"index":false},{"name":"device_type","description":"Device type","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Device info param name","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Device info param value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"lxd_instances","description":"LXD instances information.","platforms":["linux"],"columns":[{"name":"name","description":"Instance name","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"Instance state (running, stopped, etc.)","type":"text","hidden":false,"required":false,"index":false},{"name":"stateful","description":"Whether the instance is stateful(1) or not(0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"ephemeral","description":"Whether the instance is ephemeral(1) or not(0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"created_at","description":"ISO time of creation","type":"text","hidden":false,"required":false,"index":false},{"name":"base_image","description":"ID of image used to launch this instance","type":"text","hidden":false,"required":false,"index":false},{"name":"architecture","description":"Instance architecture","type":"text","hidden":false,"required":false,"index":false},{"name":"os","description":"The OS of this instance","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Instance description","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Instance's process ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"processes","description":"Number of processes running inside this instance","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"lxd_networks","description":"LXD network information.","platforms":["linux"],"columns":[{"name":"name","description":"Name of the network","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of network","type":"text","hidden":false,"required":false,"index":false},{"name":"managed","description":"1 if network created by LXD, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"ipv4_address","description":"IPv4 address","type":"text","hidden":false,"required":false,"index":false},{"name":"ipv6_address","description":"IPv6 address","type":"text","hidden":false,"required":false,"index":false},{"name":"used_by","description":"URLs for containers using this network","type":"text","hidden":false,"required":false,"index":false},{"name":"bytes_received","description":"Number of bytes received on this network","type":"bigint","hidden":false,"required":false,"index":false},{"name":"bytes_sent","description":"Number of bytes sent on this network","type":"bigint","hidden":false,"required":false,"index":false},{"name":"packets_received","description":"Number of packets received on this network","type":"bigint","hidden":false,"required":false,"index":false},{"name":"packets_sent","description":"Number of packets sent on this network","type":"bigint","hidden":false,"required":false,"index":false},{"name":"hwaddr","description":"Hardware address for this network","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"Network status","type":"text","hidden":false,"required":false,"index":false},{"name":"mtu","description":"MTU size","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"lxd_storage_pools","description":"LXD storage pool information.","platforms":["linux"],"columns":[{"name":"name","description":"Name of the storage pool","type":"text","hidden":false,"required":false,"index":false},{"name":"driver","description":"Storage driver","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Storage pool source","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of the storage pool","type":"text","hidden":false,"required":false,"index":false},{"name":"space_used","description":"Storage space used in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"space_total","description":"Total available storage space in bytes for this storage pool","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inodes_used","description":"Number of inodes used","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inodes_total","description":"Total number of inodes available in this storage pool","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"magic","description":"Magic number recognition library table.","platforms":["darwin","linux"],"columns":[{"name":"path","description":"Absolute path to target file","type":"text","hidden":false,"required":true,"index":false},{"name":"magic_db_files","description":"Colon(:) separated list of files where the magic db file can be found. By default one of the following is used: /usr/share/file/magic/magic, /usr/share/misc/magic or /usr/share/misc/magic.mgc","type":"text","hidden":false,"required":false,"index":false},{"name":"data","description":"Magic number data from libmagic","type":"text","hidden":false,"required":false,"index":false},{"name":"mime_type","description":"MIME type data from libmagic","type":"text","hidden":false,"required":false,"index":false},{"name":"mime_encoding","description":"MIME encoding data from libmagic","type":"text","hidden":false,"required":false,"index":false}]},{"name":"managed_policies","description":"The managed configuration policies from AD, MDM, MCX, etc.","platforms":["darwin"],"columns":[{"name":"domain","description":"System or manager-chosen domain key","type":"text","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Optional UUID assigned to policy set","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Policy key name","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Policy value","type":"text","hidden":false,"required":false,"index":false},{"name":"username","description":"Policy applies only this user","type":"text","hidden":false,"required":false,"index":false},{"name":"manual","description":"1 if policy was loaded manually, otherwise 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"md_devices","description":"Software RAID array settings.","platforms":["linux"],"columns":[{"name":"device_name","description":"md device name","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"Current state of the array","type":"text","hidden":false,"required":false,"index":false},{"name":"raid_level","description":"Current raid level of the array","type":"integer","hidden":false,"required":false,"index":false},{"name":"size","description":"size of the array in blocks","type":"bigint","hidden":false,"required":false,"index":false},{"name":"chunk_size","description":"chunk size in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"raid_disks","description":"Number of configured RAID disks in array","type":"integer","hidden":false,"required":false,"index":false},{"name":"nr_raid_disks","description":"Number of partitions or disk devices to comprise the array","type":"integer","hidden":false,"required":false,"index":false},{"name":"working_disks","description":"Number of working disks in array","type":"integer","hidden":false,"required":false,"index":false},{"name":"active_disks","description":"Number of active disks in array","type":"integer","hidden":false,"required":false,"index":false},{"name":"failed_disks","description":"Number of failed disks in array","type":"integer","hidden":false,"required":false,"index":false},{"name":"spare_disks","description":"Number of idle disks in array","type":"integer","hidden":false,"required":false,"index":false},{"name":"superblock_state","description":"State of the superblock","type":"text","hidden":false,"required":false,"index":false},{"name":"superblock_version","description":"Version of the superblock","type":"text","hidden":false,"required":false,"index":false},{"name":"superblock_update_time","description":"Unix timestamp of last update","type":"bigint","hidden":false,"required":false,"index":false},{"name":"bitmap_on_mem","description":"Pages allocated in in-memory bitmap, if enabled","type":"text","hidden":false,"required":false,"index":false},{"name":"bitmap_chunk_size","description":"Bitmap chunk size","type":"text","hidden":false,"required":false,"index":false},{"name":"bitmap_external_file","description":"External referenced bitmap file","type":"text","hidden":false,"required":false,"index":false},{"name":"recovery_progress","description":"Progress of the recovery activity","type":"text","hidden":false,"required":false,"index":false},{"name":"recovery_finish","description":"Estimated duration of recovery activity","type":"text","hidden":false,"required":false,"index":false},{"name":"recovery_speed","description":"Speed of recovery activity","type":"text","hidden":false,"required":false,"index":false},{"name":"resync_progress","description":"Progress of the resync activity","type":"text","hidden":false,"required":false,"index":false},{"name":"resync_finish","description":"Estimated duration of resync activity","type":"text","hidden":false,"required":false,"index":false},{"name":"resync_speed","description":"Speed of resync activity","type":"text","hidden":false,"required":false,"index":false},{"name":"reshape_progress","description":"Progress of the reshape activity","type":"text","hidden":false,"required":false,"index":false},{"name":"reshape_finish","description":"Estimated duration of reshape activity","type":"text","hidden":false,"required":false,"index":false},{"name":"reshape_speed","description":"Speed of reshape activity","type":"text","hidden":false,"required":false,"index":false},{"name":"check_array_progress","description":"Progress of the check array activity","type":"text","hidden":false,"required":false,"index":false},{"name":"check_array_finish","description":"Estimated duration of the check array activity","type":"text","hidden":false,"required":false,"index":false},{"name":"check_array_speed","description":"Speed of the check array activity","type":"text","hidden":false,"required":false,"index":false},{"name":"unused_devices","description":"Unused devices","type":"text","hidden":false,"required":false,"index":false},{"name":"other","description":"Other information associated with array from /proc/mdstat","type":"text","hidden":false,"required":false,"index":false}]},{"name":"md_drives","description":"Drive devices used for Software RAID.","platforms":["linux"],"columns":[{"name":"md_device_name","description":"md device name","type":"text","hidden":false,"required":false,"index":false},{"name":"drive_name","description":"Drive device name","type":"text","hidden":false,"required":false,"index":false},{"name":"slot","description":"Slot position of disk","type":"integer","hidden":false,"required":false,"index":false},{"name":"state","description":"State of the drive","type":"text","hidden":false,"required":false,"index":false}]},{"name":"md_personalities","description":"Software RAID setting supported by the kernel.","platforms":["linux"],"columns":[{"name":"name","description":"Name of personality supported by kernel","type":"text","hidden":false,"required":false,"index":false}]},{"name":"mdfind","description":"Run searches against the spotlight database.","platforms":["darwin"],"columns":[{"name":"path","description":"Path of the file returned from spotlight","type":"text","hidden":false,"required":false,"index":false},{"name":"query","description":"The query that was run to find the file","type":"text","hidden":false,"required":true,"index":false}]},{"name":"mdls","description":"Query file metadata in the Spotlight database.","platforms":["darwin"],"columns":[{"name":"path","description":"Path of the file","type":"text","hidden":false,"required":true,"index":false},{"name":"key","description":"Name of the metadata key","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Value stored in the metadata key","type":"text","hidden":false,"required":false,"index":false},{"name":"valuetype","description":"CoreFoundation type of data stored in value","type":"text","hidden":true,"required":false,"index":false}]},{"name":"memory_array_mapped_addresses","description":"Data associated for address mapping of physical memory arrays.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the structure","type":"text","hidden":false,"required":false,"index":false},{"name":"memory_array_handle","description":"Handle of the memory array associated with this structure","type":"text","hidden":false,"required":false,"index":false},{"name":"starting_address","description":"Physical stating address, in kilobytes, of a range of memory mapped to physical memory array","type":"text","hidden":false,"required":false,"index":false},{"name":"ending_address","description":"Physical ending address of last kilobyte of a range of memory mapped to physical memory array","type":"text","hidden":false,"required":false,"index":false},{"name":"partition_width","description":"Number of memory devices that form a single row of memory for the address partition of this structure","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"memory_arrays","description":"Data associated with collection of memory devices that operate to form a memory address.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the array","type":"text","hidden":false,"required":false,"index":false},{"name":"location","description":"Physical location of the memory array","type":"text","hidden":false,"required":false,"index":false},{"name":"use","description":"Function for which the array is used","type":"text","hidden":false,"required":false,"index":false},{"name":"memory_error_correction","description":"Primary hardware error correction or detection method supported","type":"text","hidden":false,"required":false,"index":false},{"name":"max_capacity","description":"Maximum capacity of array in gigabytes","type":"integer","hidden":false,"required":false,"index":false},{"name":"memory_error_info_handle","description":"Handle, or instance number, associated with any error that was detected for the array","type":"text","hidden":false,"required":false,"index":false},{"name":"number_memory_devices","description":"Number of memory devices on array","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"memory_device_mapped_addresses","description":"Data associated for address mapping of physical memory devices.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the structure","type":"text","hidden":false,"required":false,"index":false},{"name":"memory_device_handle","description":"Handle of the memory device structure associated with this structure","type":"text","hidden":false,"required":false,"index":false},{"name":"memory_array_mapped_address_handle","description":"Handle of the memory array mapped address to which this device range is mapped to","type":"text","hidden":false,"required":false,"index":false},{"name":"starting_address","description":"Physical stating address, in kilobytes, of a range of memory mapped to physical memory array","type":"text","hidden":false,"required":false,"index":false},{"name":"ending_address","description":"Physical ending address of last kilobyte of a range of memory mapped to physical memory array","type":"text","hidden":false,"required":false,"index":false},{"name":"partition_row_position","description":"Identifies the position of the referenced memory device in a row of the address partition","type":"integer","hidden":false,"required":false,"index":false},{"name":"interleave_position","description":"The position of the device in a interleave, i.e. 0 indicates non-interleave, 1 indicates 1st interleave, 2 indicates 2nd interleave, etc.","type":"integer","hidden":false,"required":false,"index":false},{"name":"interleave_data_depth","description":"The max number of consecutive rows from memory device that are accessed in a single interleave transfer; 0 indicates device is non-interleave","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"memory_devices","description":"Physical memory device (type 17) information retrieved from SMBIOS.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the structure in SMBIOS","type":"text","hidden":false,"required":false,"index":false},{"name":"array_handle","description":"The memory array that the device is attached to","type":"text","hidden":false,"required":false,"index":false},{"name":"form_factor","description":"Implementation form factor for this memory device","type":"text","hidden":false,"required":false,"index":false},{"name":"total_width","description":"Total width, in bits, of this memory device, including any check or error-correction bits","type":"integer","hidden":false,"required":false,"index":false},{"name":"data_width","description":"Data width, in bits, of this memory device","type":"integer","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of memory device in Megabyte","type":"integer","hidden":false,"required":false,"index":false},{"name":"set","description":"Identifies if memory device is one of a set of devices. A value of 0 indicates no set affiliation.","type":"integer","hidden":false,"required":false,"index":false},{"name":"device_locator","description":"String number of the string that identifies the physically-labeled socket or board position where the memory device is located","type":"text","hidden":false,"required":false,"index":false},{"name":"bank_locator","description":"String number of the string that identifies the physically-labeled bank where the memory device is located","type":"text","hidden":false,"required":false,"index":false},{"name":"memory_type","description":"Type of memory used","type":"text","hidden":false,"required":false,"index":false},{"name":"memory_type_details","description":"Additional details for memory device","type":"text","hidden":false,"required":false,"index":false},{"name":"max_speed","description":"Max speed of memory device in megatransfers per second (MT/s)","type":"integer","hidden":false,"required":false,"index":false},{"name":"configured_clock_speed","description":"Configured speed of memory device in megatransfers per second (MT/s)","type":"integer","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"Manufacturer ID string","type":"text","hidden":false,"required":false,"index":false},{"name":"serial_number","description":"Serial number of memory device","type":"text","hidden":false,"required":false,"index":false},{"name":"asset_tag","description":"Manufacturer specific asset tag of memory device","type":"text","hidden":false,"required":false,"index":false},{"name":"part_number","description":"Manufacturer specific serial number of memory device","type":"text","hidden":false,"required":false,"index":false},{"name":"min_voltage","description":"Minimum operating voltage of device in millivolts","type":"integer","hidden":false,"required":false,"index":false},{"name":"max_voltage","description":"Maximum operating voltage of device in millivolts","type":"integer","hidden":false,"required":false,"index":false},{"name":"configured_voltage","description":"Configured operating voltage of device in millivolts","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"memory_error_info","description":"Data associated with errors of a physical memory array.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the structure","type":"text","hidden":false,"required":false,"index":false},{"name":"error_type","description":"type of error associated with current error status for array or device","type":"text","hidden":false,"required":false,"index":false},{"name":"error_granularity","description":"Granularity to which the error can be resolved","type":"text","hidden":false,"required":false,"index":false},{"name":"error_operation","description":"Memory access operation that caused the error","type":"text","hidden":false,"required":false,"index":false},{"name":"vendor_syndrome","description":"Vendor specific ECC syndrome or CRC data associated with the erroneous access","type":"text","hidden":false,"required":false,"index":false},{"name":"memory_array_error_address","description":"32 bit physical address of the error based on the addressing of the bus to which the memory array is connected","type":"text","hidden":false,"required":false,"index":false},{"name":"device_error_address","description":"32 bit physical address of the error relative to the start of the failing memory address, in bytes","type":"text","hidden":false,"required":false,"index":false},{"name":"error_resolution","description":"Range, in bytes, within which this error can be determined, when an error address is given","type":"text","hidden":false,"required":false,"index":false}]},{"name":"memory_info","description":"Main memory information in bytes.","platforms":["linux"],"columns":[{"name":"memory_total","description":"Total amount of physical RAM, in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"memory_free","description":"The amount of physical RAM, in bytes, left unused by the system","type":"bigint","hidden":false,"required":false,"index":false},{"name":"memory_available","description":"The amount of physical RAM, in bytes, available for starting new applications, without swapping","type":"bigint","hidden":false,"required":false,"index":false},{"name":"buffers","description":"The amount of physical RAM, in bytes, used for file buffers","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cached","description":"The amount of physical RAM, in bytes, used as cache memory","type":"bigint","hidden":false,"required":false,"index":false},{"name":"swap_cached","description":"The amount of swap, in bytes, used as cache memory","type":"bigint","hidden":false,"required":false,"index":false},{"name":"active","description":"The total amount of buffer or page cache memory, in bytes, that is in active use","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inactive","description":"The total amount of buffer or page cache memory, in bytes, that are free and available","type":"bigint","hidden":false,"required":false,"index":false},{"name":"swap_total","description":"The total amount of swap available, in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"swap_free","description":"The total amount of swap free, in bytes","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"memory_map","description":"OS memory region map.","platforms":["linux"],"columns":[{"name":"name","description":"Region name","type":"text","hidden":false,"required":false,"index":false},{"name":"start","description":"Start address of memory region","type":"text","hidden":false,"required":false,"index":false},{"name":"end","description":"End address of memory region","type":"text","hidden":false,"required":false,"index":false}]},{"name":"mounts","description":"System mounted devices and filesystems (not process specific).","platforms":["darwin","linux"],"columns":[{"name":"device","description":"Mounted device","type":"text","hidden":false,"required":false,"index":false},{"name":"device_alias","description":"Mounted device alias","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Mounted device path","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Mounted device type","type":"text","hidden":false,"required":false,"index":false},{"name":"blocks_size","description":"Block size in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"blocks","description":"Mounted device used blocks","type":"bigint","hidden":false,"required":false,"index":false},{"name":"blocks_free","description":"Mounted device free blocks","type":"bigint","hidden":false,"required":false,"index":false},{"name":"blocks_available","description":"Mounted device available blocks","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inodes","description":"Mounted device used inodes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inodes_free","description":"Mounted device free inodes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"flags","description":"Mounted device flags","type":"text","hidden":false,"required":false,"index":false}]},{"name":"msr","description":"Various pieces of data stored in the model specific register per processor. NOTE: the msr kernel module must be enabled, and osquery must be run as root.","platforms":["linux"],"columns":[{"name":"processor_number","description":"The processor number as reported in /proc/cpuinfo","type":"bigint","hidden":false,"required":false,"index":false},{"name":"turbo_disabled","description":"Whether the turbo feature is disabled.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"turbo_ratio_limit","description":"The turbo feature ratio limit.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"platform_info","description":"Platform information.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"perf_ctl","description":"Performance setting for the processor.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"perf_status","description":"Performance status for the processor.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"feature_control","description":"Bitfield controlling enabled features.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"rapl_power_limit","description":"Run Time Average Power Limiting power limit.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"rapl_energy_status","description":"Run Time Average Power Limiting energy status.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"rapl_power_units","description":"Run Time Average Power Limiting power units.","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"nfs_shares","description":"NFS shares exported by the host.","platforms":["darwin"],"columns":[{"name":"share","description":"Filesystem path to the share","type":"text","hidden":false,"required":false,"index":false},{"name":"options","description":"Options string set on the export share","type":"text","hidden":false,"required":false,"index":false},{"name":"readonly","description":"1 if the share is exported readonly else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"npm_packages","description":"Node packages installed in a system.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"name","description":"Package display name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Package-supplied version","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Package-supplied description","type":"text","hidden":false,"required":false,"index":false},{"name":"author","description":"Package-supplied author","type":"text","hidden":false,"required":false,"index":false},{"name":"license","description":"License under which package is launched","type":"text","hidden":false,"required":false,"index":false},{"name":"homepage","description":"Package supplied homepage","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path at which this module resides","type":"text","hidden":false,"required":false,"index":false},{"name":"directory","description":"Directory where node_modules are located","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","hidden":true,"required":false,"index":false}]},{"name":"ntdomains","description":"Display basic NT domain information of a Windows machine.","platforms":["windows"],"columns":[{"name":"name","description":"The label by which the object is known.","type":"text","hidden":false,"required":false,"index":false},{"name":"client_site_name","description":"The name of the site where the domain controller is configured.","type":"text","hidden":false,"required":false,"index":false},{"name":"dc_site_name","description":"The name of the site where the domain controller is located.","type":"text","hidden":false,"required":false,"index":false},{"name":"dns_forest_name","description":"The name of the root of the DNS tree.","type":"text","hidden":false,"required":false,"index":false},{"name":"domain_controller_address","description":"The IP Address of the discovered domain controller..","type":"text","hidden":false,"required":false,"index":false},{"name":"domain_controller_name","description":"The name of the discovered domain controller.","type":"text","hidden":false,"required":false,"index":false},{"name":"domain_name","description":"The name of the domain.","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"The current status of the domain object.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"ntfs_acl_permissions","description":"Retrieve NTFS ACL permission information for files and directories.","platforms":["windows"],"columns":[{"name":"path","description":"Path to the file or directory.","type":"text","hidden":false,"required":true,"index":false},{"name":"type","description":"Type of access mode for the access control entry.","type":"text","hidden":false,"required":false,"index":false},{"name":"principal","description":"User or group to which the ACE applies.","type":"text","hidden":false,"required":false,"index":false},{"name":"access","description":"Specific permissions that indicate the rights described by the ACE.","type":"text","hidden":false,"required":false,"index":false},{"name":"inherited_from","description":"The inheritance policy of the ACE.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"ntfs_journal_events","description":"Track time/action changes to files specified in configuration data.","platforms":["windows"],"columns":[{"name":"action","description":"Change action (Write, Delete, etc)","type":"text","hidden":false,"required":false,"index":false},{"name":"category","description":"The category that the event originated from","type":"text","hidden":false,"required":false,"index":false},{"name":"old_path","description":"Old path (renames only)","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path","type":"text","hidden":false,"required":false,"index":false},{"name":"record_timestamp","description":"Journal record timestamp","type":"text","hidden":false,"required":false,"index":false},{"name":"record_usn","description":"The update sequence number that identifies the journal record","type":"text","hidden":false,"required":false,"index":false},{"name":"node_ref_number","description":"The ordinal that associates a journal record with a filename","type":"text","hidden":false,"required":false,"index":false},{"name":"parent_ref_number","description":"The ordinal that associates a journal record with a filename's parent directory","type":"text","hidden":false,"required":false,"index":false},{"name":"drive_letter","description":"The drive letter identifying the source journal","type":"text","hidden":false,"required":false,"index":false},{"name":"file_attributes","description":"File attributes","type":"text","hidden":false,"required":false,"index":false},{"name":"partial","description":"Set to 1 if either path or old_path only contains the file or folder name","type":"bigint","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of file event","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"nvram","description":"Apple NVRAM variable listing.","platforms":["darwin"],"columns":[{"name":"name","description":"Variable name","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Data type (CFData, CFString, etc)","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Raw variable data","type":"text","hidden":false,"required":false,"index":false}]},{"name":"oem_strings","description":"OEM defined strings retrieved from SMBIOS.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the Type 11 structure","type":"text","hidden":false,"required":false,"index":false},{"name":"number","description":"The string index of the structure","type":"integer","hidden":false,"required":false,"index":false},{"name":"value","description":"The value of the OEM string","type":"text","hidden":false,"required":false,"index":false}]},{"name":"office_mru","description":"View recently opened Office documents.","platforms":["windows"],"columns":[{"name":"application","description":"Associated Office application","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Office application version number","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"File path","type":"text","hidden":false,"required":false,"index":false},{"name":"last_opened_time","description":"Most recent opened time file was opened","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sid","description":"User SID","type":"text","hidden":false,"required":false,"index":false}]},{"name":"os_version","description":"A single row containing the operating system name and version.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"name","description":"Distribution or product name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Pretty, suitable for presentation, OS version","type":"text","hidden":false,"required":false,"index":false},{"name":"major","description":"Major release version","type":"integer","hidden":false,"required":false,"index":false},{"name":"minor","description":"Minor release version","type":"integer","hidden":false,"required":false,"index":false},{"name":"patch","description":"Optional patch release","type":"integer","hidden":false,"required":false,"index":false},{"name":"build","description":"Optional build-specific or variant string","type":"text","hidden":false,"required":false,"index":false},{"name":"platform","description":"OS Platform or ID","type":"text","hidden":false,"required":false,"index":false},{"name":"platform_like","description":"Closely related platforms","type":"text","hidden":false,"required":false,"index":false},{"name":"codename","description":"OS version codename","type":"text","hidden":false,"required":false,"index":false},{"name":"arch","description":"OS Architecture","type":"text","hidden":false,"required":false,"index":false},{"name":"install_date","description":"The install date of the OS.","type":"bigint","hidden":true,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","hidden":true,"required":false,"index":false}]},{"name":"osquery_events","description":"Information about the event publishers and subscribers.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"name","description":"Event publisher or subscriber name","type":"text","hidden":false,"required":false,"index":false},{"name":"publisher","description":"Name of the associated publisher","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Either publisher or subscriber","type":"text","hidden":false,"required":false,"index":false},{"name":"subscriptions","description":"Number of subscriptions the publisher received or subscriber used","type":"integer","hidden":false,"required":false,"index":false},{"name":"events","description":"Number of events emitted or received since osquery started","type":"integer","hidden":false,"required":false,"index":false},{"name":"refreshes","description":"Publisher only: number of runloop restarts","type":"integer","hidden":false,"required":false,"index":false},{"name":"active","description":"1 if the publisher or subscriber is active else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"osquery_extensions","description":"List of active osquery extensions.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"uuid","description":"The transient ID assigned for communication","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"Extension's name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension's version","type":"text","hidden":false,"required":false,"index":false},{"name":"sdk_version","description":"osquery SDK version used to build the extension","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of the extension's Thrift connection or library path","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"SDK extension type: core, extension, or module","type":"text","hidden":false,"required":false,"index":false}]},{"name":"osquery_flags","description":"Configurable flags that modify osquery's behavior.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"name","description":"Flag name","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Flag type","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Flag description","type":"text","hidden":false,"required":false,"index":false},{"name":"default_value","description":"Flag default value","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Flag value","type":"text","hidden":false,"required":false,"index":false},{"name":"shell_only","description":"Is the flag shell only?","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"osquery_info","description":"Top level information about the running version of osquery.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"pid","description":"Process (or thread/handle) ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Unique ID provided by the system","type":"text","hidden":false,"required":false,"index":false},{"name":"instance_id","description":"Unique, long-lived ID per instance of osquery","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"osquery toolkit version","type":"text","hidden":false,"required":false,"index":false},{"name":"config_hash","description":"Hash of the working configuration state","type":"text","hidden":false,"required":false,"index":false},{"name":"config_valid","description":"1 if the config was loaded and considered valid, else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"extensions","description":"osquery extensions status","type":"text","hidden":false,"required":false,"index":false},{"name":"build_platform","description":"osquery toolkit build platform","type":"text","hidden":false,"required":false,"index":false},{"name":"build_distro","description":"osquery toolkit platform distribution name (os version)","type":"text","hidden":false,"required":false,"index":false},{"name":"start_time","description":"UNIX time in seconds when the process started","type":"integer","hidden":false,"required":false,"index":false},{"name":"watcher","description":"Process (or thread/handle) ID of optional watcher process","type":"integer","hidden":false,"required":false,"index":false},{"name":"platform_mask","description":"The osquery platform bitmask","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"osquery_packs","description":"Information about the current query packs that are loaded in osquery.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"name","description":"The given name for this query pack","type":"text","hidden":false,"required":false,"index":false},{"name":"platform","description":"Platforms this query is supported on","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Minimum osquery version that this query will run on","type":"text","hidden":false,"required":false,"index":false},{"name":"shard","description":"Shard restriction limit, 1-100, 0 meaning no restriction","type":"integer","hidden":false,"required":false,"index":false},{"name":"discovery_cache_hits","description":"The number of times that the discovery query used cached values since the last time the config was reloaded","type":"integer","hidden":false,"required":false,"index":false},{"name":"discovery_executions","description":"The number of times that the discovery queries have been executed since the last time the config was reloaded","type":"integer","hidden":false,"required":false,"index":false},{"name":"active","description":"Whether this pack is active (the version, platform and discovery queries match) yes=1, no=0.","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"osquery_registry","description":"List the osquery registry plugins.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"registry","description":"Name of the osquery registry","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the plugin item","type":"text","hidden":false,"required":false,"index":false},{"name":"owner_uuid","description":"Extension route UUID (0 for core)","type":"integer","hidden":false,"required":false,"index":false},{"name":"internal","description":"1 If the plugin is internal else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"active","description":"1 If this plugin is active else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"osquery_schedule","description":"Information about the current queries that are scheduled in osquery.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"name","description":"The given name for this query","type":"text","hidden":false,"required":false,"index":false},{"name":"query","description":"The exact query to run","type":"text","hidden":false,"required":false,"index":false},{"name":"interval","description":"The interval in seconds to run this query, not an exact interval","type":"integer","hidden":false,"required":false,"index":false},{"name":"executions","description":"Number of times the query was executed","type":"bigint","hidden":false,"required":false,"index":false},{"name":"last_executed","description":"UNIX time stamp in seconds of the last completed execution","type":"bigint","hidden":false,"required":false,"index":false},{"name":"denylisted","description":"1 if the query is denylisted else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"output_size","description":"Cumulative total number of bytes generated by the resultant rows of the query","type":"bigint","hidden":false,"required":false,"index":false},{"name":"wall_time","description":"Total wall time in seconds spent executing (deprecated), hidden=True","type":"bigint","hidden":false,"required":false,"index":false},{"name":"wall_time_ms","description":"Total wall time in milliseconds spent executing","type":"bigint","hidden":false,"required":false,"index":false},{"name":"last_wall_time_ms","description":"Wall time in milliseconds of the latest execution","type":"bigint","hidden":false,"required":false,"index":false},{"name":"user_time","description":"Total user time in milliseconds spent executing","type":"bigint","hidden":false,"required":false,"index":false},{"name":"last_user_time","description":"User time in milliseconds of the latest execution","type":"bigint","hidden":false,"required":false,"index":false},{"name":"system_time","description":"Total system time in milliseconds spent executing","type":"bigint","hidden":false,"required":false,"index":false},{"name":"last_system_time","description":"System time in milliseconds of the latest execution","type":"bigint","hidden":false,"required":false,"index":false},{"name":"average_memory","description":"Average of the bytes of resident memory left allocated after collecting results","type":"bigint","hidden":false,"required":false,"index":false},{"name":"last_memory","description":"Resident memory in bytes left allocated after collecting results of the latest execution","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"package_bom","description":"macOS package bill of materials (BOM) file list.","platforms":["darwin"],"columns":[{"name":"filepath","description":"Package file or directory","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"Expected user of file or directory","type":"integer","hidden":false,"required":false,"index":false},{"name":"gid","description":"Expected group of file or directory","type":"integer","hidden":false,"required":false,"index":false},{"name":"mode","description":"Expected permissions","type":"integer","hidden":false,"required":false,"index":false},{"name":"size","description":"Expected file size","type":"bigint","hidden":false,"required":false,"index":false},{"name":"modified_time","description":"Timestamp the file was installed","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of package bom","type":"text","hidden":false,"required":true,"index":false}]},{"name":"package_install_history","description":"macOS package install history.","platforms":["darwin"],"columns":[{"name":"package_id","description":"Label packageIdentifiers","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Label date as UNIX timestamp","type":"integer","hidden":false,"required":false,"index":false},{"name":"name","description":"Package display name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Package display version","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Install source: usually the installer process name","type":"text","hidden":false,"required":false,"index":false},{"name":"content_type","description":"Package content_type (optional)","type":"text","hidden":false,"required":false,"index":false}]},{"name":"package_receipts","description":"macOS package receipt details.","platforms":["darwin"],"columns":[{"name":"package_id","description":"Package domain identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"package_filename","description":"Filename of original .pkg file","type":"text","hidden":true,"required":false,"index":false},{"name":"version","description":"Installed package version","type":"text","hidden":false,"required":false,"index":false},{"name":"location","description":"Optional relative install path on volume","type":"text","hidden":false,"required":false,"index":false},{"name":"install_time","description":"Timestamp of install time","type":"double","hidden":false,"required":false,"index":false},{"name":"installer_name","description":"Name of installer process","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of receipt plist","type":"text","hidden":false,"required":false,"index":false}]},{"name":"password_policy","description":"Password Policies for macOS.","platforms":["darwin"],"columns":[{"name":"uid","description":"User ID for the policy, -1 for policies that are global","type":"bigint","hidden":false,"required":false,"index":false},{"name":"policy_identifier","description":"Policy Identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"policy_content","description":"Policy content","type":"text","hidden":false,"required":false,"index":false},{"name":"policy_description","description":"Policy description","type":"text","hidden":false,"required":false,"index":false}]},{"name":"patches","description":"Lists all the patches applied. Note: This does not include patches applied via MSI or downloaded from Windows Update (e.g. Service Packs).","platforms":["windows"],"columns":[{"name":"csname","description":"The name of the host the patch is installed on.","type":"text","hidden":false,"required":false,"index":false},{"name":"hotfix_id","description":"The KB ID of the patch.","type":"text","hidden":false,"required":false,"index":false},{"name":"caption","description":"Short description of the patch.","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Fuller description of the patch.","type":"text","hidden":false,"required":false,"index":false},{"name":"fix_comments","description":"Additional comments about the patch.","type":"text","hidden":false,"required":false,"index":false},{"name":"installed_by","description":"The system context in which the patch as installed.","type":"text","hidden":false,"required":false,"index":false},{"name":"install_date","description":"Indicates when the patch was installed. Lack of a value does not indicate that the patch was not installed.","type":"text","hidden":false,"required":false,"index":false},{"name":"installed_on","description":"The date when the patch was installed.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"pci_devices","description":"PCI devices active on the host system.","platforms":["darwin","linux"],"columns":[{"name":"pci_slot","description":"PCI Device used slot","type":"text","hidden":false,"required":false,"index":false},{"name":"pci_class","description":"PCI Device class","type":"text","hidden":false,"required":false,"index":false},{"name":"driver","description":"PCI Device used driver","type":"text","hidden":false,"required":false,"index":false},{"name":"vendor","description":"PCI Device vendor","type":"text","hidden":false,"required":false,"index":false},{"name":"vendor_id","description":"Hex encoded PCI Device vendor identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"model","description":"PCI Device model","type":"text","hidden":false,"required":false,"index":false},{"name":"model_id","description":"Hex encoded PCI Device model identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"pci_class_id","description":"PCI Device class ID in hex format","type":"text","hidden":true,"required":false,"index":false},{"name":"pci_subclass_id","description":"PCI Device subclass in hex format","type":"text","hidden":true,"required":false,"index":false},{"name":"pci_subclass","description":"PCI Device subclass","type":"text","hidden":true,"required":false,"index":false},{"name":"subsystem_vendor_id","description":"Vendor ID of PCI device subsystem","type":"text","hidden":true,"required":false,"index":false},{"name":"subsystem_vendor","description":"Vendor of PCI device subsystem","type":"text","hidden":true,"required":false,"index":false},{"name":"subsystem_model_id","description":"Model ID of PCI device subsystem","type":"text","hidden":true,"required":false,"index":false},{"name":"subsystem_model","description":"Device description of PCI device subsystem","type":"text","hidden":true,"required":false,"index":false}]},{"name":"physical_disk_performance","description":"Provides provides raw data from performance counters that monitor hard or fixed disk drives on the system.","platforms":["windows"],"columns":[{"name":"name","description":"Name of the physical disk","type":"text","hidden":false,"required":false,"index":false},{"name":"avg_disk_bytes_per_read","description":"Average number of bytes transferred from the disk during read operations","type":"bigint","hidden":false,"required":false,"index":false},{"name":"avg_disk_bytes_per_write","description":"Average number of bytes transferred to the disk during write operations","type":"bigint","hidden":false,"required":false,"index":false},{"name":"avg_disk_read_queue_length","description":"Average number of read requests that were queued for the selected disk during the sample interval","type":"bigint","hidden":false,"required":false,"index":false},{"name":"avg_disk_write_queue_length","description":"Average number of write requests that were queued for the selected disk during the sample interval","type":"bigint","hidden":false,"required":false,"index":false},{"name":"avg_disk_sec_per_read","description":"Average time, in seconds, of a read operation of data from the disk","type":"integer","hidden":false,"required":false,"index":false},{"name":"avg_disk_sec_per_write","description":"Average time, in seconds, of a write operation of data to the disk","type":"integer","hidden":false,"required":false,"index":false},{"name":"current_disk_queue_length","description":"Number of requests outstanding on the disk at the time the performance data is collected","type":"integer","hidden":false,"required":false,"index":false},{"name":"percent_disk_read_time","description":"Percentage of elapsed time that the selected disk drive is busy servicing read requests","type":"bigint","hidden":false,"required":false,"index":false},{"name":"percent_disk_write_time","description":"Percentage of elapsed time that the selected disk drive is busy servicing write requests","type":"bigint","hidden":false,"required":false,"index":false},{"name":"percent_disk_time","description":"Percentage of elapsed time that the selected disk drive is busy servicing read or write requests","type":"bigint","hidden":false,"required":false,"index":false},{"name":"percent_idle_time","description":"Percentage of time during the sample interval that the disk was idle","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"pipes","description":"Named and Anonymous pipes.","platforms":["windows"],"columns":[{"name":"pid","description":"Process ID of the process to which the pipe belongs","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the pipe","type":"text","hidden":false,"required":false,"index":false},{"name":"instances","description":"Number of instances of the named pipe","type":"integer","hidden":false,"required":false,"index":false},{"name":"max_instances","description":"The maximum number of instances creatable for this pipe","type":"integer","hidden":false,"required":false,"index":false},{"name":"flags","description":"The flags indicating whether this pipe connection is a server or client end, and if the pipe for sending messages or bytes","type":"text","hidden":false,"required":false,"index":false}]},{"name":"pkg_packages","description":"pkgng packages that are currently installed on the host system.","platforms":["freebsd"],"columns":[{"name":"name","description":"Package name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Package version","type":"text","hidden":false,"required":false,"index":false},{"name":"flatsize","description":"Package size in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"arch","description":"Architecture(s) supported","type":"text","hidden":false,"required":false,"index":false}]},{"name":"platform_info","description":"Information about EFI/UEFI/ROM and platform/boot.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"vendor","description":"Platform code vendor","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Platform code version","type":"text","hidden":false,"required":false,"index":false},{"name":"date","description":"Self-reported platform code update date","type":"text","hidden":false,"required":false,"index":false},{"name":"revision","description":"BIOS major and minor revision","type":"text","hidden":false,"required":false,"index":false},{"name":"extra","description":"Platform-specific additional information","type":"text","hidden":false,"required":false,"index":false},{"name":"firmware_type","description":"The type of firmware (Uefi, Bios, Unknown).","type":"text","hidden":true,"required":false,"index":false},{"name":"address","description":"Relative address of firmware mapping","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size in bytes of firmware","type":"text","hidden":false,"required":false,"index":false},{"name":"volume_size","description":"(Optional) size of firmware volume","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"plist","description":"Read and parse a plist file.","platforms":["darwin"],"columns":[{"name":"key","description":"Preference top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"subkey","description":"Intermediate key path, includes lists/dicts","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"String value of most CF types","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"(required) read preferences from a plist","type":"text","hidden":false,"required":true,"index":false}]},{"name":"portage_keywords","description":"A summary about portage configurations like keywords, mask and unmask.","platforms":["linux"],"columns":[{"name":"package","description":"Package name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"The version which are affected by the use flags, empty means all","type":"text","hidden":false,"required":false,"index":false},{"name":"keyword","description":"The keyword applied to the package","type":"text","hidden":false,"required":false,"index":false},{"name":"mask","description":"If the package is masked","type":"integer","hidden":false,"required":false,"index":false},{"name":"unmask","description":"If the package is unmasked","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"portage_packages","description":"List of currently installed packages.","platforms":["linux"],"columns":[{"name":"package","description":"Package name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"The version which are affected by the use flags, empty means all","type":"text","hidden":false,"required":false,"index":false},{"name":"slot","description":"The slot used by package","type":"text","hidden":false,"required":false,"index":false},{"name":"build_time","description":"Unix time when package was built","type":"bigint","hidden":false,"required":false,"index":false},{"name":"repository","description":"From which repository the ebuild was used","type":"text","hidden":false,"required":false,"index":false},{"name":"eapi","description":"The eapi for the ebuild","type":"bigint","hidden":false,"required":false,"index":false},{"name":"size","description":"The size of the package","type":"bigint","hidden":false,"required":false,"index":false},{"name":"world","description":"If package is in the world file","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"portage_use","description":"List of enabled portage USE values for specific package.","platforms":["linux"],"columns":[{"name":"package","description":"Package name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"The version of the installed package","type":"text","hidden":false,"required":false,"index":false},{"name":"use","description":"USE flag which has been enabled for package","type":"text","hidden":false,"required":false,"index":false}]},{"name":"power_sensors","description":"Machine power (currents, voltages, wattages, etc) sensors.","platforms":["darwin"],"columns":[{"name":"key","description":"The SMC key on macOS","type":"text","hidden":false,"required":false,"index":false},{"name":"category","description":"The sensor category: currents, voltage, wattage","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of power source","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Power in Watts","type":"text","hidden":false,"required":false,"index":false}]},{"name":"powershell_events","description":"Powershell script blocks reconstructed to their full script content, this table requires script block logging to be enabled.","platforms":["windows"],"columns":[{"name":"time","description":"Timestamp the event was received by the osquery event publisher","type":"bigint","hidden":false,"required":false,"index":false},{"name":"datetime","description":"System time at which the Powershell script event occurred","type":"text","hidden":false,"required":false,"index":false},{"name":"script_block_id","description":"The unique GUID of the powershell script to which this block belongs","type":"text","hidden":false,"required":false,"index":false},{"name":"script_block_count","description":"The total number of script blocks for this script","type":"integer","hidden":false,"required":false,"index":false},{"name":"script_text","description":"The text content of the Powershell script","type":"text","hidden":false,"required":false,"index":false},{"name":"script_name","description":"The name of the Powershell script","type":"text","hidden":false,"required":false,"index":false},{"name":"script_path","description":"The path for the Powershell script","type":"text","hidden":false,"required":false,"index":false},{"name":"cosine_similarity","description":"How similar the Powershell script is to a provided 'normal' character frequency","type":"double","hidden":false,"required":false,"index":false}]},{"name":"preferences","description":"macOS defaults and managed preferences.","platforms":["darwin"],"columns":[{"name":"domain","description":"Application ID usually in com.name.product format","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Preference top-level key","type":"text","hidden":false,"required":false,"index":false},{"name":"subkey","description":"Intemediate key path, includes lists/dicts","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"String value of most CF types","type":"text","hidden":false,"required":false,"index":false},{"name":"forced","description":"1 if the value is forced/managed, else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"username","description":"(optional) read preferences for a specific user","type":"text","hidden":false,"required":false,"index":false},{"name":"host","description":"'current' or 'any' host, where 'current' takes precedence","type":"text","hidden":false,"required":false,"index":false}]},{"name":"prefetch","description":"Prefetch files show metadata related to file execution.","platforms":["windows"],"columns":[{"name":"path","description":"Prefetch file path.","type":"text","hidden":false,"required":false,"index":false},{"name":"filename","description":"Executable filename.","type":"text","hidden":false,"required":false,"index":false},{"name":"hash","description":"Prefetch CRC hash.","type":"text","hidden":false,"required":false,"index":false},{"name":"last_run_time","description":"Most recent time application was run.","type":"integer","hidden":false,"required":false,"index":false},{"name":"other_run_times","description":"Other execution times in prefetch file.","type":"text","hidden":false,"required":false,"index":false},{"name":"run_count","description":"Number of times the application has been run.","type":"integer","hidden":false,"required":false,"index":false},{"name":"size","description":"Application file size.","type":"integer","hidden":false,"required":false,"index":false},{"name":"volume_serial","description":"Volume serial number.","type":"text","hidden":false,"required":false,"index":false},{"name":"volume_creation","description":"Volume creation time.","type":"text","hidden":false,"required":false,"index":false},{"name":"accessed_files_count","description":"Number of files accessed.","type":"integer","hidden":false,"required":false,"index":false},{"name":"accessed_directories_count","description":"Number of directories accessed.","type":"integer","hidden":false,"required":false,"index":false},{"name":"accessed_files","description":"Files accessed by application within ten seconds of launch.","type":"text","hidden":false,"required":false,"index":false},{"name":"accessed_directories","description":"Directories accessed by application within ten seconds of launch.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"process_envs","description":"A key/value table of environment variables for each process.","platforms":["darwin","linux"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"key","description":"Environment variable name","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Environment variable value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"process_events","description":"Track time/action process executions.","platforms":["darwin","linux"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","hidden":false,"required":false,"index":false},{"name":"mode","description":"File mode permissions","type":"text","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Command line arguments (argv)","type":"text","hidden":false,"required":false,"index":false},{"name":"cmdline_size","description":"Actual size (bytes) of command line arguments","type":"bigint","hidden":true,"required":false,"index":false},{"name":"env","description":"Environment variables delimited by spaces","type":"text","hidden":true,"required":false,"index":false},{"name":"env_count","description":"Number of environment variables","type":"bigint","hidden":true,"required":false,"index":false},{"name":"env_size","description":"Actual size (bytes) of environment list","type":"bigint","hidden":true,"required":false,"index":false},{"name":"cwd","description":"The process current working directory","type":"text","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit User ID at process start","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID at process start","type":"bigint","hidden":false,"required":false,"index":false},{"name":"euid","description":"Effective user ID at process start","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID at process start","type":"bigint","hidden":false,"required":false,"index":false},{"name":"egid","description":"Effective group ID at process start","type":"bigint","hidden":false,"required":false,"index":false},{"name":"owner_uid","description":"File owner user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"owner_gid","description":"File owner group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"atime","description":"File last access in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mtime","description":"File modification in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ctime","description":"File last metadata change in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"btime","description":"File creation in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"overflows","description":"List of structures that overflowed","type":"text","hidden":true,"required":false,"index":false},{"name":"parent","description":"Process parent's PID, or -1 if cannot be determined.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false},{"name":"status","description":"OpenBSM Attribute: Status of the process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"fsuid","description":"Filesystem user ID at process start","type":"bigint","hidden":true,"required":false,"index":false},{"name":"suid","description":"Saved user ID at process start","type":"bigint","hidden":true,"required":false,"index":false},{"name":"fsgid","description":"Filesystem group ID at process start","type":"bigint","hidden":true,"required":false,"index":false},{"name":"sgid","description":"Saved group ID at process start","type":"bigint","hidden":true,"required":false,"index":false},{"name":"syscall","description":"Syscall name: fork, vfork, clone, execve, execveat","type":"text","hidden":true,"required":false,"index":false}]},{"name":"process_file_events","description":"A File Integrity Monitor implementation using the audit service.","platforms":["linux"],"columns":[{"name":"operation","description":"Operation type","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ppid","description":"Parent process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"executable","description":"The executable path","type":"text","hidden":false,"required":false,"index":false},{"name":"partial","description":"True if this is a partial event (i.e.: this process existed before we started osquery)","type":"text","hidden":false,"required":false,"index":false},{"name":"cwd","description":"The current working directory of the process","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"The path associated with the event","type":"text","hidden":false,"required":false,"index":false},{"name":"dest_path","description":"The canonical path associated with the event","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"The uid of the process performing the action","type":"text","hidden":false,"required":false,"index":false},{"name":"gid","description":"The gid of the process performing the action","type":"text","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit user ID of the process using the file","type":"text","hidden":false,"required":false,"index":false},{"name":"euid","description":"Effective user ID of the process using the file","type":"text","hidden":false,"required":false,"index":false},{"name":"egid","description":"Effective group ID of the process using the file","type":"text","hidden":false,"required":false,"index":false},{"name":"fsuid","description":"Filesystem user ID of the process using the file","type":"text","hidden":false,"required":false,"index":false},{"name":"fsgid","description":"Filesystem group ID of the process using the file","type":"text","hidden":false,"required":false,"index":false},{"name":"suid","description":"Saved user ID of the process using the file","type":"text","hidden":false,"required":false,"index":false},{"name":"sgid","description":"Saved group ID of the process using the file","type":"text","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"process_memory_map","description":"Process memory mapped files and pseudo device/regions.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"start","description":"Virtual start address (hex)","type":"text","hidden":false,"required":false,"index":false},{"name":"end","description":"Virtual end address (hex)","type":"text","hidden":false,"required":false,"index":false},{"name":"permissions","description":"r=read, w=write, x=execute, p=private (cow)","type":"text","hidden":false,"required":false,"index":false},{"name":"offset","description":"Offset into mapped path","type":"bigint","hidden":false,"required":false,"index":false},{"name":"device","description":"MA:MI Major/minor device ID","type":"text","hidden":false,"required":false,"index":false},{"name":"inode","description":"Mapped path inode, 0 means uninitialized (BSS)","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to mapped file or mapped type","type":"text","hidden":false,"required":false,"index":false},{"name":"pseudo","description":"1 If path is a pseudo path, else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"process_namespaces","description":"Linux namespaces for processes running on the host system.","platforms":["linux"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"cgroup_namespace","description":"cgroup namespace inode","type":"text","hidden":false,"required":false,"index":false},{"name":"ipc_namespace","description":"ipc namespace inode","type":"text","hidden":false,"required":false,"index":false},{"name":"mnt_namespace","description":"mnt namespace inode","type":"text","hidden":false,"required":false,"index":false},{"name":"net_namespace","description":"net namespace inode","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_namespace","description":"pid namespace inode","type":"text","hidden":false,"required":false,"index":false},{"name":"user_namespace","description":"user namespace inode","type":"text","hidden":false,"required":false,"index":false},{"name":"uts_namespace","description":"uts namespace inode","type":"text","hidden":false,"required":false,"index":false}]},{"name":"process_open_files","description":"File descriptors for each process.","platforms":["darwin","linux"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"fd","description":"Process-specific file descriptor number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Filesystem path of descriptor","type":"text","hidden":false,"required":false,"index":false}]},{"name":"process_open_pipes","description":"Pipes and partner processes for each process.","platforms":["linux"],"columns":[{"name":"pid","description":"Process ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"fd","description":"File descriptor","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mode","description":"Pipe open mode (r/w)","type":"text","hidden":false,"required":false,"index":false},{"name":"inode","description":"Pipe inode number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"type","description":"Pipe Type: named vs unnamed/anonymous","type":"text","hidden":false,"required":false,"index":false},{"name":"partner_pid","description":"Process ID of partner process sharing a particular pipe","type":"bigint","hidden":false,"required":false,"index":false},{"name":"partner_fd","description":"File descriptor of shared pipe at partner's end","type":"bigint","hidden":false,"required":false,"index":false},{"name":"partner_mode","description":"Mode of shared pipe at partner's end","type":"text","hidden":false,"required":false,"index":false}]},{"name":"process_open_sockets","description":"Processes which have open network sockets on the system.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"fd","description":"Socket file descriptor number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"socket","description":"Socket handle or inode number","type":"bigint","hidden":false,"required":false,"index":false},{"name":"family","description":"Network protocol (IPv4, IPv6)","type":"integer","hidden":false,"required":false,"index":false},{"name":"protocol","description":"Transport protocol (TCP/UDP)","type":"integer","hidden":false,"required":false,"index":false},{"name":"local_address","description":"Socket local address","type":"text","hidden":false,"required":false,"index":false},{"name":"remote_address","description":"Socket remote address","type":"text","hidden":false,"required":false,"index":false},{"name":"local_port","description":"Socket local port","type":"integer","hidden":false,"required":false,"index":false},{"name":"remote_port","description":"Socket remote port","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"For UNIX sockets (family=AF_UNIX), the domain path","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"TCP socket state","type":"text","hidden":false,"required":false,"index":false},{"name":"net_namespace","description":"The inode number of the network namespace","type":"text","hidden":true,"required":false,"index":false}]},{"name":"processes","description":"All running processes on the host system.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"The process path or shorthand argv[0]","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to executed binary","type":"text","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Complete argv","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"Process state","type":"text","hidden":false,"required":false,"index":false},{"name":"cwd","description":"Process current working directory","type":"text","hidden":false,"required":false,"index":false},{"name":"root","description":"Process virtual root directory","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"Unsigned user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Unsigned group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"euid","description":"Unsigned effective user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"egid","description":"Unsigned effective group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"suid","description":"Unsigned saved user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sgid","description":"Unsigned saved group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"on_disk","description":"The process path exists yes=1, no=0, unknown=-1","type":"integer","hidden":false,"required":false,"index":false},{"name":"wired_size","description":"Bytes of unpageable memory used by process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"resident_size","description":"Bytes of private memory used by process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"total_size","description":"Total virtual memory size","type":"bigint","hidden":false,"required":false,"index":false},{"name":"user_time","description":"CPU time in milliseconds spent in user space","type":"bigint","hidden":false,"required":false,"index":false},{"name":"system_time","description":"CPU time in milliseconds spent in kernel space","type":"bigint","hidden":false,"required":false,"index":false},{"name":"disk_bytes_read","description":"Bytes read from disk","type":"bigint","hidden":false,"required":false,"index":false},{"name":"disk_bytes_written","description":"Bytes written to disk","type":"bigint","hidden":false,"required":false,"index":false},{"name":"start_time","description":"Process start time in seconds since Epoch, in case of error -1","type":"bigint","hidden":false,"required":false,"index":false},{"name":"parent","description":"Process parent's PID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pgroup","description":"Process group","type":"bigint","hidden":false,"required":false,"index":false},{"name":"threads","description":"Number of threads used by process","type":"integer","hidden":false,"required":false,"index":false},{"name":"nice","description":"Process nice level (-20 to 20, default 0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"elevated_token","description":"Process uses elevated token yes=1, no=0","type":"integer","hidden":true,"required":false,"index":false},{"name":"secure_process","description":"Process is secure (IUM) yes=1, no=0","type":"integer","hidden":true,"required":false,"index":false},{"name":"protection_type","description":"The protection type of the process","type":"text","hidden":true,"required":false,"index":false},{"name":"virtual_process","description":"Process is virtual (e.g. System, Registry, vmmem) yes=1, no=0","type":"integer","hidden":true,"required":false,"index":false},{"name":"elapsed_time","description":"Elapsed time in seconds this process has been running.","type":"bigint","hidden":true,"required":false,"index":false},{"name":"handle_count","description":"Total number of handles that the process has open. This number is the sum of the handles currently opened by each thread in the process.","type":"bigint","hidden":true,"required":false,"index":false},{"name":"percent_processor_time","description":"Returns elapsed time that all of the threads of this process used the processor to execute instructions in 100 nanoseconds ticks.","type":"bigint","hidden":true,"required":false,"index":false},{"name":"upid","description":"A 64bit pid that is never reused. Returns -1 if we couldn't gather them from the system.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uppid","description":"The 64bit parent pid that is never reused. Returns -1 if we couldn't gather them from the system.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cpu_type","description":"Indicates the specific processor designed for installation.","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_subtype","description":"Indicates the specific processor on which an entry may be used.","type":"integer","hidden":false,"required":false,"index":false},{"name":"translated","description":"Indicates whether the process is running under the Rosetta Translation Environment, yes=1, no=0, error=-1.","type":"integer","hidden":false,"required":false,"index":false},{"name":"cgroup_path","description":"The full hierarchical path of the process's control group","type":"text","hidden":true,"required":false,"index":false}]},{"name":"programs","description":"Represents products as they are installed by Windows Installer. A product generally correlates to one installation package on Windows. Some fields may be blank as Windows installation details are left to the discretion of the product author.","platforms":["windows"],"columns":[{"name":"name","description":"Commonly used product name.","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Product version information.","type":"text","hidden":false,"required":false,"index":false},{"name":"install_location","description":"The installation location directory of the product.","type":"text","hidden":false,"required":false,"index":false},{"name":"install_source","description":"The installation source of the product.","type":"text","hidden":false,"required":false,"index":false},{"name":"language","description":"The language of the product.","type":"text","hidden":false,"required":false,"index":false},{"name":"publisher","description":"Name of the product supplier.","type":"text","hidden":false,"required":false,"index":false},{"name":"uninstall_string","description":"Path and filename of the uninstaller.","type":"text","hidden":false,"required":false,"index":false},{"name":"install_date","description":"Date that this product was installed on the system. ","type":"text","hidden":false,"required":false,"index":false},{"name":"identifying_number","description":"Product identification such as a serial number on software, or a die number on a hardware chip.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"prometheus_metrics","description":"Retrieve metrics from a Prometheus server.","platforms":["darwin","linux"],"columns":[{"name":"target_name","description":"Address of prometheus target","type":"text","hidden":false,"required":false,"index":false},{"name":"metric_name","description":"Name of collected Prometheus metric","type":"text","hidden":false,"required":false,"index":false},{"name":"metric_value","description":"Value of collected Prometheus metric","type":"double","hidden":false,"required":false,"index":false},{"name":"timestamp_ms","description":"Unix timestamp of collected data in MS","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"python_packages","description":"Python packages installed in a system.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"name","description":"Package display name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Package-supplied version","type":"text","hidden":false,"required":false,"index":false},{"name":"summary","description":"Package-supplied summary","type":"text","hidden":false,"required":false,"index":false},{"name":"author","description":"Optional package author","type":"text","hidden":false,"required":false,"index":false},{"name":"license","description":"License under which package is launched","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path at which this module resides","type":"text","hidden":false,"required":false,"index":false},{"name":"directory","description":"Directory where Python modules are located","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"quicklook_cache","description":"Files and thumbnails within macOS's Quicklook Cache.","platforms":["darwin"],"columns":[{"name":"path","description":"Path of file","type":"text","hidden":false,"required":false,"index":false},{"name":"rowid","description":"Quicklook file rowid key","type":"integer","hidden":false,"required":false,"index":false},{"name":"fs_id","description":"Quicklook file fs_id key","type":"text","hidden":false,"required":false,"index":false},{"name":"volume_id","description":"Parsed volume ID from fs_id","type":"integer","hidden":false,"required":false,"index":false},{"name":"inode","description":"Parsed file ID (inode) from fs_id","type":"integer","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Parsed version date field","type":"integer","hidden":false,"required":false,"index":false},{"name":"size","description":"Parsed version size field","type":"bigint","hidden":false,"required":false,"index":false},{"name":"label","description":"Parsed version 'gen' field","type":"text","hidden":false,"required":false,"index":false},{"name":"last_hit_date","description":"Apple date format for last thumbnail cache hit","type":"integer","hidden":false,"required":false,"index":false},{"name":"hit_count","description":"Number of cache hits on thumbnail","type":"text","hidden":false,"required":false,"index":false},{"name":"icon_mode","description":"Thumbnail icon mode","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cache_path","description":"Path to cache data","type":"text","hidden":false,"required":false,"index":false}]},{"name":"registry","description":"All of the Windows registry hives.","platforms":["windows"],"columns":[{"name":"key","description":"Name of the key to search for","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Full path to the value","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the registry value entry","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of the registry value, or 'subkey' if item is a subkey","type":"text","hidden":false,"required":false,"index":false},{"name":"data","description":"Data content of registry value","type":"text","hidden":false,"required":false,"index":false},{"name":"mtime","description":"timestamp of the most recent registry write","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"routes","description":"The active route table for the host system.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"destination","description":"Destination IP address","type":"text","hidden":false,"required":false,"index":false},{"name":"netmask","description":"Netmask length","type":"integer","hidden":false,"required":false,"index":false},{"name":"gateway","description":"Route gateway","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Route source","type":"text","hidden":false,"required":false,"index":false},{"name":"flags","description":"Flags to describe route","type":"integer","hidden":false,"required":false,"index":false},{"name":"interface","description":"Route local interface","type":"text","hidden":false,"required":false,"index":false},{"name":"mtu","description":"Maximum Transmission Unit for the route","type":"integer","hidden":false,"required":false,"index":false},{"name":"metric","description":"Cost of route. Lowest is preferred","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of route","type":"text","hidden":false,"required":false,"index":false},{"name":"hopcount","description":"Max hops expected","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"rpm_package_files","description":"RPM packages that are currently installed on the host system.","platforms":["linux"],"columns":[{"name":"package","description":"RPM package name","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"File path within the package","type":"text","hidden":false,"required":false,"index":false},{"name":"username","description":"File default username from info DB","type":"text","hidden":false,"required":false,"index":false},{"name":"groupname","description":"File default groupname from info DB","type":"text","hidden":false,"required":false,"index":false},{"name":"mode","description":"File permissions mode from info DB","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Expected file size in bytes from RPM info DB","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sha256","description":"SHA256 file digest from RPM info DB","type":"text","hidden":false,"required":false,"index":false}]},{"name":"rpm_packages","description":"RPM packages that are currently installed on the host system.","platforms":["linux"],"columns":[{"name":"name","description":"RPM package name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Package version","type":"text","hidden":false,"required":false,"index":false},{"name":"release","description":"Package release","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Source RPM package name (optional)","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Package size in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sha1","description":"SHA1 hash of the package contents","type":"text","hidden":false,"required":false,"index":false},{"name":"arch","description":"Architecture(s) supported","type":"text","hidden":false,"required":false,"index":false},{"name":"epoch","description":"Package epoch value","type":"integer","hidden":false,"required":false,"index":false},{"name":"install_time","description":"When the package was installed","type":"integer","hidden":false,"required":false,"index":false},{"name":"vendor","description":"Package vendor","type":"text","hidden":false,"required":false,"index":false},{"name":"package_group","description":"Package group","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","hidden":true,"required":false,"index":false}]},{"name":"running_apps","description":"macOS applications currently running on the host system.","platforms":["darwin"],"columns":[{"name":"pid","description":"The pid of the application","type":"integer","hidden":false,"required":false,"index":false},{"name":"bundle_identifier","description":"The bundle identifier of the application","type":"text","hidden":false,"required":false,"index":false},{"name":"is_active","description":"1 if the application is in focus, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"safari_extensions","description":"Safari browser extension details for all users.","platforms":["darwin"],"columns":[{"name":"uid","description":"The local user that owns the extension","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"Extension display name","type":"text","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Extension identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension long version","type":"text","hidden":false,"required":false,"index":false},{"name":"sdk","description":"Bundle SDK used to compile extension","type":"text","hidden":false,"required":false,"index":false},{"name":"update_url","description":"Extension-supplied update URI","type":"text","hidden":false,"required":false,"index":false},{"name":"author","description":"Optional extension author","type":"text","hidden":false,"required":false,"index":false},{"name":"developer_id","description":"Optional developer identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Optional extension description text","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to extension XAR bundle","type":"text","hidden":false,"required":false,"index":false}]},{"name":"sandboxes","description":"macOS application sandboxes container details.","platforms":["darwin"],"columns":[{"name":"label","description":"UTI-format bundle or label ID","type":"text","hidden":false,"required":false,"index":false},{"name":"user","description":"Sandbox owner","type":"text","hidden":false,"required":false,"index":false},{"name":"enabled","description":"Application sandboxings enabled on container","type":"integer","hidden":false,"required":false,"index":false},{"name":"build_id","description":"Sandbox-specific identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"bundle_path","description":"Application bundle used by the sandbox","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to sandbox container directory","type":"text","hidden":false,"required":false,"index":false}]},{"name":"scheduled_tasks","description":"Lists all of the tasks in the Windows task scheduler.","platforms":["windows"],"columns":[{"name":"name","description":"Name of the scheduled task","type":"text","hidden":false,"required":false,"index":false},{"name":"action","description":"Actions executed by the scheduled task","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to the executable to be run","type":"text","hidden":false,"required":false,"index":false},{"name":"enabled","description":"Whether or not the scheduled task is enabled","type":"integer","hidden":false,"required":false,"index":false},{"name":"state","description":"State of the scheduled task","type":"text","hidden":false,"required":false,"index":false},{"name":"hidden","description":"Whether or not the task is visible in the UI","type":"integer","hidden":false,"required":false,"index":false},{"name":"last_run_time","description":"Timestamp the task last ran","type":"bigint","hidden":false,"required":false,"index":false},{"name":"next_run_time","description":"Timestamp the task is scheduled to run next","type":"bigint","hidden":false,"required":false,"index":false},{"name":"last_run_message","description":"Exit status message of the last task run","type":"text","hidden":false,"required":false,"index":false},{"name":"last_run_code","description":"Exit status code of the last task run","type":"text","hidden":false,"required":false,"index":false}]},{"name":"screenlock","description":"macOS screenlock status. Note: only fetches results for osquery's current logged-in user context. The user must also have recently logged in.","platforms":["darwin"],"columns":[{"name":"enabled","description":"1 If a password is required after sleep or the screensaver begins; else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"grace_period","description":"The amount of time in seconds the screen must be asleep or the screensaver on before a password is required on-wake. 0 = immediately; -1 = no password is required on-wake","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"seccomp_events","description":"A virtual table that tracks seccomp events.","platforms":["linux"],"columns":[{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit user ID (loginuid) of the user who started the analyzed process","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID of the user who started the analyzed process","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID of the user who started the analyzed process","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"ses","description":"Session ID of the session from which the analyzed process was invoked","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"unsigned_bigint","hidden":false,"required":false,"index":false},{"name":"comm","description":"Command-line name of the command that was used to invoke the analyzed process","type":"text","hidden":false,"required":false,"index":false},{"name":"exe","description":"The path to the executable that was used to invoke the analyzed process","type":"text","hidden":false,"required":false,"index":false},{"name":"sig","description":"Signal value sent to process by seccomp","type":"bigint","hidden":false,"required":false,"index":false},{"name":"arch","description":"Information about the CPU architecture","type":"text","hidden":false,"required":false,"index":false},{"name":"syscall","description":"Type of the system call","type":"text","hidden":false,"required":false,"index":false},{"name":"compat","description":"Is system call in compatibility mode","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ip","description":"Instruction pointer value","type":"text","hidden":false,"required":false,"index":false},{"name":"code","description":"The seccomp action","type":"text","hidden":false,"required":false,"index":false}]},{"name":"secureboot","description":"Secure Boot UEFI Settings.","platforms":["linux","windows"],"columns":[{"name":"secure_boot","description":"Whether secure boot is enabled","type":"integer","hidden":false,"required":false,"index":false},{"name":"setup_mode","description":"Whether setup mode is enabled","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"selinux_events","description":"Track SELinux events.","platforms":["linux"],"columns":[{"name":"type","description":"Event type","type":"text","hidden":false,"required":false,"index":false},{"name":"message","description":"Message","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"selinux_settings","description":"Track active SELinux settings.","platforms":["linux"],"columns":[{"name":"scope","description":"Where the key is located inside the SELinuxFS mount point.","type":"text","hidden":false,"required":false,"index":false},{"name":"key","description":"Key or class name.","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Active value.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"services","description":"Lists all installed Windows services and their relevant data.","platforms":["windows"],"columns":[{"name":"name","description":"Service name","type":"text","hidden":false,"required":false,"index":false},{"name":"service_type","description":"Service Type: OWN_PROCESS, SHARE_PROCESS and maybe Interactive (can interact with the desktop)","type":"text","hidden":false,"required":false,"index":false},{"name":"display_name","description":"Service Display name","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"Service Current status: STOPPED, START_PENDING, STOP_PENDING, RUNNING, CONTINUE_PENDING, PAUSE_PENDING, PAUSED","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"the Process ID of the service","type":"integer","hidden":false,"required":false,"index":false},{"name":"start_type","description":"Service start type: BOOT_START, SYSTEM_START, AUTO_START, DEMAND_START, DISABLED","type":"text","hidden":false,"required":false,"index":false},{"name":"win32_exit_code","description":"The error code that the service uses to report an error that occurs when it is starting or stopping","type":"integer","hidden":false,"required":false,"index":false},{"name":"service_exit_code","description":"The service-specific error code that the service returns when an error occurs while the service is starting or stopping","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to Service Executable","type":"text","hidden":false,"required":false,"index":false},{"name":"module_path","description":"Path to ServiceDll","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Service Description","type":"text","hidden":false,"required":false,"index":false},{"name":"user_account","description":"The name of the account that the service process will be logged on as when it runs. This name can be of the form Domain\\UserName. If the account belongs to the built-in domain, the name can be of the form .\\UserName.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"shadow","description":"Local system users encrypted passwords and related information. Please note, that you usually need superuser rights to access `/etc/shadow`.","platforms":["linux"],"columns":[{"name":"password_status","description":"Password status","type":"text","hidden":false,"required":false,"index":false},{"name":"hash_alg","description":"Password hashing algorithm","type":"text","hidden":false,"required":false,"index":false},{"name":"last_change","description":"Date of last password change (starting from UNIX epoch date)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"min","description":"Minimal number of days between password changes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"max","description":"Maximum number of days between password changes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"warning","description":"Number of days before password expires to warn user about it","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inactive","description":"Number of days after password expires until account is blocked","type":"bigint","hidden":false,"required":false,"index":false},{"name":"expire","description":"Number of days since UNIX epoch date until account is disabled","type":"bigint","hidden":false,"required":false,"index":false},{"name":"flag","description":"Reserved","type":"bigint","hidden":false,"required":false,"index":false},{"name":"username","description":"Username","type":"text","hidden":false,"required":false,"index":false}]},{"name":"shared_folders","description":"Folders available to others via SMB or AFP.","platforms":["darwin"],"columns":[{"name":"name","description":"The shared name of the folder as it appears to other users","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Absolute path of shared folder on the local system","type":"text","hidden":false,"required":false,"index":false}]},{"name":"shared_memory","description":"OS shared memory regions.","platforms":["linux"],"columns":[{"name":"shmid","description":"Shared memory segment ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"owner_uid","description":"User ID of owning process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"creator_uid","description":"User ID of creator process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID to last use the segment","type":"bigint","hidden":false,"required":false,"index":false},{"name":"creator_pid","description":"Process ID that created the segment","type":"bigint","hidden":false,"required":false,"index":false},{"name":"atime","description":"Attached time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"dtime","description":"Detached time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Changed time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"permissions","description":"Memory segment permissions","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Size in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"attached","description":"Number of attached processes","type":"integer","hidden":false,"required":false,"index":false},{"name":"status","description":"Destination/attach status","type":"text","hidden":false,"required":false,"index":false},{"name":"locked","description":"1 if segment is locked else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"shared_resources","description":"Displays shared resources on a computer system running Windows. This may be a disk drive, printer, interprocess communication, or other sharable device.","platforms":["windows"],"columns":[{"name":"description","description":"A textual description of the object","type":"text","hidden":false,"required":false,"index":false},{"name":"install_date","description":"Indicates when the object was installed. Lack of a value does not indicate that the object is not installed.","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"String that indicates the current status of the object.","type":"text","hidden":false,"required":false,"index":false},{"name":"allow_maximum","description":"Number of concurrent users for this resource has been limited. If True, the value in the MaximumAllowed property is ignored.","type":"integer","hidden":false,"required":false,"index":false},{"name":"maximum_allowed","description":"Limit on the maximum number of users allowed to use this resource concurrently. The value is only valid if the AllowMaximum property is set to FALSE.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"Alias given to a path set up as a share on a computer system running Windows.","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Local path of the Windows share.","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of resource being shared. Types include: disk drives, print queues, interprocess communications (IPC), and general devices.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"type_name","description":"Human readable value for the 'type' column","type":"text","hidden":false,"required":false,"index":false}]},{"name":"sharing_preferences","description":"macOS Sharing preferences.","platforms":["darwin"],"columns":[{"name":"screen_sharing","description":"1 If screen sharing is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"file_sharing","description":"1 If file sharing is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"printer_sharing","description":"1 If printer sharing is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"remote_login","description":"1 If remote login is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"remote_management","description":"1 If remote management is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"remote_apple_events","description":"1 If remote apple events are enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"internet_sharing","description":"1 If internet sharing is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"bluetooth_sharing","description":"1 If bluetooth sharing is enabled for any user else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"disc_sharing","description":"1 If CD or DVD sharing is enabled else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"content_caching","description":"1 If content caching is enabled else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"shell_history","description":"A line-delimited (command) table of per-user .*_history data.","platforms":["darwin","linux"],"columns":[{"name":"uid","description":"Shell history owner","type":"bigint","hidden":false,"required":false,"index":false},{"name":"time","description":"Entry timestamp. It could be absent, default value is 0.","type":"integer","hidden":false,"required":false,"index":false},{"name":"command","description":"Unparsed date/line/command history line","type":"text","hidden":false,"required":false,"index":false},{"name":"history_file","description":"Path to the .*_history for this user","type":"text","hidden":false,"required":false,"index":false}]},{"name":"shellbags","description":"Shows directories accessed via Windows Explorer.","platforms":["windows"],"columns":[{"name":"sid","description":"User SID","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Shellbags source Registry file","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Directory name.","type":"text","hidden":false,"required":false,"index":false},{"name":"modified_time","description":"Directory Modified time.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"created_time","description":"Directory Created time.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"accessed_time","description":"Directory Accessed time.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mft_entry","description":"Directory master file table entry.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"mft_sequence","description":"Directory master file table sequence.","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"shimcache","description":"Application Compatibility Cache, contains artifacts of execution.","platforms":["windows"],"columns":[{"name":"entry","description":"Execution order.","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"This is the path to the executed file.","type":"text","hidden":false,"required":false,"index":false},{"name":"modified_time","description":"File Modified time.","type":"integer","hidden":false,"required":false,"index":false},{"name":"execution_flag","description":"Boolean Execution flag, 1 for execution, 0 for no execution, -1 for missing (this flag does not exist on Windows 10 and higher).","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"signature","description":"File (executable, bundle, installer, disk) code signing status.","platforms":["darwin"],"columns":[{"name":"path","description":"Must provide a path or directory","type":"text","hidden":false,"required":true,"index":false},{"name":"hash_resources","description":"Set to 1 to also hash resources, or 0 otherwise. Default is 1","type":"integer","hidden":false,"required":false,"index":false},{"name":"arch","description":"If applicable, the arch of the signed code","type":"text","hidden":false,"required":false,"index":false},{"name":"signed","description":"1 If the file is signed else 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"identifier","description":"The signing identifier sealed into the signature","type":"text","hidden":false,"required":false,"index":false},{"name":"cdhash","description":"Hash of the application Code Directory","type":"text","hidden":false,"required":false,"index":false},{"name":"team_identifier","description":"The team signing identifier sealed into the signature","type":"text","hidden":false,"required":false,"index":false},{"name":"authority","description":"Certificate Common Name","type":"text","hidden":false,"required":false,"index":false}]},{"name":"sip_config","description":"Apple's System Integrity Protection (rootless) status.","platforms":["darwin"],"columns":[{"name":"config_flag","description":"The System Integrity Protection config flag","type":"text","hidden":false,"required":false,"index":false},{"name":"enabled","description":"1 if this configuration is enabled, otherwise 0","type":"integer","hidden":false,"required":false,"index":false},{"name":"enabled_nvram","description":"1 if this configuration is enabled, otherwise 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"smbios_tables","description":"BIOS (DMI) structure common details and content.","platforms":["darwin","linux"],"columns":[{"name":"number","description":"Table entry number","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"Table entry type","type":"integer","hidden":false,"required":false,"index":false},{"name":"description","description":"Table entry description","type":"text","hidden":false,"required":false,"index":false},{"name":"handle","description":"Table entry handle","type":"integer","hidden":false,"required":false,"index":false},{"name":"header_size","description":"Header size in bytes","type":"integer","hidden":false,"required":false,"index":false},{"name":"size","description":"Table entry size in bytes","type":"integer","hidden":false,"required":false,"index":false},{"name":"md5","description":"MD5 hash of table entry","type":"text","hidden":false,"required":false,"index":false}]},{"name":"smc_keys","description":"Apple's system management controller keys.","platforms":["darwin"],"columns":[{"name":"key","description":"4-character key","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"SMC-reported type literal type","type":"text","hidden":false,"required":false,"index":false},{"name":"size","description":"Reported size of data in bytes","type":"integer","hidden":false,"required":false,"index":false},{"name":"value","description":"A type-encoded representation of the key value","type":"text","hidden":false,"required":false,"index":false},{"name":"hidden","description":"1 if this key is normally hidden, otherwise 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"socket_events","description":"Track network socket opens and closes.","platforms":["darwin","linux"],"columns":[{"name":"action","description":"The socket action (bind, listen, close)","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","hidden":false,"required":false,"index":false},{"name":"fd","description":"The file description for the process socket","type":"text","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"status","description":"Either 'succeeded', 'failed', 'in_progress' (connect() on non-blocking socket) or 'no_client' (null accept() on non-blocking socket)","type":"text","hidden":false,"required":false,"index":false},{"name":"family","description":"The Internet protocol family ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"protocol","description":"The network protocol ID","type":"integer","hidden":true,"required":false,"index":false},{"name":"local_address","description":"Local address associated with socket","type":"text","hidden":false,"required":false,"index":false},{"name":"remote_address","description":"Remote address associated with socket","type":"text","hidden":false,"required":false,"index":false},{"name":"local_port","description":"Local network protocol port number","type":"integer","hidden":false,"required":false,"index":false},{"name":"remote_port","description":"Remote network protocol port number","type":"integer","hidden":false,"required":false,"index":false},{"name":"socket","description":"The local path (UNIX domain socket only)","type":"text","hidden":true,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false},{"name":"success","description":"Deprecated. Use the 'status' column instead","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"ssh_configs","description":"A table of parsed ssh_configs.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"uid","description":"The local owner of the ssh_config file","type":"bigint","hidden":false,"required":false,"index":false},{"name":"block","description":"The host or match block","type":"text","hidden":false,"required":false,"index":false},{"name":"option","description":"The option and value","type":"text","hidden":false,"required":false,"index":false},{"name":"ssh_config_file","description":"Path to the ssh_config file","type":"text","hidden":false,"required":false,"index":false}]},{"name":"startup_items","description":"Applications and binaries set as user/login startup items.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"name","description":"Name of startup item","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of startup item","type":"text","hidden":false,"required":false,"index":false},{"name":"args","description":"Arguments provided to startup executable","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Startup Item or Login Item","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Directory or plist containing startup item","type":"text","hidden":false,"required":false,"index":false},{"name":"status","description":"Startup status; either enabled or disabled","type":"text","hidden":false,"required":false,"index":false},{"name":"username","description":"The user associated with the startup item","type":"text","hidden":false,"required":false,"index":false}]},{"name":"sudoers","description":"Rules for running commands as other users via sudo.","platforms":["darwin","linux"],"columns":[{"name":"source","description":"Source file containing the given rule","type":"text","hidden":false,"required":false,"index":false},{"name":"header","description":"Symbol for given rule","type":"text","hidden":false,"required":false,"index":false},{"name":"rule_details","description":"Rule definition","type":"text","hidden":false,"required":false,"index":false}]},{"name":"suid_bin","description":"suid binaries in common locations.","platforms":["darwin","linux"],"columns":[{"name":"path","description":"Binary path","type":"text","hidden":false,"required":false,"index":false},{"name":"username","description":"Binary owner username","type":"text","hidden":false,"required":false,"index":false},{"name":"groupname","description":"Binary owner group","type":"text","hidden":false,"required":false,"index":false},{"name":"permissions","description":"Binary permissions","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"syslog_events","description":"","platforms":["linux"],"columns":[{"name":"time","description":"Current unix epoch time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"datetime","description":"Time known to syslog","type":"text","hidden":false,"required":false,"index":false},{"name":"host","description":"Hostname configured for syslog","type":"text","hidden":false,"required":false,"index":false},{"name":"severity","description":"Syslog severity","type":"integer","hidden":false,"required":false,"index":false},{"name":"facility","description":"Syslog facility","type":"text","hidden":false,"required":false,"index":false},{"name":"tag","description":"The syslog tag","type":"text","hidden":false,"required":false,"index":false},{"name":"message","description":"The syslog message","type":"text","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"system_controls","description":"sysctl names, values, and settings information.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Full sysctl MIB name","type":"text","hidden":false,"required":false,"index":false},{"name":"oid","description":"Control MIB","type":"text","hidden":false,"required":false,"index":false},{"name":"subsystem","description":"Subsystem ID, control type","type":"text","hidden":false,"required":false,"index":false},{"name":"current_value","description":"Value of setting","type":"text","hidden":false,"required":false,"index":false},{"name":"config_value","description":"The MIB value set in /etc/sysctl.conf","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Data type","type":"text","hidden":false,"required":false,"index":false},{"name":"field_name","description":"Specific attribute of opaque type","type":"text","hidden":false,"required":false,"index":false}]},{"name":"system_extensions","description":"macOS (>= 10.15) system extension table.","platforms":["darwin"],"columns":[{"name":"path","description":"Original path of system extension","type":"text","hidden":false,"required":false,"index":false},{"name":"UUID","description":"Extension unique id","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"System extension state","type":"text","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Identifier name","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"System extension version","type":"text","hidden":false,"required":false,"index":false},{"name":"category","description":"System extension category","type":"text","hidden":false,"required":false,"index":false},{"name":"bundle_path","description":"System extension bundle path","type":"text","hidden":false,"required":false,"index":false},{"name":"team","description":"Signing team ID","type":"text","hidden":false,"required":false,"index":false},{"name":"mdm_managed","description":"1 if managed by MDM system extension payload configuration, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"system_info","description":"System information for identification.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"hostname","description":"Network hostname including domain","type":"text","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Unique ID provided by the system","type":"text","hidden":false,"required":false,"index":false},{"name":"cpu_type","description":"CPU type","type":"text","hidden":false,"required":false,"index":false},{"name":"cpu_subtype","description":"CPU subtype","type":"text","hidden":false,"required":false,"index":false},{"name":"cpu_brand","description":"CPU brand string, contains vendor and model","type":"text","hidden":false,"required":false,"index":false},{"name":"cpu_physical_cores","description":"Number of physical CPU cores in to the system","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_logical_cores","description":"Number of logical CPU cores available to the system","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_microcode","description":"Microcode version","type":"text","hidden":false,"required":false,"index":false},{"name":"physical_memory","description":"Total physical memory in bytes","type":"bigint","hidden":false,"required":false,"index":false},{"name":"hardware_vendor","description":"Hardware vendor","type":"text","hidden":false,"required":false,"index":false},{"name":"hardware_model","description":"Hardware model","type":"text","hidden":false,"required":false,"index":false},{"name":"hardware_version","description":"Hardware version","type":"text","hidden":false,"required":false,"index":false},{"name":"hardware_serial","description":"Device serial number","type":"text","hidden":false,"required":false,"index":false},{"name":"board_vendor","description":"Board vendor","type":"text","hidden":false,"required":false,"index":false},{"name":"board_model","description":"Board model","type":"text","hidden":false,"required":false,"index":false},{"name":"board_version","description":"Board version","type":"text","hidden":false,"required":false,"index":false},{"name":"board_serial","description":"Board serial number","type":"text","hidden":false,"required":false,"index":false},{"name":"computer_name","description":"Friendly computer name (optional)","type":"text","hidden":false,"required":false,"index":false},{"name":"local_hostname","description":"Local hostname (optional)","type":"text","hidden":false,"required":false,"index":false}]},{"name":"systemd_units","description":"Track systemd units.","platforms":["linux"],"columns":[{"name":"id","description":"Unique unit identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Unit description","type":"text","hidden":false,"required":false,"index":false},{"name":"load_state","description":"Reflects whether the unit definition was properly loaded","type":"text","hidden":false,"required":false,"index":false},{"name":"active_state","description":"The high-level unit activation state, i.e. generalization of SUB","type":"text","hidden":false,"required":false,"index":false},{"name":"sub_state","description":"The low-level unit activation state, values depend on unit type","type":"text","hidden":false,"required":false,"index":false},{"name":"following","description":"The name of another unit that this unit follows in state","type":"text","hidden":false,"required":false,"index":false},{"name":"object_path","description":"The object path for this unit","type":"text","hidden":false,"required":false,"index":false},{"name":"job_id","description":"Next queued job id","type":"bigint","hidden":false,"required":false,"index":false},{"name":"job_type","description":"Job type","type":"text","hidden":false,"required":false,"index":false},{"name":"job_path","description":"The object path for the job","type":"text","hidden":false,"required":false,"index":false},{"name":"fragment_path","description":"The unit file path this unit was read from, if there is any","type":"text","hidden":false,"required":false,"index":false},{"name":"user","description":"The configured user, if any","type":"text","hidden":false,"required":false,"index":false},{"name":"source_path","description":"Path to the (possibly generated) unit configuration file","type":"text","hidden":false,"required":false,"index":false}]},{"name":"temperature_sensors","description":"Machine's temperature sensors.","platforms":["darwin"],"columns":[{"name":"key","description":"The SMC key on macOS","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of temperature source","type":"text","hidden":false,"required":false,"index":false},{"name":"celsius","description":"Temperature in Celsius","type":"double","hidden":false,"required":false,"index":false},{"name":"fahrenheit","description":"Temperature in Fahrenheit","type":"double","hidden":false,"required":false,"index":false}]},{"name":"time","description":"Track current date and time in UTC.","platforms":["darwin","linux","freebsd","windows"],"columns":[{"name":"weekday","description":"Current weekday in UTC","type":"text","hidden":false,"required":false,"index":false},{"name":"year","description":"Current year in UTC","type":"integer","hidden":false,"required":false,"index":false},{"name":"month","description":"Current month in UTC","type":"integer","hidden":false,"required":false,"index":false},{"name":"day","description":"Current day in UTC","type":"integer","hidden":false,"required":false,"index":false},{"name":"hour","description":"Current hour in UTC","type":"integer","hidden":false,"required":false,"index":false},{"name":"minutes","description":"Current minutes in UTC","type":"integer","hidden":false,"required":false,"index":false},{"name":"seconds","description":"Current seconds in UTC","type":"integer","hidden":false,"required":false,"index":false},{"name":"timezone","description":"Timezone for reported time (hardcoded to UTC)","type":"text","hidden":false,"required":false,"index":false},{"name":"local_timezone","description":"Current local timezone in of the system","type":"text","hidden":false,"required":false,"index":false},{"name":"unix_time","description":"Current UNIX time in UTC","type":"integer","hidden":false,"required":false,"index":false},{"name":"timestamp","description":"Current timestamp (log format) in UTC","type":"text","hidden":false,"required":false,"index":false},{"name":"datetime","description":"Current date and time (ISO format) in UTC","type":"text","hidden":false,"required":false,"index":false},{"name":"iso_8601","description":"Current time (ISO format) in UTC","type":"text","hidden":false,"required":false,"index":false},{"name":"win_timestamp","description":"Timestamp value in 100 nanosecond units","type":"bigint","hidden":true,"required":false,"index":false}]},{"name":"time_machine_backups","description":"Backups to drives using TimeMachine.","platforms":["darwin"],"columns":[{"name":"destination_id","description":"Time Machine destination ID","type":"text","hidden":false,"required":false,"index":false},{"name":"backup_date","description":"Backup Date","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"time_machine_destinations","description":"Locations backed up to using Time Machine.","platforms":["darwin"],"columns":[{"name":"alias","description":"Human readable name of drive","type":"text","hidden":false,"required":false,"index":false},{"name":"destination_id","description":"Time Machine destination ID","type":"text","hidden":false,"required":false,"index":false},{"name":"consistency_scan_date","description":"Consistency scan date","type":"integer","hidden":false,"required":false,"index":false},{"name":"root_volume_uuid","description":"Root UUID of backup volume","type":"text","hidden":false,"required":false,"index":false},{"name":"bytes_available","description":"Bytes available on volume","type":"integer","hidden":false,"required":false,"index":false},{"name":"bytes_used","description":"Bytes used on volume","type":"integer","hidden":false,"required":false,"index":false},{"name":"encryption","description":"Last known encrypted state","type":"text","hidden":false,"required":false,"index":false}]},{"name":"tpm_info","description":"A table that lists the TPM related information.","platforms":["windows"],"columns":[{"name":"activated","description":"TPM is activated","type":"integer","hidden":false,"required":false,"index":false},{"name":"enabled","description":"TPM is enabled","type":"integer","hidden":false,"required":false,"index":false},{"name":"owned","description":"TPM is owned","type":"integer","hidden":false,"required":false,"index":false},{"name":"manufacturer_version","description":"TPM version","type":"text","hidden":false,"required":false,"index":false},{"name":"manufacturer_id","description":"TPM manufacturers ID","type":"integer","hidden":false,"required":false,"index":false},{"name":"manufacturer_name","description":"TPM manufacturers name","type":"text","hidden":false,"required":false,"index":false},{"name":"product_name","description":"Product name of the TPM","type":"text","hidden":false,"required":false,"index":false},{"name":"physical_presence_version","description":"Version of the Physical Presence Interface","type":"text","hidden":false,"required":false,"index":false},{"name":"spec_version","description":"Trusted Computing Group specification that the TPM supports","type":"text","hidden":false,"required":false,"index":false}]},{"name":"ulimit_info","description":"System resource usage limits.","platforms":["darwin","linux"],"columns":[{"name":"type","description":"System resource to be limited","type":"text","hidden":false,"required":false,"index":false},{"name":"soft_limit","description":"Current limit value","type":"text","hidden":false,"required":false,"index":false},{"name":"hard_limit","description":"Maximum limit value","type":"text","hidden":false,"required":false,"index":false}]},{"name":"unified_log","description":"Queries the OSLog framework for entries in the system log. The maximum number of rows returned is limited for performance issues. This table introduces a new idiom for extracting sequential data in batches using multiple queries, ordered by timestamp. To trigger it, the user should include the condition \"timestamp > -1\", and the table will handle pagination.","platforms":["darwin"],"columns":[{"name":"timestamp","description":"unix timestamp associated with the entry","type":"bigint","hidden":false,"required":false,"index":false},{"name":"storage","description":"the storage category for the entry","type":"integer","hidden":false,"required":false,"index":false},{"name":"message","description":"composed message","type":"text","hidden":false,"required":false,"index":false},{"name":"activity","description":"the activity ID associate with the entry","type":"bigint","hidden":false,"required":false,"index":false},{"name":"process","description":"the name of the process that made the entry","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"the pid of the process that made the entry","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sender","description":"the name of the binary image that made the entry","type":"text","hidden":false,"required":false,"index":false},{"name":"tid","description":"the tid of the thread that made the entry","type":"bigint","hidden":false,"required":false,"index":false},{"name":"category","description":"the category of the os_log_t used","type":"text","hidden":false,"required":false,"index":false},{"name":"subsystem","description":"the subsystem of the os_log_t used","type":"text","hidden":false,"required":false,"index":false},{"name":"level","description":"the severity level of the entry","type":"text","hidden":false,"required":false,"index":false},{"name":"max_rows","description":"the max number of rows returned (defaults to 100)","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"uptime","description":"Track time passed since last boot. Some systems track this as calendar time, some as runtime.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"days","description":"Days of uptime","type":"integer","hidden":false,"required":false,"index":false},{"name":"hours","description":"Hours of uptime","type":"integer","hidden":false,"required":false,"index":false},{"name":"minutes","description":"Minutes of uptime","type":"integer","hidden":false,"required":false,"index":false},{"name":"seconds","description":"Seconds of uptime","type":"integer","hidden":false,"required":false,"index":false},{"name":"total_seconds","description":"Total uptime seconds","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"usb_devices","description":"USB devices that are actively plugged into the host system.","platforms":["darwin","linux"],"columns":[{"name":"usb_address","description":"USB Device used address","type":"integer","hidden":false,"required":false,"index":false},{"name":"usb_port","description":"USB Device used port","type":"integer","hidden":false,"required":false,"index":false},{"name":"vendor","description":"USB Device vendor string","type":"text","hidden":false,"required":false,"index":false},{"name":"vendor_id","description":"Hex encoded USB Device vendor identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"version","description":"USB Device version number","type":"text","hidden":false,"required":false,"index":false},{"name":"model","description":"USB Device model string","type":"text","hidden":false,"required":false,"index":false},{"name":"model_id","description":"Hex encoded USB Device model identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"serial","description":"USB Device serial connection","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"USB Device class","type":"text","hidden":false,"required":false,"index":false},{"name":"subclass","description":"USB Device subclass","type":"text","hidden":false,"required":false,"index":false},{"name":"protocol","description":"USB Device protocol","type":"text","hidden":false,"required":false,"index":false},{"name":"removable","description":"1 If USB device is removable else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"user_events","description":"Track user events from the audit framework.","platforms":["darwin","linux"],"columns":[{"name":"uid","description":"User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"message","description":"Message from the event","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"The file description for the process socket","type":"integer","hidden":false,"required":false,"index":false},{"name":"path","description":"Supplied path from event","type":"text","hidden":false,"required":false,"index":false},{"name":"address","description":"The Internet protocol address or family ID","type":"text","hidden":false,"required":false,"index":false},{"name":"terminal","description":"The network protocol ID","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"user_groups","description":"Local system user group relationships.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"uid","description":"User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"user_interaction_events","description":"Track user interaction events from macOS' event tapping framework.","platforms":["darwin"],"columns":[{"name":"time","description":"Time","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"user_ssh_keys","description":"Returns the private keys in the users ~/.ssh directory and whether or not they are encrypted.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"uid","description":"The local user that owns the key file","type":"bigint","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to key file","type":"text","hidden":false,"required":false,"index":false},{"name":"encrypted","description":"1 if key is encrypted, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"key_type","description":"The type of the private key. One of [rsa, dsa, dh, ec, hmac, cmac], or the empty string.","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"userassist","description":"UserAssist Registry Key tracks when a user executes an application from Windows Explorer.","platforms":["windows"],"columns":[{"name":"path","description":"Application file path.","type":"text","hidden":false,"required":false,"index":false},{"name":"last_execution_time","description":"Most recent time application was executed.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"count","description":"Number of times the application has been executed.","type":"integer","hidden":false,"required":false,"index":false},{"name":"sid","description":"User SID.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"users","description":"Local user accounts (including domain accounts that have logged on locally (Windows)).","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"uid","description":"User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID (unsigned)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid_signed","description":"User ID as int64 signed (Apple)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid_signed","description":"Default group ID as int64 signed (Apple)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"username","description":"Username","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Optional user description","type":"text","hidden":false,"required":false,"index":false},{"name":"directory","description":"User's home directory","type":"text","hidden":false,"required":false,"index":false},{"name":"shell","description":"User's configured default shell","type":"text","hidden":false,"required":false,"index":false},{"name":"uuid","description":"User's UUID (Apple) or SID (Windows)","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Whether the account is roaming (domain), local, or a system profile","type":"text","hidden":true,"required":false,"index":false},{"name":"is_hidden","description":"IsHidden attribute set in OpenDirectory","type":"integer","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"video_info","description":"Retrieve video card information of the machine.","platforms":["windows"],"columns":[{"name":"color_depth","description":"The amount of bits per pixel to represent color.","type":"integer","hidden":false,"required":false,"index":false},{"name":"driver","description":"The driver of the device.","type":"text","hidden":false,"required":false,"index":false},{"name":"driver_date","description":"The date listed on the installed driver.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"driver_version","description":"The version of the installed driver.","type":"text","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"The manufacturer of the gpu.","type":"text","hidden":false,"required":false,"index":false},{"name":"model","description":"The model of the gpu.","type":"text","hidden":false,"required":false,"index":false},{"name":"series","description":"The series of the gpu.","type":"text","hidden":false,"required":false,"index":false},{"name":"video_mode","description":"The current resolution of the display.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"virtual_memory_info","description":"Darwin Virtual Memory statistics.","platforms":["darwin"],"columns":[{"name":"free","description":"Total number of free pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"active","description":"Total number of active pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"inactive","description":"Total number of inactive pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"speculative","description":"Total number of speculative pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"throttled","description":"Total number of throttled pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"wired","description":"Total number of wired down pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"purgeable","description":"Total number of purgeable pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"faults","description":"Total number of calls to vm_faults.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"copy","description":"Total number of copy-on-write pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"zero_fill","description":"Total number of zero filled pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"reactivated","description":"Total number of reactivated pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"purged","description":"Total number of purged pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"file_backed","description":"Total number of file backed pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"anonymous","description":"Total number of anonymous pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uncompressed","description":"Total number of uncompressed pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"compressor","description":"The number of pages used to store compressed VM pages.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"decompressed","description":"The total number of pages that have been decompressed by the VM compressor.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"compressed","description":"The total number of pages that have been compressed by the VM compressor.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"page_ins","description":"The total number of requests for pages from a pager.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"page_outs","description":"Total number of pages paged out.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"swap_ins","description":"The total number of compressed pages that have been swapped out to disk.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"swap_outs","description":"The total number of compressed pages that have been swapped back in from disk.","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"wifi_networks","description":"macOS known/remembered Wi-Fi networks list.","platforms":["darwin"],"columns":[{"name":"ssid","description":"SSID octets of the network","type":"text","hidden":false,"required":false,"index":false},{"name":"network_name","description":"Name of the network","type":"text","hidden":false,"required":false,"index":false},{"name":"security_type","description":"Type of security on this network","type":"text","hidden":false,"required":false,"index":false},{"name":"last_connected","description":"Last time this network was connected to as a unix_time","type":"integer","hidden":true,"required":false,"index":false},{"name":"passpoint","description":"1 if Passpoint is supported, 0 otherwise","type":"integer","hidden":true,"required":false,"index":false},{"name":"possibly_hidden","description":"1 if network is possibly a hidden network, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"roaming","description":"1 if roaming is supported, 0 otherwise","type":"integer","hidden":true,"required":false,"index":false},{"name":"roaming_profile","description":"Describe the roaming profile, usually one of Single, Dual or Multi","type":"text","hidden":false,"required":false,"index":false},{"name":"auto_login","description":"1 if auto login is enabled, 0 otherwise","type":"integer","hidden":true,"required":false,"index":false},{"name":"temporarily_disabled","description":"1 if this network is temporarily disabled, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"disabled","description":"1 if this network is disabled, 0 otherwise","type":"integer","hidden":true,"required":false,"index":false},{"name":"add_reason","description":"Shows why this network was added, via menubar or command line or something else ","type":"text","hidden":false,"required":false,"index":false},{"name":"added_at","description":"Time this network was added as a unix_time","type":"integer","hidden":false,"required":false,"index":false},{"name":"captive_portal","description":"1 if this network has a captive portal, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"captive_login_date","description":"Time this network logged in to a captive portal as unix_time","type":"integer","hidden":false,"required":false,"index":false},{"name":"was_captive_network","description":"1 if this network was previously a captive network, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"auto_join","description":"1 if this network set to join automatically, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false},{"name":"personal_hotspot","description":"1 if this network is a personal hotspot, 0 otherwise","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"wifi_status","description":"macOS current WiFi status.","platforms":["darwin"],"columns":[{"name":"interface","description":"Name of the interface","type":"text","hidden":false,"required":false,"index":false},{"name":"ssid","description":"SSID octets of the network","type":"text","hidden":false,"required":false,"index":false},{"name":"bssid","description":"The current basic service set identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"network_name","description":"Name of the network","type":"text","hidden":false,"required":false,"index":false},{"name":"country_code","description":"The country code (ISO/IEC 3166-1:1997) for the network","type":"text","hidden":false,"required":false,"index":false},{"name":"security_type","description":"Type of security on this network","type":"text","hidden":false,"required":false,"index":false},{"name":"rssi","description":"The current received signal strength indication (dbm)","type":"integer","hidden":false,"required":false,"index":false},{"name":"noise","description":"The current noise measurement (dBm)","type":"integer","hidden":false,"required":false,"index":false},{"name":"channel","description":"Channel number","type":"integer","hidden":false,"required":false,"index":false},{"name":"channel_width","description":"Channel width","type":"integer","hidden":false,"required":false,"index":false},{"name":"channel_band","description":"Channel band","type":"integer","hidden":false,"required":false,"index":false},{"name":"transmit_rate","description":"The current transmit rate","type":"text","hidden":false,"required":false,"index":false},{"name":"mode","description":"The current operating mode for the Wi-Fi interface","type":"text","hidden":false,"required":false,"index":false}]},{"name":"wifi_survey","description":"Scan for nearby WiFi networks.","platforms":["darwin"],"columns":[{"name":"interface","description":"Name of the interface","type":"text","hidden":false,"required":false,"index":false},{"name":"ssid","description":"SSID octets of the network","type":"text","hidden":false,"required":false,"index":false},{"name":"bssid","description":"The current basic service set identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"network_name","description":"Name of the network","type":"text","hidden":false,"required":false,"index":false},{"name":"country_code","description":"The country code (ISO/IEC 3166-1:1997) for the network","type":"text","hidden":false,"required":false,"index":false},{"name":"rssi","description":"The current received signal strength indication (dbm)","type":"integer","hidden":false,"required":false,"index":false},{"name":"noise","description":"The current noise measurement (dBm)","type":"integer","hidden":false,"required":false,"index":false},{"name":"channel","description":"Channel number","type":"integer","hidden":false,"required":false,"index":false},{"name":"channel_width","description":"Channel width","type":"integer","hidden":false,"required":false,"index":false},{"name":"channel_band","description":"Channel band","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"winbaseobj","description":"Lists named Windows objects in the default object directories, across all terminal services sessions. Example Windows ojbect types include Mutexes, Events, Jobs and Semaphors.","platforms":["windows"],"columns":[{"name":"session_id","description":"Terminal Services Session Id","type":"integer","hidden":false,"required":false,"index":false},{"name":"object_name","description":"Object Name","type":"text","hidden":false,"required":false,"index":false},{"name":"object_type","description":"Object Type","type":"text","hidden":false,"required":false,"index":false}]},{"name":"windows_crashes","description":"Extracted information from Windows crash logs (Minidumps).","platforms":["windows"],"columns":[{"name":"datetime","description":"Timestamp (log format) of the crash","type":"text","hidden":false,"required":false,"index":false},{"name":"module","description":"Path of the crashed module within the process","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of the executable file for the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID of the crashed process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"tid","description":"Thread ID of the crashed thread","type":"bigint","hidden":false,"required":false,"index":false},{"name":"version","description":"File version info of the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"process_uptime","description":"Uptime of the process in seconds","type":"bigint","hidden":false,"required":false,"index":false},{"name":"stack_trace","description":"Multiple stack frames from the stack trace","type":"text","hidden":false,"required":false,"index":false},{"name":"exception_code","description":"The Windows exception code","type":"text","hidden":false,"required":false,"index":false},{"name":"exception_message","description":"The NTSTATUS error message associated with the exception code","type":"text","hidden":false,"required":false,"index":false},{"name":"exception_address","description":"Address (in hex) where the exception occurred","type":"text","hidden":false,"required":false,"index":false},{"name":"registers","description":"The values of the system registers","type":"text","hidden":false,"required":false,"index":false},{"name":"command_line","description":"Command-line string passed to the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"current_directory","description":"Current working directory of the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"username","description":"Username of the user who ran the crashed process","type":"text","hidden":false,"required":false,"index":false},{"name":"machine_name","description":"Name of the machine where the crash happened","type":"text","hidden":false,"required":false,"index":false},{"name":"major_version","description":"Windows major version of the machine","type":"integer","hidden":false,"required":false,"index":false},{"name":"minor_version","description":"Windows minor version of the machine","type":"integer","hidden":false,"required":false,"index":false},{"name":"build_number","description":"Windows build number of the crashing machine","type":"integer","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of crash log","type":"text","hidden":false,"required":false,"index":false},{"name":"crash_path","description":"Path of the log file","type":"text","hidden":false,"required":false,"index":false}]},{"name":"windows_eventlog","description":"Table for querying all recorded Windows event logs.","platforms":["windows"],"columns":[{"name":"channel","description":"Source or channel of the event","type":"text","hidden":false,"required":true,"index":false},{"name":"datetime","description":"System time at which the event occurred","type":"text","hidden":false,"required":false,"index":false},{"name":"task","description":"Task value associated with the event","type":"integer","hidden":false,"required":false,"index":false},{"name":"level","description":"Severity level associated with the event","type":"integer","hidden":false,"required":false,"index":false},{"name":"provider_name","description":"Provider name of the event","type":"text","hidden":false,"required":false,"index":false},{"name":"provider_guid","description":"Provider guid of the event","type":"text","hidden":false,"required":false,"index":false},{"name":"computer_name","description":"Hostname of system where event was generated","type":"text","hidden":false,"required":false,"index":false},{"name":"eventid","description":"Event ID of the event","type":"integer","hidden":false,"required":false,"index":false},{"name":"keywords","description":"A bitmask of the keywords defined in the event","type":"text","hidden":false,"required":false,"index":false},{"name":"data","description":"Data associated with the event","type":"text","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID which emitted the event record","type":"integer","hidden":false,"required":false,"index":false},{"name":"tid","description":"Thread ID which emitted the event record","type":"integer","hidden":false,"required":false,"index":false},{"name":"time_range","description":"System time to selectively filter the events","type":"text","hidden":true,"required":false,"index":false},{"name":"timestamp","description":"Timestamp to selectively filter the events","type":"text","hidden":true,"required":false,"index":false},{"name":"xpath","description":"The custom query to filter events","type":"text","hidden":true,"required":true,"index":false}]},{"name":"windows_events","description":"Windows Event logs.","platforms":["windows"],"columns":[{"name":"time","description":"Timestamp the event was received","type":"bigint","hidden":false,"required":false,"index":false},{"name":"datetime","description":"System time at which the event occurred","type":"text","hidden":false,"required":false,"index":false},{"name":"source","description":"Source or channel of the event","type":"text","hidden":false,"required":false,"index":false},{"name":"provider_name","description":"Provider name of the event","type":"text","hidden":false,"required":false,"index":false},{"name":"provider_guid","description":"Provider guid of the event","type":"text","hidden":false,"required":false,"index":false},{"name":"computer_name","description":"Hostname of system where event was generated","type":"text","hidden":false,"required":false,"index":false},{"name":"eventid","description":"Event ID of the event","type":"integer","hidden":false,"required":false,"index":false},{"name":"task","description":"Task value associated with the event","type":"integer","hidden":false,"required":false,"index":false},{"name":"level","description":"The severity level associated with the event","type":"integer","hidden":false,"required":false,"index":false},{"name":"keywords","description":"A bitmask of the keywords defined in the event","type":"text","hidden":false,"required":false,"index":false},{"name":"data","description":"Data associated with the event","type":"text","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"windows_firewall_rules","description":"Provides the list of Windows firewall rules.","platforms":["windows"],"columns":[{"name":"name","description":"Friendly name of the rule","type":"text","hidden":false,"required":false,"index":false},{"name":"app_name","description":"Friendly name of the application to which the rule applies","type":"text","hidden":false,"required":false,"index":false},{"name":"action","description":"Action for the rule or default setting","type":"text","hidden":false,"required":false,"index":false},{"name":"enabled","description":"1 if the rule is enabled","type":"integer","hidden":false,"required":false,"index":false},{"name":"grouping","description":"Group to which an individual rule belongs","type":"text","hidden":false,"required":false,"index":false},{"name":"direction","description":"Direction of traffic for which the rule applies","type":"text","hidden":false,"required":false,"index":false},{"name":"protocol","description":"IP protocol of the rule","type":"text","hidden":false,"required":false,"index":false},{"name":"local_addresses","description":"Local addresses for the rule","type":"text","hidden":false,"required":false,"index":false},{"name":"remote_addresses","description":"Remote addresses for the rule","type":"text","hidden":false,"required":false,"index":false},{"name":"local_ports","description":"Local ports for the rule","type":"text","hidden":false,"required":false,"index":false},{"name":"remote_ports","description":"Remote ports for the rule","type":"text","hidden":false,"required":false,"index":false},{"name":"icmp_types_codes","description":"ICMP types and codes for the rule","type":"text","hidden":false,"required":false,"index":false},{"name":"profile_domain","description":"1 if the rule profile type is domain","type":"integer","hidden":false,"required":false,"index":false},{"name":"profile_private","description":"1 if the rule profile type is private","type":"integer","hidden":false,"required":false,"index":false},{"name":"profile_public","description":"1 if the rule profile type is public","type":"integer","hidden":false,"required":false,"index":false},{"name":"service_name","description":"Service name property of the application","type":"text","hidden":false,"required":false,"index":false}]},{"name":"windows_optional_features","description":"Lists names and installation states of windows features. Maps to Win32_OptionalFeature WMI class.","platforms":["windows"],"columns":[{"name":"name","description":"Name of the feature","type":"text","hidden":false,"required":false,"index":false},{"name":"caption","description":"Caption of feature in settings UI","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"Installation state value. 1 == Enabled, 2 == Disabled, 3 == Absent","type":"integer","hidden":false,"required":false,"index":false},{"name":"statename","description":"Installation state name. 'Enabled','Disabled','Absent'","type":"text","hidden":false,"required":false,"index":false}]},{"name":"windows_security_center","description":"The health status of Window Security features. Health values can be \"Good\", \"Poor\". \"Snoozed\", \"Not Monitored\", and \"Error\".","platforms":["windows"],"columns":[{"name":"firewall","description":"The health of the monitored Firewall (see windows_security_products)","type":"text","hidden":false,"required":false,"index":false},{"name":"autoupdate","description":"The health of the Windows Autoupdate feature","type":"text","hidden":false,"required":false,"index":false},{"name":"antivirus","description":"The health of the monitored Antivirus solution (see windows_security_products)","type":"text","hidden":false,"required":false,"index":false},{"name":"antispyware","description":"Deprecated (always 'Good').","type":"text","hidden":true,"required":false,"index":false},{"name":"internet_settings","description":"The health of the Internet Settings","type":"text","hidden":false,"required":false,"index":false},{"name":"windows_security_center_service","description":"The health of the Windows Security Center Service","type":"text","hidden":false,"required":false,"index":false},{"name":"user_account_control","description":"The health of the User Account Control (UAC) capability in Windows","type":"text","hidden":false,"required":false,"index":false}]},{"name":"windows_security_products","description":"Enumeration of registered Windows security products.","platforms":["windows"],"columns":[{"name":"type","description":"Type of security product","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of product","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"State of protection","type":"text","hidden":false,"required":false,"index":false},{"name":"state_timestamp","description":"Timestamp for the product state","type":"text","hidden":false,"required":false,"index":false},{"name":"remediation_path","description":"Remediation path","type":"text","hidden":false,"required":false,"index":false},{"name":"signatures_up_to_date","description":"1 if product signatures are up to date, else 0","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"windows_update_history","description":"Provides the history of the windows update events.","platforms":["windows"],"columns":[{"name":"client_app_id","description":"Identifier of the client application that processed an update","type":"text","hidden":false,"required":false,"index":false},{"name":"date","description":"Date and the time an update was applied","type":"bigint","hidden":false,"required":false,"index":false},{"name":"description","description":"Description of an update","type":"text","hidden":false,"required":false,"index":false},{"name":"hresult","description":"HRESULT value that is returned from the operation on an update","type":"bigint","hidden":false,"required":false,"index":false},{"name":"operation","description":"Operation on an update","type":"text","hidden":false,"required":false,"index":false},{"name":"result_code","description":"Result of an operation on an update","type":"text","hidden":false,"required":false,"index":false},{"name":"server_selection","description":"Value that indicates which server provided an update","type":"text","hidden":false,"required":false,"index":false},{"name":"service_id","description":"Service identifier of an update service that is not a Windows update","type":"text","hidden":false,"required":false,"index":false},{"name":"support_url","description":"Hyperlink to the language-specific support information for an update","type":"text","hidden":false,"required":false,"index":false},{"name":"title","description":"Title of an update","type":"text","hidden":false,"required":false,"index":false},{"name":"update_id","description":"Revision-independent identifier of an update","type":"text","hidden":false,"required":false,"index":false},{"name":"update_revision","description":"Revision number of an update","type":"bigint","hidden":false,"required":false,"index":false}]},{"name":"wmi_bios_info","description":"Lists important information from the system bios.","platforms":["windows"],"columns":[{"name":"name","description":"Name of the Bios setting","type":"text","hidden":false,"required":false,"index":false},{"name":"value","description":"Value of the Bios setting","type":"text","hidden":false,"required":false,"index":false}]},{"name":"wmi_cli_event_consumers","description":"WMI CommandLineEventConsumer, which can be used for persistence on Windows. See https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf for more details.","platforms":["windows"],"columns":[{"name":"name","description":"Unique name of a consumer.","type":"text","hidden":false,"required":false,"index":false},{"name":"command_line_template","description":"Standard string template that specifies the process to be started. This property can be NULL, and the ExecutablePath property is used as the command line.","type":"text","hidden":false,"required":false,"index":false},{"name":"executable_path","description":"Module to execute. The string can specify the full path and file name of the module to execute, or it can specify a partial name. If a partial name is specified, the current drive and current directory are assumed.","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"The name of the class.","type":"text","hidden":false,"required":false,"index":false},{"name":"relative_path","description":"Relative path to the class or instance.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"wmi_event_filters","description":"Lists WMI event filters.","platforms":["windows"],"columns":[{"name":"name","description":"Unique identifier of an event filter.","type":"text","hidden":false,"required":false,"index":false},{"name":"query","description":"Windows Management Instrumentation Query Language (WQL) event query that specifies the set of events for consumer notification, and the specific conditions for notification.","type":"text","hidden":false,"required":false,"index":false},{"name":"query_language","description":"Query language that the query is written in.","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"The name of the class.","type":"text","hidden":false,"required":false,"index":false},{"name":"relative_path","description":"Relative path to the class or instance.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"wmi_filter_consumer_binding","description":"Lists the relationship between event consumers and filters.","platforms":["windows"],"columns":[{"name":"consumer","description":"Reference to an instance of __EventConsumer that represents the object path to a logical consumer, the recipient of an event.","type":"text","hidden":false,"required":false,"index":false},{"name":"filter","description":"Reference to an instance of __EventFilter that represents the object path to an event filter which is a query that specifies the type of event to be received.","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"The name of the class.","type":"text","hidden":false,"required":false,"index":false},{"name":"relative_path","description":"Relative path to the class or instance.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"wmi_script_event_consumers","description":"WMI ActiveScriptEventConsumer, which can be used for persistence on Windows. See https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf for more details.","platforms":["windows"],"columns":[{"name":"name","description":"Unique identifier for the event consumer. ","type":"text","hidden":false,"required":false,"index":false},{"name":"scripting_engine","description":"Name of the scripting engine to use, for example, 'VBScript'. This property cannot be NULL.","type":"text","hidden":false,"required":false,"index":false},{"name":"script_file_name","description":"Name of the file from which the script text is read, intended as an alternative to specifying the text of the script in the ScriptText property.","type":"text","hidden":false,"required":false,"index":false},{"name":"script_text","description":"Text of the script that is expressed in a language known to the scripting engine. This property must be NULL if the ScriptFileName property is not NULL.","type":"text","hidden":false,"required":false,"index":false},{"name":"class","description":"The name of the class.","type":"text","hidden":false,"required":false,"index":false},{"name":"relative_path","description":"Relative path to the class or instance.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"xprotect_entries","description":"Database of the machine's XProtect signatures.","platforms":["darwin"],"columns":[{"name":"name","description":"Description of XProtected malware","type":"text","hidden":false,"required":false,"index":false},{"name":"launch_type","description":"Launch services content type","type":"text","hidden":false,"required":false,"index":false},{"name":"identity","description":"XProtect identity (SHA1) of content","type":"text","hidden":false,"required":false,"index":false},{"name":"filename","description":"Use this file name to match","type":"text","hidden":false,"required":false,"index":false},{"name":"filetype","description":"Use this file type to match","type":"text","hidden":false,"required":false,"index":false},{"name":"optional","description":"Match any of the identities/patterns for this XProtect name","type":"integer","hidden":false,"required":false,"index":false},{"name":"uses_pattern","description":"Uses a match pattern instead of identity","type":"integer","hidden":false,"required":false,"index":false}]},{"name":"xprotect_meta","description":"Database of the machine's XProtect browser-related signatures.","platforms":["darwin"],"columns":[{"name":"identifier","description":"Browser plugin or extension identifier","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Either plugin or extension","type":"text","hidden":false,"required":false,"index":false},{"name":"developer_id","description":"Developer identity (SHA1) of extension","type":"text","hidden":false,"required":false,"index":false},{"name":"min_version","description":"The minimum allowed plugin version.","type":"text","hidden":false,"required":false,"index":false}]},{"name":"xprotect_reports","description":"Database of XProtect matches (if user generated/sent an XProtect report).","platforms":["darwin"],"columns":[{"name":"name","description":"Description of XProtected malware","type":"text","hidden":false,"required":false,"index":false},{"name":"user_action","description":"Action taken by user after prompted","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Quarantine alert time","type":"text","hidden":false,"required":false,"index":false}]},{"name":"yara","description":"Track YARA matches for files or PIDs.","platforms":["darwin","linux","windows"],"columns":[{"name":"path","description":"The path scanned","type":"text","hidden":false,"required":true,"index":false},{"name":"matches","description":"List of YARA matches","type":"text","hidden":false,"required":false,"index":false},{"name":"count","description":"Number of YARA matches","type":"integer","hidden":false,"required":false,"index":false},{"name":"sig_group","description":"Signature group used","type":"text","hidden":false,"required":false,"index":false},{"name":"sigfile","description":"Signature file used","type":"text","hidden":false,"required":false,"index":false},{"name":"sigrule","description":"Signature strings used","type":"text","hidden":true,"required":false,"index":false},{"name":"strings","description":"Matching strings","type":"text","hidden":false,"required":false,"index":false},{"name":"tags","description":"Matching tags","type":"text","hidden":false,"required":false,"index":false},{"name":"sigurl","description":"Signature url","type":"text","hidden":true,"required":false,"index":false}]},{"name":"yara_events","description":"Track YARA matches for files specified in configuration data.","platforms":["darwin","linux","windows"],"columns":[{"name":"target_path","description":"The path scanned","type":"text","hidden":false,"required":false,"index":false},{"name":"category","description":"The category of the file","type":"text","hidden":false,"required":false,"index":false},{"name":"action","description":"Change action (UPDATE, REMOVE, etc)","type":"text","hidden":false,"required":false,"index":false},{"name":"transaction_id","description":"ID used during bulk update","type":"bigint","hidden":false,"required":false,"index":false},{"name":"matches","description":"List of YARA matches","type":"text","hidden":false,"required":false,"index":false},{"name":"count","description":"Number of YARA matches","type":"integer","hidden":false,"required":false,"index":false},{"name":"strings","description":"Matching strings","type":"text","hidden":false,"required":false,"index":false},{"name":"tags","description":"Matching tags","type":"text","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of the scan","type":"bigint","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","hidden":true,"required":false,"index":false}]},{"name":"ycloud_instance_metadata","description":"Yandex.Cloud instance metadata.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"instance_id","description":"Unique identifier for the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"folder_id","description":"Folder identifier for the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Description of the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"hostname","description":"Hostname of the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"zone","description":"Availability zone of the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"ssh_public_key","description":"SSH public key. Only available if supplied at instance launch time","type":"text","hidden":false,"required":false,"index":false},{"name":"serial_port_enabled","description":"Indicates if serial port is enabled for the VM","type":"text","hidden":false,"required":false,"index":false},{"name":"metadata_endpoint","description":"Endpoint used to fetch VM metadata","type":"text","hidden":false,"required":false,"index":false}]},{"name":"yum_sources","description":"Current list of Yum repositories or software channels.","platforms":["linux"],"columns":[{"name":"name","description":"Repository name","type":"text","hidden":false,"required":false,"index":false},{"name":"baseurl","description":"Repository base URL","type":"text","hidden":false,"required":false,"index":false},{"name":"mirrorlist","description":"Mirrorlist URL","type":"text","hidden":false,"required":false,"index":false},{"name":"enabled","description":"Whether the repository is used","type":"text","hidden":false,"required":false,"index":false},{"name":"gpgcheck","description":"Whether packages are GPG checked","type":"text","hidden":false,"required":false,"index":false},{"name":"gpgkey","description":"URL to GPG key","type":"text","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"host_users","description":"Local user accounts (including domain accounts that have logged on locally (Windows)).","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"uid","description":"User ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID (unsigned)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uid_signed","description":"User ID as int64 signed (Apple)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid_signed","description":"Default group ID as int64 signed (Apple)","type":"bigint","hidden":false,"required":false,"index":false},{"name":"username","description":"Username","type":"text","hidden":false,"required":false,"index":false},{"name":"description","description":"Optional user description","type":"text","hidden":false,"required":false,"index":false},{"name":"directory","description":"User's home directory","type":"text","hidden":false,"required":false,"index":false},{"name":"shell","description":"User's configured default shell","type":"text","hidden":false,"required":false,"index":false},{"name":"uuid","description":"User's UUID (Apple) or SID (Windows)","type":"text","hidden":false,"required":false,"index":false},{"name":"type","description":"Whether the account is roaming (domain), local, or a system profile","type":"text","hidden":true,"required":false,"index":false},{"name":"is_hidden","description":"IsHidden attribute set in OpenDirectory","type":"integer","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"host_groups","description":"Local system groups.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"gid","description":"Unsigned int64 group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid_signed","description":"A signed int64 version of gid","type":"bigint","hidden":false,"required":false,"index":false},{"name":"groupname","description":"Canonical local group name","type":"text","hidden":false,"required":false,"index":false},{"name":"group_sid","description":"Unique group ID","type":"text","hidden":true,"required":false,"index":false},{"name":"comment","description":"Remarks or comments associated with the group","type":"text","hidden":true,"required":false,"index":false},{"name":"is_hidden","description":"IsHidden attribute set in OpenDirectory","type":"integer","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","hidden":true,"required":false,"index":false}]},{"name":"host_processes","description":"All running processes on the host system.","platforms":["darwin","linux","windows","freebsd"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"name","description":"The process path or shorthand argv[0]","type":"text","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to executed binary","type":"text","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Complete argv","type":"text","hidden":false,"required":false,"index":false},{"name":"state","description":"Process state","type":"text","hidden":false,"required":false,"index":false},{"name":"cwd","description":"Process current working directory","type":"text","hidden":false,"required":false,"index":false},{"name":"root","description":"Process virtual root directory","type":"text","hidden":false,"required":false,"index":false},{"name":"uid","description":"Unsigned user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"gid","description":"Unsigned group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"euid","description":"Unsigned effective user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"egid","description":"Unsigned effective group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"suid","description":"Unsigned saved user ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"sgid","description":"Unsigned saved group ID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"on_disk","description":"The process path exists yes=1, no=0, unknown=-1","type":"integer","hidden":false,"required":false,"index":false},{"name":"wired_size","description":"Bytes of unpageable memory used by process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"resident_size","description":"Bytes of private memory used by process","type":"bigint","hidden":false,"required":false,"index":false},{"name":"total_size","description":"Total virtual memory size","type":"bigint","hidden":false,"required":false,"index":false},{"name":"user_time","description":"CPU time in milliseconds spent in user space","type":"bigint","hidden":false,"required":false,"index":false},{"name":"system_time","description":"CPU time in milliseconds spent in kernel space","type":"bigint","hidden":false,"required":false,"index":false},{"name":"disk_bytes_read","description":"Bytes read from disk","type":"bigint","hidden":false,"required":false,"index":false},{"name":"disk_bytes_written","description":"Bytes written to disk","type":"bigint","hidden":false,"required":false,"index":false},{"name":"start_time","description":"Process start time in seconds since Epoch, in case of error -1","type":"bigint","hidden":false,"required":false,"index":false},{"name":"parent","description":"Process parent's PID","type":"bigint","hidden":false,"required":false,"index":false},{"name":"pgroup","description":"Process group","type":"bigint","hidden":false,"required":false,"index":false},{"name":"threads","description":"Number of threads used by process","type":"integer","hidden":false,"required":false,"index":false},{"name":"nice","description":"Process nice level (-20 to 20, default 0)","type":"integer","hidden":false,"required":false,"index":false},{"name":"elevated_token","description":"Process uses elevated token yes=1, no=0","type":"integer","hidden":true,"required":false,"index":false},{"name":"secure_process","description":"Process is secure (IUM) yes=1, no=0","type":"integer","hidden":true,"required":false,"index":false},{"name":"protection_type","description":"The protection type of the process","type":"text","hidden":true,"required":false,"index":false},{"name":"virtual_process","description":"Process is virtual (e.g. System, Registry, vmmem) yes=1, no=0","type":"integer","hidden":true,"required":false,"index":false},{"name":"elapsed_time","description":"Elapsed time in seconds this process has been running.","type":"bigint","hidden":true,"required":false,"index":false},{"name":"handle_count","description":"Total number of handles that the process has open. This number is the sum of the handles currently opened by each thread in the process.","type":"bigint","hidden":true,"required":false,"index":false},{"name":"percent_processor_time","description":"Returns elapsed time that all of the threads of this process used the processor to execute instructions in 100 nanoseconds ticks.","type":"bigint","hidden":true,"required":false,"index":false},{"name":"upid","description":"A 64bit pid that is never reused. Returns -1 if we couldn't gather them from the system.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"uppid","description":"The 64bit parent pid that is never reused. Returns -1 if we couldn't gather them from the system.","type":"bigint","hidden":false,"required":false,"index":false},{"name":"cpu_type","description":"Indicates the specific processor designed for installation.","type":"integer","hidden":false,"required":false,"index":false},{"name":"cpu_subtype","description":"Indicates the specific processor on which an entry may be used.","type":"integer","hidden":false,"required":false,"index":false},{"name":"translated","description":"Indicates whether the process is running under the Rosetta Translation Environment, yes=1, no=0, error=-1.","type":"integer","hidden":false,"required":false,"index":false},{"name":"cgroup_path","description":"The full hierarchical path of the process's control group","type":"text","hidden":true,"required":false,"index":false}]}] \ No newline at end of file diff --git a/x-pack/plugins/osquery/public/common/schemas/osquery/v5.7.0.json b/x-pack/plugins/osquery/public/common/schemas/osquery/v5.7.0.json new file mode 100644 index 00000000000000..8649b18090b76b --- /dev/null +++ b/x-pack/plugins/osquery/public/common/schemas/osquery/v5.7.0.json @@ -0,0 +1 @@ +[{"name":"account_policy_data","description":"Additional macOS user account data from the AccountPolicy section of OpenDirectory.","platforms":["darwin"],"columns":[{"name":"uid","description":"User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"creation_time","description":"When the account was first created","type":"double","notes":"","hidden":false,"required":false,"index":false},{"name":"failed_login_count","description":"The number of failed login attempts using an incorrect password. Count resets after a correct password is entered.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"failed_login_timestamp","description":"The time of the last failed login attempt. Resets after a correct password is entered","type":"double","notes":"","hidden":false,"required":false,"index":false},{"name":"password_last_set_time","description":"The time the password was last changed","type":"double","notes":"","hidden":false,"required":false,"index":false}]},{"name":"acpi_tables","description":"Firmware ACPI functional table common metadata and content.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"ACPI table name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of compiled table data","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"md5","description":"MD5 hash of table content","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"ad_config","description":"macOS Active Directory configuration.","platforms":["darwin"],"columns":[{"name":"name","description":"The macOS-specific configuration name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"domain","description":"Active Directory trust domain","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"option","description":"Canonical name of option","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Variable typed option value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"alf","description":"macOS application layer firewall (ALF) service details.","platforms":["darwin"],"columns":[{"name":"allow_signed_enabled","description":"1 If allow signed mode is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"firewall_unload","description":"1 If firewall unloading enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"global_state","description":"1 If the firewall is enabled with exceptions, 2 if the firewall is configured to block all incoming connections, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"logging_enabled","description":"1 If logging mode is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"logging_option","description":"Firewall logging option","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"stealth_enabled","description":"1 If stealth mode is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Application Layer Firewall version","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"alf_exceptions","description":"macOS application layer firewall (ALF) service exceptions.","platforms":["darwin"],"columns":[{"name":"path","description":"Path to the executable that is excepted","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"Firewall exception state","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"alf_explicit_auths","description":"ALF services explicitly allowed to perform networking.","platforms":["darwin"],"columns":[{"name":"process","description":"Process name explicitly allowed","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"app_schemes","description":"macOS application schemes and handlers (e.g., http, file, mailto).","platforms":["darwin"],"columns":[{"name":"scheme","description":"Name of the scheme/protocol","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"handler","description":"Application label for the handler","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled","description":"1 if this handler is the OS default, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"external","description":"1 if this handler does NOT exist on macOS by default, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"protected","description":"1 if this handler is protected (reserved) by macOS, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"apparmor_events","description":"Track AppArmor events.","platforms":["linux"],"columns":[{"name":"type","description":"Event type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"message","description":"Raw audit message","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"apparmor","description":"Apparmor Status like ALLOWED, DENIED etc.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"operation","description":"Permission requested by the process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process PID","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"profile","description":"Apparmor profile name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Process name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"comm","description":"Command-line name of the command that was used to invoke the analyzed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"denied_mask","description":"Denied permissions for the process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"capname","description":"Capability requested by the process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fsuid","description":"Filesystem user ID","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ouid","description":"Object owner's user ID","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"capability","description":"Capability number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"requested_mask","description":"Requested access mask","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"info","description":"Additional information","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"error","description":"Error information","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"namespace","description":"AppArmor namespace","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"label","description":"AppArmor label","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"apparmor_profiles","description":"Track active AppArmor profiles.","platforms":["linux"],"columns":[{"name":"path","description":"Unique, aa-status compatible, policy identifier.","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Policy name.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"attach","description":"Which executable(s) a profile will attach to.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"How the policy is applied.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha1","description":"A unique hash that identifies this policy.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"appcompat_shims","description":"Application Compatibility shims are a way to persist malware. This table presents the AppCompat Shim information from the registry in a nice format. See http://files.brucon.org/2015/Tomczak_and_Ballenthin_Shims_for_the_Win.pdf for more details.","platforms":["windows"],"columns":[{"name":"executable","description":"Name of the executable that is being shimmed. This is pulled from the registry.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"This is the path to the SDB database.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Description of the SDB.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_time","description":"Install time of the SDB","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of the SDB database.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sdb_id","description":"Unique GUID of the SDB.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"apps","description":"macOS applications installed in known search paths (e.g., /Applications).","platforms":["darwin"],"columns":[{"name":"name","description":"Name of the Name.app folder","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Absolute and full Name.app path","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"bundle_executable","description":"Info properties CFBundleExecutable label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bundle_identifier","description":"Info properties CFBundleIdentifier label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bundle_name","description":"Info properties CFBundleName label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bundle_short_version","description":"Info properties CFBundleShortVersionString label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bundle_version","description":"Info properties CFBundleVersion label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bundle_package_type","description":"Info properties CFBundlePackageType label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"environment","description":"Application-set environment variables","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"element","description":"Does the app identify as a background agent","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"compiler","description":"Info properties DTCompiler label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"development_region","description":"Info properties CFBundleDevelopmentRegion label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"display_name","description":"Info properties CFBundleDisplayName label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"info_string","description":"Info properties CFBundleGetInfoString label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"minimum_system_version","description":"Minimum version of macOS required for the app to run","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"category","description":"The UTI that categorizes the app for the App Store","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"applescript_enabled","description":"Info properties NSAppleScriptEnabled label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"copyright","description":"Info properties NSHumanReadableCopyright label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_opened_time","description":"The time that the app was last used","type":"double","notes":"","hidden":false,"required":false,"index":false}]},{"name":"apt_sources","description":"Current list of APT repositories or software channels.","platforms":["linux"],"columns":[{"name":"name","description":"Repository name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Source file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"base_uri","description":"Repository base URI","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"release","description":"Release name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Repository source version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"maintainer","description":"Repository maintainer","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"components","description":"Repository components","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"architectures","description":"Repository architectures","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"arp_cache","description":"Address resolution cache, both static and dynamic (from ARP, NDP).","platforms":["darwin","linux","windows"],"columns":[{"name":"address","description":"IPv4 address target","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mac","description":"MAC address of broadcasted address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"interface","description":"Interface of the network for the MAC","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"permanent","description":"1 for true, 0 for false","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"asl","description":"Queries the Apple System Log data structure for system events.","platforms":["darwin"],"columns":[{"name":"time","description":"Unix timestamp. Set automatically","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"time_nano_sec","description":"Nanosecond time.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"host","description":"Sender's address (set by the server).","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sender","description":"Sender's identification string. Default is process name.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"facility","description":"Sender's facility. Default is 'user'.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Sending process ID encoded as a string. Set automatically.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"GID that sent the log message (set by the server).","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"UID that sent the log message (set by the server).","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"level","description":"Log level number. See levels in asl.h.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"message","description":"Message text.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ref_pid","description":"Reference PID for messages proxied by launchd","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ref_proc","description":"Reference process for messages proxied by launchd","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"extra","description":"Extra columns, in JSON format. Queries against this column are performed entirely in SQLite, so do not benefit from efficient querying via asl.h.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"atom_packages","description":"Lists all atom packages in a directory or globally installed in a system.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Package display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Package supplied version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Package supplied description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Package's package.json path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"license","description":"License for package","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"homepage","description":"Package supplied homepage","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"The local user that owns the plugin","type":"bigint","notes":"","hidden":false,"required":false,"index":true}]},{"name":"augeas","description":"Configuration files parsed by augeas.","platforms":["darwin","linux"],"columns":[{"name":"node","description":"The node path of the configuration item","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"value","description":"The value of the configuration item","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"label","description":"The label of the configuration item","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"The path to the configuration file","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"authenticode","description":"File (executable, bundle, installer, disk) code signing status.","platforms":["windows"],"columns":[{"name":"path","description":"Must provide a path or directory","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"original_program_name","description":"The original program name that the publisher has signed","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial_number","description":"The certificate serial number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"issuer_name","description":"The certificate issuer name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subject_name","description":"The certificate subject name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"result","description":"The signature check result","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"authorization_mechanisms","description":"macOS Authorization mechanisms database.","platforms":["darwin"],"columns":[{"name":"label","description":"Label of the authorization right","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"plugin","description":"Authorization plugin name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mechanism","description":"Name of the mechanism that will be called","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"privileged","description":"If privileged it will run as root, else as an anonymous user","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"entry","description":"The whole string entry","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"authorizations","description":"macOS Authorization rights database.","platforms":["darwin"],"columns":[{"name":"label","description":"Item name, usually in reverse domain format","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"modified","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"allow_root","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"timeout","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"tries","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"authenticate_user","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"shared","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"comment","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"created","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"session_owner","description":"Label top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"authorized_keys","description":"A line-delimited authorized_keys table.","platforms":["darwin","linux"],"columns":[{"name":"uid","description":"The local owner of authorized_keys file","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"algorithm","description":"Key type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key","description":"Key encoded as base64","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"options","description":"Optional list of login options","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"comment","description":"Optional comment","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key_file","description":"Path to the authorized_keys file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"autoexec","description":"Aggregate of executables that will automatically execute on the target machine. This is an amalgamation of other tables like services, scheduled_tasks, startup_items and more.","platforms":["windows"],"columns":[{"name":"path","description":"Path to the executable","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Name of the program","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Source table of the autoexec item","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"azure_instance_metadata","description":"Azure instance metadata.","platforms":["darwin","linux","windows"],"columns":[{"name":"location","description":"Azure Region the VM is running in","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"offer","description":"Offer information for the VM image (Azure image gallery VMs only)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"publisher","description":"Publisher of the VM image","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sku","description":"SKU for the VM image","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Version of the VM image","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"os_type","description":"Linux or Windows","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"platform_update_domain","description":"Update domain the VM is running in","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"platform_fault_domain","description":"Fault domain the VM is running in","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vm_id","description":"Unique identifier for the VM","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"vm_size","description":"VM size","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subscription_id","description":"Azure subscription for the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"resource_group_name","description":"Resource group for the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"placement_group_id","description":"Placement group for the VM scale set","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vm_scale_set_name","description":"VM scale set name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"zone","description":"Availability zone of the VM","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"azure_instance_tags","description":"Azure instance tags.","platforms":["darwin","linux","windows"],"columns":[{"name":"vm_id","description":"Unique identifier for the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key","description":"The tag key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"The tag value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"background_activities_moderator","description":"Background Activities Moderator (BAM) tracks application execution.","platforms":["windows"],"columns":[{"name":"path","description":"Application file path.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_execution_time","description":"Most recent time application was executed.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sid","description":"User SID.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"battery","description":"Provides information about the internal battery of a Macbook.","platforms":["darwin"],"columns":[{"name":"manufacturer","description":"The battery manufacturer's name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacture_date","description":"The date the battery was manufactured UNIX Epoch","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"model","description":"The battery's model number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial_number","description":"The battery's unique serial number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cycle_count","description":"The number of charge/discharge cycles","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"health","description":"One of the following: \"Good\" describes a well-performing battery, \"Fair\" describes a functional battery with limited capacity, or \"Poor\" describes a battery that's not capable of providing power","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"condition","description":"One of the following: \"Normal\" indicates the condition of the battery is within normal tolerances, \"Service Needed\" indicates that the battery should be checked out by a licensed Mac repair service, \"Permanent Failure\" indicates the battery needs replacement","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"One of the following: \"AC Power\" indicates the battery is connected to an external power source, \"Battery Power\" indicates that the battery is drawing internal power, \"Off Line\" indicates the battery is off-line or no longer connected","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"charging","description":"1 if the battery is currently being charged by a power source. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"charged","description":"1 if the battery is currently completely charged. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"designed_capacity","description":"The battery's designed capacity in mAh","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"max_capacity","description":"The battery's actual capacity when it is fully charged in mAh","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"current_capacity","description":"The battery's current charged capacity in mAh","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"percent_remaining","description":"The percentage of battery remaining before it is drained","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"amperage","description":"The battery's current amperage in mA","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"voltage","description":"The battery's current voltage in mV","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"minutes_until_empty","description":"The number of minutes until the battery is fully depleted. This value is -1 if this time is still being calculated","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"minutes_to_full_charge","description":"The number of minutes until the battery is fully charged. This value is -1 if this time is still being calculated","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"bitlocker_info","description":"Retrieve bitlocker status of the machine.","platforms":["windows"],"columns":[{"name":"device_id","description":"ID of the encrypted drive.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"drive_letter","description":"Drive letter of the encrypted drive.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"persistent_volume_id","description":"Persistent ID of the drive.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"conversion_status","description":"The bitlocker conversion status of the drive.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"protection_status","description":"The bitlocker protection status of the drive.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"encryption_method","description":"The encryption type of the device.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"The FVE metadata version of the drive.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"percentage_encrypted","description":"The percentage of the drive that is encrypted.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"lock_status","description":"The accessibility status of the drive from Windows.","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"block_devices","description":"Block (buffered access) device file nodes: disks, ramdisks, and DMG containers.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Block device name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Block device parent name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor","description":"Block device vendor string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model","description":"Block device model string identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Block device size in blocks","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"block_size","description":"Block size in bytes","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Block device Universally Unique Identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Block device type string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"label","description":"Block device label string","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"bpf_process_events","description":"Track time/action process executions.","platforms":["linux"],"columns":[{"name":"tid","description":"Thread ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"cid","description":"Cgroup ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"exit_code","description":"Exit code of the system call","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"probe_error","description":"Set to 1 if one or more buffers could not be captured","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"syscall","description":"System call name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Binary path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cwd","description":"Current working directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Command line arguments","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"duration","description":"How much time was spent inside the syscall (nsecs)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"json_cmdline","description":"Command line arguments, in JSON format","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"ntime","description":"The nsecs uptime timestamp as obtained from BPF","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":true,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"integer","notes":"","hidden":true,"required":false,"index":false}]},{"name":"bpf_socket_events","description":"Track network socket opens and closes.","platforms":["linux"],"columns":[{"name":"tid","description":"Thread ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"cid","description":"Cgroup ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"exit_code","description":"Exit code of the system call","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"probe_error","description":"Set to 1 if one or more buffers could not be captured","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"syscall","description":"System call name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fd","description":"The file description for the process socket","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"family","description":"The Internet protocol family ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"The socket type","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"protocol","description":"The network protocol ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"local_address","description":"Local address associated with socket","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_address","description":"Remote address associated with socket","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_port","description":"Local network protocol port number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_port","description":"Remote network protocol port number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"duration","description":"How much time was spent inside the syscall (nsecs)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ntime","description":"The nsecs uptime timestamp as obtained from BPF","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":true,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"integer","notes":"","hidden":true,"required":false,"index":false}]},{"name":"browser_plugins","description":"All C/NPAPI browser plugin details for all users. C/NPAPI has been deprecated on all major browsers. To query for plugins on modern browsers, try: `chrome_extensions` `firefox_addons` `safari_extensions`.","platforms":["darwin"],"columns":[{"name":"uid","description":"The local user that owns the plugin","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Plugin display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Plugin identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Plugin short version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sdk","description":"Build SDK used to compile plugin","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Plugin description text","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"development_region","description":"Plugin language-localization","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"native","description":"Plugin requires native execution","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to plugin bundle","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"disabled","description":"Is the plugin disabled. 1 = Disabled","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"carbon_black_info","description":"Returns info about a Carbon Black sensor install.","platforms":["darwin","linux","windows"],"columns":[{"name":"sensor_id","description":"Sensor ID of the Carbon Black sensor","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"config_name","description":"Sensor group","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_store_files","description":"If the sensor is configured to send back binaries to the Carbon Black server","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_module_loads","description":"If the sensor is configured to capture module loads","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_module_info","description":"If the sensor is configured to collect metadata of binaries","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_file_mods","description":"If the sensor is configured to collect file modification events","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_reg_mods","description":"If the sensor is configured to collect registry modification events","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_net_conns","description":"If the sensor is configured to collect network connections","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_processes","description":"If the sensor is configured to process events","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_cross_processes","description":"If the sensor is configured to cross process events","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_emet_events","description":"If the sensor is configured to EMET events","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_data_file_writes","description":"If the sensor is configured to collect non binary file writes","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_process_user_context","description":"If the sensor is configured to collect the user running a process","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"collect_sensor_operations","description":"Unknown","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"log_file_disk_quota_mb","description":"Event file disk quota in MB","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"log_file_disk_quota_percentage","description":"Event file disk quota in a percentage","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"protection_disabled","description":"If the sensor is configured to report tamper events","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"sensor_ip_addr","description":"IP address of the sensor","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sensor_backend_server","description":"Carbon Black server","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"event_queue","description":"Size in bytes of Carbon Black event files on disk","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"binary_queue","description":"Size in bytes of binaries waiting to be sent to Carbon Black server","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"carves","description":"List the set of completed and in-progress carves. If carve=1 then the query is treated as a new carve request.","platforms":["darwin","linux","windows"],"columns":[{"name":"time","description":"Time at which the carve was kicked off","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sha256","description":"A SHA256 sum of the carved archive","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of the carved archive","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"The path of the requested carve","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Status of the carve, can be STARTING, PENDING, SUCCESS, or FAILED","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"carve_guid","description":"Identifying value of the carve session","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"request_id","description":"Identifying value of the carve request (e.g., scheduled query name, distributed request, etc)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"carve","description":"Set this value to '1' to start a file carve","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"certificates","description":"Certificate Authorities installed in Keychains/ca-bundles.","platforms":["darwin","linux","windows"],"columns":[{"name":"common_name","description":"Certificate CommonName","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subject","description":"Certificate distinguished name (deprecated, use subject2)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"issuer","description":"Certificate issuer distinguished name (deprecated, use issuer2)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ca","description":"1 if CA: true (certificate is an authority) else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"self_signed","description":"1 if self-signed, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"not_valid_before","description":"Lower bound of valid date","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"not_valid_after","description":"Certificate expiration data","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"signing_algorithm","description":"Signing algorithm used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key_algorithm","description":"Key algorithm used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key_strength","description":"Key size used for RSA/DSA, or curve name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key_usage","description":"Certificate key usage and extended key usage","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subject_key_id","description":"SKID an optionally included SHA1","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"authority_key_id","description":"AKID an optionally included SHA1","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha1","description":"SHA1 hash of the raw certificate contents","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to Keychain or PEM bundle","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial","description":"Certificate serial number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sid","description":"SID","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"store_location","description":"Certificate system store location","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"store","description":"Certificate system store","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"username","description":"Username","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"store_id","description":"Exists for service/user stores. Contains raw store id provided by WinAPI.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"issuer2","description":"Certificate issuer distinguished name","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux","darwin"]},{"name":"subject2","description":"Certificate distinguished name","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux","darwin"]}]},{"name":"chassis_info","description":"Display information pertaining to the chassis and its security status.","platforms":["windows"],"columns":[{"name":"audible_alarm","description":"If TRUE, the frame is equipped with an audible alarm.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"breach_description","description":"If provided, gives a more detailed description of a detected security breach.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"chassis_types","description":"A comma-separated list of chassis types, such as Desktop or Laptop.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"An extended description of the chassis if available.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"lock","description":"If TRUE, the frame is equipped with a lock.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"The manufacturer of the chassis.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model","description":"The model of the chassis.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"security_breach","description":"The physical status of the chassis such as Breach Successful, Breach Attempted, etc.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial","description":"The serial number of the chassis.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"smbios_tag","description":"The assigned asset tag number of the chassis.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sku","description":"The Stock Keeping Unit number if available.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"If available, gives various operational or nonoperational statuses such as OK, Degraded, and Pred Fail.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"visible_alarm","description":"If TRUE, the frame is equipped with a visual alarm.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"chocolatey_packages","description":"Chocolatey packages installed in a system.","platforms":["windows"],"columns":[{"name":"name","description":"Package display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Package-supplied version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"summary","description":"Package-supplied summary","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"author","description":"Optional package author","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"license","description":"License under which package is launched","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path at which this package resides","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"chrome_extension_content_scripts","description":"Chrome browser extension content scripts.","platforms":["darwin","linux","windows"],"columns":[{"name":"browser_type","description":"The browser type (Valid values: chrome, chromium, opera, yandex, brave)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"The local user that owns the extension","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"identifier","description":"Extension identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension-supplied version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"script","description":"The content script used by the extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"match","description":"The pattern that the script is matched against","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"profile_path","description":"The profile path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to extension folder","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"referenced","description":"1 if this extension is referenced by the Preferences file of the profile","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"chrome_extensions","description":"Chrome-based browser extensions.","platforms":["darwin","linux","windows"],"columns":[{"name":"browser_type","description":"The browser type (Valid values: chrome, chromium, opera, yandex, brave, edge, edge_beta)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"The local user that owns the extension","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Extension display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"profile","description":"The name of the Chrome profile that contains this extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"profile_path","description":"The profile path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"referenced_identifier","description":"Extension identifier, as specified by the preferences file. Empty if the extension is not in the profile.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Extension identifier, computed from its manifest. Empty in case of error.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension-supplied version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Extension-optional description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"default_locale","description":"Default locale supported by extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"current_locale","description":"Current locale supported by extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"update_url","description":"Extension-supplied update URI","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"author","description":"Optional extension author","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"persistent","description":"1 If extension is persistent across all tabs else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to extension folder","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"permissions","description":"The permissions required by the extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"permissions_json","description":"The JSON-encoded permissions required by the extension","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"optional_permissions","description":"The permissions optionally required by the extensions","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"optional_permissions_json","description":"The JSON-encoded permissions optionally required by the extensions","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"manifest_hash","description":"The SHA256 hash of the manifest.json file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"referenced","description":"1 if this extension is referenced by the Preferences file of the profile","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"from_webstore","description":"True if this extension was installed from the web store","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"1 if this extension is enabled","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_time","description":"Extension install time, in its original Webkit format","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_timestamp","description":"Extension install time, converted to unix time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"manifest_json","description":"The manifest file of the extension","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"key","description":"The extension key, from the manifest file","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"connectivity","description":"Provides the overall system's network state.","platforms":["windows"],"columns":[{"name":"disconnected","description":"True if the all interfaces are not connected to any network","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv4_no_traffic","description":"True if any interface is connected via IPv4, but has seen no traffic","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv6_no_traffic","description":"True if any interface is connected via IPv6, but has seen no traffic","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv4_subnet","description":"True if any interface is connected to the local subnet via IPv4","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv4_local_network","description":"True if any interface is connected to a routed network via IPv4","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv4_internet","description":"True if any interface is connected to the Internet via IPv4","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv6_subnet","description":"True if any interface is connected to the local subnet via IPv6","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv6_local_network","description":"True if any interface is connected to a routed network via IPv6","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv6_internet","description":"True if any interface is connected to the Internet via IPv6","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"cpu_info","description":"Retrieve cpu hardware info of the machine.","platforms":["linux","windows"],"columns":[{"name":"device_id","description":"The DeviceID of the CPU.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model","description":"The model of the CPU.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"The manufacturer of the CPU.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"processor_type","description":"The processor type, such as Central, Math, or Video.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_status","description":"The current operating status of the CPU.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"number_of_cores","description":"The number of cores of the CPU.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"logical_processors","description":"The number of logical processors of the CPU.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"address_width","description":"The width of the CPU address bus.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"current_clock_speed","description":"The current frequency of the CPU.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"max_clock_speed","description":"The maximum possible frequency of the CPU.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"socket_designation","description":"The assigned socket on the board for the given CPU.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"availability","description":"The availability and status of the CPU.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]}]},{"name":"cpu_time","description":"Displays information from /proc/stat file about the time the cpu cores spent in different parts of the system.","platforms":["darwin","linux"],"columns":[{"name":"core","description":"Name of the cpu (core)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"user","description":"Time spent in user mode","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"nice","description":"Time spent in user mode with low priority (nice)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"system","description":"Time spent in system mode","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"idle","description":"Time spent in the idle task","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"iowait","description":"Time spent waiting for I/O to complete","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"irq","description":"Time spent servicing interrupts","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"softirq","description":"Time spent servicing softirqs","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"steal","description":"Time spent in other operating systems when running in a virtualized environment","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"guest","description":"Time spent running a virtual CPU for a guest OS under the control of the Linux kernel","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"guest_nice","description":"Time spent running a niced guest ","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"cpuid","description":"Useful CPU features from the cpuid ASM call.","platforms":["darwin","linux","windows"],"columns":[{"name":"feature","description":"Present feature flags","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Bit value or string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"output_register","description":"Register used to for feature value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"output_bit","description":"Bit in register value for feature value","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"input_eax","description":"Value of EAX used","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"crashes","description":"Application, System, and Mobile App crash logs.","platforms":["darwin"],"columns":[{"name":"type","description":"Type of crash log","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID of the crashed process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"crash_path","description":"Location of log file","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"identifier","description":"Identifier of the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Version info of the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent PID of the crashed process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"responsible","description":"Process responsible for the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID of the crashed process","type":"integer","notes":"","hidden":false,"required":false,"index":true},{"name":"datetime","description":"Date/Time at which the crash occurred","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"crashed_thread","description":"Thread ID which crashed","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"stack_trace","description":"Most recent frame from the stack trace","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"exception_type","description":"Exception type of the crash","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"exception_codes","description":"Exception codes from the crash","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"exception_notes","description":"Exception notes from the crash","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"registers","description":"The value of the system registers","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"crontab","description":"Line parsed values from system and user cron/tab.","platforms":["darwin","linux"],"columns":[{"name":"event","description":"The job @event name (rare)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"minute","description":"The exact minute for the job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hour","description":"The hour of the day for the job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"day_of_month","description":"The day of the month for the job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"month","description":"The month of the year for the job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"day_of_week","description":"The day of the week for the job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"command","description":"Raw command string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"File parsed","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"cups_destinations","description":"Returns all configured printers.","platforms":["darwin"],"columns":[{"name":"name","description":"Name of the printer","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"option_name","description":"Option name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"option_value","description":"Option value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"cups_jobs","description":"Returns all completed print jobs from cups.","platforms":["darwin"],"columns":[{"name":"title","description":"Title of the printed job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"destination","description":"The printer the job was sent to","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user","description":"The user who printed the job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"format","description":"The format of the print job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"The size of the print job","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"completed_time","description":"When the job completed printing","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"processing_time","description":"How long the job took to process","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"creation_time","description":"When the print request was initiated","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"curl","description":"Perform an http request and return stats about it.","platforms":["darwin","linux","windows"],"columns":[{"name":"url","description":"The url for the request","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"method","description":"The HTTP method for the request","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user_agent","description":"The user-agent string to use for the request","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"response_code","description":"The HTTP status code for the response","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"round_trip_time","description":"Time taken to complete the request","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"bytes","description":"Number of bytes in the response","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"result","description":"The HTTP response body","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"curl_certificate","description":"Inspect TLS certificates by connecting to input hostnames.","platforms":["darwin","linux","windows"],"columns":[{"name":"hostname","description":"Hostname to CURL (domain[:port], e.g. osquery.io)","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"common_name","description":"Common name of company issued to","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"organization","description":"Organization issued to","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"organization_unit","description":"Organization unit issued to","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial_number","description":"Certificate serial number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"issuer_common_name","description":"Issuer common name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"issuer_organization","description":"Issuer organization","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"issuer_organization_unit","description":"Issuer organization unit","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"valid_from","description":"Period of validity start date","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"valid_to","description":"Period of validity end date","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha256_fingerprint","description":"SHA-256 fingerprint","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha1_fingerprint","description":"SHA1 fingerprint","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Version Number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"signature_algorithm","description":"Signature Algorithm","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"signature","description":"Signature","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subject_key_identifier","description":"Subject Key Identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"authority_key_identifier","description":"Authority Key Identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key_usage","description":"Usage of key in certificate","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"extended_key_usage","description":"Extended usage of key in certificate","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"policies","description":"Certificate Policies","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subject_alternative_names","description":"Subject Alternative Name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"issuer_alternative_names","description":"Issuer Alternative Name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"info_access","description":"Authority Information Access","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subject_info_access","description":"Subject Information Access","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"policy_mappings","description":"Policy Mappings","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"has_expired","description":"1 if the certificate has expired, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"basic_constraint","description":"Basic Constraints","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name_constraints","description":"Name Constraints","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"policy_constraints","description":"Policy Constraints","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dump_certificate","description":"Set this value to '1' to dump certificate","type":"integer","notes":"","hidden":true,"required":false,"index":false},{"name":"timeout","description":"Set this value to the timeout in seconds to complete the TLS handshake (default 4s, use 0 for no timeout)","type":"integer","notes":"","hidden":true,"required":false,"index":false},{"name":"pem","description":"Certificate PEM format","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"deb_packages","description":"The installed DEB package database.","platforms":["linux"],"columns":[{"name":"name","description":"Package name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Package version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Package source","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Package size in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"arch","description":"Package architecture","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"revision","description":"Package revision","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Package status","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"maintainer","description":"Package maintainer","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"section","description":"Package section","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"priority","description":"Package priority","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"admindir","description":"libdpkg admindir. Defaults to /var/lib/dpkg","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"default_environment","description":"Default environment variables and values.","platforms":["windows"],"columns":[{"name":"variable","description":"Name of the environment variable","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Value of the environment variable","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"expand","description":"1 if the variable needs expanding, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"device_file","description":"Similar to the file table, but use TSK and allow block address access.","platforms":["darwin","linux"],"columns":[{"name":"device","description":"Absolute file path to device node","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"partition","description":"A partition number","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"path","description":"A logical path within the device node","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"filename","description":"Name portion of file path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"inode","description":"Filesystem inode number","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"uid","description":"Owning user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Owning group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"Permission bits","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of file in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"block_size","description":"Block size of filesystem","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"atime","description":"Last access time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Last modification time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Creation time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"hard_links","description":"Number of hard links","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"File status","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"device_firmware","description":"A best-effort list of discovered firmware versions.","platforms":["darwin"],"columns":[{"name":"type","description":"Type of device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"device","description":"The device name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"version","description":"Firmware version","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"device_hash","description":"Similar to the hash table, but use TSK and allow block address access.","platforms":["darwin","linux"],"columns":[{"name":"device","description":"Absolute file path to device node","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"partition","description":"A partition number","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"inode","description":"Filesystem inode number","type":"bigint","notes":"","hidden":false,"required":true,"index":false},{"name":"md5","description":"MD5 hash of provided inode data","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha1","description":"SHA1 hash of provided inode data","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha256","description":"SHA256 hash of provided inode data","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"device_partitions","description":"Use TSK to enumerate details about partitions on a disk device.","platforms":["darwin","linux"],"columns":[{"name":"device","description":"Absolute file path to device node","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"partition","description":"A partition number or description","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"label","description":"","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"offset","description":"","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"blocks_size","description":"Byte size of each block","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"blocks","description":"Number of blocks","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inodes","description":"Number of meta nodes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"flags","description":"","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"disk_encryption","description":"Disk encryption status and information.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Disk name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"uuid","description":"Disk Universally Unique Identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"encrypted","description":"1 If encrypted: true (disk is encrypted), else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Description of cipher type and mode if available","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"encryption_status","description":"Disk encryption status with one of following values: encrypted | not encrypted | undefined","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"Currently authenticated user if available","type":"text","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"user_uuid","description":"UUID of authenticated user if available","type":"text","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"filevault_status","description":"FileVault status with one of following values: on | off | unknown","type":"text","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]}]},{"name":"disk_events","description":"Track DMG disk image events (appearance/disappearance) when opened.","platforms":["darwin"],"columns":[{"name":"action","description":"Appear or disappear","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of the DMG file accessed","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Disk event name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"device","description":"Disk event BSD name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uuid","description":"UUID of the volume inside DMG if available","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of partition in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ejectable","description":"1 if ejectable, 0 if not","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"mountable","description":"1 if mountable, 0 if not","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"writable","description":"1 if writable, 0 if not","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"content","description":"Disk event content","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"media_name","description":"Disk event media name string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor","description":"Disk event vendor string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"filesystem","description":"Filesystem if available","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"checksum","description":"UDIF Master checksum if available (CRC32)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of appearance/disappearance in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"disk_info","description":"Retrieve basic information about the physical disks of a system.","platforms":["windows"],"columns":[{"name":"partitions","description":"Number of detected partitions on disk.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"disk_index","description":"Physical drive number of the disk.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"The interface type of the disk.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"id","description":"The unique identifier of the drive on the system.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pnp_device_id","description":"The unique identifier of the drive on the system.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"disk_size","description":"Size of the disk.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"The manufacturer of the disk.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hardware_model","description":"Hard drive model.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"The label of the disk object.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial","description":"The serial number of the disk.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"The OS's description of the disk.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"dns_cache","description":"Enumerate the DNS cache using the undocumented DnsGetCacheDataTable function in dnsapi.dll.","platforms":["windows"],"columns":[{"name":"name","description":"DNS record name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"DNS record type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"flags","description":"DNS record flags","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"dns_resolvers","description":"Resolvers used by this host.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Address type index or order","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Address type: sortlist, nameserver, search","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"address","description":"Resolver IP/IPv6 address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"netmask","description":"Address (sortlist) netmask length","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"options","description":"Resolver options","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"docker_container_envs","description":"Docker container environment variables.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"key","description":"Environment variable name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Environment variable value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_container_fs_changes","description":"Changes to files or directories on container's filesystem.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"path","description":"FIle or directory path relative to rootfs","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"change_type","description":"Type of change: C:Modified, A:Added, D:Deleted","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_container_labels","description":"Docker container labels.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"key","description":"Label key","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"value","description":"Optional label value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_container_mounts","description":"Docker container mounts.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"type","description":"Type of mount (bind, volume)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Optional mount name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"source","description":"Source path on host","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"destination","description":"Destination path inside container","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"driver","description":"Driver providing the mount","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"Mount options (rw, ro)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"rw","description":"1 if read/write. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"propagation","description":"Mount propagation","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_container_networks","description":"Docker container networks.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Network name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"network_id","description":"Network ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"endpoint_id","description":"Endpoint ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"gateway","description":"Gateway","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ip_address","description":"IP address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ip_prefix_len","description":"IP subnet prefix length","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv6_gateway","description":"IPv6 gateway","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv6_address","description":"IPv6 address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv6_prefix_len","description":"IPv6 subnet prefix length","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"mac_address","description":"MAC address","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_container_ports","description":"Docker container ports.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Protocol (tcp, udp)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"port","description":"Port inside the container","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"host_ip","description":"Host IP address on which public port is listening","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"host_port","description":"Host port","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_container_processes","description":"Docker container processes.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"pid","description":"Process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"The process path or shorthand argv[0]","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Complete argv","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"Process state","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"euid","description":"Effective user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"egid","description":"Effective group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"suid","description":"Saved user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sgid","description":"Saved group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"wired_size","description":"Bytes of unpageable memory used by process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"resident_size","description":"Bytes of private memory used by process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"total_size","description":"Total virtual memory size","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"start_time","description":"Process start in seconds since boot (non-sleeping)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Process parent's PID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pgroup","description":"Process group","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"threads","description":"Number of threads used by process","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"nice","description":"Process nice level (-20 to 20, default 0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"user","description":"User name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Cumulative CPU time. [DD-]HH:MM:SS format","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu","description":"CPU utilization as percentage","type":"double","notes":"","hidden":false,"required":false,"index":false},{"name":"mem","description":"Memory utilization as percentage","type":"double","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_container_stats","description":"Docker container statistics. Queries on this table take at least one second.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"name","description":"Container name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"pids","description":"Number of processes","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"read","description":"UNIX time when stats were read","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"preread","description":"UNIX time when stats were last read","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"interval","description":"Difference between read and preread in nano-seconds","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"disk_read","description":"Total disk read bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"disk_write","description":"Total disk write bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"num_procs","description":"Number of processors","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_total_usage","description":"Total CPU usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_kernelmode_usage","description":"CPU kernel mode usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_usermode_usage","description":"CPU user mode usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"system_cpu_usage","description":"CPU system usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"online_cpus","description":"Online CPUs","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"pre_cpu_total_usage","description":"Last read total CPU usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pre_cpu_kernelmode_usage","description":"Last read CPU kernel mode usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pre_cpu_usermode_usage","description":"Last read CPU user mode usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pre_system_cpu_usage","description":"Last read CPU system usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pre_online_cpus","description":"Last read online CPUs","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_usage","description":"Memory usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_max_usage","description":"Memory maximum usage","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_limit","description":"Memory limit","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"network_rx_bytes","description":"Total network bytes read","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"network_tx_bytes","description":"Total network bytes transmitted","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_containers","description":"Docker containers information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Container ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Container name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"image","description":"Docker image (name) used to launch this container","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"image_id","description":"Docker image ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"command","description":"Command with arguments","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"created","description":"Time of creation as UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"Container state (created, restarting, running, removing, paused, exited, dead)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Container status information","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Identifier of the initial process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Container path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"config_entrypoint","description":"Container entrypoint(s)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"started_at","description":"Container start time as string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"finished_at","description":"Container finish time as string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"privileged","description":"Is the container privileged","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"security_options","description":"List of container security options","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"env_variables","description":"Container environmental variables","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"readonly_rootfs","description":"Is the root filesystem mounted as read only","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cgroup_namespace","description":"cgroup namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"ipc_namespace","description":"IPC namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"mnt_namespace","description":"Mount namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"net_namespace","description":"Network namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"pid_namespace","description":"PID namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"user_namespace","description":"User namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"uts_namespace","description":"UTS namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"docker_image_history","description":"Docker image history information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Image ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"created","description":"Time of creation as UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of instruction in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"created_by","description":"Created by instruction","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"tags","description":"Comma-separated list of tags","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"comment","description":"Instruction comment","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_image_labels","description":"Docker image labels.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Image ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"key","description":"Label key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Optional label value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_image_layers","description":"Docker image layers information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Image ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"layer_id","description":"Layer ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"layer_order","description":"Layer Order (1 = base layer)","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_images","description":"Docker images information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Image ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"created","description":"Time of creation as UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"size_bytes","description":"Size of image in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"tags","description":"Comma-separated list of repository tags","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_info","description":"Docker system information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Docker system ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"containers","description":"Total number of containers","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"containers_running","description":"Number of containers currently running","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"containers_paused","description":"Number of containers in paused state","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"containers_stopped","description":"Number of containers in stopped state","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"images","description":"Number of images","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"storage_driver","description":"Storage driver","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_limit","description":"1 if memory limit support is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"swap_limit","description":"1 if swap limit support is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"kernel_memory","description":"1 if kernel memory limit support is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_cfs_period","description":"1 if CPU Completely Fair Scheduler (CFS) period support is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_cfs_quota","description":"1 if CPU Completely Fair Scheduler (CFS) quota support is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_shares","description":"1 if CPU share weighting support is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_set","description":"1 if CPU set selection support is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv4_forwarding","description":"1 if IPv4 forwarding is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"bridge_nf_iptables","description":"1 if bridge netfilter iptables is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"bridge_nf_ip6tables","description":"1 if bridge netfilter ip6tables is enabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"oom_kill_disable","description":"1 if Out-of-memory kill is disabled. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"logging_driver","description":"Logging driver","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cgroup_driver","description":"Control groups driver","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"kernel_version","description":"Kernel version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"os","description":"Operating system","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"os_type","description":"Operating system type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"architecture","description":"Hardware architecture","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cpus","description":"Number of CPUs","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"memory","description":"Total memory","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"http_proxy","description":"HTTP proxy","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"https_proxy","description":"HTTPS proxy","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"no_proxy","description":"Comma-separated list of domain extensions proxy should not be used for","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the docker host","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"server_version","description":"Server version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"root_dir","description":"Docker root directory","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_network_labels","description":"Docker network labels.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Network ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"key","description":"Label key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Optional label value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_networks","description":"Docker networks information.","platforms":["darwin","linux"],"columns":[{"name":"id","description":"Network ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Network name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"driver","description":"Network driver","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"created","description":"Time of creation as UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"enable_ipv6","description":"1 if IPv6 is enabled on this network. 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"subnet","description":"Network subnet","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"gateway","description":"Network gateway","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_version","description":"Docker version information.","platforms":["darwin","linux"],"columns":[{"name":"version","description":"Docker version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"api_version","description":"API version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"min_api_version","description":"Minimum API version supported","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"git_commit","description":"Docker build git commit","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"go_version","description":"Go version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"os","description":"Operating system","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"arch","description":"Hardware architecture","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"kernel_version","description":"Kernel version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"build_time","description":"Build time","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_volume_labels","description":"Docker volume labels.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Volume name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"key","description":"Label key","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"value","description":"Optional label value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"docker_volumes","description":"Docker volumes information.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Volume name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"driver","description":"Volume driver","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mount_point","description":"Mount point","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Volume type","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"drivers","description":"Details for in-use Windows device drivers. This does not display installed but unused drivers.","platforms":["windows"],"columns":[{"name":"device_id","description":"Device ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"device_name","description":"Device name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"image","description":"Path to driver image file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Driver description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"service","description":"Driver service name, if one exists","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"service_key","description":"Driver service registry key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Driver version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"inf","description":"Associated inf file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"Device/driver class name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"provider","description":"Driver provider","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"Device manufacturer","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"driver_key","description":"Driver key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"date","description":"Driver date","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"signed","description":"Whether the driver is signed or not","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"ec2_instance_metadata","description":"EC2 instance metadata.","platforms":["darwin","linux","windows"],"columns":[{"name":"instance_id","description":"EC2 instance ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"instance_type","description":"EC2 instance type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"architecture","description":"Hardware architecture of this EC2 instance","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"region","description":"AWS region in which this instance launched","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"availability_zone","description":"Availability zone in which this instance launched","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_hostname","description":"Private IPv4 DNS hostname of the first interface of this instance","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_ipv4","description":"Private IPv4 address of the first interface of this instance","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mac","description":"MAC address for the first network interface of this EC2 instance","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"security_groups","description":"Comma separated list of security group names","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"iam_arn","description":"If there is an IAM role associated with the instance, contains instance profile ARN","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ami_id","description":"AMI ID used to launch this EC2 instance","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"reservation_id","description":"ID of the reservation","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"account_id","description":"AWS account ID which owns this EC2 instance","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ssh_public_key","description":"SSH public key. Only available if supplied at instance launch time","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"ec2_instance_tags","description":"EC2 instance tag key value pairs.","platforms":["darwin","linux","windows"],"columns":[{"name":"instance_id","description":"EC2 instance ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key","description":"Tag key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Tag value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"es_process_events","description":"Process execution events from EndpointSecurity.","platforms":["darwin"],"columns":[{"name":"version","description":"Version of EndpointSecurity event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"seq_num","description":"Per event sequence number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"global_seq_num","description":"Global sequence number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"original_parent","description":"Original parent process ID in case of reparenting","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Command line arguments (argv)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cmdline_count","description":"Number of command line arguments","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"env","description":"Environment variables delimited by spaces","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"env_count","description":"Number of environment variables","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"cwd","description":"The process current working directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID of the process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"euid","description":"Effective User ID of the process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID of the process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"egid","description":"Effective Group ID of the process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"Username","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"signing_id","description":"Signature identifier of the process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"team_id","description":"Team identifier of thd process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cdhash","description":"Codesigning hash of the process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"platform_binary","description":"Indicates if the binary is Apple signed binary (1) or not (0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"exit_code","description":"Exit code of a process in case of an exit event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"child_pid","description":"Process ID of a child process in case of a fork event","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"event_type","description":"Type of EndpointSecurity event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"codesigning_flags","description":"Codesigning flags matching one of these options, in a comma separated list: NOT_VALID, ADHOC, NOT_RUNTIME, INSTALLER. See kern/cs_blobs.h in XNU for descriptions.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"es_process_file_events","description":"Process execution events from EndpointSecurity.","platforms":["darwin"],"columns":[{"name":"version","description":"Version of EndpointSecurity event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"seq_num","description":"Per event sequence number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"global_seq_num","description":"Global sequence number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"filename","description":"The source or target filename for the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dest_filename","description":"Destination filename for the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"event_type","description":"Type of EndpointSecurity event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"etc_hosts","description":"Line-parsed /etc/hosts.","platforms":["darwin","linux","windows"],"columns":[{"name":"address","description":"IP address mapping","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hostnames","description":"Raw hosts mapping","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"etc_protocols","description":"Line-parsed /etc/protocols.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Protocol name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"number","description":"Protocol number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"alias","description":"Protocol alias","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"comment","description":"Comment with protocol description","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"etc_services","description":"Line-parsed /etc/services.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Service name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"port","description":"Service port number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"protocol","description":"Transport protocol (TCP/UDP)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"aliases","description":"Optional space separated list of other names for a service","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"comment","description":"Optional comment for a service.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"event_taps","description":"Returns information about installed event taps.","platforms":["darwin"],"columns":[{"name":"enabled","description":"Is the Event Tap enabled","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"event_tap_id","description":"Unique ID for the Tap","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"event_tapped","description":"The mask that identifies the set of events to be observed.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"process_being_tapped","description":"The process ID of the target application","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"tapping_process","description":"The process ID of the application that created the event tap.","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"extended_attributes","description":"Returns the extended attributes for files (similar to Windows ADS).","platforms":["darwin","linux"],"columns":[{"name":"path","description":"Absolute file path","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"directory","description":"Directory of file(s)","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"key","description":"Name of the value generated from the extended attribute","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"The parsed information from the attribute","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"base64","description":"1 if the value is base64 encoded else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"fan_speed_sensors","description":"Fan speeds.","platforms":["darwin"],"columns":[{"name":"fan","description":"Fan number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Fan name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"actual","description":"Actual speed","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"min","description":"Minimum speed","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"max","description":"Maximum speed","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"target","description":"Target speed","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"file","description":"Interactive filesystem attributes and metadata.","platforms":["darwin","linux","windows"],"columns":[{"name":"path","description":"Absolute file path","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"directory","description":"Directory of file(s)","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"filename","description":"Name portion of file path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"inode","description":"Filesystem inode number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"Owning user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Owning group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"Permission bits","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"device","description":"Device ID (optional)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of file in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"block_size","description":"Block size of filesystem","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"atime","description":"Last access time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Last modification time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Last status change time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"btime","description":"(B)irth or (cr)eate time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"hard_links","description":"Number of hard links","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"symlink","description":"1 if the path is a symlink, otherwise 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"File status","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"attributes","description":"File attrib string. See: https://ss64.com/nt/attrib.html","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"volume_serial","description":"Volume serial number","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"file_id","description":"file ID","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"file_version","description":"File version","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"product_version","description":"File product version","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"original_filename","description":"(Executable files only) Original filename","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"bsd_flags","description":"The BSD file flags (chflags). Possible values: NODUMP, UF_IMMUTABLE, UF_APPEND, OPAQUE, HIDDEN, ARCHIVED, SF_IMMUTABLE, SF_APPEND","type":"text","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"file_events","description":"Track time/action changes to files specified in configuration data.","platforms":["darwin","linux"],"columns":[{"name":"target_path","description":"The path associated with the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"category","description":"The category of the file defined in the config","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"action","description":"Change action (UPDATE, REMOVE, etc)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"transaction_id","description":"ID used during bulk update","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inode","description":"Filesystem inode number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"Owning user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Owning group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"Permission bits","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of file in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"atime","description":"Last access time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Last modification time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Last status change time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"md5","description":"The MD5 of the file after change","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha1","description":"The SHA1 of the file after change","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha256","description":"The SHA256 of the file after change","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hashed","description":"1 if the file was hashed, 0 if not, -1 if hashing failed","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of file event","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"firefox_addons","description":"Firefox browser extensions, webapps, and addons.","platforms":["darwin","linux","windows"],"columns":[{"name":"uid","description":"The local user that owns the addon","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Addon display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Addon identifier","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"creator","description":"Addon-supported creator string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Extension, addon, webapp","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Addon-supplied version string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Addon-supplied description string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source_url","description":"URL that installed the addon","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"visible","description":"1 If the addon is shown in browser else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"active","description":"1 If the addon is active else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"disabled","description":"1 If the addon is application-disabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"autoupdate","description":"1 If the addon applies background updates else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"location","description":"Global, profile location","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to plugin bundle","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"gatekeeper","description":"macOS Gatekeeper Details.","platforms":["darwin"],"columns":[{"name":"assessments_enabled","description":"1 If a Gatekeeper is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"dev_id_enabled","description":"1 If a Gatekeeper allows execution from identified developers else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Version of Gatekeeper's gke.bundle","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"opaque_version","description":"Version of Gatekeeper's gkopaque.bundle","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"gatekeeper_approved_apps","description":"Gatekeeper apps a user has allowed to run.","platforms":["darwin"],"columns":[{"name":"path","description":"Path of executable allowed to run","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"requirement","description":"Code signing requirement language","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Last change time","type":"double","notes":"","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Last modification time","type":"double","notes":"","hidden":false,"required":false,"index":false}]},{"name":"groups","description":"Local system groups.","platforms":["darwin","linux","windows"],"columns":[{"name":"gid","description":"Unsigned int64 group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"gid_signed","description":"A signed int64 version of gid","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"groupname","description":"Canonical local group name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"group_sid","description":"Unique group ID","type":"text","notes":"","hidden":true,"required":false,"index":true,"platforms":["windows","win32","cygwin"]},{"name":"comment","description":"Remarks or comments associated with the group","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"is_hidden","description":"IsHidden attribute set in OpenDirectory","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"hardware_events","description":"Hardware (PCI/USB/HID) events from UDEV or IOKit.","platforms":["darwin","linux"],"columns":[{"name":"action","description":"Remove, insert, change properties, etc","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Local device path assigned (optional)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of hardware and hardware event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"driver","description":"Driver claiming the device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor","description":"Hardware device vendor","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor_id","description":"Hex encoded Hardware vendor identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model","description":"Hardware device model","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model_id","description":"Hex encoded Hardware model identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial","description":"Device serial (optional)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"revision","description":"Device revision (optional)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of hardware event","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"hash","description":"Filesystem hash data.","platforms":["darwin","linux","windows"],"columns":[{"name":"path","description":"Must provide a path or directory","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"directory","description":"Must provide a path or directory","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"md5","description":"MD5 hash of provided filesystem data","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha1","description":"SHA1 hash of provided filesystem data","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sha256","description":"SHA256 hash of provided filesystem data","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"homebrew_packages","description":"The installed homebrew package database.","platforms":["darwin"],"columns":[{"name":"name","description":"Package name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Package install path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Current 'linked' version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"prefix","description":"Homebrew install prefix","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"hvci_status","description":"Retrieve HVCI info of the machine.","platforms":["windows"],"columns":[{"name":"version","description":"The version number of the Device Guard build.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"instance_identifier","description":"The instance ID of Device Guard.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vbs_status","description":"The status of the virtualization based security settings. Returns UNKNOWN if an error is encountered.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"code_integrity_policy_enforcement_status","description":"The status of the code integrity policy enforcement settings. Returns UNKNOWN if an error is encountered.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"umci_policy_status","description":"The status of the User Mode Code Integrity security settings. Returns UNKNOWN if an error is encountered.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"ibridge_info","description":"Information about the Apple iBridge hardware controller.","platforms":["darwin"],"columns":[{"name":"boot_uuid","description":"Boot UUID of the iBridge controller","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"coprocessor_version","description":"The manufacturer and chip version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"firmware_version","description":"The build version of the firmware","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"unique_chip_id","description":"Unique id of the iBridge controller","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"ie_extensions","description":"Internet Explorer browser extensions.","platforms":["windows"],"columns":[{"name":"name","description":"Extension display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"registry_path","description":"Extension identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Version of the executable","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to executable","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"intel_me_info","description":"Intel ME/CSE Info.","platforms":["linux","windows"],"columns":[{"name":"version","description":"Intel ME version","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"interface_addresses","description":"Network interfaces and relevant metadata.","platforms":["darwin","linux","windows"],"columns":[{"name":"interface","description":"Interface name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"address","description":"Specific address for interface","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mask","description":"Interface netmask","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"broadcast","description":"Broadcast address for the interface","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"point_to_point","description":"PtP address for the interface","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of address. One of dhcp, manual, auto, other, unknown","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"friendly_name","description":"The friendly display name of the interface.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]}]},{"name":"interface_details","description":"Detailed information and stats of network interfaces.","platforms":["darwin","linux","windows"],"columns":[{"name":"interface","description":"Interface name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mac","description":"MAC of interface (optional)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Interface type (includes virtual)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"mtu","description":"Network MTU","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"metric","description":"Metric based on the speed of the interface","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"flags","description":"Flags (netdevice) for the device","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipackets","description":"Input packets","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"opackets","description":"Output packets","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ibytes","description":"Input bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"obytes","description":"Output bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ierrors","description":"Input errors","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"oerrors","description":"Output errors","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"idrops","description":"Input drops","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"odrops","description":"Output drops","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"collisions","description":"Packet Collisions detected","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"last_change","description":"Time of last device modification (optional)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"link_speed","description":"Interface speed in Mb/s","type":"bigint","notes":"","hidden":false,"required":false,"index":false,"platforms":["linux","darwin"]},{"name":"pci_slot","description":"PCI slot number","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"friendly_name","description":"The friendly display name of the interface.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"description","description":"Short description of the object a one-line string.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"manufacturer","description":"Name of the network adapter's manufacturer.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"connection_id","description":"Name of the network connection as it appears in the Network Connections Control Panel program.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"connection_status","description":"State of the network adapter connection to the network.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"enabled","description":"Indicates whether the adapter is enabled or not.","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"physical_adapter","description":"Indicates whether the adapter is a physical or a logical adapter.","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"speed","description":"Estimate of the current bandwidth in bits per second.","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"service","description":"The name of the service the network adapter uses.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"dhcp_enabled","description":"If TRUE, the dynamic host configuration protocol (DHCP) server automatically assigns an IP address to the computer system when establishing a network connection.","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"dhcp_lease_expires","description":"Expiration date and time for a leased IP address that was assigned to the computer by the dynamic host configuration protocol (DHCP) server.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"dhcp_lease_obtained","description":"Date and time the lease was obtained for the IP address assigned to the computer by the dynamic host configuration protocol (DHCP) server.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"dhcp_server","description":"IP address of the dynamic host configuration protocol (DHCP) server.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"dns_domain","description":"Organization name followed by a period and an extension that indicates the type of organization, such as 'microsoft.com'.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"dns_domain_suffix_search_order","description":"Array of DNS domain suffixes to be appended to the end of host names during name resolution.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"dns_host_name","description":"Host name used to identify the local computer for authentication by some utilities.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"dns_server_search_order","description":"Array of server IP addresses to be used in querying for DNS servers.","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]}]},{"name":"interface_ipv6","description":"IPv6 configuration and stats of network interfaces.","platforms":["darwin","linux"],"columns":[{"name":"interface","description":"Interface name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hop_limit","description":"Current Hop Limit","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"forwarding_enabled","description":"Enable IP forwarding","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"redirect_accept","description":"Accept ICMP redirect messages","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"rtadv_accept","description":"Accept ICMP Router Advertisement","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"iokit_devicetree","description":"The IOKit registry matching the DeviceTree plane.","platforms":["darwin"],"columns":[{"name":"name","description":"Device node name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"Best matching device class (most-specific category)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"id","description":"IOKit internal registry ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent device registry ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"device_path","description":"Device tree path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"service","description":"1 if the device conforms to IOService else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"busy_state","description":"1 if the device is in a busy state else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"retain_count","description":"The device reference count","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"depth","description":"Device nested depth","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"iokit_registry","description":"The full IOKit registry without selecting a plane.","platforms":["darwin"],"columns":[{"name":"name","description":"Default name of the node","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"Best matching device class (most-specific category)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"id","description":"IOKit internal registry ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Parent registry ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"busy_state","description":"1 if the node is in a busy state else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"retain_count","description":"The node reference count","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"depth","description":"Node nested depth","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"iptables","description":"Linux IP packet filtering and NAT tool.","platforms":["linux"],"columns":[{"name":"filter_name","description":"Packet matching filter table name.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"chain","description":"Size of module content.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"policy","description":"Policy that applies for this rule.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"target","description":"Target that applies for this rule.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"protocol","description":"Protocol number identification.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"src_port","description":"Protocol source port(s).","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dst_port","description":"Protocol destination port(s).","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"src_ip","description":"Source IP address.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"src_mask","description":"Source IP address mask.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"iniface","description":"Input interface for the rule.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"iniface_mask","description":"Input interface mask for the rule.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dst_ip","description":"Destination IP address.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dst_mask","description":"Destination IP address mask.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"outiface","description":"Output interface for the rule.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"outiface_mask","description":"Output interface mask for the rule.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"match","description":"Matching rule that applies.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"packets","description":"Number of matching packets for this rule.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"bytes","description":"Number of matching bytes for this rule.","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"kernel_extensions","description":"macOS's kernel extensions, both loaded and within the load search path.","platforms":["darwin"],"columns":[{"name":"idx","description":"Extension load tag or index","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"refs","description":"Reference count","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Bytes of wired memory used by extension","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Extension label","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"linked_against","description":"Indexes of extensions this extension is linked against","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Optional path to extension bundle","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"kernel_info","description":"Basic active kernel information.","platforms":["darwin","linux","windows"],"columns":[{"name":"version","description":"Kernel version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"arguments","description":"Kernel arguments","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Kernel path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"device","description":"Kernel device identifier","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"kernel_modules","description":"Linux kernel modules both loaded and within the load search path.","platforms":["linux"],"columns":[{"name":"name","description":"Module name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of module content","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"used_by","description":"Module reverse dependencies","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Kernel module status","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"address","description":"Kernel module address","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"kernel_panics","description":"System kernel panic logs.","platforms":["darwin"],"columns":[{"name":"path","description":"Location of log file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Formatted time of the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"registers","description":"A space delimited line of register:value pairs","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"frame_backtrace","description":"Backtrace of the crashed module","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"module_backtrace","description":"Modules appearing in the crashed module's backtrace","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dependencies","description":"Module dependencies existing in crashed module's backtrace","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Process name corresponding to crashed thread","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"os_version","description":"Version of the operating system","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"kernel_version","description":"Version of the system kernel","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"system_model","description":"Physical system model, for example 'MacBookPro12,1 (Mac-E43C1C25D4880AD6)'","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uptime","description":"System uptime at kernel panic in nanoseconds","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"last_loaded","description":"Last loaded module before panic","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_unloaded","description":"Last unloaded module before panic","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"keychain_acls","description":"Applications that have ACL entries in the keychain.","platforms":["darwin"],"columns":[{"name":"keychain_path","description":"The path of the keychain","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"authorizations","description":"A space delimited set of authorization attributes","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"The path of the authorized application","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"The description included with the ACL entry","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"label","description":"An optional label tag that may be included with the keychain entry","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"keychain_items","description":"Generic details about keychain items.","platforms":["darwin"],"columns":[{"name":"label","description":"Generic item name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Optional item description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"comment","description":"Optional keychain comment","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"account","description":"Optional item account","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"created","description":"Date item was created","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"modified","description":"Date of last modification","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Keychain item type (class)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to keychain containing item","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"known_hosts","description":"A line-delimited known_hosts table.","platforms":["darwin","linux"],"columns":[{"name":"uid","description":"The local user that owns the known_hosts file","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"key","description":"parsed authorized keys line","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key_file","description":"Path to known_hosts file","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"kva_speculative_info","description":"Display kernel virtual address and speculative execution information for the system.","platforms":["windows"],"columns":[{"name":"kva_shadow_enabled","description":"Kernel Virtual Address shadowing is enabled.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"kva_shadow_user_global","description":"User pages are marked as global.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"kva_shadow_pcid","description":"Kernel VA PCID flushing optimization is enabled.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"kva_shadow_inv_pcid","description":"Kernel VA INVPCID is enabled.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"bp_mitigations","description":"Branch Prediction mitigations are enabled.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"bp_system_pol_disabled","description":"Branch Predictions are disabled via system policy.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"bp_microcode_disabled","description":"Branch Predictions are disabled due to lack of microcode update.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_spec_ctrl_supported","description":"SPEC_CTRL MSR supported by CPU Microcode.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ibrs_support_enabled","description":"Windows uses IBRS.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"stibp_support_enabled","description":"Windows uses STIBP.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_pred_cmd_supported","description":"PRED_CMD MSR supported by CPU Microcode.","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"last","description":"System logins and logouts.","platforms":["darwin","linux"],"columns":[{"name":"username","description":"Entry username","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"tty","description":"Entry terminal","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Entry type, according to ut_type types (utmp.h)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type_name","description":"Entry type name, according to ut_type types (utmp.h)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Entry timestamp","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"host","description":"Entry hostname","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"launchd","description":"LaunchAgents and LaunchDaemons from default search paths.","platforms":["darwin"],"columns":[{"name":"path","description":"Path to daemon or agent plist","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"File name of plist (used by launchd)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"label","description":"Daemon or agent service name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"program","description":"Path to target program","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"run_at_load","description":"Should the program run on launch load","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"keep_alive","description":"Should the process be restarted if killed","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"on_demand","description":"Deprecated key, replaced by keep_alive","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"disabled","description":"Skip loading this daemon or agent on boot","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"Run this daemon or agent as this username","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"groupname","description":"Run this daemon or agent as this group","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"stdout_path","description":"Pipe stdout to a target path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"stderr_path","description":"Pipe stderr to a target path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"start_interval","description":"Frequency to run in seconds","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"program_arguments","description":"Command line arguments passed to program","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"watch_paths","description":"Key that launches daemon or agent if path is modified","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"queue_directories","description":"Similar to watch_paths but only with non-empty directories","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"inetd_compatibility","description":"Run this daemon or agent as it was launched from inetd","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"start_on_mount","description":"Run daemon or agent every time a filesystem is mounted","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"root_directory","description":"Key used to specify a directory to chroot to before launch","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"working_directory","description":"Key used to specify a directory to chdir to before launch","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"process_type","description":"Key describes the intended purpose of the job","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"launchd_overrides","description":"Override keys, per user, for LaunchDaemons and Agents.","platforms":["darwin"],"columns":[{"name":"label","description":"Daemon or agent service name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key","description":"Name of the override key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Overridden value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID applied to the override, 0 applies to all","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to daemon or agent plist","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"listening_ports","description":"Processes with listening (bound) network sockets/ports.","platforms":["darwin","linux","windows"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"port","description":"Transport layer port","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"protocol","description":"Transport protocol (TCP/UDP)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"family","description":"Network protocol (IPv4, IPv6)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"address","description":"Specific address for bind","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fd","description":"Socket file descriptor number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"socket","description":"Socket handle or inode number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path for UNIX domain sockets","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"net_namespace","description":"The inode number of the network namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"load_average","description":"Displays information about the system wide load averages.","platforms":["darwin","linux"],"columns":[{"name":"period","description":"Period over which the average is calculated.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"average","description":"Load average over the specified period.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"location_services","description":"Reports the status of the Location Services feature of the OS.","platforms":["darwin"],"columns":[{"name":"enabled","description":"1 if Location Services are enabled, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"logged_in_users","description":"Users with an active shell on the system.","platforms":["darwin","linux","windows"],"columns":[{"name":"type","description":"Login type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user","description":"User login name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"tty","description":"Device name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"host","description":"Remote hostname","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time entry was made","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"sid","description":"The user's unique security identifier","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"registry_hive","description":"HKEY_USERS registry hive","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]}]},{"name":"logical_drives","description":"Details for logical drives on the system. A logical drive generally represents a single partition.","platforms":["windows"],"columns":[{"name":"device_id","description":"The drive id, usually the drive name, e.g., 'C:'.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Deprecated (always 'Unknown').","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"The canonical description of the drive, e.g. 'Logical Fixed Disk', 'CD-ROM Disk'.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"free_space","description":"The amount of free space, in bytes, of the drive (-1 on failure).","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"The total amount of space, in bytes, of the drive (-1 on failure).","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"file_system","description":"The file system of the drive.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"boot_partition","description":"True if Windows booted from this drive.","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"logon_sessions","description":"Windows Logon Session.","platforms":["windows"],"columns":[{"name":"logon_id","description":"A locally unique identifier (LUID) that identifies a logon session.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"user","description":"The account name of the security principal that owns the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"logon_domain","description":"The name of the domain used to authenticate the owner of the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"authentication_package","description":"The authentication package used to authenticate the owner of the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"logon_type","description":"The logon method.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"session_id","description":"The Terminal Services session identifier.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"logon_sid","description":"The user's security identifier (SID).","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"logon_time","description":"The time the session owner logged on.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"logon_server","description":"The name of the server used to authenticate the owner of the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dns_domain_name","description":"The DNS name for the owner of the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"upn","description":"The user principal name (UPN) for the owner of the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"logon_script","description":"The script used for logging on.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"profile_path","description":"The home directory for the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"home_directory","description":"The home directory for the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"home_directory_drive","description":"The drive location of the home directory of the logon session.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_certificates","description":"LXD certificates information.","platforms":["linux"],"columns":[{"name":"name","description":"Name of the certificate","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of the certificate","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fingerprint","description":"SHA256 hash of the certificate","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"certificate","description":"Certificate content","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_cluster","description":"LXD cluster information.","platforms":["linux"],"columns":[{"name":"server_name","description":"Name of the LXD server node","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled","description":"Whether clustering enabled (1) or not (0) on this node","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"member_config_entity","description":"Type of configuration parameter for this node","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"member_config_name","description":"Name of configuration parameter","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"member_config_key","description":"Config key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"member_config_value","description":"Config value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"member_config_description","description":"Config description","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_cluster_members","description":"LXD cluster members information.","platforms":["linux"],"columns":[{"name":"server_name","description":"Name of the LXD server node","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"url","description":"URL of the node","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"database","description":"Whether the server is a database node (1) or not (0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Status of the node (Online/Offline)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"message","description":"Message from the node (Online/Offline)","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_images","description":"LXD images information.","platforms":["linux"],"columns":[{"name":"id","description":"Image ID","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"architecture","description":"Target architecture for the image","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"os","description":"OS on which image is based","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"release","description":"OS release version on which the image is based","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Image description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"aliases","description":"Comma-separated list of image aliases","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"filename","description":"Filename of the image file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of image in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"auto_update","description":"Whether the image auto-updates (1) or not (0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cached","description":"Whether image is cached (1) or not (0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"public","description":"Whether image is public (1) or not (0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"created_at","description":"ISO time of image creation","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"expires_at","description":"ISO time of image expiration","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uploaded_at","description":"ISO time of image upload","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_used_at","description":"ISO time for the most recent use of this image in terms of container spawn","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"update_source_server","description":"Server for image update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"update_source_protocol","description":"Protocol used for image information update and image import from source server","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"update_source_certificate","description":"Certificate for update source server","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"update_source_alias","description":"Alias of image at update source server","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_instance_config","description":"LXD instance configuration information.","platforms":["linux"],"columns":[{"name":"name","description":"Instance name","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"key","description":"Configuration parameter name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Configuration parameter value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_instance_devices","description":"LXD instance devices information.","platforms":["linux"],"columns":[{"name":"name","description":"Instance name","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"device","description":"Name of the device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"device_type","description":"Device type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key","description":"Device info param name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Device info param value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_instances","description":"LXD instances information.","platforms":["linux"],"columns":[{"name":"name","description":"Instance name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"status","description":"Instance state (running, stopped, etc.)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"stateful","description":"Whether the instance is stateful(1) or not(0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ephemeral","description":"Whether the instance is ephemeral(1) or not(0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"created_at","description":"ISO time of creation","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"base_image","description":"ID of image used to launch this instance","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"architecture","description":"Instance architecture","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"os","description":"The OS of this instance","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Instance description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Instance's process ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"processes","description":"Number of processes running inside this instance","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_networks","description":"LXD network information.","platforms":["linux"],"columns":[{"name":"name","description":"Name of the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"managed","description":"1 if network created by LXD, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv4_address","description":"IPv4 address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ipv6_address","description":"IPv6 address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"used_by","description":"URLs for containers using this network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bytes_received","description":"Number of bytes received on this network","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"bytes_sent","description":"Number of bytes sent on this network","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"packets_received","description":"Number of packets received on this network","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"packets_sent","description":"Number of packets sent on this network","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"hwaddr","description":"Hardware address for this network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"Network status","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mtu","description":"MTU size","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"lxd_storage_pools","description":"LXD storage pool information.","platforms":["linux"],"columns":[{"name":"name","description":"Name of the storage pool","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"driver","description":"Storage driver","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Storage pool source","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of the storage pool","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"space_used","description":"Storage space used in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"space_total","description":"Total available storage space in bytes for this storage pool","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inodes_used","description":"Number of inodes used","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inodes_total","description":"Total number of inodes available in this storage pool","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"magic","description":"Magic number recognition library table.","platforms":["darwin","linux"],"columns":[{"name":"path","description":"Absolute path to target file","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"magic_db_files","description":"Colon(:) separated list of files where the magic db file can be found. By default one of the following is used: /usr/share/file/magic/magic, /usr/share/misc/magic or /usr/share/misc/magic.mgc","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"data","description":"Magic number data from libmagic","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mime_type","description":"MIME type data from libmagic","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mime_encoding","description":"MIME encoding data from libmagic","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"managed_policies","description":"The managed configuration policies from AD, MDM, MCX, etc.","platforms":["darwin"],"columns":[{"name":"domain","description":"System or manager-chosen domain key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Optional UUID assigned to policy set","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Policy key name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Policy value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"Policy applies only this user","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"manual","description":"1 if policy was loaded manually, otherwise 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"md_devices","description":"Software RAID array settings.","platforms":["linux"],"columns":[{"name":"device_name","description":"md device name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Current state of the array","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"raid_level","description":"Current raid level of the array","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"size of the array in blocks","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"chunk_size","description":"chunk size in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"raid_disks","description":"Number of configured RAID disks in array","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"nr_raid_disks","description":"Number of partitions or disk devices to comprise the array","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"working_disks","description":"Number of working disks in array","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"active_disks","description":"Number of active disks in array","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"failed_disks","description":"Number of failed disks in array","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"spare_disks","description":"Number of idle disks in array","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"superblock_state","description":"State of the superblock","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"superblock_version","description":"Version of the superblock","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"superblock_update_time","description":"Unix timestamp of last update","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"bitmap_on_mem","description":"Pages allocated in in-memory bitmap, if enabled","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bitmap_chunk_size","description":"Bitmap chunk size","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bitmap_external_file","description":"External referenced bitmap file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"recovery_progress","description":"Progress of the recovery activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"recovery_finish","description":"Estimated duration of recovery activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"recovery_speed","description":"Speed of recovery activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"resync_progress","description":"Progress of the resync activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"resync_finish","description":"Estimated duration of resync activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"resync_speed","description":"Speed of resync activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"reshape_progress","description":"Progress of the reshape activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"reshape_finish","description":"Estimated duration of reshape activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"reshape_speed","description":"Speed of reshape activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"check_array_progress","description":"Progress of the check array activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"check_array_finish","description":"Estimated duration of the check array activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"check_array_speed","description":"Speed of the check array activity","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"unused_devices","description":"Unused devices","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"other","description":"Other information associated with array from /proc/mdstat","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"md_drives","description":"Drive devices used for Software RAID.","platforms":["linux"],"columns":[{"name":"md_device_name","description":"md device name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"drive_name","description":"Drive device name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"slot","description":"Slot position of disk","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"State of the drive","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"md_personalities","description":"Software RAID setting supported by the kernel.","platforms":["linux"],"columns":[{"name":"name","description":"Name of personality supported by kernel","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"mdfind","description":"Run searches against the spotlight database.","platforms":["darwin"],"columns":[{"name":"path","description":"Path of the file returned from spotlight","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"query","description":"The query that was run to find the file","type":"text","notes":"","hidden":false,"required":true,"index":false}]},{"name":"mdls","description":"Query file metadata in the Spotlight database.","platforms":["darwin"],"columns":[{"name":"path","description":"Path of the file","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"key","description":"Name of the metadata key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Value stored in the metadata key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"valuetype","description":"CoreFoundation type of data stored in value","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"memory_array_mapped_addresses","description":"Data associated for address mapping of physical memory arrays.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the structure","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_array_handle","description":"Handle of the memory array associated with this structure","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"starting_address","description":"Physical stating address, in kilobytes, of a range of memory mapped to physical memory array","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ending_address","description":"Physical ending address of last kilobyte of a range of memory mapped to physical memory array","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"partition_width","description":"Number of memory devices that form a single row of memory for the address partition of this structure","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"memory_arrays","description":"Data associated with collection of memory devices that operate to form a memory address.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the array","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"location","description":"Physical location of the memory array","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"use","description":"Function for which the array is used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_error_correction","description":"Primary hardware error correction or detection method supported","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"max_capacity","description":"Maximum capacity of array in gigabytes","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_error_info_handle","description":"Handle, or instance number, associated with any error that was detected for the array","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"number_memory_devices","description":"Number of memory devices on array","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"memory_device_mapped_addresses","description":"Data associated for address mapping of physical memory devices.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the structure","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_device_handle","description":"Handle of the memory device structure associated with this structure","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_array_mapped_address_handle","description":"Handle of the memory array mapped address to which this device range is mapped to","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"starting_address","description":"Physical stating address, in kilobytes, of a range of memory mapped to physical memory array","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ending_address","description":"Physical ending address of last kilobyte of a range of memory mapped to physical memory array","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"partition_row_position","description":"Identifies the position of the referenced memory device in a row of the address partition","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"interleave_position","description":"The position of the device in a interleave, i.e. 0 indicates non-interleave, 1 indicates 1st interleave, 2 indicates 2nd interleave, etc.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"interleave_data_depth","description":"The max number of consecutive rows from memory device that are accessed in a single interleave transfer; 0 indicates device is non-interleave","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"memory_devices","description":"Physical memory device (type 17) information retrieved from SMBIOS.","platforms":["darwin","linux","windows"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the structure in SMBIOS","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"array_handle","description":"The memory array that the device is attached to","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"form_factor","description":"Implementation form factor for this memory device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"total_width","description":"Total width, in bits, of this memory device, including any check or error-correction bits","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"data_width","description":"Data width, in bits, of this memory device","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size of memory device in Megabyte","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"set","description":"Identifies if memory device is one of a set of devices. A value of 0 indicates no set affiliation.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"device_locator","description":"String number of the string that identifies the physically-labeled socket or board position where the memory device is located","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bank_locator","description":"String number of the string that identifies the physically-labeled bank where the memory device is located","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_type","description":"Type of memory used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_type_details","description":"Additional details for memory device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"max_speed","description":"Max speed of memory device in megatransfers per second (MT/s)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"configured_clock_speed","description":"Configured speed of memory device in megatransfers per second (MT/s)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"Manufacturer ID string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial_number","description":"Serial number of memory device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"asset_tag","description":"Manufacturer specific asset tag of memory device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"part_number","description":"Manufacturer specific serial number of memory device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"min_voltage","description":"Minimum operating voltage of device in millivolts","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"max_voltage","description":"Maximum operating voltage of device in millivolts","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"configured_voltage","description":"Configured operating voltage of device in millivolts","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"memory_error_info","description":"Data associated with errors of a physical memory array.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the structure","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"error_type","description":"type of error associated with current error status for array or device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"error_granularity","description":"Granularity to which the error can be resolved","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"error_operation","description":"Memory access operation that caused the error","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor_syndrome","description":"Vendor specific ECC syndrome or CRC data associated with the erroneous access","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_array_error_address","description":"32 bit physical address of the error based on the addressing of the bus to which the memory array is connected","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"device_error_address","description":"32 bit physical address of the error relative to the start of the failing memory address, in bytes","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"error_resolution","description":"Range, in bytes, within which this error can be determined, when an error address is given","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"memory_info","description":"Main memory information in bytes.","platforms":["linux"],"columns":[{"name":"memory_total","description":"Total amount of physical RAM, in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_free","description":"The amount of physical RAM, in bytes, left unused by the system","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"memory_available","description":"The amount of physical RAM, in bytes, available for starting new applications, without swapping","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"buffers","description":"The amount of physical RAM, in bytes, used for file buffers","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"cached","description":"The amount of physical RAM, in bytes, used as cache memory","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"swap_cached","description":"The amount of swap, in bytes, used as cache memory","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"active","description":"The total amount of buffer or page cache memory, in bytes, that is in active use","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inactive","description":"The total amount of buffer or page cache memory, in bytes, that are free and available","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"swap_total","description":"The total amount of swap available, in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"swap_free","description":"The total amount of swap free, in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"memory_map","description":"OS memory region map.","platforms":["linux"],"columns":[{"name":"name","description":"Region name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"start","description":"Start address of memory region","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"end","description":"End address of memory region","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"mounts","description":"System mounted devices and filesystems (not process specific).","platforms":["darwin","linux"],"columns":[{"name":"device","description":"Mounted device","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"device_alias","description":"Mounted device alias","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Mounted device path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Mounted device type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"blocks_size","description":"Block size in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"blocks","description":"Mounted device used blocks","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"blocks_free","description":"Mounted device free blocks","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"blocks_available","description":"Mounted device available blocks","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inodes","description":"Mounted device used inodes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inodes_free","description":"Mounted device free inodes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"flags","description":"Mounted device flags","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"msr","description":"Various pieces of data stored in the model specific register per processor. NOTE: the msr kernel module must be enabled, and osquery must be run as root.","platforms":["linux"],"columns":[{"name":"processor_number","description":"The processor number as reported in /proc/cpuinfo","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"turbo_disabled","description":"Whether the turbo feature is disabled.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"turbo_ratio_limit","description":"The turbo feature ratio limit.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"platform_info","description":"Platform information.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"perf_ctl","description":"Performance setting for the processor.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"perf_status","description":"Performance status for the processor.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"feature_control","description":"Bitfield controlling enabled features.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"rapl_power_limit","description":"Run Time Average Power Limiting power limit.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"rapl_energy_status","description":"Run Time Average Power Limiting energy status.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"rapl_power_units","description":"Run Time Average Power Limiting power units.","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"nfs_shares","description":"NFS shares exported by the host.","platforms":["darwin"],"columns":[{"name":"share","description":"Filesystem path to the share","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"options","description":"Options string set on the export share","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"readonly","description":"1 if the share is exported readonly else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"npm_packages","description":"Node packages installed in a system.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Package display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Package-supplied version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Package-supplied description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"author","description":"Package-supplied author","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"license","description":"License under which package is launched","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"homepage","description":"Package supplied homepage","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path at which this module resides","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"directory","description":"Directory where node_modules are located","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"ntdomains","description":"Display basic NT domain information of a Windows machine.","platforms":["windows"],"columns":[{"name":"name","description":"The label by which the object is known.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"client_site_name","description":"The name of the site where the domain controller is configured.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dc_site_name","description":"The name of the site where the domain controller is located.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dns_forest_name","description":"The name of the root of the DNS tree.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"domain_controller_address","description":"The IP Address of the discovered domain controller..","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"domain_controller_name","description":"The name of the discovered domain controller.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"domain_name","description":"The name of the domain.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"The current status of the domain object.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"ntfs_acl_permissions","description":"Retrieve NTFS ACL permission information for files and directories.","platforms":["windows"],"columns":[{"name":"path","description":"Path to the file or directory.","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"type","description":"Type of access mode for the access control entry.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"principal","description":"User or group to which the ACE applies.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"access","description":"Specific permissions that indicate the rights described by the ACE.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"inherited_from","description":"The inheritance policy of the ACE.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"ntfs_journal_events","description":"Track time/action changes to files specified in configuration data.","platforms":["windows"],"columns":[{"name":"action","description":"Change action (Write, Delete, etc)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"category","description":"The category that the event originated from","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"old_path","description":"Old path (renames only)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"record_timestamp","description":"Journal record timestamp","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"record_usn","description":"The update sequence number that identifies the journal record","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"node_ref_number","description":"The ordinal that associates a journal record with a filename","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"parent_ref_number","description":"The ordinal that associates a journal record with a filename's parent directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"drive_letter","description":"The drive letter identifying the source journal","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"file_attributes","description":"File attributes","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"partial","description":"Set to 1 if either path or old_path only contains the file or folder name","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of file event","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"nvram","description":"Apple NVRAM variable listing.","platforms":["darwin"],"columns":[{"name":"name","description":"Variable name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"type","description":"Data type (CFData, CFString, etc)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Raw variable data","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"oem_strings","description":"OEM defined strings retrieved from SMBIOS.","platforms":["darwin","linux"],"columns":[{"name":"handle","description":"Handle, or instance number, associated with the Type 11 structure","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"number","description":"The string index of the structure","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"The value of the OEM string","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"office_mru","description":"View recently opened Office documents.","platforms":["windows"],"columns":[{"name":"application","description":"Associated Office application","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Office application version number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"File path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_opened_time","description":"Most recent opened time file was opened","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sid","description":"User SID","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"os_version","description":"A single row containing the operating system name and version.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Distribution or product name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Pretty, suitable for presentation, OS version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"major","description":"Major release version","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"minor","description":"Minor release version","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"patch","description":"Optional patch release","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"build","description":"Optional build-specific or variant string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"platform","description":"OS Platform or ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"platform_like","description":"Closely related platforms","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"codename","description":"OS version codename","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"arch","description":"OS Architecture","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_date","description":"The install date of the OS.","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"osquery_events","description":"Information about the event publishers and subscribers.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Event publisher or subscriber name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"publisher","description":"Name of the associated publisher","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Either publisher or subscriber","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subscriptions","description":"Number of subscriptions the publisher received or subscriber used","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"events","description":"Number of events emitted or received since osquery started","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"refreshes","description":"Publisher only: number of runloop restarts","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"active","description":"1 if the publisher or subscriber is active else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"osquery_extensions","description":"List of active osquery extensions.","platforms":["darwin","linux","windows"],"columns":[{"name":"uuid","description":"The transient ID assigned for communication","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Extension's name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension's version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sdk_version","description":"osquery SDK version used to build the extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of the extension's Thrift connection or library path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"SDK extension type: core, extension, or module","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"osquery_flags","description":"Configurable flags that modify osquery's behavior.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Flag name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Flag type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Flag description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"default_value","description":"Flag default value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Flag value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"shell_only","description":"Is the flag shell only?","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"osquery_info","description":"Top level information about the running version of osquery.","platforms":["darwin","linux","windows"],"columns":[{"name":"pid","description":"Process (or thread/handle) ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Unique ID provided by the system","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"instance_id","description":"Unique, long-lived ID per instance of osquery","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"osquery toolkit version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"config_hash","description":"Hash of the working configuration state","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"config_valid","description":"1 if the config was loaded and considered valid, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"extensions","description":"osquery extensions status","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"build_platform","description":"osquery toolkit build platform","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"build_distro","description":"osquery toolkit platform distribution name (os version)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"start_time","description":"UNIX time in seconds when the process started","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"watcher","description":"Process (or thread/handle) ID of optional watcher process","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"platform_mask","description":"The osquery platform bitmask","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"osquery_packs","description":"Information about the current query packs that are loaded in osquery.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"The given name for this query pack","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"platform","description":"Platforms this query is supported on","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Minimum osquery version that this query will run on","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"shard","description":"Shard restriction limit, 1-100, 0 meaning no restriction","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"discovery_cache_hits","description":"The number of times that the discovery query used cached values since the last time the config was reloaded","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"discovery_executions","description":"The number of times that the discovery queries have been executed since the last time the config was reloaded","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"active","description":"Whether this pack is active (the version, platform and discovery queries match) yes=1, no=0.","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"osquery_registry","description":"List the osquery registry plugins.","platforms":["darwin","linux","windows"],"columns":[{"name":"registry","description":"Name of the osquery registry","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the plugin item","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"owner_uuid","description":"Extension route UUID (0 for core)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"internal","description":"1 If the plugin is internal else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"active","description":"1 If this plugin is active else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"osquery_schedule","description":"Information about the current queries that are scheduled in osquery.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"The given name for this query","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"query","description":"The exact query to run","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"interval","description":"The interval in seconds to run this query, not an exact interval","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"executions","description":"Number of times the query was executed","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"last_executed","description":"UNIX time stamp in seconds of the last completed execution","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"denylisted","description":"1 if the query is denylisted else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"output_size","description":"Cumulative total number of bytes generated by the resultant rows of the query","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"wall_time","description":"Total wall time in seconds spent executing (deprecated), hidden=True","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"wall_time_ms","description":"Total wall time in milliseconds spent executing","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"last_wall_time_ms","description":"Wall time in milliseconds of the latest execution","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"user_time","description":"Total user time in milliseconds spent executing","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"last_user_time","description":"User time in milliseconds of the latest execution","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"system_time","description":"Total system time in milliseconds spent executing","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"last_system_time","description":"System time in milliseconds of the latest execution","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"average_memory","description":"Average of the bytes of resident memory left allocated after collecting results","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"last_memory","description":"Resident memory in bytes left allocated after collecting results of the latest execution","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"package_bom","description":"macOS package bill of materials (BOM) file list.","platforms":["darwin"],"columns":[{"name":"filepath","description":"Package file or directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"Expected user of file or directory","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Expected group of file or directory","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"Expected permissions","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Expected file size","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"modified_time","description":"Timestamp the file was installed","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of package bom","type":"text","notes":"","hidden":false,"required":true,"index":false}]},{"name":"package_install_history","description":"macOS package install history.","platforms":["darwin"],"columns":[{"name":"package_id","description":"Label packageIdentifiers","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Label date as UNIX timestamp","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Package display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Package display version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Install source: usually the installer process name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"content_type","description":"Package content_type (optional)","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"package_receipts","description":"macOS package receipt details.","platforms":["darwin"],"columns":[{"name":"package_id","description":"Package domain identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"package_filename","description":"Filename of original .pkg file","type":"text","notes":"","hidden":true,"required":false,"index":true},{"name":"version","description":"Installed package version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"location","description":"Optional relative install path on volume","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_time","description":"Timestamp of install time","type":"double","notes":"","hidden":false,"required":false,"index":false},{"name":"installer_name","description":"Name of installer process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of receipt plist","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"password_policy","description":"Password Policies for macOS.","platforms":["darwin"],"columns":[{"name":"uid","description":"User ID for the policy, -1 for policies that are global","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"policy_identifier","description":"Policy Identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"policy_content","description":"Policy content","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"policy_description","description":"Policy description","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"patches","description":"Lists all the patches applied. Note: This does not include patches applied via MSI or downloaded from Windows Update (e.g. Service Packs).","platforms":["windows"],"columns":[{"name":"csname","description":"The name of the host the patch is installed on.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hotfix_id","description":"The KB ID of the patch.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"caption","description":"Short description of the patch.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Fuller description of the patch.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fix_comments","description":"Additional comments about the patch.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"installed_by","description":"The system context in which the patch as installed.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_date","description":"Indicates when the patch was installed. Lack of a value does not indicate that the patch was not installed.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"installed_on","description":"The date when the patch was installed.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"pci_devices","description":"PCI devices active on the host system.","platforms":["darwin","linux"],"columns":[{"name":"pci_slot","description":"PCI Device used slot","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pci_class","description":"PCI Device class","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"driver","description":"PCI Device used driver","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor","description":"PCI Device vendor","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor_id","description":"Hex encoded PCI Device vendor identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model","description":"PCI Device model","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model_id","description":"Hex encoded PCI Device model identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pci_class_id","description":"PCI Device class ID in hex format","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"pci_subclass_id","description":"PCI Device subclass in hex format","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"pci_subclass","description":"PCI Device subclass","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"subsystem_vendor_id","description":"Vendor ID of PCI device subsystem","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"subsystem_vendor","description":"Vendor of PCI device subsystem","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"subsystem_model_id","description":"Model ID of PCI device subsystem","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"subsystem_model","description":"Device description of PCI device subsystem","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"physical_disk_performance","description":"Provides provides raw data from performance counters that monitor hard or fixed disk drives on the system.","platforms":["windows"],"columns":[{"name":"name","description":"Name of the physical disk","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"avg_disk_bytes_per_read","description":"Average number of bytes transferred from the disk during read operations","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"avg_disk_bytes_per_write","description":"Average number of bytes transferred to the disk during write operations","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"avg_disk_read_queue_length","description":"Average number of read requests that were queued for the selected disk during the sample interval","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"avg_disk_write_queue_length","description":"Average number of write requests that were queued for the selected disk during the sample interval","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"avg_disk_sec_per_read","description":"Average time, in seconds, of a read operation of data from the disk","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"avg_disk_sec_per_write","description":"Average time, in seconds, of a write operation of data to the disk","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"current_disk_queue_length","description":"Number of requests outstanding on the disk at the time the performance data is collected","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"percent_disk_read_time","description":"Percentage of elapsed time that the selected disk drive is busy servicing read requests","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"percent_disk_write_time","description":"Percentage of elapsed time that the selected disk drive is busy servicing write requests","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"percent_disk_time","description":"Percentage of elapsed time that the selected disk drive is busy servicing read or write requests","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"percent_idle_time","description":"Percentage of time during the sample interval that the disk was idle","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"pipes","description":"Named and Anonymous pipes.","platforms":["windows"],"columns":[{"name":"pid","description":"Process ID of the process to which the pipe belongs","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Name of the pipe","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"instances","description":"Number of instances of the named pipe","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"max_instances","description":"The maximum number of instances creatable for this pipe","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"flags","description":"The flags indicating whether this pipe connection is a server or client end, and if the pipe for sending messages or bytes","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"platform_info","description":"Information about EFI/UEFI/ROM and platform/boot.","platforms":["darwin","linux","windows"],"columns":[{"name":"vendor","description":"Platform code vendor","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Platform code version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"date","description":"Self-reported platform code update date","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"revision","description":"BIOS major and minor revision","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"extra","description":"Platform-specific additional information","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"firmware_type","description":"The type of firmware (uefi, bios, iboot, openfirmware, unknown).","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"address","description":"Relative address of firmware mapping","type":"text","notes":"","hidden":false,"required":false,"index":false,"platforms":["linux","darwin"]},{"name":"size","description":"Size in bytes of firmware","type":"text","notes":"","hidden":false,"required":false,"index":false,"platforms":["linux","darwin"]},{"name":"volume_size","description":"(Optional) size of firmware volume","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["linux","darwin"]}]},{"name":"plist","description":"Read and parse a plist file.","platforms":["darwin"],"columns":[{"name":"key","description":"Preference top-level key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subkey","description":"Intermediate key path, includes lists/dicts","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"String value of most CF types","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"(required) read preferences from a plist","type":"text","notes":"","hidden":false,"required":true,"index":false}]},{"name":"portage_keywords","description":"A summary about portage configurations like keywords, mask and unmask.","platforms":["linux"],"columns":[{"name":"package","description":"Package name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"The version which are affected by the use flags, empty means all","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"keyword","description":"The keyword applied to the package","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mask","description":"If the package is masked","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"unmask","description":"If the package is unmasked","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"portage_packages","description":"List of currently installed packages.","platforms":["linux"],"columns":[{"name":"package","description":"Package name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"The version which are affected by the use flags, empty means all","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"slot","description":"The slot used by package","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"build_time","description":"Unix time when package was built","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"repository","description":"From which repository the ebuild was used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"eapi","description":"The eapi for the ebuild","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"The size of the package","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"world","description":"If package is in the world file","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"portage_use","description":"List of enabled portage USE values for specific package.","platforms":["linux"],"columns":[{"name":"package","description":"Package name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"The version of the installed package","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"use","description":"USE flag which has been enabled for package","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"power_sensors","description":"Machine power (currents, voltages, wattages, etc) sensors.","platforms":["darwin"],"columns":[{"name":"key","description":"The SMC key on macOS","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"category","description":"The sensor category: currents, voltage, wattage","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of power source","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Power in Watts","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"powershell_events","description":"Powershell script blocks reconstructed to their full script content, this table requires script block logging to be enabled.","platforms":["windows"],"columns":[{"name":"time","description":"Timestamp the event was received by the osquery event publisher","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"datetime","description":"System time at which the Powershell script event occurred","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"script_block_id","description":"The unique GUID of the powershell script to which this block belongs","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"script_block_count","description":"The total number of script blocks for this script","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"script_text","description":"The text content of the Powershell script","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"script_name","description":"The name of the Powershell script","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"script_path","description":"The path for the Powershell script","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cosine_similarity","description":"How similar the Powershell script is to a provided 'normal' character frequency","type":"double","notes":"","hidden":false,"required":false,"index":false}]},{"name":"preferences","description":"macOS defaults and managed preferences.","platforms":["darwin"],"columns":[{"name":"domain","description":"Application ID usually in com.name.product format","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"key","description":"Preference top-level key","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"subkey","description":"Intemediate key path, includes lists/dicts","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"String value of most CF types","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"forced","description":"1 if the value is forced/managed, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"(optional) read preferences for a specific user","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"host","description":"'current' or 'any' host, where 'current' takes precedence","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"prefetch","description":"Prefetch files show metadata related to file execution.","platforms":["windows"],"columns":[{"name":"path","description":"Prefetch file path.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"filename","description":"Executable filename.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hash","description":"Prefetch CRC hash.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_run_time","description":"Most recent time application was run.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"other_run_times","description":"Other execution times in prefetch file.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"run_count","description":"Number of times the application has been run.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Application file size.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"volume_serial","description":"Volume serial number.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"volume_creation","description":"Volume creation time.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"accessed_files_count","description":"Number of files accessed.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"accessed_directories_count","description":"Number of directories accessed.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"accessed_files","description":"Files accessed by application within ten seconds of launch.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"accessed_directories","description":"Directories accessed by application within ten seconds of launch.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"process_envs","description":"A key/value table of environment variables for each process.","platforms":["darwin","linux"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","notes":"","hidden":false,"required":false,"index":true},{"name":"key","description":"Environment variable name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Environment variable value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"process_events","description":"Track time/action process executions.","platforms":["darwin","linux"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"File mode permissions","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Command line arguments (argv)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cmdline_size","description":"Actual size (bytes) of command line arguments","type":"bigint","notes":"","hidden":true,"required":false,"index":false},{"name":"env","description":"Environment variables delimited by spaces","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"env_count","description":"Number of environment variables","type":"bigint","notes":"","hidden":true,"required":false,"index":false},{"name":"env_size","description":"Actual size (bytes) of environment list","type":"bigint","notes":"","hidden":true,"required":false,"index":false},{"name":"cwd","description":"The process current working directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit User ID at process start","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID at process start","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"euid","description":"Effective user ID at process start","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID at process start","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"egid","description":"Effective group ID at process start","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"owner_uid","description":"File owner user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"owner_gid","description":"File owner group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"atime","description":"File last access in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mtime","description":"File modification in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ctime","description":"File last metadata change in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"btime","description":"File creation in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"overflows","description":"List of structures that overflowed","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"parent","description":"Process parent's PID, or -1 if cannot be determined.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"status","description":"OpenBSM Attribute: Status of the process","type":"bigint","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"fsuid","description":"Filesystem user ID at process start","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"suid","description":"Saved user ID at process start","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"fsgid","description":"Filesystem group ID at process start","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"sgid","description":"Saved group ID at process start","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"syscall","description":"Syscall name: fork, vfork, clone, execve, execveat","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"process_file_events","description":"A File Integrity Monitor implementation using the audit service.","platforms":["linux"],"columns":[{"name":"operation","description":"Operation type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ppid","description":"Parent process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"executable","description":"The executable path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"partial","description":"True if this is a partial event (i.e.: this process existed before we started osquery)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cwd","description":"The current working directory of the process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"The path associated with the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"dest_path","description":"The canonical path associated with the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"The uid of the process performing the action","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"The gid of the process performing the action","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit user ID of the process using the file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"euid","description":"Effective user ID of the process using the file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"egid","description":"Effective group ID of the process using the file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fsuid","description":"Filesystem user ID of the process using the file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fsgid","description":"Filesystem group ID of the process using the file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"suid","description":"Saved user ID of the process using the file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sgid","description":"Saved group ID of the process using the file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"process_memory_map","description":"Process memory mapped files and pseudo device/regions.","platforms":["darwin","linux","windows"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","notes":"","hidden":false,"required":false,"index":true},{"name":"start","description":"Virtual start address (hex)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"end","description":"Virtual end address (hex)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"permissions","description":"r=read, w=write, x=execute, p=private (cow)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"offset","description":"Offset into mapped path","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"device","description":"MA:MI Major/minor device ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"inode","description":"Mapped path inode, 0 means uninitialized (BSS)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to mapped file or mapped type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pseudo","description":"1 If path is a pseudo path, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"process_namespaces","description":"Linux namespaces for processes running on the host system.","platforms":["linux"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","notes":"","hidden":false,"required":false,"index":true},{"name":"cgroup_namespace","description":"cgroup namespace inode","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ipc_namespace","description":"ipc namespace inode","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mnt_namespace","description":"mnt namespace inode","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"net_namespace","description":"net namespace inode","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_namespace","description":"pid namespace inode","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user_namespace","description":"user namespace inode","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uts_namespace","description":"uts namespace inode","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"process_open_files","description":"File descriptors for each process.","platforms":["darwin","linux"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"fd","description":"Process-specific file descriptor number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Filesystem path of descriptor","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"process_open_pipes","description":"Pipes and partner processes for each process.","platforms":["linux"],"columns":[{"name":"pid","description":"Process ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"fd","description":"File descriptor","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"Pipe open mode (r/w)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"inode","description":"Pipe inode number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Pipe Type: named vs unnamed/anonymous","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"partner_pid","description":"Process ID of partner process sharing a particular pipe","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"partner_fd","description":"File descriptor of shared pipe at partner's end","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"partner_mode","description":"Mode of shared pipe at partner's end","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"process_open_sockets","description":"Processes which have open network sockets on the system.","platforms":["darwin","linux","windows"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"integer","notes":"","hidden":false,"required":false,"index":true},{"name":"fd","description":"Socket file descriptor number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"socket","description":"Socket handle or inode number","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"family","description":"Network protocol (IPv4, IPv6)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"protocol","description":"Transport protocol (TCP/UDP)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"local_address","description":"Socket local address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_address","description":"Socket remote address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_port","description":"Socket local port","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_port","description":"Socket remote port","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"For UNIX sockets (family=AF_UNIX), the domain path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"TCP socket state","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"net_namespace","description":"The inode number of the network namespace","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"processes","description":"All running processes on the host system.","platforms":["darwin","linux","windows"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"The process path or shorthand argv[0]","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to executed binary","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Complete argv","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"Process state","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cwd","description":"Process current working directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"root","description":"Process virtual root directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"Unsigned user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Unsigned group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"euid","description":"Unsigned effective user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"egid","description":"Unsigned effective group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"suid","description":"Unsigned saved user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sgid","description":"Unsigned saved group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"on_disk","description":"The process path exists yes=1, no=0, unknown=-1","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"wired_size","description":"Bytes of unpageable memory used by process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"resident_size","description":"Bytes of private memory used by process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"total_size","description":"Total virtual memory size","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"user_time","description":"CPU time in milliseconds spent in user space","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"system_time","description":"CPU time in milliseconds spent in kernel space","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"disk_bytes_read","description":"Bytes read from disk","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"disk_bytes_written","description":"Bytes written to disk","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"start_time","description":"Process start time in seconds since Epoch, in case of error -1","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Process parent's PID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pgroup","description":"Process group","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"threads","description":"Number of threads used by process","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"nice","description":"Process nice level (-20 to 20, default 0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"elevated_token","description":"Process uses elevated token yes=1, no=0","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"secure_process","description":"Process is secure (IUM) yes=1, no=0","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"protection_type","description":"The protection type of the process","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"virtual_process","description":"Process is virtual (e.g. System, Registry, vmmem) yes=1, no=0","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"elapsed_time","description":"Elapsed time in seconds this process has been running.","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"handle_count","description":"Total number of handles that the process has open. This number is the sum of the handles currently opened by each thread in the process.","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"percent_processor_time","description":"Returns elapsed time that all of the threads of this process used the processor to execute instructions in 100 nanoseconds ticks.","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"upid","description":"A 64bit pid that is never reused. Returns -1 if we couldn't gather them from the system.","type":"bigint","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"uppid","description":"The 64bit parent pid that is never reused. Returns -1 if we couldn't gather them from the system.","type":"bigint","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"cpu_type","description":"Indicates the specific processor designed for installation.","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"cpu_subtype","description":"Indicates the specific processor on which an entry may be used.","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"translated","description":"Indicates whether the process is running under the Rosetta Translation Environment, yes=1, no=0, error=-1.","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"cgroup_path","description":"The full hierarchical path of the process's control group","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"programs","description":"Represents products as they are installed by Windows Installer. A product generally correlates to one installation package on Windows. Some fields may be blank as Windows installation details are left to the discretion of the product author.","platforms":["windows"],"columns":[{"name":"name","description":"Commonly used product name.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Product version information.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_location","description":"The installation location directory of the product.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_source","description":"The installation source of the product.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"language","description":"The language of the product.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"publisher","description":"Name of the product supplier.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uninstall_string","description":"Path and filename of the uninstaller.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_date","description":"Date that this product was installed on the system. ","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"identifying_number","description":"Product identification such as a serial number on software, or a die number on a hardware chip.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"prometheus_metrics","description":"Retrieve metrics from a Prometheus server.","platforms":["darwin","linux"],"columns":[{"name":"target_name","description":"Address of prometheus target","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"metric_name","description":"Name of collected Prometheus metric","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"metric_value","description":"Value of collected Prometheus metric","type":"double","notes":"","hidden":false,"required":false,"index":false},{"name":"timestamp_ms","description":"Unix timestamp of collected data in MS","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"python_packages","description":"Python packages installed in a system.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Package display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Package-supplied version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"summary","description":"Package-supplied summary","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"author","description":"Optional package author","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"license","description":"License under which package is launched","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path at which this module resides","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"directory","description":"Directory where Python modules are located","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"quicklook_cache","description":"Files and thumbnails within macOS's Quicklook Cache.","platforms":["darwin"],"columns":[{"name":"path","description":"Path of file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"rowid","description":"Quicklook file rowid key","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"fs_id","description":"Quicklook file fs_id key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"volume_id","description":"Parsed volume ID from fs_id","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"inode","description":"Parsed file ID (inode) from fs_id","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"mtime","description":"Parsed version date field","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Parsed version size field","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"label","description":"Parsed version 'gen' field","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_hit_date","description":"Apple date format for last thumbnail cache hit","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"hit_count","description":"Number of cache hits on thumbnail","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"icon_mode","description":"Thumbnail icon mode","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"cache_path","description":"Path to cache data","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"registry","description":"All of the Windows registry hives.","platforms":["windows"],"columns":[{"name":"key","description":"Name of the key to search for","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Full path to the value","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Name of the registry value entry","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of the registry value, or 'subkey' if item is a subkey","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"data","description":"Data content of registry value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mtime","description":"timestamp of the most recent registry write","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"routes","description":"The active route table for the host system.","platforms":["darwin","linux","windows"],"columns":[{"name":"destination","description":"Destination IP address","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"netmask","description":"Netmask length","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"gateway","description":"Route gateway","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Route source","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"flags","description":"Flags to describe route","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"interface","description":"Route local interface","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mtu","description":"Maximum Transmission Unit for the route","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"metric","description":"Cost of route. Lowest is preferred","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of route","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hopcount","description":"Max hops expected","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["linux","darwin"]}]},{"name":"rpm_package_files","description":"RPM packages that are currently installed on the host system.","platforms":["linux"],"columns":[{"name":"package","description":"RPM package name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"path","description":"File path within the package","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"username","description":"File default username from info DB","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"groupname","description":"File default groupname from info DB","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"File permissions mode from info DB","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Expected file size in bytes from RPM info DB","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sha256","description":"SHA256 file digest from RPM info DB","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"rpm_packages","description":"RPM packages that are currently installed on the host system.","platforms":["linux"],"columns":[{"name":"name","description":"RPM package name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"version","description":"Package version","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"release","description":"Package release","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"source","description":"Source RPM package name (optional)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Package size in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sha1","description":"SHA1 hash of the package contents","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"arch","description":"Architecture(s) supported","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"epoch","description":"Package epoch value","type":"integer","notes":"","hidden":false,"required":false,"index":true},{"name":"install_time","description":"When the package was installed","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor","description":"Package vendor","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"package_group","description":"Package group","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]},{"name":"mount_namespace_id","description":"Mount namespace id","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"running_apps","description":"macOS applications currently running on the host system.","platforms":["darwin"],"columns":[{"name":"pid","description":"The pid of the application","type":"integer","notes":"","hidden":false,"required":false,"index":true},{"name":"bundle_identifier","description":"The bundle identifier of the application","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"is_active","description":"(DEPRECATED)","type":"integer","notes":"","hidden":true,"required":false,"index":false}]},{"name":"safari_extensions","description":"Safari browser extension details for all users.","platforms":["darwin"],"columns":[{"name":"uid","description":"The local user that owns the extension","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Extension display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Extension identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"Extension long version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sdk","description":"Bundle SDK used to compile extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"update_url","description":"Extension-supplied update URI","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"author","description":"Optional extension author","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"developer_id","description":"Optional developer identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Optional extension description text","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to extension XAR bundle","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"sandboxes","description":"macOS application sandboxes container details.","platforms":["darwin"],"columns":[{"name":"label","description":"UTI-format bundle or label ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user","description":"Sandbox owner","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled","description":"Application sandboxings enabled on container","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"build_id","description":"Sandbox-specific identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bundle_path","description":"Application bundle used by the sandbox","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to sandbox container directory","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"scheduled_tasks","description":"Lists all of the tasks in the Windows task scheduler.","platforms":["windows"],"columns":[{"name":"name","description":"Name of the scheduled task","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"action","description":"Actions executed by the scheduled task","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to the executable to be run","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled","description":"Whether or not the scheduled task is enabled","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"State of the scheduled task","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hidden","description":"Whether or not the task is visible in the UI","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"last_run_time","description":"Timestamp the task last ran","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"next_run_time","description":"Timestamp the task is scheduled to run next","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"last_run_message","description":"Exit status message of the last task run","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_run_code","description":"Exit status code of the last task run","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"screenlock","description":"macOS screenlock status. Note: only fetches results for osquery's current logged-in user context. The user must also have recently logged in.","platforms":["darwin"],"columns":[{"name":"enabled","description":"1 If a password is required after sleep or the screensaver begins; else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"grace_period","description":"The amount of time in seconds the screen must be asleep or the screensaver on before a password is required on-wake. 0 = immediately; -1 = no password is required on-wake","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"seccomp_events","description":"A virtual table that tracks seccomp events.","platforms":["linux"],"columns":[{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit user ID (loginuid) of the user who started the analyzed process","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"User ID of the user who started the analyzed process","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Group ID of the user who started the analyzed process","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ses","description":"Session ID of the session from which the analyzed process was invoked","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID","type":"unsigned_bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"comm","description":"Command-line name of the command that was used to invoke the analyzed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"exe","description":"The path to the executable that was used to invoke the analyzed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sig","description":"Signal value sent to process by seccomp","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"arch","description":"Information about the CPU architecture","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"syscall","description":"Type of the system call","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"compat","description":"Is system call in compatibility mode","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ip","description":"Instruction pointer value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"code","description":"The seccomp action","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"secureboot","description":"Secure Boot UEFI Settings.","platforms":["linux","windows"],"columns":[{"name":"secure_boot","description":"Whether secure boot is enabled","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"setup_mode","description":"Whether setup mode is enabled","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"security_profile_info","description":"Information on the security profile of a given system by listing the system Account and Audit Policies. This table mimics the exported securitypolicy output from the secedit tool.","platforms":["windows"],"columns":[{"name":"minimum_password_age","description":"Determines the minimum number of days that a password must be used before the user can change it","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"maximum_password_age","description":"Determines the maximum number of days that a password can be used before the client requires the user to change it","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"minimum_password_length","description":"Determines the least number of characters that can make up a password for a user account","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"password_complexity","description":"Determines whether passwords must meet a series of strong-password guidelines","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"password_history_size","description":"Number of unique new passwords that must be associated with a user account before an old password can be reused","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"lockout_bad_count","description":"Number of failed logon attempts after which a user account MUST be locked out","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"logon_to_change_password","description":"Determines if logon session is required to change the password","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"force_logoff_when_expire","description":"Determines whether SMB client sessions with the SMB server will be forcibly disconnected when the client's logon hours expire","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"new_administrator_name","description":"Determines the name of the Administrator account on the local computer","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"new_guest_name","description":"Determines the name of the Guest account on the local computer","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"clear_text_password","description":"Determines whether passwords MUST be stored by using reversible encryption","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"lsa_anonymous_name_lookup","description":"Determines if an anonymous user is allowed to query the local LSA policy","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"enable_admin_account","description":"Determines whether the Administrator account on the local computer is enabled","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"enable_guest_account","description":"Determines whether the Guest account on the local computer is enabled","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_system_events","description":"Determines whether the operating system MUST audit System Change, System Startup, System Shutdown, Authentication Component Load, and Loss or Excess of Security events","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_logon_events","description":"Determines whether the operating system MUST audit each instance of a user attempt to log on or log off this computer","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_object_access","description":"Determines whether the operating system MUST audit each instance of user attempts to access a non-Active Directory object that has its own SACL specified","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_privilege_use","description":"Determines whether the operating system MUST audit each instance of user attempts to exercise a user right","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_policy_change","description":"Determines whether the operating system MUST audit each instance of user attempts to change user rights assignment policy, audit policy, account policy, or trust policy","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_account_manage","description":"Determines whether the operating system MUST audit each event of account management on a computer","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_process_tracking","description":"Determines whether the operating system MUST audit process-related events","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_ds_access","description":"Determines whether the operating system MUST audit each instance of user attempts to access an Active Directory object that has its own system access control list (SACL) specified","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"audit_account_logon","description":"Determines whether the operating system MUST audit each time this computer validates the credentials of an account","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"selinux_events","description":"Track SELinux events.","platforms":["linux"],"columns":[{"name":"type","description":"Event type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"message","description":"Message","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"selinux_settings","description":"Track active SELinux settings.","platforms":["linux"],"columns":[{"name":"scope","description":"Where the key is located inside the SELinuxFS mount point.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"key","description":"Key or class name.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Active value.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"services","description":"Lists all installed Windows services and their relevant data.","platforms":["windows"],"columns":[{"name":"name","description":"Service name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"service_type","description":"Service Type: OWN_PROCESS, SHARE_PROCESS and maybe Interactive (can interact with the desktop)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"display_name","description":"Service Display name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Service Current status: STOPPED, START_PENDING, STOP_PENDING, RUNNING, CONTINUE_PENDING, PAUSE_PENDING, PAUSED","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"the Process ID of the service","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"start_type","description":"Service start type: BOOT_START, SYSTEM_START, AUTO_START, DEMAND_START, DISABLED","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"win32_exit_code","description":"The error code that the service uses to report an error that occurs when it is starting or stopping","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"service_exit_code","description":"The service-specific error code that the service returns when an error occurs while the service is starting or stopping","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to Service Executable","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"module_path","description":"Path to ServiceDll","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Service Description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user_account","description":"The name of the account that the service process will be logged on as when it runs. This name can be of the form Domain\\UserName. If the account belongs to the built-in domain, the name can be of the form .\\UserName.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"shadow","description":"Local system users encrypted passwords and related information. Please note, that you usually need superuser rights to access `/etc/shadow`.","platforms":["linux"],"columns":[{"name":"password_status","description":"Password status","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hash_alg","description":"Password hashing algorithm","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_change","description":"Date of last password change (starting from UNIX epoch date)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"min","description":"Minimal number of days between password changes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"max","description":"Maximum number of days between password changes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"warning","description":"Number of days before password expires to warn user about it","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inactive","description":"Number of days after password expires until account is blocked","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"expire","description":"Number of days since UNIX epoch date until account is disabled","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"flag","description":"Reserved","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"Username","type":"text","notes":"","hidden":false,"required":false,"index":true}]},{"name":"shared_folders","description":"Folders available to others via SMB or AFP.","platforms":["darwin"],"columns":[{"name":"name","description":"The shared name of the folder as it appears to other users","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Absolute path of shared folder on the local system","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"shared_memory","description":"OS shared memory regions.","platforms":["linux"],"columns":[{"name":"shmid","description":"Shared memory segment ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"owner_uid","description":"User ID of owning process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"creator_uid","description":"User ID of creator process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID to last use the segment","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"creator_pid","description":"Process ID that created the segment","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"atime","description":"Attached time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"dtime","description":"Detached time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"ctime","description":"Changed time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"permissions","description":"Memory segment permissions","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Size in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"attached","description":"Number of attached processes","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Destination/attach status","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"locked","description":"1 if segment is locked else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"shared_resources","description":"Displays shared resources on a computer system running Windows. This may be a disk drive, printer, interprocess communication, or other sharable device.","platforms":["windows"],"columns":[{"name":"description","description":"A textual description of the object","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"install_date","description":"Indicates when the object was installed. Lack of a value does not indicate that the object is not installed.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"String that indicates the current status of the object.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"allow_maximum","description":"Number of concurrent users for this resource has been limited. If True, the value in the MaximumAllowed property is ignored.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"maximum_allowed","description":"Limit on the maximum number of users allowed to use this resource concurrently. The value is only valid if the AllowMaximum property is set to FALSE.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Alias given to a path set up as a share on a computer system running Windows.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Local path of the Windows share.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of resource being shared. Types include: disk drives, print queues, interprocess communications (IPC), and general devices.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"type_name","description":"Human readable value for the 'type' column","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"sharing_preferences","description":"macOS Sharing preferences.","platforms":["darwin"],"columns":[{"name":"screen_sharing","description":"1 If screen sharing is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"file_sharing","description":"1 If file sharing is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"printer_sharing","description":"1 If printer sharing is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_login","description":"1 If remote login is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_management","description":"1 If remote management is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_apple_events","description":"1 If remote apple events are enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"internet_sharing","description":"1 If internet sharing is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"bluetooth_sharing","description":"1 If bluetooth sharing is enabled for any user else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"disc_sharing","description":"1 If CD or DVD sharing is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"content_caching","description":"1 If content caching is enabled else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"shell_history","description":"A line-delimited (command) table of per-user .*_history data.","platforms":["darwin","linux"],"columns":[{"name":"uid","description":"Shell history owner","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Entry timestamp. It could be absent, default value is 0.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"command","description":"Unparsed date/line/command history line","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"history_file","description":"Path to the .*_history for this user","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"shellbags","description":"Shows directories accessed via Windows Explorer.","platforms":["windows"],"columns":[{"name":"sid","description":"User SID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Shellbags source Registry file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Directory name.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"modified_time","description":"Directory Modified time.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"created_time","description":"Directory Created time.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"accessed_time","description":"Directory Accessed time.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mft_entry","description":"Directory master file table entry.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"mft_sequence","description":"Directory master file table sequence.","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"shimcache","description":"Application Compatibility Cache, contains artifacts of execution.","platforms":["windows"],"columns":[{"name":"entry","description":"Execution order.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"This is the path to the executed file.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"modified_time","description":"File Modified time.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"execution_flag","description":"Boolean Execution flag, 1 for execution, 0 for no execution, -1 for missing (this flag does not exist on Windows 10 and higher).","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"signature","description":"File (executable, bundle, installer, disk) code signing status.","platforms":["darwin"],"columns":[{"name":"path","description":"Must provide a path or directory","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"hash_resources","description":"Set to 1 to also hash resources, or 0 otherwise. Default is 1","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"arch","description":"If applicable, the arch of the signed code","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"signed","description":"1 If the file is signed else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"identifier","description":"The signing identifier sealed into the signature","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cdhash","description":"Hash of the application Code Directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"team_identifier","description":"The team signing identifier sealed into the signature","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"authority","description":"Certificate Common Name","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"sip_config","description":"Apple's System Integrity Protection (rootless) status.","platforms":["darwin"],"columns":[{"name":"config_flag","description":"The System Integrity Protection config flag","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled","description":"1 if this configuration is enabled, otherwise 0","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled_nvram","description":"1 if this configuration is enabled, otherwise 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"smbios_tables","description":"BIOS (DMI) structure common details and content.","platforms":["darwin","linux"],"columns":[{"name":"number","description":"Table entry number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Table entry type","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Table entry description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"handle","description":"Table entry handle","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"header_size","description":"Header size in bytes","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Table entry size in bytes","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"md5","description":"MD5 hash of table entry","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"smc_keys","description":"Apple's system management controller keys.","platforms":["darwin"],"columns":[{"name":"key","description":"4-character key","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"type","description":"SMC-reported type literal type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"size","description":"Reported size of data in bytes","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"A type-encoded representation of the key value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hidden","description":"1 if this key is normally hidden, otherwise 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"socket_events","description":"Track network socket opens and closes.","platforms":["darwin","linux"],"columns":[{"name":"action","description":"The socket action (bind, listen, close)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of executed file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fd","description":"The file description for the process socket","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Either 'succeeded', 'failed', 'in_progress' (connect() on non-blocking socket) or 'no_client' (null accept() on non-blocking socket)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"family","description":"The Internet protocol family ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"protocol","description":"The network protocol ID","type":"integer","notes":"","hidden":true,"required":false,"index":false},{"name":"local_address","description":"Local address associated with socket","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_address","description":"Remote address associated with socket","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_port","description":"Local network protocol port number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_port","description":"Remote network protocol port number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"socket","description":"The local path (UNIX domain socket only)","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"success","description":"Deprecated. Use the 'status' column instead","type":"integer","notes":"","hidden":true,"required":false,"index":false}]},{"name":"ssh_configs","description":"A table of parsed ssh_configs.","platforms":["darwin","linux","windows"],"columns":[{"name":"uid","description":"The local owner of the ssh_config file","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"block","description":"The host or match block","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"option","description":"The option and value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ssh_config_file","description":"Path to the ssh_config file","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"startup_items","description":"Applications and binaries set as user/login startup items.","platforms":["darwin","linux","windows"],"columns":[{"name":"name","description":"Name of startup item","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of startup item","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"args","description":"Arguments provided to startup executable","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Startup Item or Login Item","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Directory or plist containing startup item","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"status","description":"Startup status; either enabled or disabled","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"The user associated with the startup item","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"sudoers","description":"Rules for running commands as other users via sudo.","platforms":["darwin","linux"],"columns":[{"name":"source","description":"Source file containing the given rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"header","description":"Symbol for given rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"rule_details","description":"Rule definition","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"suid_bin","description":"suid binaries in common locations.","platforms":["darwin","linux"],"columns":[{"name":"path","description":"Binary path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"Binary owner username","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"groupname","description":"Binary owner group","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"permissions","description":"Binary permissions","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"syslog_events","description":"","platforms":["linux"],"columns":[{"name":"time","description":"Current unix epoch time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"datetime","description":"Time known to syslog","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"host","description":"Hostname configured for syslog","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"severity","description":"Syslog severity","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"facility","description":"Syslog facility","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"tag","description":"The syslog tag","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"message","description":"The syslog message","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"system_controls","description":"sysctl names, values, and settings information.","platforms":["darwin","linux"],"columns":[{"name":"name","description":"Full sysctl MIB name","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"oid","description":"Control MIB","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subsystem","description":"Subsystem ID, control type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"current_value","description":"Value of setting","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"config_value","description":"The MIB value set in /etc/sysctl.conf","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Data type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"field_name","description":"Specific attribute of opaque type","type":"text","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]}]},{"name":"system_extensions","description":"macOS (>= 10.15) system extension table.","platforms":["darwin"],"columns":[{"name":"path","description":"Original path of system extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"UUID","description":"Extension unique id","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"System extension state","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"identifier","description":"Identifier name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"System extension version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"category","description":"System extension category","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bundle_path","description":"System extension bundle path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"team","description":"Signing team ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mdm_managed","description":"1 if managed by MDM system extension payload configuration, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"system_info","description":"System information for identification.","platforms":["darwin","linux","windows"],"columns":[{"name":"hostname","description":"Network hostname including domain","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uuid","description":"Unique ID provided by the system","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_type","description":"CPU type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_subtype","description":"CPU subtype","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_brand","description":"CPU brand string, contains vendor and model","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_physical_cores","description":"Number of physical CPU cores in to the system","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_logical_cores","description":"Number of logical CPU cores available to the system","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"cpu_microcode","description":"Microcode version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"physical_memory","description":"Total physical memory in bytes","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"hardware_vendor","description":"Hardware vendor","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hardware_model","description":"Hardware model","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hardware_version","description":"Hardware version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hardware_serial","description":"Device serial number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"board_vendor","description":"Board vendor","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"board_model","description":"Board model","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"board_version","description":"Board version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"board_serial","description":"Board serial number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"computer_name","description":"Friendly computer name (optional)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_hostname","description":"Local hostname (optional)","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"systemd_units","description":"Track systemd units.","platforms":["linux"],"columns":[{"name":"id","description":"Unique unit identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Unit description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"load_state","description":"Reflects whether the unit definition was properly loaded","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"active_state","description":"The high-level unit activation state, i.e. generalization of SUB","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sub_state","description":"The low-level unit activation state, values depend on unit type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"following","description":"The name of another unit that this unit follows in state","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"object_path","description":"The object path for this unit","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"job_id","description":"Next queued job id","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"job_type","description":"Job type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"job_path","description":"The object path for the job","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"fragment_path","description":"The unit file path this unit was read from, if there is any","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user","description":"The configured user, if any","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source_path","description":"Path to the (possibly generated) unit configuration file","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"temperature_sensors","description":"Machine's temperature sensors.","platforms":["darwin"],"columns":[{"name":"key","description":"The SMC key on macOS","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"Name of temperature source","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"celsius","description":"Temperature in Celsius","type":"double","notes":"","hidden":false,"required":false,"index":false},{"name":"fahrenheit","description":"Temperature in Fahrenheit","type":"double","notes":"","hidden":false,"required":false,"index":false}]},{"name":"time","description":"Track current date and time in UTC.","platforms":["darwin","linux","windows"],"columns":[{"name":"weekday","description":"Current weekday in UTC","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"year","description":"Current year in UTC","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"month","description":"Current month in UTC","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"day","description":"Current day in UTC","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"hour","description":"Current hour in UTC","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"minutes","description":"Current minutes in UTC","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"seconds","description":"Current seconds in UTC","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"timezone","description":"Timezone for reported time (hardcoded to UTC)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_timezone","description":"Current local timezone in of the system","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"unix_time","description":"Current UNIX time in UTC","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"timestamp","description":"Current timestamp (log format) in UTC","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"datetime","description":"Current date and time (ISO format) in UTC","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"iso_8601","description":"Current time (ISO format) in UTC","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"win_timestamp","description":"Timestamp value in 100 nanosecond units","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]}]},{"name":"time_machine_backups","description":"Backups to drives using TimeMachine.","platforms":["darwin"],"columns":[{"name":"destination_id","description":"Time Machine destination ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"backup_date","description":"Backup Date","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"time_machine_destinations","description":"Locations backed up to using Time Machine.","platforms":["darwin"],"columns":[{"name":"alias","description":"Human readable name of drive","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"destination_id","description":"Time Machine destination ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"consistency_scan_date","description":"Consistency scan date","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"root_volume_uuid","description":"Root UUID of backup volume","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bytes_available","description":"Bytes available on volume","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"bytes_used","description":"Bytes used on volume","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"encryption","description":"Last known encrypted state","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"tpm_info","description":"A table that lists the TPM related information.","platforms":["windows"],"columns":[{"name":"activated","description":"TPM is activated","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled","description":"TPM is enabled","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"owned","description":"TPM is owned","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer_version","description":"TPM version","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer_id","description":"TPM manufacturers ID","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer_name","description":"TPM manufacturers name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"product_name","description":"Product name of the TPM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"physical_presence_version","description":"Version of the Physical Presence Interface","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"spec_version","description":"Trusted Computing Group specification that the TPM supports","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"ulimit_info","description":"System resource usage limits.","platforms":["darwin","linux"],"columns":[{"name":"type","description":"System resource to be limited","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"soft_limit","description":"Current limit value","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hard_limit","description":"Maximum limit value","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"unified_log","description":"Queries the OSLog framework for entries in the system log. The maximum number of rows returned is limited for performance issues. This table introduces a new idiom for extracting sequential data in batches using multiple queries, ordered by timestamp. To trigger it, the user should include the condition \"timestamp > -1\", and the table will handle pagination.","platforms":["darwin"],"columns":[{"name":"timestamp","description":"unix timestamp associated with the entry","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"storage","description":"the storage category for the entry","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"message","description":"composed message","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"activity","description":"the activity ID associate with the entry","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"process","description":"the name of the process that made the entry","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"the pid of the process that made the entry","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sender","description":"the name of the binary image that made the entry","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"tid","description":"the tid of the thread that made the entry","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"category","description":"the category of the os_log_t used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subsystem","description":"the subsystem of the os_log_t used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"level","description":"the severity level of the entry","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"max_rows","description":"the max number of rows returned (defaults to 100)","type":"integer","notes":"","hidden":true,"required":false,"index":false}]},{"name":"uptime","description":"Track time passed since last boot. Some systems track this as calendar time, some as runtime.","platforms":["darwin","linux","windows"],"columns":[{"name":"days","description":"Days of uptime","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"hours","description":"Hours of uptime","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"minutes","description":"Minutes of uptime","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"seconds","description":"Seconds of uptime","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"total_seconds","description":"Total uptime seconds","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"usb_devices","description":"USB devices that are actively plugged into the host system.","platforms":["darwin","linux"],"columns":[{"name":"usb_address","description":"USB Device used address","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"usb_port","description":"USB Device used port","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor","description":"USB Device vendor string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"vendor_id","description":"Hex encoded USB Device vendor identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"USB Device version number","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model","description":"USB Device model string","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model_id","description":"Hex encoded USB Device model identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial","description":"USB Device serial connection","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"USB Device class","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"subclass","description":"USB Device subclass","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"protocol","description":"USB Device protocol","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"removable","description":"1 If USB device is removable else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"user_events","description":"Track user events from the audit framework.","platforms":["darwin","linux"],"columns":[{"name":"uid","description":"User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"auid","description":"Audit User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process (or thread) ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"message","description":"Message from the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"The file description for the process socket","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Supplied path from event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"address","description":"The Internet protocol address or family ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"terminal","description":"The network protocol ID","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of execution in UNIX time","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uptime","description":"Time of execution in system uptime","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"user_groups","description":"Local system user group relationships.","platforms":["darwin","linux","windows"],"columns":[{"name":"uid","description":"User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"gid","description":"Group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true}]},{"name":"user_interaction_events","description":"Track user interaction events from macOS' event tapping framework.","platforms":["darwin"],"columns":[{"name":"time","description":"Time","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"user_ssh_keys","description":"Returns the private keys in the users ~/.ssh directory and whether or not they are encrypted.","platforms":["darwin","linux","windows"],"columns":[{"name":"uid","description":"The local user that owns the key file","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to key file","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"encrypted","description":"1 if key is encrypted, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"key_type","description":"The type of the private key. One of [rsa, dsa, dh, ec, hmac, cmac], or the empty string.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"userassist","description":"UserAssist Registry Key tracks when a user executes an application from Windows Explorer.","platforms":["windows"],"columns":[{"name":"path","description":"Application file path.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_execution_time","description":"Most recent time application was executed.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"count","description":"Number of times the application has been executed.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"sid","description":"User SID.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"users","description":"Local user accounts (including domain accounts that have logged on locally (Windows)).","platforms":["darwin","linux","windows"],"columns":[{"name":"uid","description":"User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"gid","description":"Group ID (unsigned)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid_signed","description":"User ID as int64 signed (Apple)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid_signed","description":"Default group ID as int64 signed (Apple)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"Username","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Optional user description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"directory","description":"User's home directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"shell","description":"User's configured default shell","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uuid","description":"User's UUID (Apple) or SID (Windows)","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"type","description":"Whether the account is roaming (domain), local, or a system profile","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"is_hidden","description":"IsHidden attribute set in OpenDirectory","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"video_info","description":"Retrieve video card information of the machine.","platforms":["windows"],"columns":[{"name":"color_depth","description":"The amount of bits per pixel to represent color.","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"driver","description":"The driver of the device.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"driver_date","description":"The date listed on the installed driver.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"driver_version","description":"The version of the installed driver.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"manufacturer","description":"The manufacturer of the gpu.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"model","description":"The model of the gpu.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"series","description":"The series of the gpu.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"video_mode","description":"The current resolution of the display.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"virtual_memory_info","description":"Darwin Virtual Memory statistics.","platforms":["darwin"],"columns":[{"name":"free","description":"Total number of free pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"active","description":"Total number of active pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"inactive","description":"Total number of inactive pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"speculative","description":"Total number of speculative pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"throttled","description":"Total number of throttled pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"wired","description":"Total number of wired down pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"purgeable","description":"Total number of purgeable pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"faults","description":"Total number of calls to vm_faults.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"copy","description":"Total number of copy-on-write pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"zero_fill","description":"Total number of zero filled pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"reactivated","description":"Total number of reactivated pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"purged","description":"Total number of purged pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"file_backed","description":"Total number of file backed pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"anonymous","description":"Total number of anonymous pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uncompressed","description":"Total number of uncompressed pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"compressor","description":"The number of pages used to store compressed VM pages.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"decompressed","description":"The total number of pages that have been decompressed by the VM compressor.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"compressed","description":"The total number of pages that have been compressed by the VM compressor.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"page_ins","description":"The total number of requests for pages from a pager.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"page_outs","description":"Total number of pages paged out.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"swap_ins","description":"The total number of compressed pages that have been swapped out to disk.","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"swap_outs","description":"The total number of compressed pages that have been swapped back in from disk.","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"wifi_networks","description":"macOS known/remembered Wi-Fi networks list.","platforms":["darwin"],"columns":[{"name":"ssid","description":"SSID octets of the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"network_name","description":"Name of the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"security_type","description":"Type of security on this network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"last_connected","description":"Last time this network was connected to as a unix_time","type":"integer","notes":"","hidden":true,"required":false,"index":false},{"name":"passpoint","description":"1 if Passpoint is supported, 0 otherwise","type":"integer","notes":"","hidden":true,"required":false,"index":false},{"name":"possibly_hidden","description":"1 if network is possibly a hidden network, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"roaming","description":"1 if roaming is supported, 0 otherwise","type":"integer","notes":"","hidden":true,"required":false,"index":false},{"name":"roaming_profile","description":"Describe the roaming profile, usually one of Single, Dual or Multi","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"auto_login","description":"1 if auto login is enabled, 0 otherwise","type":"integer","notes":"","hidden":true,"required":false,"index":false},{"name":"temporarily_disabled","description":"1 if this network is temporarily disabled, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"disabled","description":"1 if this network is disabled, 0 otherwise","type":"integer","notes":"","hidden":true,"required":false,"index":false},{"name":"add_reason","description":"Shows why this network was added, via menubar or command line or something else ","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"added_at","description":"Time this network was added as a unix_time","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"captive_portal","description":"1 if this network has a captive portal, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"captive_login_date","description":"Time this network logged in to a captive portal as unix_time","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"was_captive_network","description":"1 if this network was previously a captive network, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"auto_join","description":"1 if this network set to join automatically, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"personal_hotspot","description":"1 if this network is a personal hotspot, 0 otherwise","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"wifi_status","description":"macOS current WiFi status.","platforms":["darwin"],"columns":[{"name":"interface","description":"Name of the interface","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ssid","description":"SSID octets of the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bssid","description":"The current basic service set identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"network_name","description":"Name of the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"country_code","description":"The country code (ISO/IEC 3166-1:1997) for the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"security_type","description":"Type of security on this network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"rssi","description":"The current received signal strength indication (dbm)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"noise","description":"The current noise measurement (dBm)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"channel","description":"Channel number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"channel_width","description":"Channel width","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"channel_band","description":"Channel band","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"transmit_rate","description":"The current transmit rate","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mode","description":"The current operating mode for the Wi-Fi interface","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"wifi_survey","description":"Scan for nearby WiFi networks.","platforms":["darwin"],"columns":[{"name":"interface","description":"Name of the interface","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ssid","description":"SSID octets of the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"bssid","description":"The current basic service set identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"network_name","description":"Name of the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"country_code","description":"The country code (ISO/IEC 3166-1:1997) for the network","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"rssi","description":"The current received signal strength indication (dbm)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"noise","description":"The current noise measurement (dBm)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"channel","description":"Channel number","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"channel_width","description":"Channel width","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"channel_band","description":"Channel band","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"winbaseobj","description":"Lists named Windows objects in the default object directories, across all terminal services sessions. Example Windows ojbect types include Mutexes, Events, Jobs and Semaphors.","platforms":["windows"],"columns":[{"name":"session_id","description":"Terminal Services Session Id","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"object_name","description":"Object Name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"object_type","description":"Object Type","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"windows_crashes","description":"Extracted information from Windows crash logs (Minidumps).","platforms":["windows"],"columns":[{"name":"datetime","description":"Timestamp (log format) of the crash","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"module","description":"Path of the crashed module within the process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path of the executable file for the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID of the crashed process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"tid","description":"Thread ID of the crashed thread","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"version","description":"File version info of the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"process_uptime","description":"Uptime of the process in seconds","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"stack_trace","description":"Multiple stack frames from the stack trace","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"exception_code","description":"The Windows exception code","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"exception_message","description":"The NTSTATUS error message associated with the exception code","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"exception_address","description":"Address (in hex) where the exception occurred","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"registers","description":"The values of the system registers","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"command_line","description":"Command-line string passed to the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"current_directory","description":"Current working directory of the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"Username of the user who ran the crashed process","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"machine_name","description":"Name of the machine where the crash happened","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"major_version","description":"Windows major version of the machine","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"minor_version","description":"Windows minor version of the machine","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"build_number","description":"Windows build number of the crashing machine","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Type of crash log","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"crash_path","description":"Path of the log file","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"windows_eventlog","description":"Table for querying all recorded Windows event logs.","platforms":["windows"],"columns":[{"name":"channel","description":"Source or channel of the event","type":"text","notes":"","hidden":false,"required":true,"index":false},{"name":"datetime","description":"System time at which the event occurred","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"task","description":"Task value associated with the event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"level","description":"Severity level associated with the event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"provider_name","description":"Provider name of the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"provider_guid","description":"Provider guid of the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"computer_name","description":"Hostname of system where event was generated","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"eventid","description":"Event ID of the event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"keywords","description":"A bitmask of the keywords defined in the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"data","description":"Data associated with the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid","description":"Process ID which emitted the event record","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"tid","description":"Thread ID which emitted the event record","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"time_range","description":"System time to selectively filter the events","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"timestamp","description":"Timestamp to selectively filter the events","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"xpath","description":"The custom query to filter events","type":"text","notes":"","hidden":true,"required":true,"index":false}]},{"name":"windows_events","description":"Windows Event logs.","platforms":["windows"],"columns":[{"name":"time","description":"Timestamp the event was received","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"datetime","description":"System time at which the event occurred","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"source","description":"Source or channel of the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"provider_name","description":"Provider name of the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"provider_guid","description":"Provider guid of the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"computer_name","description":"Hostname of system where event was generated","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"eventid","description":"Event ID of the event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"task","description":"Task value associated with the event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"level","description":"The severity level associated with the event","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"keywords","description":"A bitmask of the keywords defined in the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"data","description":"Data associated with the event","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"windows_firewall_rules","description":"Provides the list of Windows firewall rules.","platforms":["windows"],"columns":[{"name":"name","description":"Friendly name of the rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"app_name","description":"Friendly name of the application to which the rule applies","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"action","description":"Action for the rule or default setting","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled","description":"1 if the rule is enabled","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"grouping","description":"Group to which an individual rule belongs","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"direction","description":"Direction of traffic for which the rule applies","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"protocol","description":"IP protocol of the rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_addresses","description":"Local addresses for the rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_addresses","description":"Remote addresses for the rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"local_ports","description":"Local ports for the rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"remote_ports","description":"Remote ports for the rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"icmp_types_codes","description":"ICMP types and codes for the rule","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"profile_domain","description":"1 if the rule profile type is domain","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"profile_private","description":"1 if the rule profile type is private","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"profile_public","description":"1 if the rule profile type is public","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"service_name","description":"Service name property of the application","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"windows_optional_features","description":"Lists names and installation states of windows features. Maps to Win32_OptionalFeature WMI class.","platforms":["windows"],"columns":[{"name":"name","description":"Name of the feature","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"caption","description":"Caption of feature in settings UI","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"Installation state value. 1 == Enabled, 2 == Disabled, 3 == Absent","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"statename","description":"Installation state name. 'Enabled','Disabled','Absent'","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"windows_security_center","description":"The health status of Window Security features. Health values can be \"Good\", \"Poor\". \"Snoozed\", \"Not Monitored\", and \"Error\".","platforms":["windows"],"columns":[{"name":"firewall","description":"The health of the monitored Firewall (see windows_security_products)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"autoupdate","description":"The health of the Windows Autoupdate feature","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"antivirus","description":"The health of the monitored Antivirus solution (see windows_security_products)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"antispyware","description":"Deprecated (always 'Good').","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"internet_settings","description":"The health of the Internet Settings","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"windows_security_center_service","description":"The health of the Windows Security Center Service","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user_account_control","description":"The health of the User Account Control (UAC) capability in Windows","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"windows_security_products","description":"Enumeration of registered Windows security products.","platforms":["windows"],"columns":[{"name":"type","description":"Type of security product","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of product","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"State of protection","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state_timestamp","description":"Timestamp for the product state","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"remediation_path","description":"Remediation path","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"signatures_up_to_date","description":"1 if product signatures are up to date, else 0","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"windows_update_history","description":"Provides the history of the windows update events.","platforms":["windows"],"columns":[{"name":"client_app_id","description":"Identifier of the client application that processed an update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"date","description":"Date and the time an update was applied","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Description of an update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hresult","description":"HRESULT value that is returned from the operation on an update","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"operation","description":"Operation on an update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"result_code","description":"Result of an operation on an update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"server_selection","description":"Value that indicates which server provided an update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"service_id","description":"Service identifier of an update service that is not a Windows update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"support_url","description":"Hyperlink to the language-specific support information for an update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"title","description":"Title of an update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"update_id","description":"Revision-independent identifier of an update","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"update_revision","description":"Revision number of an update","type":"bigint","notes":"","hidden":false,"required":false,"index":false}]},{"name":"wmi_bios_info","description":"Lists important information from the system bios.","platforms":["windows"],"columns":[{"name":"name","description":"Name of the Bios setting","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"value","description":"Value of the Bios setting","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"wmi_cli_event_consumers","description":"WMI CommandLineEventConsumer, which can be used for persistence on Windows. See https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf for more details.","platforms":["windows"],"columns":[{"name":"name","description":"Unique name of a consumer.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"command_line_template","description":"Standard string template that specifies the process to be started. This property can be NULL, and the ExecutablePath property is used as the command line.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"executable_path","description":"Module to execute. The string can specify the full path and file name of the module to execute, or it can specify a partial name. If a partial name is specified, the current drive and current directory are assumed.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"The name of the class.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"relative_path","description":"Relative path to the class or instance.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"wmi_event_filters","description":"Lists WMI event filters.","platforms":["windows"],"columns":[{"name":"name","description":"Unique identifier of an event filter.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"query","description":"Windows Management Instrumentation Query Language (WQL) event query that specifies the set of events for consumer notification, and the specific conditions for notification.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"query_language","description":"Query language that the query is written in.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"The name of the class.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"relative_path","description":"Relative path to the class or instance.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"wmi_filter_consumer_binding","description":"Lists the relationship between event consumers and filters.","platforms":["windows"],"columns":[{"name":"consumer","description":"Reference to an instance of __EventConsumer that represents the object path to a logical consumer, the recipient of an event.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"filter","description":"Reference to an instance of __EventFilter that represents the object path to an event filter which is a query that specifies the type of event to be received.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"The name of the class.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"relative_path","description":"Relative path to the class or instance.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"wmi_script_event_consumers","description":"WMI ActiveScriptEventConsumer, which can be used for persistence on Windows. See https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf for more details.","platforms":["windows"],"columns":[{"name":"name","description":"Unique identifier for the event consumer. ","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"scripting_engine","description":"Name of the scripting engine to use, for example, 'VBScript'. This property cannot be NULL.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"script_file_name","description":"Name of the file from which the script text is read, intended as an alternative to specifying the text of the script in the ScriptText property.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"script_text","description":"Text of the script that is expressed in a language known to the scripting engine. This property must be NULL if the ScriptFileName property is not NULL.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"class","description":"The name of the class.","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"relative_path","description":"Relative path to the class or instance.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"xprotect_entries","description":"Database of the machine's XProtect signatures.","platforms":["darwin"],"columns":[{"name":"name","description":"Description of XProtected malware","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"launch_type","description":"Launch services content type","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"identity","description":"XProtect identity (SHA1) of content","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"filename","description":"Use this file name to match","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"filetype","description":"Use this file type to match","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"optional","description":"Match any of the identities/patterns for this XProtect name","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"uses_pattern","description":"Uses a match pattern instead of identity","type":"integer","notes":"","hidden":false,"required":false,"index":false}]},{"name":"xprotect_meta","description":"Database of the machine's XProtect browser-related signatures.","platforms":["darwin"],"columns":[{"name":"identifier","description":"Browser plugin or extension identifier","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"type","description":"Either plugin or extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"developer_id","description":"Developer identity (SHA1) of extension","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"min_version","description":"The minimum allowed plugin version.","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"xprotect_reports","description":"Database of XProtect matches (if user generated/sent an XProtect report).","platforms":["darwin"],"columns":[{"name":"name","description":"Description of XProtected malware","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"user_action","description":"Action taken by user after prompted","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Quarantine alert time","type":"text","notes":"","hidden":false,"required":false,"index":false}]},{"name":"yara","description":"Triggers one-off YARA query for files at the specified path. Requires one of `sig_group`, `sigfile`, or `sigrule`.","platforms":["darwin","linux","windows"],"columns":[{"name":"path","description":"The path scanned","type":"text","notes":"","hidden":false,"required":true,"index":true},{"name":"matches","description":"List of YARA matches","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"count","description":"Number of YARA matches","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"sig_group","description":"Signature group used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sigfile","description":"Signature file used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sigrule","description":"Signature strings used","type":"text","notes":"","hidden":true,"required":false,"index":false},{"name":"strings","description":"Matching strings","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"tags","description":"Matching tags","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"sigurl","description":"Signature url","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"yara_events","description":"Track YARA matches for files specified in configuration data.","platforms":["darwin","linux","windows"],"columns":[{"name":"target_path","description":"The path scanned","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"category","description":"The category of the file","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"action","description":"Change action (UPDATE, REMOVE, etc)","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"transaction_id","description":"ID used during bulk update","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"matches","description":"List of YARA matches","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"count","description":"Number of YARA matches","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"strings","description":"Matching strings","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"tags","description":"Matching tags","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"time","description":"Time of the scan","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"eid","description":"Event ID","type":"text","notes":"","hidden":true,"required":false,"index":false}]},{"name":"ycloud_instance_metadata","description":"Yandex.Cloud instance metadata.","platforms":["darwin","linux","windows"],"columns":[{"name":"instance_id","description":"Unique identifier for the VM","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"folder_id","description":"Folder identifier for the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"name","description":"Name of the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Description of the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"hostname","description":"Hostname of the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"zone","description":"Availability zone of the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"ssh_public_key","description":"SSH public key. Only available if supplied at instance launch time","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"serial_port_enabled","description":"Indicates if serial port is enabled for the VM","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"metadata_endpoint","description":"Endpoint used to fetch VM metadata","type":"text","notes":"","hidden":false,"required":false,"index":true}]},{"name":"yum_sources","description":"Current list of Yum repositories or software channels.","platforms":["linux"],"columns":[{"name":"name","description":"Repository name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"baseurl","description":"Repository base URL","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"mirrorlist","description":"Mirrorlist URL","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"enabled","description":"Whether the repository is used","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"gpgcheck","description":"Whether packages are GPG checked","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"gpgkey","description":"URL to GPG key","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"host_users","description":"Local user accounts (including domain accounts that have logged on locally (Windows)).","platforms":["darwin","linux","windows"],"columns":[{"name":"uid","description":"User ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"gid","description":"Group ID (unsigned)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"uid_signed","description":"User ID as int64 signed (Apple)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid_signed","description":"Default group ID as int64 signed (Apple)","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"username","description":"Username","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"description","description":"Optional user description","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"directory","description":"User's home directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"shell","description":"User's configured default shell","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uuid","description":"User's UUID (Apple) or SID (Windows)","type":"text","notes":"","hidden":false,"required":false,"index":true},{"name":"type","description":"Whether the account is roaming (domain), local, or a system profile","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"is_hidden","description":"IsHidden attribute set in OpenDirectory","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"host_groups","description":"Local system groups.","platforms":["darwin","linux","windows"],"columns":[{"name":"gid","description":"Unsigned int64 group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"gid_signed","description":"A signed int64 version of gid","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"groupname","description":"Canonical local group name","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"group_sid","description":"Unique group ID","type":"text","notes":"","hidden":true,"required":false,"index":true,"platforms":["windows","win32","cygwin"]},{"name":"comment","description":"Remarks or comments associated with the group","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"is_hidden","description":"IsHidden attribute set in OpenDirectory","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"pid_with_namespace","description":"Pids that contain a namespace","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]},{"name":"host_processes","description":"All running processes on the host system.","platforms":["darwin","linux","windows"],"columns":[{"name":"pid","description":"Process (or thread) ID","type":"bigint","notes":"","hidden":false,"required":false,"index":true},{"name":"name","description":"The process path or shorthand argv[0]","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"path","description":"Path to executed binary","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cmdline","description":"Complete argv","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"state","description":"Process state","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"cwd","description":"Process current working directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"root","description":"Process virtual root directory","type":"text","notes":"","hidden":false,"required":false,"index":false},{"name":"uid","description":"Unsigned user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"gid","description":"Unsigned group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"euid","description":"Unsigned effective user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"egid","description":"Unsigned effective group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"suid","description":"Unsigned saved user ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"sgid","description":"Unsigned saved group ID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"on_disk","description":"The process path exists yes=1, no=0, unknown=-1","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"wired_size","description":"Bytes of unpageable memory used by process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"resident_size","description":"Bytes of private memory used by process","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"total_size","description":"Total virtual memory size","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"user_time","description":"CPU time in milliseconds spent in user space","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"system_time","description":"CPU time in milliseconds spent in kernel space","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"disk_bytes_read","description":"Bytes read from disk","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"disk_bytes_written","description":"Bytes written to disk","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"start_time","description":"Process start time in seconds since Epoch, in case of error -1","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"parent","description":"Process parent's PID","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"pgroup","description":"Process group","type":"bigint","notes":"","hidden":false,"required":false,"index":false},{"name":"threads","description":"Number of threads used by process","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"nice","description":"Process nice level (-20 to 20, default 0)","type":"integer","notes":"","hidden":false,"required":false,"index":false},{"name":"elevated_token","description":"Process uses elevated token yes=1, no=0","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"secure_process","description":"Process is secure (IUM) yes=1, no=0","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"protection_type","description":"The protection type of the process","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"virtual_process","description":"Process is virtual (e.g. System, Registry, vmmem) yes=1, no=0","type":"integer","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"elapsed_time","description":"Elapsed time in seconds this process has been running.","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"handle_count","description":"Total number of handles that the process has open. This number is the sum of the handles currently opened by each thread in the process.","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"percent_processor_time","description":"Returns elapsed time that all of the threads of this process used the processor to execute instructions in 100 nanoseconds ticks.","type":"bigint","notes":"","hidden":true,"required":false,"index":false,"platforms":["windows","win32","cygwin"]},{"name":"upid","description":"A 64bit pid that is never reused. Returns -1 if we couldn't gather them from the system.","type":"bigint","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"uppid","description":"The 64bit parent pid that is never reused. Returns -1 if we couldn't gather them from the system.","type":"bigint","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"cpu_type","description":"Indicates the specific processor designed for installation.","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"cpu_subtype","description":"Indicates the specific processor on which an entry may be used.","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"translated","description":"Indicates whether the process is running under the Rosetta Translation Environment, yes=1, no=0, error=-1.","type":"integer","notes":"","hidden":false,"required":false,"index":false,"platforms":["darwin"]},{"name":"cgroup_path","description":"The full hierarchical path of the process's control group","type":"text","notes":"","hidden":true,"required":false,"index":false,"platforms":["linux"]}]}] \ No newline at end of file diff --git a/x-pack/plugins/osquery/public/editor/osquery_tables.ts b/x-pack/plugins/osquery/public/editor/osquery_tables.ts index fbbdcac1834c0e..fbfa20dc39ede0 100644 --- a/x-pack/plugins/osquery/public/editor/osquery_tables.ts +++ b/x-pack/plugins/osquery/public/editor/osquery_tables.ts @@ -17,7 +17,7 @@ let osqueryTables: TablesJSON | null = null; export const getOsqueryTables = () => { if (!osqueryTables) { // eslint-disable-next-line @typescript-eslint/no-var-requires - osqueryTables = normalizeTables(require('../common/schemas/osquery/v5.5.1.json')); + osqueryTables = normalizeTables(require('../common/schemas/osquery/v5.7.0.json')); } return osqueryTables; diff --git a/x-pack/plugins/osquery/public/packs/queries/ecs_mapping_editor_field.tsx b/x-pack/plugins/osquery/public/packs/queries/ecs_mapping_editor_field.tsx index fb25e145176b5b..6b2f34e6d85db7 100644 --- a/x-pack/plugins/osquery/public/packs/queries/ecs_mapping_editor_field.tsx +++ b/x-pack/plugins/osquery/public/packs/queries/ecs_mapping_editor_field.tsx @@ -48,8 +48,8 @@ import { convertECSMappingToArray, convertECSMappingToObject, } from '../../../common/schemas/common/utils'; -import ECSSchema from '../../common/schemas/ecs/v8.5.0.json'; -import osquerySchema from '../../common/schemas/osquery/v5.5.1.json'; +import ECSSchema from '../../common/schemas/ecs/v8.7.0.json'; +import osquerySchema from '../../common/schemas/osquery/v5.7.0.json'; import { FieldIcon } from '../../common/lib/kibana'; import { OsqueryIcon } from '../../components/osquery_icon'; diff --git a/x-pack/plugins/osquery/scripts/schema_formatter/ecs_formatter.ts b/x-pack/plugins/osquery/scripts/schema_formatter/ecs_formatter.ts index 553c4e9de10fde..9edc37cc38c9f5 100644 --- a/x-pack/plugins/osquery/scripts/schema_formatter/ecs_formatter.ts +++ b/x-pack/plugins/osquery/scripts/schema_formatter/ecs_formatter.ts @@ -40,12 +40,19 @@ const RESTRICTED_FIELDS = [ run( async ({ flags }) => { - const schemaPath = path.resolve(`./public/common/schemas/ecs/`); + const schemaPath = path.resolve(`../../public/common/schemas/ecs/`); const schemaFile = path.join(schemaPath, flags.schema_version as string); const schemaData = await require(schemaFile); + const transformToLowerCase = (obj: Record) => + Object.fromEntries(Object.entries(obj).map(([key, val]) => [key.toLowerCase(), val])); + + const schemaDataWithLowerCaseFieldNames = schemaData.map((obj: Record) => + transformToLowerCase(obj) + ); + const filteredSchemaData = filter( - schemaData, + schemaDataWithLowerCaseFieldNames, (field) => !RESTRICTED_FIELDS.includes(field.field) ); const formattedSchema = map(filteredSchemaData, partialRight(pick, ECS_COLUMN_SCHEMA_FIELDS)); diff --git a/x-pack/plugins/osquery/server/lib/saved_query/saved_object_mappings.ts b/x-pack/plugins/osquery/server/lib/saved_query/saved_object_mappings.ts index f0c04848aa52fb..f3bc6675136098 100644 --- a/x-pack/plugins/osquery/server/lib/saved_query/saved_object_mappings.ts +++ b/x-pack/plugins/osquery/server/lib/saved_query/saved_object_mappings.ts @@ -66,8 +66,8 @@ export const savedQuerySavedObjectMappings: SavedObjectsType['mappings'] = { type: 'keyword', }, ecs_mapping: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, }, }; @@ -124,8 +124,8 @@ export const packSavedObjectMappings: SavedObjectsType['mappings'] = { type: 'boolean', }, shards: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, version: { type: 'long', @@ -149,8 +149,8 @@ export const packSavedObjectMappings: SavedObjectsType['mappings'] = { type: 'keyword', }, ecs_mapping: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, }, }, @@ -200,8 +200,8 @@ export const packAssetSavedObjectMappings: SavedObjectsType['mappings'] = { type: 'long', }, shards: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, queries: { dynamic: false, @@ -222,8 +222,8 @@ export const packAssetSavedObjectMappings: SavedObjectsType['mappings'] = { type: 'keyword', }, ecs_mapping: { - type: 'object', - enabled: false, + dynamic: false, + properties: {}, }, }, }, diff --git a/x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts b/x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts index 668b5b3f924df1..14f31f29125e61 100644 --- a/x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts +++ b/x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts @@ -12,6 +12,7 @@ import { some, filter } from 'lodash'; import deepEqual from 'fast-deep-equal'; import type { ECSMappingOrUndefined } from '@kbn/osquery-io-ts-types'; +import { replaceParamsQuery } from '../../../common/utils/replace_params_query'; import { createLiveQueryRequestBodySchema } from '../../../common/schemas/routes/live_query'; import type { CreateLiveQueryRequestBodySchema } from '../../../common/schemas/routes/live_query'; import { buildRouteValidation } from '../../utils/build_validation/route_validation'; @@ -66,9 +67,17 @@ export const createLiveQueryRoute = (router: IRouter, osqueryContext: OsqueryApp osqueryQueries, (payload: { configuration: { query: string; ecs_mapping: ECSMappingOrUndefined }; - }) => - payload?.configuration?.query === request.body.query && - deepEqual(payload?.configuration?.ecs_mapping, request.body.ecs_mapping) + }) => { + const { result: replacedConfigurationQuery } = replaceParamsQuery( + payload.configuration.query, + alertData + ); + + return ( + replacedConfigurationQuery === request.body.query && + deepEqual(payload.configuration.ecs_mapping, request.body.ecs_mapping) + ); + } ); if (!requestQueryExistsInTheInvestigationGuide) throw new Error(); diff --git a/x-pack/plugins/painless_lab/kibana.json b/x-pack/plugins/painless_lab/kibana.json deleted file mode 100644 index 6032d5ccc0d8df..00000000000000 --- a/x-pack/plugins/painless_lab/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "painlessLab", - "version": "8.2.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": ["devTools", "licensing", "home"], - "configPath": ["xpack", "painless_lab"], - "server": true, - "ui": true, - "requiredBundles": ["kibanaReact"] -} diff --git a/x-pack/plugins/painless_lab/kibana.jsonc b/x-pack/plugins/painless_lab/kibana.jsonc new file mode 100644 index 00000000000000..c60f8bd2c81530 --- /dev/null +++ b/x-pack/plugins/painless_lab/kibana.jsonc @@ -0,0 +1,22 @@ +{ + "type": "plugin", + "id": "@kbn/painless-lab-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "painlessLab", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "painless_lab" + ], + "requiredPlugins": [ + "devTools", + "licensing", + "home" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/profiling/common/flamegraph.ts b/x-pack/plugins/profiling/common/flamegraph.ts index eacd4a34322c57..2f6e0ae0188a81 100644 --- a/x-pack/plugins/profiling/common/flamegraph.ts +++ b/x-pack/plugins/profiling/common/flamegraph.ts @@ -15,6 +15,11 @@ export enum FlameGraphComparisonMode { Relative = 'relative', } +export enum FlameGraphNormalizationMode { + Scale = 'scale', + Time = 'time', +} + export interface BaseFlameGraph { Size: number; Edges: number[][]; diff --git a/x-pack/plugins/profiling/common/index.ts b/x-pack/plugins/profiling/common/index.ts index 5c0e469585d53a..3f29a4398eb479 100644 --- a/x-pack/plugins/profiling/common/index.ts +++ b/x-pack/plugins/profiling/common/index.ts @@ -29,6 +29,9 @@ export function getRoutePaths() { Flamechart: `${BASE_ROUTE_PATH}/flamechart`, CacheExecutables: `${BASE_ROUTE_PATH}/cache/executables`, CacheStackFrames: `${BASE_ROUTE_PATH}/cache/stackframes`, + HasSetupESResources: `${BASE_ROUTE_PATH}/setup/es_resources`, + HasSetupDataCollection: `${BASE_ROUTE_PATH}/setup/has_data`, + SetupDataCollectionInstructions: `${BASE_ROUTE_PATH}/setup/instructions`, }; } diff --git a/x-pack/plugins/profiling/common/stack_traces.ts b/x-pack/plugins/profiling/common/stack_traces.ts index 7ad6fe2f32113b..d1f041ee2e6ea2 100644 --- a/x-pack/plugins/profiling/common/stack_traces.ts +++ b/x-pack/plugins/profiling/common/stack_traces.ts @@ -22,11 +22,11 @@ interface ProfilingStackTraces { [key: string]: ProfilingStackTrace; } -interface ProfilingStackFrame { - ['file_name']: string | undefined; - ['function_name']: string; - ['function_offset']: number | undefined; - ['line_number']: number | undefined; +export interface ProfilingStackFrame { + ['file_name']: string[]; + ['function_name']: string[]; + ['function_offset']: number[]; + ['line_number']: number[]; } interface ProfilingStackFrames { diff --git a/x-pack/plugins/profiling/kibana.json b/x-pack/plugins/profiling/kibana.json deleted file mode 100644 index 0ead3e39f83f6f..00000000000000 --- a/x-pack/plugins/profiling/kibana.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "profiling", - "version": "1.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "profiling", - "githubTeam": "profiling-ui" - }, - "description": "", - "server": true, - "ui": true, - "requiredPlugins": [ - "navigation", - "data", - "kibanaUtils", - "share", - "observability", - "features", - "kibanaReact", - "unifiedSearch", - "dataViews", - "charts" - ], - "optionalPlugins": [], - "configPath": [ - "xpack", - "profiling" - ] -} diff --git a/x-pack/plugins/profiling/kibana.jsonc b/x-pack/plugins/profiling/kibana.jsonc new file mode 100644 index 00000000000000..df5b7071795a6c --- /dev/null +++ b/x-pack/plugins/profiling/kibana.jsonc @@ -0,0 +1,29 @@ +{ + "type": "plugin", + "id": "@kbn/profiling-plugin", + "owner": "@elastic/profiling-ui", + "plugin": { + "id": "profiling", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "profiling" + ], + "requiredPlugins": [ + "navigation", + "data", + "kibanaUtils", + "share", + "observability", + "features", + "kibanaReact", + "unifiedSearch", + "dataViews", + "charts", + "spaces", + "cloud", + "fleet" + ] + } +} diff --git a/x-pack/plugins/profiling/public/app.tsx b/x-pack/plugins/profiling/public/app.tsx index da92e839d05d49..bf3a35d060f051 100644 --- a/x-pack/plugins/profiling/public/app.tsx +++ b/x-pack/plugins/profiling/public/app.tsx @@ -6,21 +6,22 @@ */ import { AppMountParameters, CoreSetup, CoreStart } from '@kbn/core/public'; -import React, { useMemo } from 'react'; -import ReactDOM from 'react-dom'; - import { KibanaContextProvider, KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; import { Storage } from '@kbn/kibana-utils-plugin/public'; -import { RouteRenderer, RouterProvider } from '@kbn/typed-react-router-config'; - import { RedirectAppLinks } from '@kbn/shared-ux-link-redirect-app'; +import { RouteRenderer, RouterProvider } from '@kbn/typed-react-router-config'; +import React, { useMemo } from 'react'; +import ReactDOM from 'react-dom'; +import { HeaderMenuPortal } from '@kbn/observability-plugin/public'; +import { CheckSetup } from './components/check_setup'; import { ProfilingDependenciesContextProvider } from './components/contexts/profiling_dependencies/profiling_dependencies_context'; +import { RouteBreadcrumbsContextProvider } from './components/contexts/route_breadcrumbs_context'; +import { TimeRangeContextProvider } from './components/contexts/time_range_context'; import { RedirectWithDefaultDateRange } from './components/redirect_with_default_date_range'; import { profilingRouter } from './routing'; import { Services } from './services'; import { ProfilingPluginPublicSetupDeps, ProfilingPluginPublicStartDeps } from './types'; -import { RouteBreadcrumbsContextProvider } from './components/contexts/route_breadcrumbs_context'; -import { TimeRangeContextProvider } from './components/contexts/time_range_context'; +import { ProfilingHeaderActionMenu } from './components/profiling_header_action_menu'; interface Props { profilingFetchServices: Services; @@ -30,10 +31,25 @@ interface Props { pluginsSetup: ProfilingPluginPublicSetupDeps; theme$: AppMountParameters['theme$']; history: AppMountParameters['history']; + setHeaderActionMenu: AppMountParameters['setHeaderActionMenu']; } const storage = new Storage(localStorage); +function MountProfilingActionMenu({ + theme$, + setHeaderActionMenu, +}: { + theme$: AppMountParameters['theme$']; + setHeaderActionMenu: AppMountParameters['setHeaderActionMenu']; +}) { + return ( + + + + ); +} + function App({ coreStart, coreSetup, @@ -42,6 +58,7 @@ function App({ profilingFetchServices, theme$, history, + setHeaderActionMenu, }: Props) { const i18nCore = coreStart.i18n; @@ -67,11 +84,17 @@ function App({ - - - - - + + + + + + + + diff --git a/x-pack/plugins/profiling/public/components/check_setup.tsx b/x-pack/plugins/profiling/public/components/check_setup.tsx new file mode 100644 index 00000000000000..566ff7382aacf7 --- /dev/null +++ b/x-pack/plugins/profiling/public/components/check_setup.tsx @@ -0,0 +1,145 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiLoadingSpinner, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React, { useState } from 'react'; +import { AsyncStatus, useAsync } from '../hooks/use_async'; +import { useAutoAbortedHttpClient } from '../hooks/use_auto_aborted_http_client'; +import { useProfilingDependencies } from './contexts/profiling_dependencies/use_profiling_dependencies'; +import { NoDataPage } from './no_data_page'; +import { ProfilingAppPageTemplate } from './profiling_app_page_template'; + +export function CheckSetup({ children }: { children: React.ReactElement }) { + const { + start: { core }, + services: { fetchHasSetup, postSetupResources }, + } = useProfilingDependencies(); + + const [postSetupLoading, setPostSetupLoading] = useState(false); + + const { status, data, error, refresh } = useAsync( + ({ http }) => { + return fetchHasSetup({ http }); + }, + [fetchHasSetup] + ); + + const http = useAutoAbortedHttpClient([]); + + const displaySetupScreen = + (status === AsyncStatus.Settled && data?.has_setup !== true) || !!error; + + const displayNoDataScreen = + status === AsyncStatus.Settled && data?.has_setup === true && data?.has_data === false; + + const displayUi = data?.has_data === true; + + const docsLink = `https://elastic.github.io/universal-profiling-documentation`; + + const displayLoadingScreen = status !== AsyncStatus.Settled; + + if (displayLoadingScreen) { + return ( + + + + + + + + ); + } + + if (displayUi) { + return children; + } + + if (displayNoDataScreen) { + return ( + + ); + } + + if (displaySetupScreen) { + return ( + + {i18n.translate('xpack.profiling.noDataConfig.action.title', { + defaultMessage: `Universal Profiling provides fleet-wide, whole-system, continuous profiling with zero instrumentation. + Understand what lines of code are consuming compute resources, at all times, and across your entire infrastructure.`, + })} + + ), + onClick: (event: React.MouseEvent) => { + event.preventDefault(); + }, + button: ( + { + event.preventDefault(); + + setPostSetupLoading(true); + + postSetupResources({ http }) + .then(() => refresh()) + .catch((err) => { + const message = err?.body?.message ?? err.message ?? String(err); + + core.notifications.toasts.addError(err, { + title: i18n.translate( + 'xpack.profiling.checkSetup.setupFailureToastTitle', + { defaultMessage: 'Failed to complete setup' } + ), + toastMessage: message, + }); + }) + .finally(() => { + setPostSetupLoading(false); + }); + }} + fill + isLoading={postSetupLoading} + > + {!postSetupLoading + ? i18n.translate('xpack.profiling.noDataConfig.action.buttonLabel', { + defaultMessage: 'Setup Universal Profiling', + }) + : i18n.translate('xpack.profiling.noDataConfig.action.buttonLoadingLabel', { + defaultMessage: 'Setting up Universal Profiling...', + })} + + ), + }, + }, + solution: i18n.translate('xpack.profiling.noDataConfig.solutionName', { + defaultMessage: 'Universal Profiling', + }), + }} + hideSearchBar + > + <> + + ); + } + + throw new Error('Invalid state'); +} diff --git a/x-pack/plugins/profiling/public/components/flame_graphs_view/flame_graph_legend.tsx b/x-pack/plugins/profiling/public/components/flame_graphs_view/flame_graph_legend.tsx index 7f63ecb9337f9b..60d36ea833d92a 100644 --- a/x-pack/plugins/profiling/public/components/flame_graphs_view/flame_graph_legend.tsx +++ b/x-pack/plugins/profiling/public/components/flame_graphs_view/flame_graph_legend.tsx @@ -52,6 +52,7 @@ export function FlameGraphLegend({ {legendItems.map(({ color, label }) => { return ( {label ? ( diff --git a/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx b/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx index dab912902ba460..3f418227fdc3fe 100644 --- a/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx +++ b/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx @@ -4,10 +4,20 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { EuiButtonGroup, EuiFlexGroup, EuiFlexItem, EuiPageHeaderContentProps } from '@elastic/eui'; +import { + EuiButtonGroup, + EuiFlexGroup, + EuiFlexItem, + EuiHorizontalRule, + EuiPageHeaderContentProps, + EuiPanel, + EuiSwitch, + EuiTitle, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import React from 'react'; -import { FlameGraphComparisonMode } from '../../../common/flamegraph'; +import { pick } from 'lodash'; +import React, { useState } from 'react'; +import { FlameGraphComparisonMode, FlameGraphNormalizationMode } from '../../../common/flamegraph'; import { useProfilingParams } from '../../hooks/use_profiling_params'; import { useProfilingRouter } from '../../hooks/use_profiling_router'; import { useProfilingRoutePath } from '../../hooks/use_profiling_route_path'; @@ -19,6 +29,7 @@ import { FlameGraph } from '../flamegraph'; import { PrimaryAndComparisonSearchBar } from '../primary_and_comparison_search_bar'; import { ProfilingAppPageTemplate } from '../profiling_app_page_template'; import { RedirectTo } from '../redirect_to'; +import { FlameGraphNormalizationOptions, NormalizationMenu } from './normalization_menu'; export function FlameGraphsView({ children }: { children: React.ReactElement }) { const { @@ -39,6 +50,10 @@ export function FlameGraphsView({ children }: { children: React.ReactElement }) const comparisonMode = 'comparisonMode' in query ? query.comparisonMode : FlameGraphComparisonMode.Absolute; + const normalizationMode = 'normalizationMode' in query ? query.normalizationMode : undefined; + const baseline = 'baseline' in query ? query.baseline : undefined; + const comparison = 'comparison' in query ? query.comparison : undefined; + const { services: { fetchElasticFlamechart }, } = useProfilingDependencies(); @@ -100,78 +115,151 @@ export function FlameGraphsView({ children }: { children: React.ReactElement }) }), isSelected: isDifferentialView, href: profilingRouter.link('/flamegraphs/differential', { + // @ts-expect-error Code gets too complicated to satisfy TS constraints query: { ...query, comparisonRangeFrom: query.rangeFrom, comparisonRangeTo: query.rangeTo, comparisonKuery: query.kuery, - comparisonMode, }, }), }, ]; + const [showInformationWindow, setShowInformationWindow] = useState(false); + if (routePath === '/flamegraphs') { return ; } return ( - + {isDifferentialView ? ( - - - - - - { - if (!('comparisonRangeFrom' in query)) { - return; - } - - profilingRouter.push(routePath, { - path, - query: { - ...query, - comparisonMode: nextComparisonMode as FlameGraphComparisonMode, - }, - }); - }} - options={[ - { - id: FlameGraphComparisonMode.Absolute, - label: i18n.translate( - 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeAbsoluteButtonLabel', - { - defaultMessage: 'Abs', - } - ), - }, - { - id: FlameGraphComparisonMode.Relative, - label: i18n.translate( - 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeRelativeButtonLabel', - { - defaultMessage: 'Rel', - } - ), - }, - ]} - /> - - + + + + + + + + +

    + {i18n.translate( + 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeTitle', + { defaultMessage: 'Format' } + )} +

    +
    +
    + + { + if (!('comparisonRangeFrom' in query)) { + return; + } + + profilingRouter.push(routePath, { + path, + query: { + ...query, + ...(nextComparisonMode === FlameGraphComparisonMode.Absolute + ? { + comparisonMode: FlameGraphComparisonMode.Absolute, + normalizationMode: FlameGraphNormalizationMode.Time, + } + : { comparisonMode: FlameGraphComparisonMode.Relative }), + }, + }); + }} + options={[ + { + id: FlameGraphComparisonMode.Absolute, + label: i18n.translate( + 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeAbsoluteButtonLabel', + { + defaultMessage: 'Abs', + } + ), + }, + { + id: FlameGraphComparisonMode.Relative, + label: i18n.translate( + 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeRelativeButtonLabel', + { + defaultMessage: 'Rel', + } + ), + }, + ]} + /> + +
    +
    + {comparisonMode === FlameGraphComparisonMode.Absolute ? ( + + + + { + profilingRouter.push(routePath, { + path: routePath, + // @ts-expect-error Code gets too complicated to satisfy TS constraints + query: { + ...query, + ...pick(options, 'baseline', 'comparison'), + normalizationMode: options.mode, + }, + }); + }} + totalSeconds={ + (new Date(timeRange.end).getTime() - + new Date(timeRange.start).getTime()) / + 1000 + } + comparisonTotalSeconds={ + (new Date(comparisonTimeRange.end!).getTime() - + new Date(comparisonTimeRange.start!).getTime()) / + 1000 + } + options={ + (normalizationMode === FlameGraphNormalizationMode.Time + ? { mode: FlameGraphNormalizationMode.Time } + : { + mode: FlameGraphNormalizationMode.Scale, + baseline, + comparison, + }) as FlameGraphNormalizationOptions + } + /> + + + + ) : undefined} + + { + setShowInformationWindow((prev) => !prev); + }} + label={i18n.translate('xpack.profiling.flameGraph.showInformationWindow', { + defaultMessage: 'Show information window', + })} + /> + +
    +
    ) : null} @@ -181,6 +269,12 @@ export function FlameGraphsView({ children }: { children: React.ReactElement }) primaryFlamegraph={data?.primaryFlamegraph} comparisonFlamegraph={data?.comparisonFlamegraph} comparisonMode={comparisonMode} + baseline={baseline} + comparison={comparison} + showInformationWindow={showInformationWindow} + onInformationWindowClose={() => { + setShowInformationWindow(false); + }} /> {children} diff --git a/x-pack/plugins/profiling/public/components/flame_graphs_view/normalization_menu.tsx b/x-pack/plugins/profiling/public/components/flame_graphs_view/normalization_menu.tsx new file mode 100644 index 00000000000000..72bc72aa64e78e --- /dev/null +++ b/x-pack/plugins/profiling/public/components/flame_graphs_view/normalization_menu.tsx @@ -0,0 +1,252 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + EuiButton, + EuiButtonGroup, + EuiButtonIcon, + EuiFieldNumber, + EuiFlexGroup, + EuiFlexItem, + EuiFormControlLayout, + EuiFormLabel, + EuiHorizontalRule, + EuiIconTip, + EuiPopover, + EuiSpacer, + EuiTitle, + useEuiTheme, + useGeneratedHtmlId, +} from '@elastic/eui'; +import { css } from '@emotion/react'; +import { i18n } from '@kbn/i18n'; +import React, { useEffect, useState } from 'react'; +import { FlameGraphNormalizationMode } from '../../../common/flamegraph'; + +export type FlameGraphNormalizationOptions = + | { + mode: FlameGraphNormalizationMode.Scale; + baseline: number; + comparison: number; + } + | { mode: FlameGraphNormalizationMode.Time }; + +interface Props { + options: FlameGraphNormalizationOptions; + totalSeconds: number; + comparisonTotalSeconds: number; + onChange: (options: FlameGraphNormalizationOptions) => void; +} + +const SCALE_LABEL = i18n.translate('xpack.profiling.flameGraphNormalizationMenu.scale', { + defaultMessage: 'Scale factor', +}); + +const TIME_LABEL = i18n.translate('xpack.profiling.flameGraphNormalizationMenu.time', { + defaultMessage: 'Time', +}); + +const NORMALIZE_BY_LABEL = i18n.translate( + 'xpack.profiling.flameGraphNormalizationMenu.normalizeBy', + { + defaultMessage: 'Normalize by', + } +); + +function getScaleFactorsBasedOnTime({ + totalSeconds, + comparisonTotalSeconds, +}: { + totalSeconds: number; + comparisonTotalSeconds: number; +}) { + return { + baseline: 1, + comparison: totalSeconds / comparisonTotalSeconds, + }; +} + +export function NormalizationMenu(props: Props) { + const [isPopoverOpen, setIsPopoverOpen] = useState(false); + + const theme = useEuiTheme(); + + const baselineScaleFactorInputId = useGeneratedHtmlId({ prefix: 'baselineScaleFactor' }); + const comparisonScaleFactorInputId = useGeneratedHtmlId({ prefix: 'comparisonScaleFactor' }); + + const [options, setOptions] = useState(props.options); + + useEffect(() => { + setOptions(props.options); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [ + props.options.mode, + // @ts-expect-error can't refine because ESLint will complain + props.options.baseline, + // @ts-expect-error can't refine because ESLint will complain + props.options.comparison, + ]); + + const { baseline, comparison } = + options.mode === FlameGraphNormalizationMode.Time + ? getScaleFactorsBasedOnTime({ + comparisonTotalSeconds: props.comparisonTotalSeconds, + totalSeconds: props.totalSeconds, + }) + : { comparison: options.comparison, baseline: options.baseline }; + + return ( + { + setIsPopoverOpen((popoverOpen) => !popoverOpen); + }} + compressed + prepend={NORMALIZE_BY_LABEL} + append={ + + } + css={css` + .euiFormLabel { + max-width: none; + } + `} + > + + {props.options.mode === FlameGraphNormalizationMode.Scale ? SCALE_LABEL : TIME_LABEL} + + + } + isOpen={isPopoverOpen} + closePopover={() => setIsPopoverOpen(false)} + > + + + +

    {NORMALIZE_BY_LABEL}

    +
    +
    + + + +
    + + { + setOptions((prevOptions) => ({ + ...prevOptions, + ...(id === FlameGraphNormalizationMode.Time + ? { mode: FlameGraphNormalizationMode.Time } + : { mode: FlameGraphNormalizationMode.Scale, baseline: 1, comparison: 1 }), + })); + }} + legend={i18n.translate('xpack.profiling.flameGraphNormalizationMode.selectModeLegend', { + defaultMessage: 'Select a normalization mode for the flamegraph', + })} + idSelected={options.mode} + options={[ + { + id: FlameGraphNormalizationMode.Scale, + label: SCALE_LABEL, + }, + { + id: FlameGraphNormalizationMode.Time, + label: TIME_LABEL, + }, + ]} + /> + + +
    + {i18n.translate('xpack.profiling.normalizationMenu.baseline', { + defaultMessage: 'Baseline', + })} +
    +
    + + {SCALE_LABEL}} + > + { + setOptions((prevOptions) => ({ ...prevOptions, baseline: e.target.valueAsNumber })); + }} + disabled={options.mode === FlameGraphNormalizationMode.Time} + /> + + + +
    + {i18n.translate('xpack.profiling.normalizationMenu.comparison', { + defaultMessage: 'Comparison', + })} +
    +
    + + {SCALE_LABEL}} + > + { + setOptions((prevOptions) => ({ + ...prevOptions, + comparison: e.target.valueAsNumber, + })); + }} + disabled={options.mode === FlameGraphNormalizationMode.Time} + /> + + + { + props.onChange(options); + setIsPopoverOpen(false); + }} + fullWidth + > + {i18n.translate('xpack.profiling.normalizationMenu.applyChanges', { + defaultMessage: 'Apply changes', + })} + +
    + ); +} diff --git a/x-pack/plugins/profiling/public/components/flamegraph.tsx b/x-pack/plugins/profiling/public/components/flamegraph.tsx index 82eded53e62b12..a1654c9bfbbd58 100644 --- a/x-pack/plugins/profiling/public/components/flamegraph.tsx +++ b/x-pack/plugins/profiling/public/components/flamegraph.tsx @@ -11,7 +11,6 @@ import { EuiFlexItem, EuiPanel, EuiSpacer, - EuiSwitch, EuiText, EuiTextColor, useEuiTheme, @@ -98,22 +97,18 @@ function FlameGraphTooltip({ label, countInclusive, countExclusive, - samples, totalSamples, comparisonCountInclusive, comparisonCountExclusive, - comparisonSamples, comparisonTotalSamples, }: { isRoot: boolean; - samples: number; label: string; countInclusive: number; countExclusive: number; totalSamples: number; comparisonCountInclusive?: number; comparisonCountExclusive?: number; - comparisonSamples?: number; comparisonTotalSamples?: number; }) { return ( @@ -179,6 +174,10 @@ export interface FlameGraphProps { comparisonMode: FlameGraphComparisonMode; primaryFlamegraph?: ElasticFlameGraph; comparisonFlamegraph?: ElasticFlameGraph; + baseline?: number; + comparison?: number; + showInformationWindow: boolean; + onInformationWindowClose: () => void; } export const FlameGraph: React.FC = ({ @@ -186,6 +185,10 @@ export const FlameGraph: React.FC = ({ comparisonMode, primaryFlamegraph, comparisonFlamegraph, + baseline, + comparison, + showInformationWindow, + onInformationWindowClose, }) => { const theme = useEuiTheme(); @@ -197,6 +200,8 @@ export const FlameGraph: React.FC = ({ colorDanger: theme.euiTheme.colors.danger, colorNeutral: theme.euiTheme.colors.lightShade, comparisonMode, + baseline, + comparison, }); }, [ primaryFlamegraph, @@ -205,6 +210,8 @@ export const FlameGraph: React.FC = ({ theme.euiTheme.colors.danger, theme.euiTheme.colors.lightShade, comparisonMode, + baseline, + comparison, ]); const chartTheme: PartialTheme = { @@ -235,21 +242,8 @@ export const FlameGraph: React.FC = ({ setHighlightedVmIndex(undefined); }, [columnarData.key]); - const [showInformationWindow, setShowInformationWindow] = useState(false); - return ( - - { - setShowInformationWindow((prev) => !prev); - }} - label={i18n.translate('xpack.profiling.flameGraph.showInformationWindow', { - defaultMessage: 'Show information window', - })} - /> - {columnarData.viewModel.label.length > 0 && ( @@ -273,7 +267,6 @@ export const FlameGraph: React.FC = ({ const valueIndex = props.values[0].valueAccessor as number; const label = primaryFlamegraph.Label[valueIndex]; - const samples = primaryFlamegraph.CountInclusive[valueIndex]; const countInclusive = primaryFlamegraph.CountInclusive[valueIndex]; const countExclusive = primaryFlamegraph.CountExclusive[valueIndex]; const nodeID = primaryFlamegraph.ID[valueIndex]; @@ -284,14 +277,12 @@ export const FlameGraph: React.FC = ({ ); }, @@ -315,7 +306,7 @@ export const FlameGraph: React.FC = ({ totalSeconds={primaryFlamegraph?.TotalSeconds ?? 0} totalSamples={totalSamples} onClose={() => { - setShowInformationWindow(false); + onInformationWindowClose(); }} /> diff --git a/x-pack/plugins/profiling/public/components/functions_view/index.tsx b/x-pack/plugins/profiling/public/components/functions_view/index.tsx index 1b7df44e68290f..79973a63574a24 100644 --- a/x-pack/plugins/profiling/public/components/functions_view/index.tsx +++ b/x-pack/plugins/profiling/public/components/functions_view/index.tsx @@ -115,7 +115,7 @@ export function FunctionsView({ children }: { children: React.ReactElement }) { <> {isDifferentialView ? ( - + ) : null} diff --git a/x-pack/plugins/profiling/public/components/no_data_page.tsx b/x-pack/plugins/profiling/public/components/no_data_page.tsx new file mode 100644 index 00000000000000..d045b4146dd9c3 --- /dev/null +++ b/x-pack/plugins/profiling/public/components/no_data_page.tsx @@ -0,0 +1,327 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { + EuiCodeBlock, + EuiFlexGroup, + EuiFlexItem, + EuiIcon, + EuiLink, + EuiLoadingSpinner, + EuiPanel, + EuiSpacer, + EuiSplitPanel, + EuiSteps, + EuiTab, + EuiTabs, + EuiText, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React, { useState } from 'react'; +import { AsyncStatus, useAsync } from '../hooks/use_async'; +import { useProfilingDependencies } from './contexts/profiling_dependencies/use_profiling_dependencies'; +import { ProfilingAppPageTemplate } from './profiling_app_page_template'; + +export function NoDataPage({ subTitle }: { subTitle: string }) { + const { + services: { setupDataCollectionInstructions }, + } = useProfilingDependencies(); + + const { data, status } = useAsync( + ({ http }) => { + return setupDataCollectionInstructions({ http }); + }, + [setupDataCollectionInstructions] + ); + + const secretToken = data?.variables.secretToken; + const collectionAgentHostPort = data?.variables.apmServerUrl.replace('https://', ''); + + const tabs = [ + { + key: 'kubernetes', + title: i18n.translate('xpack.profiling.tabs.kubernetesTitle', { + defaultMessage: 'Kubernetes', + }), + steps: [ + { + title: i18n.translate('xpack.profiling.tabs.kubernetesRepositoryStep', { + defaultMessage: 'Configure the Universal Profiling host-agent Helm repository:', + }), + content: ( + + helm repo add optimyze https://optimyze.cloud/helm-charts + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.kubernetesInstallStep', { + defaultMessage: 'Install host-agent via Helm:', + }), + content: ( + + {`helm install --create-namespace -n=universal-profiling universal-profiling-agent \\ +--set "projectID=1,secretToken=${secretToken}" \\ +--set "collectionAgentHostPort=${collectionAgentHostPort}" \\ +--set "image.baseUrl=docker.elastic.co,image.repository=observability,image.name=profiling-agent" \\ +optimyze/pf-host-agent`} + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.kubernetesValidationStep', { + defaultMessage: 'Validate the host-agent pods are running:', + }), + content: ( + + kubectl -n universal-profiling get pods + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.postValidationStep', { + defaultMessage: + 'Use the Helm install output to get host-agent logs and spot potential errors', + }), + content: <>, + }, + ], + }, + { + key: 'docker', + title: i18n.translate('xpack.profiling.tabs.dockerTitle', { + defaultMessage: 'Docker', + }), + steps: [ + { + title: i18n.translate('xpack.profiling.tabs.dockerRunContainerStep', { + defaultMessage: 'Run the Universal Profiling container:', + }), + content: ( + + {`docker run --name host-agent --privileged --pid=host -v /etc/machine-id:/etc/machine-id:ro \\ +-v /var/run/docker.sock:/var/run/docker.sock -v /sys/kernel/debug:/sys/kernel/debug:ro \\ +docker.elastic.co/observability/profiling-agent:stable /root/pf-host-agent \\ +-project-id=1 -secret-token=${secretToken} \\ +-collection-agent=${collectionAgentHostPort}`} + + ), + }, + ], + }, + { + key: 'binary', + title: i18n.translate('xpack.profiling.tabs.binaryTitle', { + defaultMessage: 'Binary', + }), + steps: [ + { + title: i18n.translate('xpack.profiling.tabs.binaryDownloadStep', { + defaultMessage: 'Download the latest binary:', + }), + content: ( + + wget -O- https://releases.prodfiler.com/stable/pf-host-agent_linux_amd64.tgz | tar xz + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.binaryGrantPermissionStep', { + defaultMessage: 'Grant executable permissions:', + }), + content: ( + + chmod +x pf-host-agent/pf-host-agent + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.binaryRunHostAgentStep', { + defaultMessage: 'Run the Universal Profiling host-agent (requires root privileges):', + }), + content: ( + + {`sudo pf-host-agent/pf-host-agent -project-id=1 -secret-token=${secretToken} -collection-agent=${collectionAgentHostPort}`} + + ), + }, + ], + }, + { + key: 'deb', + title: i18n.translate('xpack.profiling.tabs.debTitle', { + defaultMessage: 'DEB Package', + }), + steps: [ + { + title: i18n.translate('xpack.profiling.tabs.debDownloadPackageStep', { + defaultMessage: + 'Open the URL below and download the right DEB package for your CPU architecture:', + }), + content: ( + + https://releases.prodfiler.com/stable/index.html + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.debInstallPackageStep', { + defaultMessage: 'Install the DEB package (requires root privileges):', + }), + content: ( + + {`sudo dpkg -i pf-host-agent*.deb`} + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.debEditConfigStep', { + defaultMessage: 'Edit the configuration (requires root privileges):', + }), + content: ( + + {`echo -e "project-id 1\nsecret-token ${secretToken}\ncollection-agent ${collectionAgentHostPort}" | sudo tee -a /etc/prodfiler/prodfiler.conf`} + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.debStartSystemdServiceStep', { + defaultMessage: + 'Start the Universal Profiling systemd service (requires root privileges):', + }), + content: ( + + {`sudo systemctl enable pf-host-agent && sudo systemctl restart pf-host-agent`} + + ), + }, + ], + }, + { + key: 'rpm', + title: i18n.translate('xpack.profiling.tabs.rpmTitle', { + defaultMessage: 'RPM Package', + }), + steps: [ + { + title: i18n.translate('xpack.profiling.tabs.rpmDownloadPackageStep', { + defaultMessage: + 'Open the URL below and download the right RPM package for your CPU architecture:', + }), + content: ( + + https://releases.prodfiler.com/stable/index.html + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.rpmInstallPackageStep', { + defaultMessage: 'Install the RPM package (requires root privileges):', + }), + content: ( + + {`sudo rpm -i pf-host-agent*.rpm`} + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.rpmEditConfigStep', { + defaultMessage: 'Edit the configuration (requires root privileges):', + }), + content: ( + + {`echo -e "project-id 1\nsecret-token ${secretToken}\ncollection-agent ${collectionAgentHostPort}" | sudo tee -a /etc/prodfiler/prodfiler.conf`} + + ), + }, + { + title: i18n.translate('xpack.profiling.tabs.rpmStartSystemdServiceStep', { + defaultMessage: + 'Start the Universal Profiling systemd service (requires root privileges):', + }), + content: ( + + {`sudo systemctl enable pf-host-agent && sudo systemctl restart pf-host-agent`} + + ), + }, + ], + }, + ]; + + const [selectedTab, setSelectedTab] = useState(tabs[0].key); + + const displayedTab = tabs.find((tab) => tab.key === selectedTab)!; + + const displayedSteps = displayedTab.steps ?? []; + + const isLoading = status === AsyncStatus.Loading; + + return ( + + + + + + {i18n.translate('xpack.profiling.noDataPage.pageTitle', { + defaultMessage: 'Add profiling data', + })} + + {isLoading ? ( + + + + ) : null} + + } + > + {isLoading ? ( + <> + ) : ( + <> + {subTitle} + + + + + + {tabs.map((tab) => { + return ( + setSelectedTab(tab.key)} + isSelected={tab.key === selectedTab} + > + {tab.title} + + ); + })} + + + + + { + return { + title: step.title, + children: step.content, + status: 'incomplete', + }; + })} + /> + + + + + )} +
    + ); +} diff --git a/x-pack/plugins/profiling/public/components/primary_and_comparison_search_bar.tsx b/x-pack/plugins/profiling/public/components/primary_and_comparison_search_bar.tsx index 7a8a09e845589d..33f5f3e8850ffe 100644 --- a/x-pack/plugins/profiling/public/components/primary_and_comparison_search_bar.tsx +++ b/x-pack/plugins/profiling/public/components/primary_and_comparison_search_bar.tsx @@ -4,7 +4,15 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { + EuiButtonIcon, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, + EuiTitle, + EuiToolTip, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; import { TypeOf } from '@kbn/typed-react-router-config'; import React from 'react'; import { useAnyOfProfilingParams } from '../hooks/use_profiling_params'; @@ -54,15 +62,63 @@ export function PrimaryAndComparisonSearchBar() { } return ( - + + +

    + {i18n.translate('xpack.profiling.comparisonSearch.baselineTitle', { + defaultMessage: 'Baseline flamegraph', + })} +

    +
    +
    + + + { + const next = { + ...query, + rangeFrom: comparisonRangeFrom, + rangeTo: comparisonRangeTo, + kuery: comparisonKuery, + comparisonRangeFrom: query.rangeFrom, + comparisonRangeTo: query.rangeTo, + comparisonKuery: query.kuery, + }; + + if (routePath === '/flamegraphs/differential') { + profilingRouter.push(routePath, { + path, + query: next as TypeOf['query'], + }); + } else { + profilingRouter.push(routePath, { + path, + query: next as TypeOf['query'], + }); + } + }} + /> + + + +

    + {i18n.translate('xpack.profiling.comparisonSearch.comparisonTitle', { + defaultMessage: 'Comparison flamegraph', + })} +

    +
    + { navigate({ kuery: String(next.query?.query || ''), diff --git a/x-pack/plugins/profiling/public/components/profiling_app_page_template/index.tsx b/x-pack/plugins/profiling/public/components/profiling_app_page_template/index.tsx index 03a04b6a3a8e06..0e635aba6bb5ae 100644 --- a/x-pack/plugins/profiling/public/components/profiling_app_page_template/index.tsx +++ b/x-pack/plugins/profiling/public/components/profiling_app_page_template/index.tsx @@ -9,6 +9,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiPageHeaderContentProps } from '@elastic/e import { i18n } from '@kbn/i18n'; import React, { useEffect } from 'react'; import { useHistory } from 'react-router-dom'; +import { NoDataPageProps } from '@kbn/shared-ux-page-no-data-types'; import { useProfilingDependencies } from '../contexts/profiling_dependencies/use_profiling_dependencies'; import { PrimaryProfilingSearchBar } from './primary_profiling_search_bar'; @@ -16,12 +17,18 @@ export function ProfilingAppPageTemplate({ children, tabs, hideSearchBar = false, - fullHeight = false, + noDataConfig, + restrictWidth = false, + pageTitle = i18n.translate('xpack.profiling.appPageTemplate.pageTitle', { + defaultMessage: 'Universal Profiling', + }), }: { children: React.ReactElement; tabs: EuiPageHeaderContentProps['tabs']; hideSearchBar?: boolean; - fullHeight?: boolean; + noDataConfig?: NoDataPageProps; + restrictWidth?: boolean; + pageTitle?: React.ReactNode; }) { const { start: { observability }, @@ -37,12 +44,12 @@ export function ProfilingAppPageTemplate({ return ( ); } diff --git a/x-pack/plugins/profiling/public/components/profiling_header_action_menu.tsx b/x-pack/plugins/profiling/public/components/profiling_header_action_menu.tsx new file mode 100644 index 00000000000000..86d2ce4b28b1aa --- /dev/null +++ b/x-pack/plugins/profiling/public/components/profiling_header_action_menu.tsx @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { EuiFlexGroup, EuiFlexItem, EuiHeaderLink, EuiHeaderLinks, EuiIcon } from '@elastic/eui'; +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { useProfilingRouter } from '../hooks/use_profiling_router'; + +export function ProfilingHeaderActionMenu() { + const router = useProfilingRouter(); + return ( + + + + + + + + {i18n.translate('xpack.profiling.headerActionMenu.addData', { + defaultMessage: 'Add data', + })} + + + + + ); +} diff --git a/x-pack/plugins/profiling/public/hooks/use_async.ts b/x-pack/plugins/profiling/public/hooks/use_async.ts index 7156b4e8bfffd5..585e2882e493d4 100644 --- a/x-pack/plugins/profiling/public/hooks/use_async.ts +++ b/x-pack/plugins/profiling/public/hooks/use_async.ts @@ -4,11 +4,9 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { HttpFetchOptions, HttpHandler, HttpStart } from '@kbn/core-http-browser'; import { AbortError } from '@kbn/kibana-utils-plugin/common'; -import { useEffect, useRef, useState } from 'react'; -import { Overwrite, ValuesType } from 'utility-types'; -import { useProfilingDependencies } from '../components/contexts/profiling_dependencies/use_profiling_dependencies'; +import { useCallback, useEffect, useState } from 'react'; +import { AutoAbortedHttpService, useAutoAbortedHttpClient } from './use_auto_aborted_http_client'; export enum AsyncStatus { Loading = 'loading', @@ -20,69 +18,39 @@ export interface AsyncState { data?: T; error?: Error; status: AsyncStatus; + refresh: () => void; } -const HTTP_METHODS = ['fetch', 'get', 'post', 'put', 'delete', 'patch'] as const; - -type HttpMethod = ValuesType; - -type AutoAbortedHttpMethod = ( - path: string, - options: Omit -) => ReturnType; - -export type AutoAbortedHttpService = Overwrite< - HttpStart, - Record ->; - export type UseAsync = ( fn: ({ http }: { http: AutoAbortedHttpService }) => Promise | undefined, dependencies: any[] ) => AsyncState; export const useAsync: UseAsync = (fn, dependencies) => { - const { - start: { - core: { http }, - }, - } = useProfilingDependencies(); + const [refreshId, setRefreshId] = useState(0); + + const refresh = useCallback(() => { + setRefreshId((id) => id + 1); + }, []); + const [asyncState, setAsyncState] = useState>({ status: AsyncStatus.Init, + refresh, }); const { data, error } = asyncState; - const controllerRef = useRef(new AbortController()); + const httpClient = useAutoAbortedHttpClient(dependencies); useEffect(() => { - controllerRef.current.abort(); - - controllerRef.current = new AbortController(); - - const autoAbortedMethods = {} as Record; - - for (const key of HTTP_METHODS) { - autoAbortedMethods[key] = (path, options) => { - return http[key](path, { ...options, signal: controllerRef.current.signal }).catch( - (err) => { - if (err.name === 'AbortError') { - // return never-resolving promise - return new Promise(() => {}); - } - throw err; - } - ); - }; - } - - const returnValue = fn({ http: { ...http, ...autoAbortedMethods } }); + const returnValue = fn({ http: httpClient }); if (returnValue === undefined) { setAsyncState({ status: AsyncStatus.Init, data: undefined, error: undefined, + refresh, }); return; } @@ -91,12 +59,14 @@ export const useAsync: UseAsync = (fn, dependencies) => { status: AsyncStatus.Loading, data, error, + refresh, }); returnValue.then((nextData) => { setAsyncState({ status: AsyncStatus.Settled, data: nextData, + refresh, }); }); @@ -107,17 +77,12 @@ export const useAsync: UseAsync = (fn, dependencies) => { setAsyncState({ status: AsyncStatus.Settled, error: nextError, + refresh, }); throw nextError; }); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [http, ...dependencies]); - - useEffect(() => { - return () => { - controllerRef.current.abort(); - }; - }, []); + }, [httpClient, refreshId, ...dependencies]); return asyncState; }; diff --git a/x-pack/plugins/profiling/public/hooks/use_auto_aborted_http_client.ts b/x-pack/plugins/profiling/public/hooks/use_auto_aborted_http_client.ts new file mode 100644 index 00000000000000..f88ca2f0f0b8b6 --- /dev/null +++ b/x-pack/plugins/profiling/public/hooks/use_auto_aborted_http_client.ts @@ -0,0 +1,70 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useEffect, useMemo, useRef } from 'react'; +import { Overwrite, ValuesType } from 'utility-types'; +import { HttpFetchOptions, HttpHandler, HttpStart } from '@kbn/core/public'; +import { useProfilingDependencies } from '../components/contexts/profiling_dependencies/use_profiling_dependencies'; + +const HTTP_METHODS = ['fetch', 'get', 'post', 'put', 'delete', 'patch'] as const; + +type HttpMethod = ValuesType; + +type AutoAbortedHttpMethod = ( + path: string, + options: Omit +) => ReturnType; + +export type AutoAbortedHttpService = Overwrite< + HttpStart, + Record +>; + +export function useAutoAbortedHttpClient(dependencies: any[]): AutoAbortedHttpService { + const controller = useRef(new AbortController()); + + const { + start: { + core: { http }, + }, + } = useProfilingDependencies(); + + const httpClient = useMemo(() => { + controller.current.abort(); + + controller.current = new AbortController(); + + const autoAbortedMethods = {} as Record; + + for (const key of HTTP_METHODS) { + autoAbortedMethods[key] = (path, options) => { + return http[key](path, { ...options, signal: controller.current.signal }).catch((err) => { + if (err.name === 'AbortError') { + // return never-resolving promise + return new Promise(() => {}); + } + throw err; + }); + }; + } + + return { + ...http, + ...autoAbortedMethods, + }; + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [http, ...dependencies]); + + useEffect(() => { + return () => { + controller.current.abort(); + }; + }, []); + + return httpClient; +} diff --git a/x-pack/plugins/profiling/public/plugin.tsx b/x-pack/plugins/profiling/public/plugin.tsx index ead023a079e29f..4875af624fb9b4 100644 --- a/x-pack/plugins/profiling/public/plugin.tsx +++ b/x-pack/plugins/profiling/public/plugin.tsx @@ -53,10 +53,10 @@ export class ProfilingPlugin implements Plugin { map(([_, kuery]) => { const sections: NavigationSection[] = [ { - // TODO: add beta badge to section label, needs support in Observability plugin label: i18n.translate('xpack.profiling.navigation.sectionLabel', { defaultMessage: 'Universal Profiling', }), + isBetaFeature: true, entries: links.map((link) => { return { app: 'profiling', @@ -83,7 +83,7 @@ export class ProfilingPlugin implements Plugin { appRoute: '/app/profiling', category: DEFAULT_APP_CATEGORIES.observability, deepLinks: links, - async mount({ element, history, theme$ }: AppMountParameters) { + async mount({ element, history, theme$, setHeaderActionMenu }: AppMountParameters) { const [coreStart, pluginsStart] = (await coreSetup.getStartServices()) as [ CoreStart, ProfilingPluginPublicStartDeps, @@ -111,6 +111,7 @@ export class ProfilingPlugin implements Plugin { pluginsSetup, history, theme$, + setHeaderActionMenu, }, element ); diff --git a/x-pack/plugins/profiling/public/routing/index.tsx b/x-pack/plugins/profiling/public/routing/index.tsx index d7b79abc0a9a7c..2c40a6d4ad3527 100644 --- a/x-pack/plugins/profiling/public/routing/index.tsx +++ b/x-pack/plugins/profiling/public/routing/index.tsx @@ -11,12 +11,13 @@ import * as t from 'io-ts'; import React from 'react'; import { TopNFunctionSortField, topNFunctionSortFieldRt } from '../../common/functions'; import { StackTracesDisplayOption, TopNType } from '../../common/stack_traces'; -import { FlameGraphComparisonMode } from '../../common/flamegraph'; +import { FlameGraphComparisonMode, FlameGraphNormalizationMode } from '../../common/flamegraph'; import { FlameGraphsView } from '../components/flame_graphs_view'; import { FunctionsView } from '../components/functions_view'; import { RedirectTo } from '../components/redirect_to'; import { RouteBreadcrumb } from '../components/route_breadcrumb'; import { StackTracesView } from '../components/stack_traces_view'; +import { NoDataPage } from '../components/no_data_page'; const routes = { '/': { @@ -31,6 +32,15 @@ const routes = { ), children: { + '/add-data-instructions': { + element: ( + + ), + }, '/': { children: { '/stacktraces/{topNType}': { @@ -101,19 +111,30 @@ const routes = { ), params: t.type({ - query: t.type({ - comparisonRangeFrom: t.string, - comparisonRangeTo: t.string, - comparisonKuery: t.string, - comparisonMode: t.union([ - t.literal(FlameGraphComparisonMode.Absolute), - t.literal(FlameGraphComparisonMode.Relative), - ]), - }), + query: t.intersection([ + t.type({ + comparisonRangeFrom: t.string, + comparisonRangeTo: t.string, + comparisonKuery: t.string, + comparisonMode: t.union([ + t.literal(FlameGraphComparisonMode.Absolute), + t.literal(FlameGraphComparisonMode.Relative), + ]), + }), + t.partial({ + normalizationMode: t.union([ + t.literal(FlameGraphNormalizationMode.Scale), + t.literal(FlameGraphNormalizationMode.Time), + ]), + baseline: toNumberRt, + comparison: toNumberRt, + }), + ]), }), defaults: { query: { comparisonMode: FlameGraphComparisonMode.Absolute, + normalizationMode: FlameGraphNormalizationMode.Time, }, }, }, diff --git a/x-pack/plugins/profiling/public/services.ts b/x-pack/plugins/profiling/public/services.ts index 4dcad550d0bbb4..edd8922ddd3b0a 100644 --- a/x-pack/plugins/profiling/public/services.ts +++ b/x-pack/plugins/profiling/public/services.ts @@ -9,7 +9,8 @@ import { getRoutePaths } from '../common'; import { BaseFlameGraph, createFlameGraph, ElasticFlameGraph } from '../common/flamegraph'; import { TopNFunctions } from '../common/functions'; import { TopNResponse } from '../common/topn'; -import { AutoAbortedHttpService } from './hooks/use_async'; +import type { SetupDataCollectionInstructions } from '../server/lib/setup/get_setup_instructions'; +import { AutoAbortedHttpService } from './hooks/use_auto_aborted_http_client'; export interface Services { fetchTopN: (params: { @@ -33,6 +34,13 @@ export interface Services { timeTo: number; kuery: string; }) => Promise; + fetchHasSetup: (params: { + http: AutoAbortedHttpService; + }) => Promise<{ has_setup: boolean; has_data: boolean }>; + postSetupResources: (params: { http: AutoAbortedHttpService }) => Promise; + setupDataCollectionInstructions: (params: { + http: AutoAbortedHttpService; + }) => Promise; } export function getServices(): Services { @@ -40,45 +48,50 @@ export function getServices(): Services { return { fetchTopN: async ({ http, type, timeFrom, timeTo, kuery }) => { - try { - const query: HttpFetchQuery = { - timeFrom, - timeTo, - kuery, - }; - return await http.get(`${paths.TopN}/${type}`, { query }); - } catch (e) { - return e; - } + const query: HttpFetchQuery = { + timeFrom, + timeTo, + kuery, + }; + return (await http.get(`${paths.TopN}/${type}`, { query })) as Promise; }, fetchTopNFunctions: async ({ http, timeFrom, timeTo, startIndex, endIndex, kuery }) => { - try { - const query: HttpFetchQuery = { - timeFrom, - timeTo, - startIndex, - endIndex, - kuery, - }; - return await http.get(paths.TopNFunctions, { query }); - } catch (e) { - return e; - } + const query: HttpFetchQuery = { + timeFrom, + timeTo, + startIndex, + endIndex, + kuery, + }; + return (await http.get(paths.TopNFunctions, { query })) as Promise; }, fetchElasticFlamechart: async ({ http, timeFrom, timeTo, kuery }) => { - try { - const query: HttpFetchQuery = { - timeFrom, - timeTo, - kuery, - }; - const baseFlamegraph = (await http.get(paths.Flamechart, { query })) as BaseFlameGraph; - return createFlameGraph(baseFlamegraph); - } catch (e) { - return e; - } + const query: HttpFetchQuery = { + timeFrom, + timeTo, + kuery, + }; + const baseFlamegraph = (await http.get(paths.Flamechart, { query })) as BaseFlameGraph; + return createFlameGraph(baseFlamegraph); + }, + fetchHasSetup: async ({ http }) => { + const hasSetup = (await http.get(paths.HasSetupESResources, {})) as { + has_setup: boolean; + has_data: boolean; + }; + return hasSetup; + }, + postSetupResources: async ({ http }) => { + await http.post(paths.HasSetupESResources, {}); + }, + setupDataCollectionInstructions: async ({ http }) => { + const instructions = (await http.get( + paths.SetupDataCollectionInstructions, + {} + )) as SetupDataCollectionInstructions; + return instructions; }, }; } diff --git a/x-pack/plugins/profiling/public/utils/get_flamegraph_model/index.ts b/x-pack/plugins/profiling/public/utils/get_flamegraph_model/index.ts index 7609b724e05475..616965dba3b194 100644 --- a/x-pack/plugins/profiling/public/utils/get_flamegraph_model/index.ts +++ b/x-pack/plugins/profiling/public/utils/get_flamegraph_model/index.ts @@ -5,9 +5,9 @@ * 2.0. */ import { ColumnarViewModel } from '@elastic/charts'; -import d3 from 'd3'; -import { compact, sum, uniqueId, range } from 'lodash'; import { i18n } from '@kbn/i18n'; +import d3 from 'd3'; +import { compact, range, sum, uniqueId } from 'lodash'; import { createColumnarViewModel } from '../../../common/columnar_view_model'; import { ElasticFlameGraph, FlameGraphComparisonMode } from '../../../common/flamegraph'; import { FRAME_TYPE_COLOR_MAP, rgbToRGBA } from '../../../common/frame_type_colors'; @@ -31,6 +31,8 @@ export function getFlamegraphModel({ colorDanger, colorNeutral, comparisonMode, + comparison, + baseline, }: { primaryFlamegraph?: ElasticFlameGraph; comparisonFlamegraph?: ElasticFlameGraph; @@ -38,6 +40,8 @@ export function getFlamegraphModel({ colorDanger: string; colorNeutral: string; comparisonMode: FlameGraphComparisonMode; + baseline?: number; + comparison?: number; }): { key: string; viewModel: ColumnarViewModel; @@ -133,7 +137,7 @@ export function getFlamegraphModel({ const weightComparisonSide = comparisonMode === FlameGraphComparisonMode.Relative ? 1 - : primaryFlamegraph.TotalSeconds / comparisonFlamegraph.TotalSeconds; + : (comparison ?? 1) / (baseline ?? 1); primaryFlamegraph.ID.forEach((nodeID, index) => { const samples = primaryFlamegraph.CountInclusive[index]; diff --git a/x-pack/plugins/profiling/server/lib/setup/get_setup_instructions.ts b/x-pack/plugins/profiling/server/lib/setup/get_setup_instructions.ts new file mode 100644 index 00000000000000..8a9540e1fd583e --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/get_setup_instructions.ts @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { SavedObjectsClientContract } from '@kbn/core/server'; +import { PackagePolicyClient } from '@kbn/fleet-plugin/server'; +import { getApmPolicy } from './steps/get_apm_policy'; + +export interface SetupDataCollectionInstructions { + variables: { + apmServerUrl: string; + secretToken: string; + }; +} + +export async function getSetupInstructions({ + packagePolicyClient, + soClient, +}: { + packagePolicyClient: PackagePolicyClient; + soClient: SavedObjectsClientContract; +}): Promise { + const apmPolicy = await getApmPolicy({ packagePolicyClient, soClient }); + + if (!apmPolicy) { + throw new Error('Could not find APM policy'); + } + + const apmServerVars = apmPolicy.inputs[0].vars; + + return { + variables: { + apmServerUrl: apmServerVars!.url.value!, + secretToken: apmServerVars!.secret_token.value!, + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/has_profiling_data.ts b/x-pack/plugins/profiling/server/lib/setup/has_profiling_data.ts new file mode 100644 index 00000000000000..d4478ee6c70ed7 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/has_profiling_data.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ProfilingESClient } from '../../utils/create_profiling_es_client'; + +export async function hasProfilingData({ + client, +}: { + client: ProfilingESClient; +}): Promise { + const hasProfilingDataResponse = await client.search('has_any_profiling_data', { + index: 'profiling*', + size: 0, + track_total_hits: 1, + terminate_after: 1, + }); + + return hasProfilingDataResponse.hits.total.value > 0; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/mappings/README.md b/x-pack/plugins/profiling/server/lib/setup/mappings/README.md new file mode 100644 index 00000000000000..cf72b0ec7c650a --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/mappings/README.md @@ -0,0 +1,53 @@ +## Universal Profiling mappings + +### Server routes + +* Check if ES setup is done + + curl -H "content-type: application/json" -u \ + -XGET "http://localhost:5601/api/profiling/v1/setup/es_resources" + +* Apply the ES setup (mappings + Fleet policy) + + curl -H "content-type: application/json" -u -H "kbn-xsrf: reporting" \ + -XPOST "http://localhost:5601/api/profiling/v1/setup/es_resources" + +* check data has been ingested + + curl -H "content-type: application/json" -u \ + -XGET "http://localhost:5601/api/profiling/v1/setup/has_data" + + +### Testing in Cloud + +Be sure to have configured `EC_API_KEY` env var with an API key for Cloud (ESS). + +Build and push a Kibana image with the latest changes. +Choose a unique identifier for the build, then: + +``` +node scripts/build --docker-images --skip-docker-ubi --skip-docker-ubuntu +docker tag docker.elastic.co/kibana-ci/kibana-cloud:8.7.0-SNAPSHOT docker.elastic.co/observability-ci/kibana: +docker push docker.elastic.co/observability-ci/kibana: +``` + +Then, within `apm-server` repo: + +``` +cd testing/cloud +make +vim docker_image.auto.tfvars +``` + +Replace the `"kibana"` key in `docker_image_tag_override=` map with your unique identifier tag from previous step. +Now you can run: + +``` +terraform init +terraform apply -var-file docker_image.auto.tfvars +``` + +and once completed, you'll see the output with information on how to access the deployment. + +When changing code in Kibana, you don't need to tear down the Terraform deployment, simply update the `docker_image.auto.tfvars` +with the new tag and run `terraform apply ...` as above: this will update Kibana. diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/catch_resource_already_exists_exception.ts b/x-pack/plugins/profiling/server/lib/setup/steps/catch_resource_already_exists_exception.ts new file mode 100644 index 00000000000000..eaea6c2708342b --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/catch_resource_already_exists_exception.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isResponseError } from '@kbn/es-errors'; + +export function catchResourceAlreadyExistsException(error: any) { + if (isResponseError(error) && error.body?.error?.type === 'resource_already_exists_exception') { + return Promise.resolve(); + } + + return Promise.reject(error); +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_events.json b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_events.json new file mode 100644 index 00000000000000..d1df1d206b60f2 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_events.json @@ -0,0 +1,76 @@ +{ + "settings": { + "index": { + "number_of_shards": "4", + "max_result_window": 150000, + "refresh_interval": "10s", + "sort": { + "field": [ + "service.name", + "@timestamp", + "orchestrator.resource.name", + "container.name", + "process.thread.name", + "host.id" + ] + } + }, + "codec": "best_compression" + }, + "mappings": { + "_source": { + "enabled": false + }, + "properties": { + "ecs.version": { + "type": "keyword", + "index": true + }, + "service.name": { + "type": "keyword" + }, + "@timestamp": { + "type": "date", + "format": "epoch_second" + }, + "host.id": { + "type": "keyword" + }, + "Stacktrace.id": { + "type": "keyword", + "index": false + }, + "orchestrator.resource.name": { + "type": "keyword" + }, + "container.name": { + "type": "keyword" + }, + "process.thread.name": { + "type": "keyword" + }, + "Stacktrace.count": { + "type": "short", + "index": false + }, + "agent.version": { + "type": "keyword" + }, + "host.ip": { + "type": "ip" + }, + "host.ipstring": { + "type": "keyword" + }, + "host.name": { + "type": "keyword" + }, + "os.kernel": { + "type": "keyword" + }, + "tags": { + "type": "keyword" + } + } + } +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_executables.json b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_executables.json new file mode 100644 index 00000000000000..f80cf8a92a26f8 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_executables.json @@ -0,0 +1,35 @@ +{ + "settings": { + "index": { + "refresh_interval": "10s" + } + }, + "mappings": { + "_source": { + "mode": "synthetic" + }, + "properties": { + "ecs.version": { + "type": "keyword", + "index": true + }, + "Executable.build.id": { + "type": "keyword", + "index": true + }, + "Executable.file.name": { + "type": "keyword", + "index": true + }, + "@timestamp": { + "type": "date", + "format": "epoch_second" + }, + "Symbolization.lastprocessed": { + "type": "date", + "format": "epoch_second", + "index": false + } + } + } +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_ilm.json b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_ilm.json new file mode 100644 index 00000000000000..36741bc9310a01 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_ilm.json @@ -0,0 +1,9 @@ +{ + "settings": { + "index": { + "lifecycle": { + "name": "profiling" + } + } + } +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_stackframes.json b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_stackframes.json new file mode 100644 index 00000000000000..67fcf4a80820a7 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_stackframes.json @@ -0,0 +1,43 @@ +{ + "settings": { + "index": { + "number_of_shards": 16, + "refresh_interval": "10s" + } + }, + "mappings": { + "_source": { + "enabled": true + }, + "properties": { + "ecs.version": { + "type": "keyword", + "index": true, + "doc_values": false, + "store": false + }, + "Stackframe.line.number": { + "type": "integer", + "index": false, + "doc_values": false, + "store": false + }, + "Stackframe.file.name": { + "type": "keyword", + "index": false, + "doc_values": false, + "store": false + }, + "Stackframe.function.name": { + "type": "keyword", + "index": false + }, + "Stackframe.function.offset": { + "type": "integer", + "index": false, + "doc_values": false, + "store": false + } + } + } +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_stacktraces.json b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_stacktraces.json new file mode 100644 index 00000000000000..a72db59a9cf6ce --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/component_template_profiling_stacktraces.json @@ -0,0 +1,27 @@ +{ + "settings": { + "index": { + "number_of_shards": 16, + "refresh_interval": "10s" + } + }, + "mappings": { + "_source": { + "mode": "synthetic" + }, + "properties": { + "ecs.version": { + "type": "keyword", + "index": true + }, + "Stacktrace.frame.ids": { + "type": "keyword", + "index": false + }, + "Stacktrace.frame.types": { + "type": "keyword", + "index": false + } + } + } +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_apm_package_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_apm_package_step.ts new file mode 100644 index 00000000000000..ad31b85baef194 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_apm_package_step.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { installPackage, getInstallation } from '@kbn/fleet-plugin/server/services/epm/packages'; +import { + fetchFindLatestPackageOrThrow, + pkgToPkgKey, +} from '@kbn/fleet-plugin/server/services/epm/registry'; +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; + +export function getApmPackageStep({ + client, + soClient, + spaceId, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + const esClient = client.getEsClient(); + return { + name: 'apm_package', + hasCompleted: async () => { + const installation = await getInstallation({ + pkgName: 'apm', + savedObjectsClient: soClient, + }); + + return !!installation; + }, + init: async () => { + const { name, version } = await fetchFindLatestPackageOrThrow('apm'); + + await installPackage({ + installSource: 'registry', + esClient, + savedObjectsClient: soClient, + pkgkey: pkgToPkgKey({ name, version }), + spaceId, + force: true, + }); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_apm_policy.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_apm_policy.ts new file mode 100644 index 00000000000000..ee7a5913e1a576 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_apm_policy.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { SavedObjectsClientContract } from '@kbn/core/server'; +import { PackagePolicyClient } from '@kbn/fleet-plugin/server'; + +export const ELASTIC_CLOUD_APM_POLICY = 'elastic-cloud-apm'; + +export async function getApmPolicy({ + packagePolicyClient, + soClient, +}: { + packagePolicyClient: PackagePolicyClient; + soClient: SavedObjectsClientContract; +}) { + return await packagePolicyClient.get(soClient, ELASTIC_CLOUD_APM_POLICY); +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_cluster_settings_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_cluster_settings_step.ts new file mode 100644 index 00000000000000..b281745552eb25 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_cluster_settings_step.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; + +const MAX_BUCKETS = 150000; + +export function getClusterSettingsStep({ + client, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + return { + name: 'cluster_settings', + hasCompleted: async () => { + const settings = await client.getEsClient().cluster.getSettings({}); + + return settings.persistent.search?.max_buckets === MAX_BUCKETS.toString(); + }, + init: async () => { + await client.getEsClient().cluster.putSettings({ + persistent: { + search: { + max_buckets: MAX_BUCKETS, + }, + }, + }); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_component_templates_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_component_templates_step.ts new file mode 100644 index 00000000000000..3a37e3e3970d2a --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_component_templates_step.ts @@ -0,0 +1,86 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { IndicesIndexState } from '@elastic/elasticsearch/lib/api/types'; +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; +import componentTemplateProfilingIlm from './component_template_profiling_ilm.json'; +import componentTemplateProfilingEvents from './component_template_profiling_events.json'; +import componentTemplateProfilingExecutables from './component_template_profiling_executables.json'; +import componentTemplateProfilingStackframes from './component_template_profiling_stackframes.json'; +import componentTemplateProfilingStacktraces from './component_template_profiling_stacktraces.json'; + +export enum ProfilingComponentTemplateName { + Ilm = 'profiling-ilm', + Events = 'profiling-events', + Executables = 'profiling-executables', + Stackframes = 'profiling-stackframes', + Stacktraces = 'profiling-stacktraces', +} + +export function getComponentTemplatesStep({ + client, + logger, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + const esClient = client.getEsClient(); + + return { + name: 'component_templates', + hasCompleted: async () => { + return Promise.all( + [ + ProfilingComponentTemplateName.Ilm, + ProfilingComponentTemplateName.Events, + ProfilingComponentTemplateName.Executables, + ProfilingComponentTemplateName.Stackframes, + ProfilingComponentTemplateName.Stacktraces, + ].map((componentTemplateName) => + esClient.cluster.getComponentTemplate({ + name: componentTemplateName, + }) + ) + ).then( + () => Promise.resolve(true), + (error) => { + logger.debug('Some component templates could not be fetched'); + logger.debug(error); + return Promise.resolve(false); + } + ); + }, + init: async () => { + await Promise.all([ + esClient.cluster.putComponentTemplate({ + name: ProfilingComponentTemplateName.Ilm, + create: false, + template: componentTemplateProfilingIlm, + }), + esClient.cluster.putComponentTemplate({ + name: ProfilingComponentTemplateName.Events, + create: false, + template: componentTemplateProfilingEvents as IndicesIndexState, + _meta: { + description: 'Mappings for profiling events data stream', + }, + }), + esClient.cluster.putComponentTemplate({ + name: ProfilingComponentTemplateName.Executables, + create: false, + template: componentTemplateProfilingExecutables as IndicesIndexState, + }), + esClient.cluster.putComponentTemplate({ + name: ProfilingComponentTemplateName.Stackframes, + create: false, + template: componentTemplateProfilingStackframes as IndicesIndexState, + }), + esClient.cluster.putComponentTemplate({ + name: ProfilingComponentTemplateName.Stacktraces, + create: false, + template: componentTemplateProfilingStacktraces as IndicesIndexState, + }), + ]); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_create_events_data_streams.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_create_events_data_streams.ts new file mode 100644 index 00000000000000..16cdee47f000dd --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_create_events_data_streams.ts @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; +import { catchResourceAlreadyExistsException } from './catch_resource_already_exists_exception'; + +function getEventDataStreamNames() { + const subSampledIndicesIdx = Array.from(Array(11).keys(), (item: number) => item + 1); + const subSampledIndexName = (pow: number): string => { + return `profiling-events-5pow${String(pow).padStart(2, '0')}`; + }; + // Generate all the possible index template names + const eventsIndices = ['profiling-events-all'].concat( + subSampledIndicesIdx.map((pow) => subSampledIndexName(pow)) + ); + + return eventsIndices; +} + +export function getCreateEventsDataStreamsStep({ + client, + logger, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + const esClient = client.getEsClient(); + + const dataStreamNames = getEventDataStreamNames(); + + return { + name: 'create_events_data_streams', + hasCompleted: async () => { + const dataStreams = await esClient.indices.getDataStream({ + name: 'profiling-events*', + }); + + const allDataStreams = dataStreams.data_streams.map((dataStream) => dataStream.name); + + const missingDataStreams = dataStreamNames.filter( + (eventIndex) => !allDataStreams.includes(eventIndex) + ); + + if (missingDataStreams.length > 0) { + logger.debug(`Missing event indices: ${missingDataStreams.join(', ')}`); + } + + return missingDataStreams.length === 0; + }, + init: async () => { + await Promise.all( + dataStreamNames.map((dataStreamName) => + esClient.indices + .createDataStream({ + name: dataStreamName, + }) + .catch(catchResourceAlreadyExistsException) + ) + ); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_create_indices_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_create_indices_step.ts new file mode 100644 index 00000000000000..6bfca0fbe3a51a --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_create_indices_step.ts @@ -0,0 +1,321 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { MappingSourceField } from '@elastic/elasticsearch/lib/api/types'; +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; +import { catchResourceAlreadyExistsException } from './catch_resource_already_exists_exception'; + +const SQ_EXECUTABLES_INDEX = 'profiling-sq-executables'; +const LEAFFRAMES_INDEX = 'profiling-sq-leafframes'; +const SYMBOLS_INDEX = 'profiling-symbols'; +const ILM_LOCK_INDEX = '.profiling-ilm-lock'; + +const getKeyValueIndices = () => { + const kvIndices = ['profiling-stacktraces', 'profiling-stackframes', 'profiling-executables']; + + const pairs: Array<{ index: string; alias: string }> = kvIndices.flatMap((index) => { + return [ + { index: `${index}-000001`, alias: index }, + { index: `${index}-000002`, alias: `${index}-next` }, + ]; + }); + + return pairs; +}; + +export function getCreateIndicesStep({ + client, + logger, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + const esClient = client.getEsClient(); + const keyValueIndices = getKeyValueIndices(); + + return { + name: 'create_indices', + hasCompleted: async () => { + const nonKvIndices = [SQ_EXECUTABLES_INDEX, LEAFFRAMES_INDEX, SYMBOLS_INDEX, ILM_LOCK_INDEX]; + + const results = await Promise.all([ + esClient.cat + .indices({ + index: keyValueIndices + .map(({ index }) => index) + .concat(nonKvIndices) + .map((index) => index + '*') + .join(','), + format: 'json', + }) + .then((response) => { + const allIndices = response.map((index) => index.index!); + + const missingIndices = keyValueIndices + .map(({ index }) => index) + .concat(nonKvIndices) + .filter((index) => !allIndices.includes(index)); + + if (missingIndices.length) { + logger.debug(`Missing indices: ${missingIndices.join(',')}`); + } + + return missingIndices.length === 0; + }) + .catch((error) => { + logger.debug(`Failed fetching indices: ${error}`); + return Promise.resolve(false); + }), + esClient.cat + .aliases({ + name: keyValueIndices.map(({ alias }) => alias + '*').join(','), + format: 'json', + }) + .then((response) => { + const allAliases = response.map((index) => index.alias!); + + const missingAliases = keyValueIndices + .map(({ alias }) => alias) + .filter((alias) => !allAliases.includes(alias)); + + if (missingAliases.length) { + logger.debug(`Missing aliases: ${missingAliases.join(',')}`); + } + + return missingAliases.length === 0; + }) + .catch((error) => { + logger.debug(`Failed fetching aliases: ${error}`); + return Promise.resolve(false); + }), + ]); + + return results.every(Boolean); + }, + init: async () => { + await Promise.all([ + ...keyValueIndices.map(({ index, alias }) => { + return esClient.indices + .create({ + index, + aliases: { + [alias]: { + is_write_index: true, + }, + }, + }) + .catch(catchResourceAlreadyExistsException); + }), + esClient.indices + .create({ + index: SQ_EXECUTABLES_INDEX, + settings: { + index: { + refresh_interval: '10s', + }, + }, + mappings: { + _source: { + mode: 'synthetic', + } as MappingSourceField, + properties: { + 'ecs.version': { + type: 'keyword', + index: true, + }, + 'Executable.file.id': { + type: 'keyword', + index: false, + }, + 'Time.created': { + type: 'date', + index: true, + }, + 'Symbolization.time.next': { + type: 'date', + index: true, + }, + 'Symbolization.retries': { + type: 'short', + index: true, + }, + }, + }, + }) + .catch(catchResourceAlreadyExistsException), + esClient.indices + .create({ + index: LEAFFRAMES_INDEX, + settings: { + index: { + refresh_interval: '10s', + }, + }, + mappings: { + _source: { + mode: 'synthetic', + } as MappingSourceField, + properties: { + 'ecs.version': { + type: 'keyword', + index: true, + }, + 'Stacktrace.frame.id': { + type: 'keyword', + index: false, + }, + 'Time.created': { + type: 'date', + index: true, + }, + 'Symbolization.time.next': { + type: 'date', + index: true, + }, + 'Symbolization.retries': { + type: 'short', + index: true, + }, + }, + }, + }) + .catch(catchResourceAlreadyExistsException), + esClient.indices + .create({ + index: SYMBOLS_INDEX, + settings: { + index: { + number_of_shards: '16', + refresh_interval: '10s', + }, + }, + mappings: { + _source: { + enabled: true, + } as MappingSourceField, + properties: { + 'ecs.version': { + type: 'keyword', + index: true, + doc_values: false, + store: false, + }, + 'Symbol.function.name': { + // name of the function + type: 'keyword', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.file.name': { + // file path + type: 'keyword', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.call.file.name': { + // (for inlined functions) file path where inline function was called + type: 'keyword', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.call.line': { + // (for inlined functions) line where inline function was called + type: 'integer', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.function.line': { + // function start line (only available from DWARF). Currently unused. + type: 'integer', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.depth': { + // inline depth + type: 'integer', + index: false, + doc_values: false, + store: false, + }, + // pairs of (32bit PC offset, 32bit line number) followed by 64bit PC range base at the end. + // To find line number for a given PC: find lowest offset such as offsetBase+PC >= offset, then read corresponding line number. + // offsetBase could seemingly be available from exec_pc_range (it's the first value of the pair), but it's not the case. + // Ranges are stored as points, which cannot be retrieve when disabling _source. + // See https://www.elastic.co/guide/en/elasticsearch/reference/current/point.html . + 'Symbol.linetable.base': { + // Linetable: base for offsets (64bit PC range base) + type: 'unsigned_long', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.linetable.length': { + // Linetable: length of range (PC range is [base, base+length)) + type: 'unsigned_long', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.linetable.offsets': { + // Linetable: concatenated offsets (each value is ULEB128encoded) + type: 'keyword', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.linetable.lines': { + // Linetable: concatenated lines (each value is ULEB128 encoded) + type: 'keyword', + index: false, + doc_values: false, + store: false, + }, + 'Symbol.file.id': { + // fileID. used for deletion and Symbol.exec.pcrange collision handling on symbolization + type: 'keyword', + index: true, + doc_values: false, + store: false, + }, + 'Symbol.exec.pcrange': { + // PC ranges [begin, end) + type: 'ip_range', + index: true, + doc_values: false, + store: false, + }, + }, + }, + }) + .catch(catchResourceAlreadyExistsException), + esClient.indices + .create({ + index: ILM_LOCK_INDEX, + settings: { + index: { + hidden: true, + }, + }, + mappings: { + properties: { + '@timestamp': { + type: 'date', + format: 'epoch_second', + }, + phase: { + type: 'keyword', + }, + }, + }, + }) + .catch(catchResourceAlreadyExistsException), + ]); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_fleet_policy_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_fleet_policy_step.ts new file mode 100644 index 00000000000000..7f7222a8a6e9d6 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_fleet_policy_step.ts @@ -0,0 +1,106 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ElasticsearchClient } from '@kbn/core/server'; +import { merge, omit } from 'lodash'; +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; +import { getApmPolicy } from './get_apm_policy'; + +async function createIngestAPIKey(esClient: ElasticsearchClient) { + const apiKeyResponse = await esClient.security.createApiKey({ + name: 'profiling-manager', + role_descriptors: { + profiling_manager: { + indices: [ + { + names: ['profiling-*', '.profiling-*'], + privileges: [ + 'read', + 'create_doc', + 'create', + 'write', + 'index', + 'create_index', + 'view_index_metadata', + 'manage', + ], + }, + ], + cluster: ['monitor'], + }, + }, + }); + + return atob(apiKeyResponse.encoded); +} + +export function getFleetPolicyStep({ + client, + soClient, + logger, + packagePolicyClient, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + const esClient = client.getEsClient(); + return { + name: 'fleet_policy', + hasCompleted: async () => { + try { + const apmPolicy = await getApmPolicy({ packagePolicyClient, soClient }); + + return apmPolicy && apmPolicy?.inputs[0].config?.['apm-server'].value.profiling; + } catch (error) { + logger.debug('Could not fetch fleet policy'); + logger.debug(error); + return false; + } + }, + init: async () => { + const apmPolicyApiKey = await createIngestAPIKey(client.getEsClient()); + + const profilingApmConfig = { + profiling: { + enabled: true, + elasticsearch: { + api_key: apmPolicyApiKey, + }, + metrics: { + elasticsearch: { + hosts: [ + 'https://1b6c02856ea642a6ac14499b01507233.us-east-2.aws.elastic-cloud.com:443', + ], + api_key: 'woq-IoMBRbbiEbPugtWW:_iBmc1PdSout7sf5FCkEpA', + }, + }, + keyvalue_retention: { + // 60 days + age: '1440h', + // 200 Gib + size_bytes: 200 * 1024 * 1024 * 1024, + execution_interval: '12h', + }, + }, + }; + + const apmPolicy = await getApmPolicy({ packagePolicyClient, soClient }); + + if (!apmPolicy) { + throw new Error(`Could not find APM policy`); + } + + const modifiedPolicyInputs = apmPolicy.inputs.map((input) => { + return input.type === 'apm' + ? merge({}, input, { config: { 'apm-server': { value: profilingApmConfig } } }) + : input; + }); + + await packagePolicyClient.update(soClient, esClient, apmPolicy.id, { + ...omit(apmPolicy, 'id', 'revision', 'updated_at', 'updated_by'), + inputs: modifiedPolicyInputs, + }); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_ilm_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_ilm_step.ts new file mode 100644 index 00000000000000..04d57b3c11d155 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_ilm_step.ts @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; +import { catchResourceAlreadyExistsException } from './catch_resource_already_exists_exception'; +import ilmProfiling from './ilm_profiling.json'; + +const LIFECYCLE_POLICY_NAME = 'profiling'; + +export function getIlmStep({ + client, + logger, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + const esClient = client.getEsClient(); + + return { + name: 'ilm', + hasCompleted: () => { + return esClient.ilm.getLifecycle({ name: LIFECYCLE_POLICY_NAME }).then( + () => { + return Promise.resolve(true); + }, + (error) => { + logger.debug('ILM policy not installed'); + logger.debug(error); + return Promise.resolve(false); + } + ); + }, + init: async () => { + await esClient.ilm + .putLifecycle({ + name: LIFECYCLE_POLICY_NAME, + policy: ilmProfiling, + }) + .catch(catchResourceAlreadyExistsException); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_index_templates_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_index_templates_step.ts new file mode 100644 index 00000000000000..2e6fd0bec1f56a --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_index_templates_step.ts @@ -0,0 +1,80 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; +import { ProfilingComponentTemplateName } from './get_component_templates_step'; + +enum ProfilingIndexTemplate { + Events = 'profiling-events', + Executables = 'profiling-executables', + Stacktraces = 'profiling-stacktraces', + Stackframes = 'profiling-stackframes', +} + +export function getIndexTemplatesStep({ + client, + logger, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + const esClient = client.getEsClient(); + + return { + name: 'index_templates', + hasCompleted: async () => { + return Promise.all( + [ + ProfilingIndexTemplate.Events, + ProfilingIndexTemplate.Executables, + ProfilingIndexTemplate.Stacktraces, + ProfilingIndexTemplate.Stackframes, + ].map((indexTemplateName) => + esClient.indices.getIndexTemplate({ + name: indexTemplateName, + }) + ) + ).then( + () => Promise.resolve(true), + (error) => { + logger.debug('Some index templates could not be fetched'); + logger.debug(error); + return Promise.resolve(false); + } + ); + }, + init: async () => { + await Promise.all([ + esClient.indices.putIndexTemplate({ + name: ProfilingIndexTemplate.Events, + create: false, + index_patterns: [ProfilingIndexTemplate.Events + '*'], + data_stream: { + hidden: false, + }, + composed_of: [ProfilingComponentTemplateName.Events, ProfilingComponentTemplateName.Ilm], + priority: 100, + _meta: { + description: `Index template for ${ProfilingIndexTemplate.Events}`, + }, + }), + ...[ + ProfilingIndexTemplate.Executables, + ProfilingIndexTemplate.Stacktraces, + ProfilingIndexTemplate.Stackframes, + ].map((indexTemplateName) => { + return esClient.indices.putIndexTemplate({ + name: indexTemplateName, + // Don't fail if the index template already exists, simply overwrite the format + create: false, + index_patterns: [indexTemplateName + '*'], + composed_of: [indexTemplateName], + _meta: { + description: `Index template for ${indexTemplateName}`, + }, + }); + }), + ]); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_is_cloud_enabled_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_is_cloud_enabled_step.ts new file mode 100644 index 00000000000000..920317eb47974f --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_is_cloud_enabled_step.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; + +export function getIsCloudEnabledStep({ + isCloudEnabled, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + return { + name: 'is_cloud', + hasCompleted: async () => { + return isCloudEnabled; + }, + init: async () => { + if (!isCloudEnabled) { + throw new Error(`Universal Profiling is only available on Elastic Cloud.`); + } + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/get_security_step.ts b/x-pack/plugins/profiling/server/lib/setup/steps/get_security_step.ts new file mode 100644 index 00000000000000..c3ae1a41488a63 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/get_security_step.ts @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; + +const PROFILING_READER_ROLE_NAME = 'profiling-reader'; + +export function getSecurityStep({ + client, + logger, +}: ProfilingSetupStepFactoryOptions): ProfilingSetupStep { + const esClient = client.getEsClient(); + + return { + name: 'security', + hasCompleted: () => { + return esClient.security + .getRole({ + name: PROFILING_READER_ROLE_NAME, + }) + .then( + () => { + return Promise.resolve(true); + }, + (error) => { + logger.debug('Could not fetch profiling-reader role'); + logger.debug(error); + return Promise.resolve(false); + } + ); + }, + init: async () => { + await esClient.security.putRole({ + name: PROFILING_READER_ROLE_NAME, + indices: [ + { + names: ['profiling-*'], + privileges: ['read', 'view_index_metadata'], + }, + ], + cluster: ['monitor'], + }); + }, + }; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/ilm_profiling.json b/x-pack/plugins/profiling/server/lib/setup/steps/ilm_profiling.json new file mode 100644 index 00000000000000..0d39bf08b0a02d --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/ilm_profiling.json @@ -0,0 +1,35 @@ +{ + "phases": { + "hot": { + "min_age": "0ms", + "actions": { + "rollover": { + "max_primary_shard_size": "50gb", + "max_age": "7d" + }, + "set_priority": { + "priority": 100 + } + } + }, + "warm": { + "min_age": "30d", + "actions": { + "set_priority": { + "priority": 50 + }, + "shrink": { + "number_of_shards": 2 + } + } + }, + "delete": { + "min_age": "60d", + "actions": { + "delete": { + "delete_searchable_snapshot": true + } + } + } + } +} diff --git a/x-pack/plugins/profiling/server/lib/setup/steps/index.ts b/x-pack/plugins/profiling/server/lib/setup/steps/index.ts new file mode 100644 index 00000000000000..b0c5bbf0a50e7d --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/steps/index.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getClusterSettingsStep } from './get_cluster_settings_step'; +import { ProfilingSetupStep, ProfilingSetupStepFactoryOptions } from '../types'; +import { getComponentTemplatesStep } from './get_component_templates_step'; +import { getIlmStep } from './get_ilm_step'; +import { getIndexTemplatesStep } from './get_index_templates_step'; +import { getFleetPolicyStep } from './get_fleet_policy_step'; +import { getSecurityStep } from './get_security_step'; +import { getApmPackageStep } from './get_apm_package_step'; +import { getCreateEventsDataStreamsStep } from './get_create_events_data_streams'; +import { getCreateIndicesStep } from './get_create_indices_step'; +import { getIsCloudEnabledStep } from './get_is_cloud_enabled_step'; + +export function getProfilingSetupSteps( + options: ProfilingSetupStepFactoryOptions +): ProfilingSetupStep[] { + return [ + getIsCloudEnabledStep(options), + getApmPackageStep(options), + getClusterSettingsStep(options), + getIlmStep(options), + getComponentTemplatesStep(options), + getIndexTemplatesStep(options), + getCreateEventsDataStreamsStep(options), + getCreateIndicesStep(options), + getSecurityStep(options), + getFleetPolicyStep(options), + ]; +} diff --git a/x-pack/plugins/profiling/server/lib/setup/types.ts b/x-pack/plugins/profiling/server/lib/setup/types.ts new file mode 100644 index 00000000000000..65a0ae684052b6 --- /dev/null +++ b/x-pack/plugins/profiling/server/lib/setup/types.ts @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { SavedObjectsClientContract } from '@kbn/core/server'; +import { PackagePolicyClient } from '@kbn/fleet-plugin/server'; +import { Logger } from '@kbn/logging'; +import { ProfilingESClient } from '../../utils/create_profiling_es_client'; + +export interface ProfilingSetupStep { + name: string; + init: () => Promise; + hasCompleted: () => Promise; +} + +export interface ProfilingSetupStepFactoryOptions { + client: ProfilingESClient; + soClient: SavedObjectsClientContract; + packagePolicyClient: PackagePolicyClient; + logger: Logger; + spaceId: string; + isCloudEnabled: boolean; +} diff --git a/x-pack/plugins/profiling/server/plugin.ts b/x-pack/plugins/profiling/server/plugin.ts index 923f87a87267d9..6807f48fdd5d0b 100644 --- a/x-pack/plugins/profiling/server/plugin.ts +++ b/x-pack/plugins/profiling/server/plugin.ts @@ -59,10 +59,15 @@ export class ProfilingPlugin setup: deps, }, services: { - createProfilingEsClient: ({ request, esClient: defaultEsClient }) => { - const esClient = profilingSpecificEsClient - ? profilingSpecificEsClient.asScoped(request).asInternalUser - : defaultEsClient; + createProfilingEsClient: ({ + request, + esClient: defaultEsClient, + useDefaultAuth = false, + }) => { + const esClient = + profilingSpecificEsClient && !useDefaultAuth + ? profilingSpecificEsClient.asScoped(request).asInternalUser + : defaultEsClient; return createProfilingEsClient({ request, esClient }); }, diff --git a/x-pack/plugins/profiling/server/routes/index.ts b/x-pack/plugins/profiling/server/routes/index.ts index a9bd74a7e9bf5f..245a0e5925365c 100644 --- a/x-pack/plugins/profiling/server/routes/index.ts +++ b/x-pack/plugins/profiling/server/routes/index.ts @@ -5,21 +5,19 @@ * 2.0. */ -import type { IRouter, Logger } from '@kbn/core/server'; -import type { KibanaRequest } from '@kbn/core-http-server'; import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; +import type { KibanaRequest } from '@kbn/core-http-server'; +import type { IRouter, Logger } from '@kbn/core/server'; import { ProfilingPluginSetupDeps, ProfilingPluginStartDeps, ProfilingRequestHandlerContext, } from '../types'; import { ProfilingESClient } from '../utils/create_profiling_es_client'; - import { registerCacheExecutablesRoute, registerCacheStackFramesRoute } from './cache'; - import { registerFlameChartSearchRoute } from './flamechart'; import { registerTopNFunctionsSearchRoute } from './functions'; - +import { registerSetupRoute } from './setup'; import { registerTraceEventsTopNContainersSearchRoute, registerTraceEventsTopNDeploymentsSearchRoute, @@ -39,6 +37,7 @@ export interface RouteRegisterParameters { createProfilingEsClient: (params: { request: KibanaRequest; esClient: ElasticsearchClient; + useDefaultAuth?: boolean; }) => ProfilingESClient; }; } @@ -53,4 +52,7 @@ export function registerRoutes(params: RouteRegisterParameters) { registerTraceEventsTopNHostsSearchRoute(params); registerTraceEventsTopNStackTracesSearchRoute(params); registerTraceEventsTopNThreadsSearchRoute(params); + // Setup of Profiling resources, automates the configuration of Universal Profiling + // and will show instructions on how to add data + registerSetupRoute(params); } diff --git a/x-pack/plugins/profiling/server/routes/search_stacktraces.test.ts b/x-pack/plugins/profiling/server/routes/search_stacktraces.test.ts index a689fb837a9af6..e9d30215e72b19 100644 --- a/x-pack/plugins/profiling/server/routes/search_stacktraces.test.ts +++ b/x-pack/plugins/profiling/server/routes/search_stacktraces.test.ts @@ -55,10 +55,10 @@ describe('Stack trace response operations', () => { }, stack_frames: { abc: { - file_name: 'pthread.c', - function_name: 'pthread_create', - function_offset: 0, - line_number: 0, + file_name: ['pthread.c'], + function_name: ['pthread_create'], + function_offset: [0], + line_number: [0], }, }, executables: { @@ -128,10 +128,10 @@ describe('Stack trace response operations', () => { }, stack_frames: { abc: { - file_name: undefined, - function_name: 'pthread_create', - function_offset: undefined, - line_number: undefined, + file_name: [], + function_name: ['pthread_create'], + function_offset: [], + line_number: [], }, }, executables: { diff --git a/x-pack/plugins/profiling/server/routes/search_stacktraces.ts b/x-pack/plugins/profiling/server/routes/search_stacktraces.ts index 082ff1124f5d78..a1211bfc72edb8 100644 --- a/x-pack/plugins/profiling/server/routes/search_stacktraces.ts +++ b/x-pack/plugins/profiling/server/routes/search_stacktraces.ts @@ -35,11 +35,16 @@ export function decodeStackTraceResponse(response: StackTraceResponse) { const stackFrames: Map = new Map(); for (const [key, value] of Object.entries(response.stack_frames ?? {})) { + // Each field in a stackframe is represented by an array. This is + // necessary to support inline frames. + // + // We only take the first available inline stackframe until the UI + // can support all of them. stackFrames.set(key, { - FileName: value.file_name ? value.file_name[0] : [], - FunctionName: value.function_name ? value.function_name[0] : [], - FunctionOffset: value.function_offset, - LineNumber: value.line_number, + FileName: value.file_name[0], + FunctionName: value.function_name[0], + FunctionOffset: value.function_offset[0], + LineNumber: value.line_number[0], } as StackFrame); } diff --git a/x-pack/plugins/profiling/server/routes/setup.ts b/x-pack/plugins/profiling/server/routes/setup.ts new file mode 100644 index 00000000000000..4f97497b6ab96e --- /dev/null +++ b/x-pack/plugins/profiling/server/routes/setup.ts @@ -0,0 +1,165 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { eachSeries } from 'async'; +import { Logger } from '@kbn/logging'; +import { RouteRegisterParameters } from '.'; +import { getRoutePaths } from '../../common'; +import { getSetupInstructions } from '../lib/setup/get_setup_instructions'; +import { getProfilingSetupSteps } from '../lib/setup/steps'; +import { handleRouteHandlerError } from '../utils/handle_route_error_handler'; +import { hasProfilingData } from '../lib/setup/has_profiling_data'; +import { getClient } from './compat'; +import { ProfilingSetupStep } from '../lib/setup/types'; + +function checkSteps({ steps, logger }: { steps: ProfilingSetupStep[]; logger: Logger }) { + return Promise.all( + steps.map(async (step) => { + try { + return { name: step.name, completed: await step.hasCompleted() }; + } catch (error) { + logger.error(error); + return { name: step.name, completed: false, error: error.toString() }; + } + }) + ); +} + +export function registerSetupRoute({ + router, + logger, + services: { createProfilingEsClient }, + dependencies, +}: RouteRegisterParameters) { + const paths = getRoutePaths(); + // Check if ES resources needed for Universal Profiling to work exist + router.get( + { + path: paths.HasSetupESResources, + validate: false, + }, + async (context, request, response) => { + try { + const esClient = await getClient(context); + logger.debug('checking if profiling ES configurations are installed'); + const core = await context.core; + + const steps = getProfilingSetupSteps({ + client: createProfilingEsClient({ + esClient, + request, + useDefaultAuth: true, + }), + logger, + packagePolicyClient: dependencies.start.fleet.packagePolicyService, + soClient: core.savedObjects.client, + spaceId: dependencies.setup.spaces.spacesService.getSpaceId(request), + isCloudEnabled: dependencies.setup.cloud.isCloudEnabled, + }); + + const hasDataPromise = hasProfilingData({ + client: createProfilingEsClient({ + esClient, + request, + }), + }); + + const stepCompletionResultsPromises = checkSteps({ steps, logger }); + + const hasData = await hasDataPromise; + + if (hasData) { + return response.ok({ + body: { + has_data: true, + has_setup: true, + steps: [], + }, + }); + } + + const stepCompletionResults = await stepCompletionResultsPromises; + + // Reply to clients if we have already created all 12 events template indices. + // This is kind of simplistic but can be a good first step to ensure + // Profiling resources will be created. + return response.ok({ + body: { + has_setup: stepCompletionResults.every((step) => step.completed), + has_data: false, + steps: stepCompletionResults, + }, + }); + } catch (error) { + return handleRouteHandlerError({ error, logger, response }); + } + } + ); + // Configure ES resources needed by Universal Profiling using the mappings + router.post( + { + path: paths.HasSetupESResources, + validate: {}, + }, + async (context, request, response) => { + try { + const esClient = await getClient(context); + logger.info('Applying initial setup of Elasticsearch resources'); + const steps = getProfilingSetupSteps({ + client: createProfilingEsClient({ esClient, request, useDefaultAuth: true }), + logger, + packagePolicyClient: dependencies.start.fleet.packagePolicyService, + soClient: (await context.core).savedObjects.client, + spaceId: dependencies.setup.spaces.spacesService.getSpaceId(request), + isCloudEnabled: dependencies.setup.cloud.isCloudEnabled, + }); + + await eachSeries(steps, (step, cb) => { + logger.debug(`Executing step ${step.name}`); + step + .init() + .then(() => cb()) + .catch(cb); + }); + + const checkedSteps = await checkSteps({ steps, logger }); + + if (checkedSteps.every((step) => step.completed)) { + return response.ok(); + } + + return response.custom({ + statusCode: 500, + body: { + message: `Failed to complete all steps`, + steps: checkedSteps, + }, + }); + } catch (error) { + return handleRouteHandlerError({ error, logger, response }); + } + } + ); + // Show users the instructions on how to setup Universal Profiling agents + router.get( + { + path: paths.SetupDataCollectionInstructions, + validate: false, + }, + async (context, request, response) => { + try { + const setupInstructions = await getSetupInstructions({ + packagePolicyClient: dependencies.start.fleet.packagePolicyService, + soClient: (await context.core).savedObjects.client, + }); + + return response.ok({ body: setupInstructions }); + } catch (error) { + return handleRouteHandlerError({ error, logger, response }); + } + } + ); +} diff --git a/x-pack/plugins/profiling/server/routes/stacktrace.test.ts b/x-pack/plugins/profiling/server/routes/stacktrace.test.ts index 91b55312928c37..4fff2d9c84e63b 100644 --- a/x-pack/plugins/profiling/server/routes/stacktrace.test.ts +++ b/x-pack/plugins/profiling/server/routes/stacktrace.test.ts @@ -5,9 +5,10 @@ * 2.0. */ -import { createStackFrameID, StackTrace } from '../../common/profiling'; +import LRUCache from 'lru-cache'; +import { createStackFrameID, StackFrame, StackFrameID, StackTrace } from '../../common/profiling'; import { runLengthEncode } from '../../common/run_length_encoding'; -import { decodeStackTrace, EncodedStackTrace } from './stacktrace'; +import { decodeStackTrace, EncodedStackTrace, updateStackFrameMap } from './stacktrace'; enum fileID { A = 'aQpJmTLWydNvOapSFZOwKg', @@ -86,3 +87,109 @@ describe('Stack trace operations', () => { } }); }); + +describe('Stack frame operations', () => { + test('updateStackFrameMap with no frames', () => { + const stackFrameMap = new Map(); + const stackFrameCache = new LRUCache(); + + const hits = updateStackFrameMap([], stackFrameMap, stackFrameCache); + + expect(hits).toEqual(0); + expect(stackFrameMap.size).toEqual(0); + expect(stackFrameCache.length).toEqual(0); + }); + + test('updateStackFrameMap with missing frames', () => { + const stackFrameMap = new Map(); + const stackFrameCache = new LRUCache(); + + const stackFrames = [ + { + _index: 'profiling-stackframes', + _id: 'stackframe-001', + found: false, + }, + ]; + + const hits = updateStackFrameMap(stackFrames, stackFrameMap, stackFrameCache); + + expect(hits).toEqual(0); + expect(stackFrameMap.size).toEqual(1); + expect(stackFrameCache.length).toEqual(1); + }); + + test('updateStackFrameMap with one partial non-inlined frame', () => { + const stackFrameMap = new Map(); + const stackFrameCache = new LRUCache(); + + const id = 'stackframe-001'; + const source = { + 'ecs.version': '1.0.0', + 'Stackframe.function.name': 'calloc', + }; + const expected = { + FileName: undefined, + FunctionName: 'calloc', + FunctionOffset: undefined, + LineNumber: undefined, + SourceType: undefined, + }; + + const stackFrames = [ + { + _index: 'profiling-stackframes', + _id: id, + _version: 1, + _seq_no: 1, + _primary_term: 1, + found: true, + _source: source, + }, + ]; + + const hits = updateStackFrameMap(stackFrames, stackFrameMap, stackFrameCache); + + expect(hits).toEqual(1); + expect(stackFrameMap.size).toEqual(1); + expect(stackFrameCache.length).toEqual(1); + expect(stackFrameMap.get(id)).toEqual(expected); + }); + + test('updateStackFrameMap with one partial inlined frame', () => { + const stackFrameMap = new Map(); + const stackFrameCache = new LRUCache(); + + const id = 'stackframe-001'; + const source = { + 'ecs.version': '1.0.0', + 'Stackframe.function.name': ['calloc', 'memset'], + }; + const expected = { + FileName: undefined, + FunctionName: 'calloc', + FunctionOffset: undefined, + LineNumber: undefined, + SourceType: undefined, + }; + + const stackFrames = [ + { + _index: 'profiling-stackframes', + _id: id, + _version: 1, + _seq_no: 1, + _primary_term: 1, + found: true, + _source: source, + }, + ]; + + const hits = updateStackFrameMap(stackFrames, stackFrameMap, stackFrameCache); + + expect(hits).toEqual(1); + expect(stackFrameMap.size).toEqual(1); + expect(stackFrameCache.length).toEqual(1); + expect(stackFrameMap.get(id)).toEqual(expected); + }); +}); diff --git a/x-pack/plugins/profiling/server/routes/stacktrace.ts b/x-pack/plugins/profiling/server/routes/stacktrace.ts index c0fb39de2151f6..4d26851b7781f9 100644 --- a/x-pack/plugins/profiling/server/routes/stacktrace.ts +++ b/x-pack/plugins/profiling/server/routes/stacktrace.ts @@ -285,6 +285,68 @@ export function clearStackFrameCache(): number { return numDeleted; } +export function updateStackFrameMap( + stackFrames: any, + stackFrameMap: Map, + stackFrameCache: LRUCache +): number { + let found = 0; + for (const frame of stackFrames) { + if ('error' in frame) { + continue; + } + if (frame.found) { + found++; + + const fileName = frame._source[ProfilingESField.StackframeFileName]; + const functionName = frame._source[ProfilingESField.StackframeFunctionName]; + const functionOffset = frame._source[ProfilingESField.StackframeFunctionOffset]; + const lineNumber = frame._source[ProfilingESField.StackframeLineNumber]; + + let stackFrame; + if (Array.isArray(functionName)) { + // Each field in a stackframe is represented by an array. This is + // necessary to support inline frames. + // + // We only take the first available inline stackframe until the UI + // can support all of them. + stackFrame = { + FileName: fileName && fileName[0], + FunctionName: functionName && functionName[0], + FunctionOffset: functionOffset && functionOffset[0], + LineNumber: lineNumber && lineNumber[0], + }; + } else { + if (fileName || functionName) { + stackFrame = { + FileName: fileName, + FunctionName: functionName, + FunctionOffset: functionOffset, + LineNumber: lineNumber, + }; + } else { + // pre 8.7 format with synthetic source + const sf = frame._source.Stackframe; + stackFrame = { + FileName: sf?.file?.name, + FunctionName: sf?.function?.name, + FunctionOffset: sf?.function?.offset, + LineNumber: sf?.line?.number, + }; + } + } + + stackFrameMap.set(frame._id, stackFrame); + stackFrameCache.set(frame._id, stackFrame); + continue; + } + + stackFrameMap.set(frame._id, emptyStackFrame); + stackFrameCache.set(frame._id, emptyStackFrame); + } + return found; +} + export async function mgetStackFrames({ logger, client, @@ -319,31 +381,8 @@ export async function mgetStackFrames({ realtime: true, }); - // Create a lookup map StackFrameID -> StackFrame. - let queryHits = 0; const t0 = Date.now(); - const docs = resStackFrames.docs; - for (const frame of docs) { - if ('error' in frame) { - continue; - } - if (frame.found) { - queryHits++; - const stackFrame = { - FileName: frame._source!.Stackframe.file?.name, - FunctionName: frame._source!.Stackframe.function?.name, - FunctionOffset: frame._source!.Stackframe.function?.offset, - LineNumber: frame._source!.Stackframe.line?.number, - }; - stackFrames.set(frame._id, stackFrame); - frameLRU.set(frame._id, stackFrame); - continue; - } - - stackFrames.set(frame._id, emptyStackFrame); - frameLRU.set(frame._id, emptyStackFrame); - } - + const queryHits = updateStackFrameMap(resStackFrames.docs, stackFrames, frameLRU); logger.info(`processing data took ${Date.now() - t0} ms`); summarizeCacheAndQuery(logger, 'frames', cacheHits, cacheTotal, queryHits, stackFrameIDs.size); diff --git a/x-pack/plugins/profiling/server/routes/topn.test.ts b/x-pack/plugins/profiling/server/routes/topn.test.ts index f6eca436801949..c6fb4c7aa4d789 100644 --- a/x-pack/plugins/profiling/server/routes/topn.test.ts +++ b/x-pack/plugins/profiling/server/routes/topn.test.ts @@ -53,6 +53,7 @@ describe('TopN data from Elasticsearch', () => { }, }) as Promise ), + getEsClient: jest.fn(() => context.elasticsearch.client.asCurrentUser), }; const logger = loggerMock.create(); diff --git a/x-pack/plugins/profiling/server/types.ts b/x-pack/plugins/profiling/server/types.ts index 8432085ef10223..6112c2e9790cf7 100644 --- a/x-pack/plugins/profiling/server/types.ts +++ b/x-pack/plugins/profiling/server/types.ts @@ -5,21 +5,32 @@ * 2.0. */ -import { RequestHandlerContext } from '@kbn/core/server'; -import { PluginSetupContract as FeaturesPluginSetup } from '@kbn/features-plugin/server'; -import { ObservabilityPluginSetup } from '@kbn/observability-plugin/server'; +import { CustomRequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; +import type { PluginSetupContract as FeaturesPluginSetup } from '@kbn/features-plugin/server'; +import type { ObservabilityPluginSetup } from '@kbn/observability-plugin/server'; +import { SpacesPluginStart, SpacesPluginSetup } from '@kbn/spaces-plugin/server'; +import { CloudSetup, CloudStart } from '@kbn/cloud-plugin/server'; +import { FleetSetupContract, FleetStartContract } from '@kbn/fleet-plugin/server'; export interface ProfilingPluginSetupDeps { observability: ObservabilityPluginSetup; features: FeaturesPluginSetup; + spaces: SpacesPluginSetup; + cloud: CloudSetup; + fleet: FleetSetupContract; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface ProfilingPluginStartDeps {} +export interface ProfilingPluginStartDeps { + observability: {}; + features: {}; + spaces: SpacesPluginStart; + cloud: CloudStart; + fleet: FleetStartContract; +} // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface ProfilingPluginSetup {} // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface ProfilingPluginStart {} -export type ProfilingRequestHandlerContext = RequestHandlerContext; +export type ProfilingRequestHandlerContext = CustomRequestHandlerContext<{}>; diff --git a/x-pack/plugins/profiling/server/utils/create_profiling_es_client.ts b/x-pack/plugins/profiling/server/utils/create_profiling_es_client.ts index 4aa132ab7a0314..05df1e9d37fdec 100644 --- a/x-pack/plugins/profiling/server/utils/create_profiling_es_client.ts +++ b/x-pack/plugins/profiling/server/utils/create_profiling_es_client.ts @@ -40,6 +40,7 @@ export interface ProfilingESClient { query: QueryDslQueryContainer; sampleSize: number; }): Promise; + getEsClient(): ElasticsearchClient; } export function createProfilingEsClient({ @@ -116,5 +117,8 @@ export function createProfilingEsClient({ return unwrapEsResponse(promise) as Promise; }, + getEsClient() { + return esClient; + }, }; } diff --git a/x-pack/plugins/profiling/tsconfig.json b/x-pack/plugins/profiling/tsconfig.json index 18bd0ec6bf4813..b1044792b32096 100644 --- a/x-pack/plugins/profiling/tsconfig.json +++ b/x-pack/plugins/profiling/tsconfig.json @@ -9,7 +9,8 @@ "common/**/*.ts", "public/**/*.ts", "public/**/*.tsx", - "server/**/*.ts" + "server/**/*.ts", + "server/**/*.json" ], "kbn_references": [ "@kbn/core", @@ -19,7 +20,6 @@ "@kbn/observability-plugin", "@kbn/i18n", "@kbn/es-types", - "@kbn/core-http-browser", "@kbn/data-views-plugin", "@kbn/charts-plugin", "@kbn/typed-react-router-config", @@ -34,6 +34,12 @@ "@kbn/core-http-server", "@kbn/apm-utils", "@kbn/core-elasticsearch-server", + "@kbn/fleet-plugin", + "@kbn/shared-ux-page-no-data-types", + "@kbn/es-errors", + "@kbn/core-http-request-handler-context-server", + "@kbn/spaces-plugin", + "@kbn/cloud-plugin", // add references to other TypeScript projects the plugin depends on // requiredPlugins from ./kibana.json diff --git a/x-pack/plugins/remote_clusters/kibana.json b/x-pack/plugins/remote_clusters/kibana.json deleted file mode 100644 index 2c5e0c3cea8319..00000000000000 --- a/x-pack/plugins/remote_clusters/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "remoteClusters", - "version": "kibana", - "configPath": ["xpack", "remote_clusters"], - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": ["licensing", "management", "indexManagement", "features", "share"], - "optionalPlugins": ["usageCollection", "cloud"], - "server": true, - "ui": true, - "requiredBundles": ["kibanaReact", "esUiShared"] -} diff --git a/x-pack/plugins/remote_clusters/kibana.jsonc b/x-pack/plugins/remote_clusters/kibana.jsonc new file mode 100644 index 00000000000000..7b2a8b4914ddd3 --- /dev/null +++ b/x-pack/plugins/remote_clusters/kibana.jsonc @@ -0,0 +1,29 @@ +{ + "type": "plugin", + "id": "@kbn/remote-clusters-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "remoteClusters", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "remote_clusters" + ], + "requiredPlugins": [ + "licensing", + "management", + "indexManagement", + "features", + "share" + ], + "optionalPlugins": [ + "usageCollection", + "cloud" + ], + "requiredBundles": [ + "kibanaReact", + "esUiShared" + ] + } +} diff --git a/x-pack/plugins/reporting/kibana.json b/x-pack/plugins/reporting/kibana.json deleted file mode 100644 index 8f75a462ed8f67..00000000000000 --- a/x-pack/plugins/reporting/kibana.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "id": "reporting", - "version": "8.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Kibana Reporting Services", - "githubTeam": "kibana-reporting-services" - }, - "description": "Reporting Services enables applications to feature reports that the user can automate with Watcher and download later.", - "optionalPlugins": ["security", "spaces", "usageCollection"], - "configPath": ["xpack", "reporting"], - "requiredPlugins": [ - "data", - "fieldFormats", - "esUiShared", - "home", - "management", - "licensing", - "uiActions", - "taskManager", - "embeddable", - "screenshotting", - "screenshotMode", - "share", - "features" - ], - "server": true, - "ui": true, - "requiredBundles": ["kibanaReact", "discover"] -} diff --git a/x-pack/plugins/reporting/kibana.jsonc b/x-pack/plugins/reporting/kibana.jsonc new file mode 100644 index 00000000000000..34304f8dc96ae2 --- /dev/null +++ b/x-pack/plugins/reporting/kibana.jsonc @@ -0,0 +1,39 @@ +{ + "type": "plugin", + "id": "@kbn/reporting-plugin", + "owner": "@elastic/appex-sharedux", + "description": "Reporting Services enables applications to feature reports that the user can automate with Watcher and download later.", + "plugin": { + "id": "reporting", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "reporting" + ], + "requiredPlugins": [ + "data", + "fieldFormats", + "esUiShared", + "home", + "management", + "licensing", + "uiActions", + "taskManager", + "embeddable", + "screenshotting", + "screenshotMode", + "share", + "features" + ], + "optionalPlugins": [ + "security", + "spaces", + "usageCollection" + ], + "requiredBundles": [ + "kibanaReact", + "discover" + ] + } +} diff --git a/x-pack/plugins/rollup/kibana.json b/x-pack/plugins/rollup/kibana.json deleted file mode 100644 index c5b2511ccec63d..00000000000000 --- a/x-pack/plugins/rollup/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "rollup", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": ["management", "licensing", "features"], - "optionalPlugins": ["home", "indexManagement", "usageCollection", "visTypeTimeseries"], - "configPath": ["xpack", "rollup"], - "requiredBundles": ["kibanaUtils", "kibanaReact", "esUiShared", "data"] -} diff --git a/x-pack/plugins/rollup/kibana.jsonc b/x-pack/plugins/rollup/kibana.jsonc new file mode 100644 index 00000000000000..7bb5740ff8b2bf --- /dev/null +++ b/x-pack/plugins/rollup/kibana.jsonc @@ -0,0 +1,31 @@ +{ + "type": "plugin", + "id": "@kbn/rollup-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "rollup", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "rollup" + ], + "requiredPlugins": [ + "management", + "licensing", + "features" + ], + "optionalPlugins": [ + "home", + "indexManagement", + "usageCollection", + "visTypeTimeseries" + ], + "requiredBundles": [ + "kibanaUtils", + "kibanaReact", + "esUiShared", + "data" + ] + } +} diff --git a/x-pack/plugins/rule_registry/kibana.json b/x-pack/plugins/rule_registry/kibana.json deleted file mode 100644 index 9603cb0a2640bd..00000000000000 --- a/x-pack/plugins/rule_registry/kibana.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "id": "ruleRegistry", - "owner": { - "name": "RAC", - "githubTeam": "rac" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "ruleRegistry"], - "requiredPlugins": ["alerting", "data", "triggersActionsUi"], - "optionalPlugins": ["security", "spaces"], - "server": true -} diff --git a/x-pack/plugins/rule_registry/kibana.jsonc b/x-pack/plugins/rule_registry/kibana.jsonc new file mode 100644 index 00000000000000..d5c867247e8110 --- /dev/null +++ b/x-pack/plugins/rule_registry/kibana.jsonc @@ -0,0 +1,26 @@ +{ + "type": "plugin", + "id": "@kbn/rule-registry-plugin", + "owner": [ + "@elastic/response-ops", + "@elastic/actionable-observability" + ], + "plugin": { + "id": "ruleRegistry", + "server": true, + "browser": false, + "configPath": [ + "xpack", + "ruleRegistry" + ], + "requiredPlugins": [ + "alerting", + "data", + "triggersActionsUi" + ], + "optionalPlugins": [ + "security", + "spaces" + ] + } +} diff --git a/x-pack/plugins/rule_registry/server/utils/create_lifecycle_rule_type.test.ts b/x-pack/plugins/rule_registry/server/utils/create_lifecycle_rule_type.test.ts index 92cbdb35240b53..7b312ccf5cef26 100644 --- a/x-pack/plugins/rule_registry/server/utils/create_lifecycle_rule_type.test.ts +++ b/x-pack/plugins/rule_registry/server/utils/create_lifecycle_rule_type.test.ts @@ -111,6 +111,7 @@ function createRule(shouldWriteAlerts: boolean = true) { createdAt, createdBy: 'createdBy', enabled: true, + muteAll: false, name: 'name', notifyWhen: 'onActionGroupChange', producer: 'producer', @@ -119,6 +120,7 @@ function createRule(shouldWriteAlerts: boolean = true) { schedule: { interval: '1m', }, + snoozeSchedule: [], tags: ['tags'], throttle: null, updatedAt: createdAt, diff --git a/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts b/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts index 6109eabb87e968..9f10d7e537a9f4 100644 --- a/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts +++ b/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts @@ -329,14 +329,17 @@ export const createPersistenceRuleTypeWrapper: CreatePersistenceRuleTypeWrapper createdAlerts: augmentedAlerts .map((alert, idx) => { const responseItem = - bulkResponse.body.items[idx + duplicateAlertUpdates.length].create; + bulkResponse.body.items[idx + duplicateAlerts.length].create; return { _id: responseItem?._id ?? '', _index: responseItem?._index ?? '', ...alert._source, }; }) - .filter((_, idx) => bulkResponse.body.items[idx].create?.status === 201), + .filter( + (_, idx) => + bulkResponse.body.items[idx + duplicateAlerts.length].create?.status === 201 + ), errors: errorAggregator(bulkResponse.body, [409]), }; } else { diff --git a/x-pack/plugins/rule_registry/server/utils/rule_executor.test_helpers.ts b/x-pack/plugins/rule_registry/server/utils/rule_executor.test_helpers.ts index f2416b0cba677a..d175852ef4eea5 100644 --- a/x-pack/plugins/rule_registry/server/utils/rule_executor.test_helpers.ts +++ b/x-pack/plugins/rule_registry/server/utils/rule_executor.test_helpers.ts @@ -68,6 +68,8 @@ export const createDefaultAlertExecutorOptions = < notifyWhen: null, ruleTypeId: 'RULE_TYPE_ID', ruleTypeName: 'RULE_TYPE_NAME', + muteAll: false, + snoozeSchedule: [], }, params, spaceId: 'SPACE_ID', diff --git a/x-pack/plugins/runtime_fields/kibana.json b/x-pack/plugins/runtime_fields/kibana.json deleted file mode 100644 index ef5514a01b3cf4..00000000000000 --- a/x-pack/plugins/runtime_fields/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "runtimeFields", - "version": "kibana", - "server": false, - "ui": true, - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "requiredPlugins": [], - "optionalPlugins": [], - "configPath": ["xpack", "runtime_fields"], - "requiredBundles": ["kibanaReact", "esUiShared"] -} diff --git a/x-pack/plugins/runtime_fields/kibana.jsonc b/x-pack/plugins/runtime_fields/kibana.jsonc new file mode 100644 index 00000000000000..a691ec63564c73 --- /dev/null +++ b/x-pack/plugins/runtime_fields/kibana.jsonc @@ -0,0 +1,18 @@ +{ + "type": "plugin", + "id": "@kbn/runtime-fields-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "runtimeFields", + "server": false, + "browser": true, + "configPath": [ + "xpack", + "runtime_fields" + ], + "requiredBundles": [ + "kibanaReact", + "esUiShared" + ] + } +} diff --git a/x-pack/plugins/saved_objects_tagging/kibana.json b/x-pack/plugins/saved_objects_tagging/kibana.json deleted file mode 100644 index ced7d149f5ad93..00000000000000 --- a/x-pack/plugins/saved_objects_tagging/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "savedObjectsTagging", - "owner": { - "name": "Kibana Core", - "githubTeam": "kibana-core" - }, - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": true, - "ui": true, - "configPath": ["xpack", "saved_object_tagging"], - "requiredPlugins": ["features", "management", "savedObjectsTaggingOss"], - "requiredBundles": ["kibanaReact"], - "optionalPlugins": ["usageCollection", "security"] -} diff --git a/x-pack/plugins/saved_objects_tagging/kibana.jsonc b/x-pack/plugins/saved_objects_tagging/kibana.jsonc new file mode 100644 index 00000000000000..7daa89f63ba372 --- /dev/null +++ b/x-pack/plugins/saved_objects_tagging/kibana.jsonc @@ -0,0 +1,26 @@ +{ + "type": "plugin", + "id": "@kbn/saved-objects-tagging-plugin", + "owner": "@elastic/appex-sharedux", + "plugin": { + "id": "savedObjectsTagging", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "saved_object_tagging" + ], + "requiredPlugins": [ + "features", + "management", + "savedObjectsTaggingOss" + ], + "optionalPlugins": [ + "usageCollection", + "security" + ], + "requiredBundles": [ + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/screenshotting/kibana.json b/x-pack/plugins/screenshotting/kibana.json deleted file mode 100644 index 37f962539446bb..00000000000000 --- a/x-pack/plugins/screenshotting/kibana.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "id": "screenshotting", - "version": "8.0.0", - "kibanaVersion": "kibana", - "owner": { - "name": "Kibana Reporting Services", - "githubTeam": "kibana-reporting-services" - }, - "description": "Kibana Screenshotting Plugin", - "optionalPlugins": ["cloud"], - "requiredPlugins": ["expressions", "screenshotMode"], - "configPath": ["xpack", "screenshotting"], - "server": true, - "ui": true -} diff --git a/x-pack/plugins/screenshotting/kibana.jsonc b/x-pack/plugins/screenshotting/kibana.jsonc new file mode 100644 index 00000000000000..426df4176e7509 --- /dev/null +++ b/x-pack/plugins/screenshotting/kibana.jsonc @@ -0,0 +1,22 @@ +{ + "type": "plugin", + "id": "@kbn/screenshotting-plugin", + "owner": "@elastic/kibana-reporting-services", + "description": "Kibana Screenshotting Plugin", + "plugin": { + "id": "screenshotting", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "screenshotting" + ], + "requiredPlugins": [ + "expressions", + "screenshotMode" + ], + "optionalPlugins": [ + "cloud" + ] + } +} diff --git a/x-pack/plugins/searchprofiler/kibana.json b/x-pack/plugins/searchprofiler/kibana.json deleted file mode 100644 index e93a716634be36..00000000000000 --- a/x-pack/plugins/searchprofiler/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "searchprofiler", - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "searchprofiler"], - "server": true, - "ui": true, - "owner": { - "name": "Stack Management", - "githubTeam": "kibana-stack-management" - }, - "requiredPlugins": ["devTools", "home", "licensing", "share"], - "requiredBundles": ["esUiShared", "kibanaReact"] -} diff --git a/x-pack/plugins/searchprofiler/kibana.jsonc b/x-pack/plugins/searchprofiler/kibana.jsonc new file mode 100644 index 00000000000000..c2793394431950 --- /dev/null +++ b/x-pack/plugins/searchprofiler/kibana.jsonc @@ -0,0 +1,24 @@ +{ + "type": "plugin", + "id": "@kbn/searchprofiler-plugin", + "owner": "@elastic/platform-deployment-management", + "plugin": { + "id": "searchprofiler", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "searchprofiler" + ], + "requiredPlugins": [ + "devTools", + "home", + "licensing", + "share" + ], + "requiredBundles": [ + "esUiShared", + "kibanaReact" + ] + } +} diff --git a/x-pack/plugins/security/kibana.json b/x-pack/plugins/security/kibana.json deleted file mode 100644 index 6804a5ba52253e..00000000000000 --- a/x-pack/plugins/security/kibana.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "security", - "owner": { - "name": "Platform Security", - "githubTeam": "kibana-security" - }, - "description": "This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user.", - "version": "8.0.0", - "kibanaVersion": "kibana", - "configPath": ["xpack", "security"], - "requiredPlugins": ["features", "licensing", "taskManager"], - "optionalPlugins": ["cloud", "dataViews", "home", "management", "usageCollection", "spaces", "share"], - "server": true, - "ui": true, - "enabledOnAnonymousPages": true, - "requiredBundles": [ - "kibanaReact", - "spaces", - "esUiShared" - ] -} diff --git a/x-pack/plugins/security/kibana.jsonc b/x-pack/plugins/security/kibana.jsonc new file mode 100644 index 00000000000000..96bf8e6339310a --- /dev/null +++ b/x-pack/plugins/security/kibana.jsonc @@ -0,0 +1,35 @@ +{ + "type": "plugin", + "id": "@kbn/security-plugin", + "owner": "@elastic/kibana-security", + "description": "This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user.", + "plugin": { + "id": "security", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "security" + ], + "enabledOnAnonymousPages": true, + "requiredPlugins": [ + "features", + "licensing", + "taskManager" + ], + "optionalPlugins": [ + "cloud", + "dataViews", + "home", + "management", + "usageCollection", + "spaces", + "share" + ], + "requiredBundles": [ + "kibanaReact", + "spaces", + "esUiShared" + ] + } +} diff --git a/x-pack/plugins/security_solution/common/constants.ts b/x-pack/plugins/security_solution/common/constants.ts index 0e45a7ddbc7889..c4ebcd19eb0825 100644 --- a/x-pack/plugins/security_solution/common/constants.ts +++ b/x-pack/plugins/security_solution/common/constants.ts @@ -90,7 +90,9 @@ export enum SecurityPageName { cloudSecurityPostureBenchmarks = 'cloud_security_posture-benchmarks', cloudSecurityPostureDashboard = 'cloud_security_posture-dashboard', cloudSecurityPostureFindings = 'cloud_security_posture-findings', + cloudSecurityPostureRules = 'cloud_security_posture-rules', dashboardsLanding = 'dashboards', + dataQuality = 'data_quality', detections = 'detections', detectionAndResponse = 'detection_response', endpoints = 'endpoints', @@ -142,6 +144,7 @@ export const TIMELINES_PATH = '/timelines' as const; export const CASES_PATH = '/cases' as const; export const OVERVIEW_PATH = '/overview' as const; export const LANDING_PATH = '/get_started' as const; +export const DATA_QUALITY_PATH = '/data_quality' as const; export const DETECTION_RESPONSE_PATH = '/detection_response' as const; export const DETECTIONS_PATH = '/detections' as const; export const ALERTS_PATH = '/alerts' as const; @@ -189,6 +192,7 @@ export const APP_BLOCKLIST_PATH = `${APP_PATH}${BLOCKLIST_PATH}` as const; export const APP_RESPONSE_ACTIONS_HISTORY_PATH = `${APP_PATH}${RESPONSE_ACTIONS_HISTORY_PATH}` as const; export const APP_ENTITY_ANALYTICS_PATH = `${APP_PATH}${ENTITY_ANALYTICS_PATH}` as const; +export const APP_DATA_QUALITY_PATH = `${APP_PATH}${DATA_QUALITY_PATH}` as const; // cloud logs to exclude from default index pattern export const EXCLUDE_ELASTIC_CLOUD_INDICES = ['-*elastic-cloud-logs-*']; diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema.test.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema.test.ts index 67a3d045d746d9..d0fc36831ad230 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema.test.ts @@ -29,7 +29,7 @@ describe('Find rules request schema', () => { const payload: FindRulesRequestQuery = { per_page: 5, page: 1, - sort_field: 'some field', + sort_field: 'name', fields: ['field 1', 'field 2'], filter: 'some filter', sort_order: 'asc', @@ -80,14 +80,14 @@ describe('Find rules request schema', () => { test('sort_field validates', () => { const payload: FindRulesRequestQuery = { - sort_field: 'value', + sort_field: 'name', }; const decoded = FindRulesRequestQuery.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); expect(getPaths(left(message.errors))).toEqual([]); - expect((message.schema as FindRulesRequestQuery).sort_field).toEqual('value'); + expect((message.schema as FindRulesRequestQuery).sort_field).toEqual('name'); }); test('fields validates with a string', () => { @@ -173,7 +173,7 @@ describe('Find rules request schema', () => { test('sort_order validates with desc and sort_field', () => { const payload: FindRulesRequestQuery = { sort_order: 'desc', - sort_field: 'some field', + sort_field: 'name', }; const decoded = FindRulesRequestQuery.decode(payload); @@ -187,7 +187,7 @@ describe('Find rules request schema', () => { test('sort_order does not validate with a string other than asc and desc', () => { const payload: Omit & { sort_order: string } = { sort_order: 'some other string', - sort_field: 'some field', + sort_field: 'name', }; const decoded = FindRulesRequestQuery.decode(payload); diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema.ts index 9b321d443b2def..08d05a54a5753f 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema.ts @@ -8,7 +8,28 @@ import * as t from 'io-ts'; import { DefaultPerPage, DefaultPage } from '@kbn/securitysolution-io-ts-alerting-types'; import type { PerPage, Page } from '../../../../schemas/common'; -import { queryFilter, fields, SortField, SortOrder } from '../../../../schemas/common'; +import { queryFilter, fields, SortOrder } from '../../../../schemas/common'; + +export type FindRulesSortField = t.TypeOf; +export const FindRulesSortField = t.union([ + t.literal('created_at'), + t.literal('createdAt'), // Legacy notation, keeping for backwards compatibility + t.literal('enabled'), + t.literal('execution_summary.last_execution.date'), + t.literal('execution_summary.last_execution.metrics.execution_gap_duration_s'), + t.literal('execution_summary.last_execution.metrics.total_indexing_duration_ms'), + t.literal('execution_summary.last_execution.metrics.total_search_duration_ms'), + t.literal('execution_summary.last_execution.status'), + t.literal('name'), + t.literal('risk_score'), + t.literal('riskScore'), // Legacy notation, keeping for backwards compatibility + t.literal('severity'), + t.literal('updated_at'), + t.literal('updatedAt'), // Legacy notation, keeping for backwards compatibility +]); + +export type FindRulesSortFieldOrUndefined = t.TypeOf; +export const FindRulesSortFieldOrUndefined = t.union([FindRulesSortField, t.undefined]); /** * Query string parameters of the API route. @@ -18,7 +39,7 @@ export const FindRulesRequestQuery = t.exact( t.partial({ fields, filter: queryFilter, - sort_field: SortField, + sort_field: FindRulesSortField, sort_order: SortOrder, page: DefaultPage, // defaults to 1 per_page: DefaultPerPage, // defaults to 20 diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema_validation.test.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema_validation.test.ts index 862bf7cc1a350c..6d0cd10b217005 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema_validation.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/find_rules/request_schema_validation.test.ts @@ -18,7 +18,7 @@ describe('Find rules request schema, additional validation', () => { test('You can have both a sort_field and and a sort_order', () => { const schema: FindRulesRequestQuery = { - sort_field: 'some field', + sort_field: 'name', sort_order: 'asc', }; const errors = validateFindRulesRequestQuery(schema); @@ -27,7 +27,7 @@ describe('Find rules request schema, additional validation', () => { test('You cannot have sort_field without sort_order', () => { const schema: FindRulesRequestQuery = { - sort_field: 'some field', + sort_field: 'name', }; const errors = validateFindRulesRequestQuery(schema); expect(errors).toEqual([ diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/import_rules/response_schema.test.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/import_rules/response_schema.test.ts index 2f11e1a9c120f0..b2ff257ba2c4ef 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/import_rules/response_schema.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/import_rules/response_schema.test.ts @@ -24,6 +24,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -42,6 +46,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -60,6 +68,10 @@ describe('Import rules response schema', () => { exceptions_errors: [{ error: { status_code: 400, message: 'some message' } }], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -81,6 +93,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -102,6 +118,10 @@ describe('Import rules response schema', () => { ], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -120,6 +140,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -140,6 +164,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: true, exceptions_success_count: -1, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -178,6 +206,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded as UnsafeCastForTest); @@ -217,6 +249,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: 'hello', exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded as UnsafeCastForTest); @@ -238,6 +274,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -262,6 +302,10 @@ describe('Import rules response schema', () => { exceptions_errors: [], exceptions_success: true, exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], }; const decoded = ImportRulesResponse.decode(payload); const checked = exactCheck(payload, decoded); @@ -270,4 +314,182 @@ describe('Import rules response schema', () => { expect(getPaths(left(message.errors))).toEqual(['invalid keys "invalid_data"']); expect(message.schema).toEqual({}); }); + + test('it should validate an empty import response with a single connectors error', () => { + const payload: ImportRulesResponse = { + success: false, + success_count: 0, + rules_count: 0, + errors: [], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [{ error: { status_code: 400, message: 'some message' } }], + action_connectors_warnings: [], + }; + const decoded = ImportRulesResponse.decode(payload); + const checked = exactCheck(payload, decoded); + const message = pipe(checked, foldLeftRight); + + expect(getPaths(left(message.errors))).toEqual([]); + expect(message.schema).toEqual(payload); + }); + test('it should validate an empty import response with multiple errors', () => { + const payload: ImportRulesResponse = { + success: false, + success_count: 0, + rules_count: 0, + errors: [ + { error: { status_code: 400, message: 'some message' } }, + { error: { status_code: 500, message: 'some message' } }, + ], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [{ error: { status_code: 400, message: 'some message' } }], + action_connectors_warnings: [], + }; + const decoded = ImportRulesResponse.decode(payload); + const checked = exactCheck(payload, decoded); + const message = pipe(checked, foldLeftRight); + + expect(getPaths(left(message.errors))).toEqual([]); + expect(message.schema).toEqual(payload); + }); + test('it should NOT validate action_connectors_success that is not boolean', () => { + type UnsafeCastForTest = Either< + Errors, + { + success: boolean; + action_connectors_success: string; + success_count: number; + errors: Array< + { + id?: string | undefined; + rule_id?: string | undefined; + } & { + error: { + status_code: number; + message: string; + }; + } + >; + } + >; + const payload: Omit & { + action_connectors_success: string; + } = { + success: true, + success_count: 0, + rules_count: 0, + errors: [], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_success: 'invalid', + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: [], + }; + const decoded = ImportRulesResponse.decode(payload); + const checked = exactCheck(payload, decoded as UnsafeCastForTest); + const message = pipe(checked, foldLeftRight); + + expect(getPaths(left(message.errors))).toEqual([ + 'Invalid value "invalid" supplied to "action_connectors_success"', + ]); + expect(message.schema).toEqual({}); + }); + test('it should NOT validate a action_connectors_success_count that is a negative number', () => { + const payload: ImportRulesResponse = { + success: false, + success_count: 0, + rules_count: 0, + errors: [], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: -1, + action_connectors_errors: [], + action_connectors_warnings: [], + }; + const decoded = ImportRulesResponse.decode(payload); + const checked = exactCheck(payload, decoded); + const message = pipe(checked, foldLeftRight); + + expect(getPaths(left(message.errors))).toEqual([ + 'Invalid value "-1" supplied to "action_connectors_success_count"', + ]); + expect(message.schema).toEqual({}); + }); + test('it should validate a action_connectors_warnings after importing successfully', () => { + const payload: ImportRulesResponse = { + success: false, + success_count: 0, + rules_count: 0, + errors: [], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 1, + action_connectors_errors: [], + action_connectors_warnings: [{ type: 'type', message: 'message', actionPath: 'actionPath' }], + }; + const decoded = ImportRulesResponse.decode(payload); + const checked = exactCheck(payload, decoded); + const message = pipe(checked, foldLeftRight); + + expect(getPaths(left(message.errors))).toEqual([]); + expect(message.schema).toEqual(payload); + }); + test('it should NOT validate a action_connectors_warnings that is not WarningSchema', () => { + type UnsafeCastForTest = Either< + Errors, + { + success: boolean; + action_connectors_warnings: string; + success_count: number; + errors: Array< + { + id?: string | undefined; + rule_id?: string | undefined; + } & { + error: { + status_code: number; + message: string; + }; + } + >; + } + >; + const payload: Omit & { + action_connectors_warnings: string; + } = { + success: true, + success_count: 0, + rules_count: 0, + errors: [], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_success_count: 0, + action_connectors_errors: [], + action_connectors_warnings: 'invalid', + }; + const decoded = ImportRulesResponse.decode(payload); + const checked = exactCheck(payload, decoded as UnsafeCastForTest); + const message = pipe(checked, foldLeftRight); + + expect(getPaths(left(message.errors))).toEqual([ + 'Invalid value "invalid" supplied to "action_connectors_warnings"', + ]); + expect(message.schema).toEqual({}); + }); }); diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/import_rules/response_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/import_rules/response_schema.ts index 77ccd0812c2c91..99212b902c4d34 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/import_rules/response_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/api/rules/import_rules/response_schema.ts @@ -7,7 +7,7 @@ import * as t from 'io-ts'; import { PositiveInteger } from '@kbn/securitysolution-io-ts-types'; -import { errorSchema } from '../../../../schemas/response/error_schema'; +import { errorSchema, warningSchema } from '../../../../schemas/response'; export type ImportRulesResponse = t.TypeOf; export const ImportRulesResponse = t.exact( @@ -19,5 +19,9 @@ export const ImportRulesResponse = t.exact( success: t.boolean, success_count: PositiveInteger, errors: t.array(errorSchema), + action_connectors_errors: t.array(errorSchema), + action_connectors_warnings: t.array(warningSchema), + action_connectors_success: t.boolean, + action_connectors_success_count: PositiveInteger, }) ); diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.mock.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.mock.ts index 64b82abdb37557..9a26b1a09f0665 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.mock.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.mock.ts @@ -8,6 +8,7 @@ import { getExceptionExportDetailsMock } from '@kbn/lists-plugin/common/schemas/response/exception_export_details_schema.mock'; import type { ExportExceptionDetailsMock } from '@kbn/lists-plugin/common/schemas/response/exception_export_details_schema.mock'; import type { ExportRulesDetails } from './export_rules_details_schema'; +import type { DefaultActionConnectorDetails } from '../../../../../server/lib/detection_engine/rule_management/logic/export/get_export_rule_action_connectors'; interface RuleDetailsMock { totalCount?: number; @@ -16,6 +17,23 @@ interface RuleDetailsMock { missingRules?: Array>; } +export const getActionConnectorDetailsMock = (): DefaultActionConnectorDetails => ({ + exported_action_connector_count: 0, + missing_action_connection_count: 0, + missing_action_connections: [], + excluded_action_connection_count: 0, + excluded_action_connections: [], +}); +export const getOutputDetailsSampleWithActionConnectors = (): ExportRulesDetails => ({ + ...getOutputDetailsSample(), + ...getExceptionExportDetailsMock(), + exported_action_connector_count: 1, + missing_action_connection_count: 0, + missing_action_connections: [], + excluded_action_connection_count: 0, + excluded_action_connections: [], +}); + export const getOutputDetailsSample = (ruleDetails?: RuleDetailsMock): ExportRulesDetails => ({ exported_count: ruleDetails?.totalCount ?? 0, exported_rules_count: ruleDetails?.rulesCount ?? 0, @@ -29,6 +47,7 @@ export const getOutputDetailsSampleWithExceptions = ( ): ExportRulesDetails => ({ ...getOutputDetailsSample(ruleDetails), ...getExceptionExportDetailsMock(exceptionDetails), + ...getActionConnectorDetailsMock(), }); export const getSampleDetailsAsNdjson = (sample: ExportRulesDetails): string => { diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.test.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.test.ts index 2c84a34b349285..a91f59924ef723 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.test.ts @@ -18,15 +18,16 @@ import { exactCheck, foldLeftRight, getPaths } from '@kbn/securitysolution-io-ts import { getOutputDetailsSample, + getOutputDetailsSampleWithActionConnectors, getOutputDetailsSampleWithExceptions, } from './export_rules_details_schema.mock'; import type { ExportRulesDetails } from './export_rules_details_schema'; -import { exportRulesDetailsWithExceptionsSchema } from './export_rules_details_schema'; +import { exportRulesDetailsWithExceptionsAndConnectorsSchema } from './export_rules_details_schema'; -describe('exportRulesDetailsWithExceptionsSchema', () => { +describe('exportRulesDetailsWithExceptionsAndConnectorsSchema', () => { test('it should validate export details response', () => { const payload = getOutputDetailsSample(); - const decoded = exportRulesDetailsWithExceptionsSchema.decode(payload); + const decoded = exportRulesDetailsWithExceptionsAndConnectorsSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); @@ -36,7 +37,7 @@ describe('exportRulesDetailsWithExceptionsSchema', () => { test('it should validate export details with exceptions details response', () => { const payload = getOutputDetailsSampleWithExceptions(); - const decoded = exportRulesDetailsWithExceptionsSchema.decode(payload); + const decoded = exportRulesDetailsWithExceptionsAndConnectorsSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); @@ -44,12 +45,21 @@ describe('exportRulesDetailsWithExceptionsSchema', () => { expect(message.schema).toEqual(payload); }); + test('it should validate export details with action connectors details response', () => { + const payload = getOutputDetailsSampleWithActionConnectors(); + const decoded = exportRulesDetailsWithExceptionsAndConnectorsSchema.decode(payload); + const checked = exactCheck(payload, decoded); + const message = pipe(checked, foldLeftRight); + + expect(getPaths(left(message.errors))).toEqual([]); + expect(message.schema).toEqual(payload); + }); test('it should strip out extra keys', () => { const payload: ExportRulesDetails & { extraKey?: string; } = getOutputDetailsSample(); payload.extraKey = 'some extra key'; - const decoded = exportRulesDetailsWithExceptionsSchema.decode(payload); + const decoded = exportRulesDetailsWithExceptionsAndConnectorsSchema.decode(payload); const message = pipe(decoded, foldLeftRight); expect(getPaths(left(message.errors))).toEqual([]); diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.ts index 85b423135566b4..205861bdd42a79 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/export/export_rules_details_schema.ts @@ -9,13 +9,6 @@ import * as t from 'io-ts'; import { exportExceptionDetails } from '@kbn/securitysolution-io-ts-list-types'; import { NonEmptyString } from '@kbn/securitysolution-io-ts-types'; -const createSchema = ( - requiredFields: Required, - optionalFields: Optional -) => { - return t.intersection([t.exact(t.type(requiredFields)), t.exact(t.partial(optionalFields))]); -}; - const exportRulesDetails = { exported_count: t.number, exported_rules_count: t.number, @@ -28,11 +21,38 @@ const exportRulesDetails = { ), missing_rules_count: t.number, }; +const excludedActionConnectors = t.intersection([ + t.exact( + t.type({ + id: NonEmptyString, + type: NonEmptyString, + }) + ), + t.exact(t.partial({ reason: t.string })), +]); + +const exportRuleActionConnectorsDetails = { + exported_action_connector_count: t.number, + missing_action_connection_count: t.number, + missing_action_connections: t.array( + t.exact( + t.type({ + id: NonEmptyString, + type: NonEmptyString, + }) + ) + ), + excluded_action_connection_count: t.number, + excluded_action_connections: t.array(excludedActionConnectors), +}; -// With exceptions -export const exportRulesDetailsWithExceptionsSchema = createSchema( - exportRulesDetails, - exportExceptionDetails -); +// With exceptions and connectors +export const exportRulesDetailsWithExceptionsAndConnectorsSchema = t.intersection([ + t.exact(t.type(exportRulesDetails)), + t.exact(t.partial(exportExceptionDetails)), + t.exact(t.partial(exportRuleActionConnectorsDetails)), +]); -export type ExportRulesDetails = t.TypeOf; +export type ExportRulesDetails = t.TypeOf< + typeof exportRulesDetailsWithExceptionsAndConnectorsSchema +>; diff --git a/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/import/rule_to_import.mock.ts b/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/import/rule_to_import.mock.ts index d1dc9e8ac46631..cec58d1c5fdc6a 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/import/rule_to_import.mock.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/rule_management/model/import/rule_to_import.mock.ts @@ -80,3 +80,41 @@ export const getImportThreatMatchRulesSchemaMock = (ruleId = 'rule-1'): RuleToIm }, ], }); + +export const webHookConnector = { + id: 'cabc78e0-9031-11ed-b076-53cc4d57aaf1', + type: 'action', + updated_at: '2023-01-25T14:35:52.852Z', + created_at: '2023-01-25T14:35:52.852Z', + version: 'WzUxNTksMV0=', + attributes: { + actionTypeId: '.webhook', + name: 'webhook', + isMissingSecrets: false, + config: {}, + secrets: {}, + }, + references: [], + migrationVersion: { action: '8.3.0' }, + coreMigrationVersion: '8.7.0', +}; + +export const ruleWithConnectorNdJSON = (): string => { + const items = [ + { + ...getImportRulesSchemaMock(), + actions: [ + { + group: 'default', + id: 'cabc78e0-9031-11ed-b076-53cc4d57aaf1', + action_type_id: '.webhook', + params: {}, + }, + ], + }, + webHookConnector, + ]; + const stringOfExceptions = items.map((item) => JSON.stringify(item)); + + return stringOfExceptions.join('\n'); +}; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/common/sorting.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/common/sorting.ts index 2cf1712e5ffbca..8aa8cf2831ea17 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/common/sorting.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/common/sorting.ts @@ -9,12 +9,6 @@ import * as t from 'io-ts'; import type { Either } from 'fp-ts/lib/Either'; import { capitalize } from 'lodash'; -export type SortField = t.TypeOf; -export const SortField = t.string; - -export type SortFieldOrUndefined = t.TypeOf; -export const SortFieldOrUndefined = t.union([SortField, t.undefined]); - export type SortOrder = t.TypeOf; export const SortOrder = t.keyof({ asc: null, desc: null }); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/index.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/index.ts index b20a956525e2e1..76da6876040282 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/index.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/index.ts @@ -6,3 +6,4 @@ */ export * from './error_schema'; +export * from './warning_schema'; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/warning_schema/index.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/warning_schema/index.ts new file mode 100644 index 00000000000000..1a401d1941cb07 --- /dev/null +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/warning_schema/index.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import * as t from 'io-ts'; + +const partial = t.exact( + t.partial({ + buttonLabel: t.string, + }) +); +const required = t.exact( + t.type({ + type: t.string, + message: t.string, + actionPath: t.string, + }) +); + +export const warningSchema = t.intersection([partial, required]); +export type WarningSchema = t.TypeOf; diff --git a/x-pack/plugins/security_solution/common/endpoint/constants.ts b/x-pack/plugins/security_solution/common/endpoint/constants.ts index 7f6dd418c52026..d005f449d76a38 100644 --- a/x-pack/plugins/security_solution/common/endpoint/constants.ts +++ b/x-pack/plugins/security_solution/common/endpoint/constants.ts @@ -60,13 +60,18 @@ export const AGENT_POLICY_SUMMARY_ROUTE = `${BASE_POLICY_ROUTE}/summaries`; /** Suggestions routes */ export const SUGGESTIONS_ROUTE = `${BASE_ENDPOINT_ROUTE}/suggestions/{suggestion_type}`; -/** Host Isolation Routes */ +/** + * Action Response Routes + */ + +/** @deprecated use `ISOLATE_HOST_ROUTE_V2` instead */ export const ISOLATE_HOST_ROUTE = `${BASE_ENDPOINT_ROUTE}/isolate`; +/** @deprecated use `ISOLATE_HOST_ROUTE_V2` instead */ export const UNISOLATE_HOST_ROUTE = `${BASE_ENDPOINT_ROUTE}/unisolate`; -const BASE_ENDPOINT_ACTION_ROUTE = `${BASE_ENDPOINT_ROUTE}/action`; +/** Base Actions route. Used to get a list of all actions and is root to other action related routes */ +export const BASE_ENDPOINT_ACTION_ROUTE = `${BASE_ENDPOINT_ROUTE}/action`; -/** Action Response Routes */ export const ISOLATE_HOST_ROUTE_V2 = `${BASE_ENDPOINT_ACTION_ROUTE}/isolate`; export const UNISOLATE_HOST_ROUTE_V2 = `${BASE_ENDPOINT_ACTION_ROUTE}/unisolate`; export const GET_PROCESSES_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/running_procs`; @@ -82,9 +87,6 @@ export const ACTION_DETAILS_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/{action_id}`; export const ACTION_AGENT_FILE_INFO_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/{action_id}/file/{file_id}`; export const ACTION_AGENT_FILE_DOWNLOAD_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/{action_id}/file/{file_id}/download`; -// FIXME:PT `const` below seem like a duplicate. Delete it -export const ENDPOINTS_ACTION_LIST_ROUTE = `${BASE_ENDPOINT_ROUTE}/action`; - export const failedFleetActionErrorCode = '424'; export const ENDPOINT_DEFAULT_PAGE = 0; diff --git a/x-pack/plugins/security_solution/common/endpoint/data_generators/exceptions_list_item_generator.ts b/x-pack/plugins/security_solution/common/endpoint/data_generators/exceptions_list_item_generator.ts index 737d81cc9d1ed0..a9b2cbd697f4a4 100644 --- a/x-pack/plugins/security_solution/common/endpoint/data_generators/exceptions_list_item_generator.ts +++ b/x-pack/plugins/security_solution/common/endpoint/data_generators/exceptions_list_item_generator.ts @@ -30,14 +30,14 @@ type NonNullableTypeProperties = { * create a value for (almost) all properties */ type CreateExceptionListItemSchemaWithNonNullProps = NonNullableTypeProperties< - Omit + Omit > & - Pick; + Pick; type UpdateExceptionListItemSchemaWithNonNullProps = NonNullableTypeProperties< - Omit + Omit > & - Pick; + Pick; const exceptionItemToCreateExceptionItem = ( exceptionItem: ExceptionListItemSchema @@ -46,6 +46,7 @@ const exceptionItemToCreateExceptionItem = ( /* eslint-disable @typescript-eslint/naming-convention */ description, entries, + expire_time, list_id, name, type, @@ -61,6 +62,7 @@ const exceptionItemToCreateExceptionItem = ( return { description, entries, + expire_time, list_id, name, type, @@ -109,6 +111,7 @@ export class ExceptionsListItemGenerator extends BaseDataGenerator { } export interface GenericBuckets { - key: string; + key: string | string[]; key_as_string?: string; // contains, for example, formatted dates doc_count: number; } diff --git a/x-pack/plugins/security_solution/cypress/e2e/cases/attach_timeline.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/cases/attach_timeline.cy.ts index f74be26963d458..2012d756d63545 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/cases/attach_timeline.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/cases/attach_timeline.cy.ts @@ -85,9 +85,7 @@ describe('attach timeline to case', () => { it('modal can be re-opened once closed', function () { visitTimeline(this.timelineId); attachTimelineToExistingCase(); - cy.get('[data-test-subj="all-cases-modal"] .euiButton') - .contains('Cancel') - .click({ force: true }); + cy.get('[data-test-subj="all-cases-modal-cancel-button"]').click({ force: true }); cy.get('[data-test-subj="all-cases-modal"]').should('not.exist'); attachTimelineToExistingCase(); diff --git a/x-pack/plugins/security_solution/cypress/e2e/timelines/notes_tab.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/notes_tab.cy.ts index c386abace97248..3a73d5b6c3a3ef 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/timelines/notes_tab.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/timelines/notes_tab.cy.ts @@ -93,7 +93,7 @@ describe('Timeline notes tab', () => { it('should render insight query from markdown', () => { addNotesToTimeline( - `!{insight{"description":"2 top level OR providers, 1 nested AND","label":"test insight", "providers": [[{ "field": "event.id", "value": "kibana.alert.original_event.id", "type": "parameter" }], [{ "field": "event.category", "value": "network", "type": "literal" }, {"field": "process.pid", "value": "process.pid", "type": "parameter"}]]}}` + `!{insight{"description":"2 top level OR providers, 1 nested AND","label":"test insight", "providers": [[{ "field": "event.id", "value": "kibana.alert.original_event.id", "queryType": "phrase", "excluded": "false" }], [{ "field": "event.category", "value": "network", "queryType": "phrase", "excluded": "false" }, {"field": "process.pid", "value": "process.pid", "queryType": "phrase", "excluded": "false"}]]}}` ); cy.get(MARKDOWN_INVESTIGATE_BUTTON).should('exist'); }); diff --git a/x-pack/plugins/security_solution/cypress/objects/rule.ts b/x-pack/plugins/security_solution/cypress/objects/rule.ts index 20f41f938502b3..a80c7099c31ff6 100644 --- a/x-pack/plugins/security_solution/cypress/objects/rule.ts +++ b/x-pack/plugins/security_solution/cypress/objects/rule.ts @@ -573,6 +573,11 @@ export const expectedExportedRule = (ruleResponse: Cypress.Response { }; export const selectCountTable = () => { - cy.get(CHART_SELECT).click({ force: true }); - cy.get(SELECT_TABLE).click(); + cy.get(SELECT_AGGREGATION_CHART).click({ force: true }); }; export const clearGroupByTopInput = () => { diff --git a/x-pack/plugins/security_solution/cypress/tasks/alerts_detection_rules.ts b/x-pack/plugins/security_solution/cypress/tasks/alerts_detection_rules.ts index 821b4c415fdd82..83492ef9c4437b 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/alerts_detection_rules.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/alerts_detection_rules.ts @@ -56,6 +56,7 @@ import { MODAL_CONFIRMATION_CANCEL_BTN, MODAL_CONFIRMATION_BODY, RULE_SEARCH_FIELD, + RULE_IMPORT_OVERWRITE_CONNECTORS_CHECKBOX, } from '../screens/alerts_detection_rules'; import { EUI_CHECKBOX } from '../screens/common/controls'; import { ALL_ACTIONS } from '../screens/rule_details'; @@ -382,13 +383,18 @@ const selectOverwriteExceptionsRulesImport = () => { .pipe(($el) => $el.trigger('click')) .should('be.checked'); }; - +const selectOverwriteConnectorsRulesImport = () => { + cy.get(RULE_IMPORT_OVERWRITE_CONNECTORS_CHECKBOX) + .pipe(($el) => $el.trigger('click')) + .should('be.checked'); +}; export const importRulesWithOverwriteAll = (rulesFile: string) => { cy.get(RULE_IMPORT_MODAL).click(); cy.get(INPUT_FILE).should('exist'); cy.get(INPUT_FILE).trigger('click', { force: true }).attachFile(rulesFile).trigger('change'); selectOverwriteRulesImport(); selectOverwriteExceptionsRulesImport(); + selectOverwriteConnectorsRulesImport(); cy.get(RULE_IMPORT_MODAL_BUTTON).last().click({ force: true }); cy.get(INPUT_FILE).should('not.exist'); }; diff --git a/x-pack/plugins/security_solution/cypress/tasks/exceptions_table.ts b/x-pack/plugins/security_solution/cypress/tasks/exceptions_table.ts index c4ceae7032ac09..38f2542a22db4e 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/exceptions_table.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/exceptions_table.ts @@ -12,8 +12,9 @@ import { EXCEPTIONS_TABLE_SEARCH_CLEAR, EXCEPTIONS_TABLE_MODAL, EXCEPTIONS_TABLE_MODAL_CONFIRM_BTN, - EXCEPTIONS_TABLE_EXPORT_BTN, + EXCEPTIONS_TABLE_EXPORT_MODAL_BTN, EXCEPTIONS_OVERFLOW_ACTIONS_BTN, + EXCEPTIONS_TABLE_EXPORT_CONFIRM_BTN, } from '../screens/exceptions'; export const clearSearchSelection = () => { @@ -26,7 +27,8 @@ export const expandExceptionActions = () => { export const exportExceptionList = () => { cy.get(EXCEPTIONS_OVERFLOW_ACTIONS_BTN).first().click(); - cy.get(EXCEPTIONS_TABLE_EXPORT_BTN).first().click(); + cy.get(EXCEPTIONS_TABLE_EXPORT_MODAL_BTN).first().click(); + cy.get(EXCEPTIONS_TABLE_EXPORT_CONFIRM_BTN).first().click(); }; export const deleteExceptionListWithoutRuleReference = () => { diff --git a/x-pack/plugins/security_solution/kibana.json b/x-pack/plugins/security_solution/kibana.json deleted file mode 100644 index 218c5510ff992d..00000000000000 --- a/x-pack/plugins/security_solution/kibana.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "id": "securitySolution", - "owner": { - "name": "Security solution", - "githubTeam": "security-solution" - }, - "version": "8.0.0", - "extraPublicDirs": ["common"], - "kibanaVersion": "kibana", - "configPath": ["xpack", "securitySolution"], - "requiredPlugins": [ - "actions", - "alerting", - "cases", - "cloud", - "cloudSecurityPosture", - "dashboard", - "data", - "dataViews", - "embeddable", - "eventLog", - "features", - "guidedOnboarding", - "inspector", - "kubernetesSecurity", - "lens", - "licensing", - "maps", - "ruleRegistry", - "sessionView", - "taskManager", - "threatIntelligence", - "timelines", - "triggersActionsUi", - "uiActions", - "unifiedSearch", - "files", - "controls", - "dataViews" - ], - "optionalPlugins": [ - "cloudExperiments", - "encryptedSavedObjects", - "fleet", - "ml", - "newsfeed", - "security", - "spaces", - "usageCollection", - "lists", - "home", - "telemetry", - "dataViewFieldEditor", - "osquery", - "savedObjectsTaggingOss" - ], - "server": true, - "ui": true, - "requiredBundles": [ - "esUiShared", - "fleet", - "kibanaUtils", - "kibanaReact", - "usageCollection", - "lists", - "ml", - "unifiedSearch" - ] -} diff --git a/x-pack/plugins/security_solution/kibana.jsonc b/x-pack/plugins/security_solution/kibana.jsonc new file mode 100644 index 00000000000000..6f6c371f5f27fb --- /dev/null +++ b/x-pack/plugins/security_solution/kibana.jsonc @@ -0,0 +1,74 @@ +{ + "type": "plugin", + "id": "@kbn/security-solution-plugin", + "owner": "@elastic/security-solution", + "plugin": { + "id": "securitySolution", + "server": true, + "browser": true, + "configPath": [ + "xpack", + "securitySolution" + ], + "requiredPlugins": [ + "actions", + "alerting", + "cases", + "cloud", + "cloudSecurityPosture", + "dashboard", + "data", + "ecsDataQualityDashboard", + "dataViews", + "embeddable", + "eventLog", + "features", + "guidedOnboarding", + "inspector", + "kubernetesSecurity", + "lens", + "licensing", + "maps", + "ruleRegistry", + "sessionView", + "taskManager", + "threatIntelligence", + "timelines", + "triggersActionsUi", + "uiActions", + "unifiedSearch", + "files", + "controls", + "dataViews" + ], + "optionalPlugins": [ + "cloudExperiments", + "encryptedSavedObjects", + "fleet", + "ml", + "newsfeed", + "security", + "spaces", + "usageCollection", + "lists", + "home", + "telemetry", + "dataViewFieldEditor", + "osquery", + "savedObjectsTaggingOss" + ], + "requiredBundles": [ + "esUiShared", + "fleet", + "kibanaUtils", + "kibanaReact", + "usageCollection", + "lists", + "ml", + "unifiedSearch" + ], + "extraPublicDirs": [ + "common" + ] + } +} diff --git a/x-pack/plugins/security_solution/package.json b/x-pack/plugins/security_solution/package.json index 8745e96e994175..b886836ec9b181 100644 --- a/x-pack/plugins/security_solution/package.json +++ b/x-pack/plugins/security_solution/package.json @@ -1,9 +1,9 @@ { "author": "Elastic", - "name": "security_solution", - "version": "8.0.0", + "name": "@kbn/security-solution-plugin", + "version": "1.0.0", "private": true, - "license": "Elastic-License", + "license": "Elastic License 2.0", "scripts": { "extract-mitre-attacks": "node scripts/extract_tactics_techniques_mitre.js && node ../../../scripts/eslint ./public/detections/mitre/mitre_tactics_techniques.ts --fix", "build-beat-doc": "node scripts/beat_docs/build.js && node ../../../scripts/eslint ../timelines/server/utils/beat_schema/fields.ts --fix", diff --git a/x-pack/plugins/security_solution/public/actions/show_top_n/show_top_n_component.test.tsx b/x-pack/plugins/security_solution/public/actions/show_top_n/show_top_n_component.test.tsx index 6c702bb20fd909..49ddc83563fd73 100644 --- a/x-pack/plugins/security_solution/public/actions/show_top_n/show_top_n_component.test.tsx +++ b/x-pack/plugins/security_solution/public/actions/show_top_n/show_top_n_component.test.tsx @@ -20,7 +20,7 @@ jest.mock('react-router-dom', () => { useLocation: jest.fn().mockReturnValue({ pathname: '/test' }), }; }); -jest.mock('../../common/components/visualization_actions'); +jest.mock('../../common/components/visualization_actions/actions'); const casesService = { ui: { getCasesContext: () => mockCasesContext }, diff --git a/x-pack/plugins/security_solution/public/app/deep_links/index.ts b/x-pack/plugins/security_solution/public/app/deep_links/index.ts index db8cf4f92ccaf5..9853c52502fb23 100644 --- a/x-pack/plugins/security_solution/public/app/deep_links/index.ts +++ b/x-pack/plugins/security_solution/public/app/deep_links/index.ts @@ -27,6 +27,7 @@ import { BLOCKLIST, CREATE_NEW_RULE, DASHBOARDS, + DATA_QUALITY, DETECT, DETECTION_RESPONSE, ENDPOINTS, @@ -54,6 +55,7 @@ import { BLOCKLIST_PATH, CASES_FEATURE_ID, CASES_PATH, + DATA_QUALITY_PATH, DETECTION_RESPONSE_PATH, ENDPOINTS_PATH, EVENT_FILTERS_PATH, @@ -180,6 +182,17 @@ export const securitySolutionsDeepLinks: SecuritySolutionDeepLink[] = [ }), ], }, + { + id: SecurityPageName.dataQuality, + title: DATA_QUALITY, + path: DATA_QUALITY_PATH, + features: [FEATURE.general], + keywords: [ + i18n.translate('xpack.securitySolution.search.dataQualityDashboard', { + defaultMessage: 'Data quality', + }), + ], + }, ], }, { diff --git a/x-pack/plugins/security_solution/public/app/home/home_navigations.ts b/x-pack/plugins/security_solution/public/app/home/home_navigations.ts index 1a02a9ad75a821..bbff6ffa0a6f96 100644 --- a/x-pack/plugins/security_solution/public/app/home/home_navigations.ts +++ b/x-pack/plugins/security_solution/public/app/home/home_navigations.ts @@ -32,6 +32,7 @@ import { APP_LANDING_PATH, APP_RESPONSE_ACTIONS_HISTORY_PATH, APP_ENTITY_ANALYTICS_PATH, + APP_DATA_QUALITY_PATH, APP_PATH, } from '../../../common/constants'; @@ -192,6 +193,13 @@ export const navTabs: SecurityNav = { disabled: false, urlKey: 'entity_analytics', }, + [SecurityPageName.dataQuality]: { + id: SecurityPageName.dataQuality, + name: i18n.DATA_QUALITY, + href: APP_DATA_QUALITY_PATH, + disabled: false, + urlKey: 'data_quality', + }, }; export const securityNavGroup: SecurityNavGroup = { diff --git a/x-pack/plugins/security_solution/public/app/translations.ts b/x-pack/plugins/security_solution/public/app/translations.ts index 36b13518f2626c..3ea42f8229ea40 100644 --- a/x-pack/plugins/security_solution/public/app/translations.ts +++ b/x-pack/plugins/security_solution/public/app/translations.ts @@ -11,6 +11,13 @@ export const OVERVIEW = i18n.translate('xpack.securitySolution.navigation.overvi defaultMessage: 'Overview', }); +export const DATA_QUALITY = i18n.translate( + 'xpack.securitySolution.navigation.ecsDataQualityDashboard', + { + defaultMessage: 'Data Quality', + } +); + export const DETECTION_RESPONSE = i18n.translate( 'xpack.securitySolution.navigation.detectionResponse', { diff --git a/x-pack/plugins/security_solution/public/common/components/alert_count_by_status/use_alert_count_by_rule_by_status.ts b/x-pack/plugins/security_solution/public/common/components/alert_count_by_status/use_alert_count_by_rule_by_status.ts index 1bb5b4e7c6ca0e..515a5306ae9133 100644 --- a/x-pack/plugins/security_solution/public/common/components/alert_count_by_status/use_alert_count_by_rule_by_status.ts +++ b/x-pack/plugins/security_solution/public/common/components/alert_count_by_status/use_alert_count_by_rule_by_status.ts @@ -7,6 +7,7 @@ import { useCallback, useEffect, useState } from 'react'; +import { firstNonNullValue } from '../../../../common/endpoint/models/ecs_safety_helpers'; import type { ESBoolQuery } from '../../../../common/typed_json'; import type { Status } from '../../../../common/detection_engine/schemas/common'; import type { GenericBuckets } from '../../../../common/search_strategy'; @@ -202,7 +203,7 @@ const parseAlertCountByRuleItems = ( return buckets.map((bucket) => { const uuid = bucket.ruleUuid.hits?.hits[0]?._source['kibana.alert.rule.uuid'] || ''; return { - ruleName: bucket.key, + ruleName: firstNonNullValue(bucket.key) ?? '-', count: bucket.doc_count, uuid, }; diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/index.test.tsx index 8f53a3f226ce6d..75f641501dc520 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/index.test.tsx @@ -49,7 +49,7 @@ describe('AlertsTreemap', () => { }); test('it renders the treemap', () => { - expect(screen.getByTestId('treemap').querySelector('.echChart')).toBeInTheDocument(); + expect(screen.getByTestId('alerts-treemap').querySelector('.echChart')).toBeInTheDocument(); }); test('it renders the legend with the expected overflow-y style', () => { @@ -71,7 +71,7 @@ describe('AlertsTreemap', () => { }); test('it does NOT render the treemap', () => { - expect(screen.queryByTestId('treemap')).not.toBeInTheDocument(); + expect(screen.queryByTestId('alerts-treemap')).not.toBeInTheDocument(); }); test('it does NOT render the legend', () => { @@ -127,7 +127,7 @@ describe('AlertsTreemap', () => { }); test('it renders the treemap', () => { - expect(screen.getByTestId('treemap').querySelector('.echChart')).toBeInTheDocument(); + expect(screen.getByTestId('alerts-treemap').querySelector('.echChart')).toBeInTheDocument(); }); test('it does NOT render the "no data" message', () => { diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/index.tsx b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/index.tsx index fc6edda0c90b90..1683bba36c1c75 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/index.tsx @@ -31,7 +31,7 @@ import { NoData } from './no_data'; import { NO_DATA_REASON_LABEL } from './translations'; import type { AlertsTreeMapAggregation, FlattenedBucket, RawBucket } from './types'; -export const DEFAULT_MIN_CHART_HEIGHT = 370; // px +export const DEFAULT_MIN_CHART_HEIGHT = 240; // px const DEFAULT_LEGEND_WIDTH = 300; // px export interface Props { @@ -165,7 +165,7 @@ const AlertsTreemapComponent: React.FC = ({ } return ( -
    +
    {stackByField1 != null && !isEmpty(stackByField1) && normalizedData.length === 0 ? ( diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/flatten/flatten_bucket.ts b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/flatten/flatten_bucket.ts index ef15178cbc2563..c0780b4e7bd665 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/flatten/flatten_bucket.ts +++ b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/flatten/flatten_bucket.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { firstNonNullValue } from '../../../../../../common/endpoint/models/ecs_safety_helpers'; import type { RawBucket, FlattenedBucket } from '../../types'; export const flattenBucket = ({ @@ -18,6 +19,6 @@ export const flattenBucket = ({ doc_count: bucket.doc_count, key: bucket.key_as_string ?? bucket.key, // prefer key_as_string when available, because it contains a formatted date maxRiskSubAggregation: bucket.maxRiskSubAggregation, - stackByField1Key: x.key_as_string ?? x.key, + stackByField1Key: x.key_as_string ?? firstNonNullValue(x.key), stackByField1DocCount: x.doc_count, })) ?? []; diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/helpers.ts b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/helpers.ts index f71c49f08b05fb..e41d2ddeacacab 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/helpers.ts @@ -13,6 +13,7 @@ import type { WordCloudElementEvent, XYChartElementEvent, } from '@elastic/charts'; +import { firstNonNullValue } from '../../../../../common/endpoint/models/ecs_safety_helpers'; import type { RawBucket } from '../types'; @@ -28,7 +29,10 @@ export const getMaxRiskSubAggregations = ( buckets: RawBucket[] ): Record => buckets.reduce>( - (acc, x) => ({ ...acc, [x.key]: x.maxRiskSubAggregation?.value ?? undefined }), + (acc, x) => ({ + ...acc, + [firstNonNullValue(x.key) ?? '']: x.maxRiskSubAggregation?.value ?? undefined, + }), {} ); diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/legend/get_flattened_legend_items.ts b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/legend/get_flattened_legend_items.ts index a904d6ef90bd07..5b8ba7230485ab 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/legend/get_flattened_legend_items.ts +++ b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/legend/get_flattened_legend_items.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { firstNonNullValue } from '../../../../../../common/endpoint/models/ecs_safety_helpers'; import type { LegendItem } from '../../../charts/draggable_legend_item'; import { getLegendMap, getLegendItemFromFlattenedBucket } from '.'; import type { FlattenedBucket, RawBucket } from '../../types'; @@ -38,8 +39,8 @@ export const getFlattenedLegendItems = ({ >( (acc, flattenedBucket) => ({ ...acc, - [flattenedBucket.key]: [ - ...(acc[flattenedBucket.key] ?? []), + [firstNonNullValue(flattenedBucket.key) ?? '']: [ + ...(acc[firstNonNullValue(flattenedBucket.key) ?? ''] ?? []), getLegendItemFromFlattenedBucket({ colorPalette, flattenedBucket, @@ -54,7 +55,7 @@ export const getFlattenedLegendItems = ({ // reduce all the legend items to a single array in the same order as the raw buckets: return buckets.reduce( - (acc, bucket) => [...acc, ...combinedLegendItems[bucket.key]], + (acc, bucket) => [...acc, ...combinedLegendItems[firstNonNullValue(bucket.key) ?? '']], [] ); }; diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/legend/index.ts b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/legend/index.ts index a47245e70389f6..97369870032523 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/legend/index.ts +++ b/x-pack/plugins/security_solution/public/common/components/alerts_treemap/lib/legend/index.ts @@ -7,6 +7,7 @@ import { v4 as uuidv4 } from 'uuid'; +import { firstNonNullValue } from '../../../../../../common/endpoint/models/ecs_safety_helpers'; import type { LegendItem } from '../../../charts/draggable_legend_item'; import { getFillColor } from '../chart_palette'; import { escapeDataProviderId } from '../../../drag_and_drop/helpers'; @@ -28,7 +29,7 @@ export const getLegendItemFromRawBucket = ({ }): LegendItem => ({ color: showColor ? getFillColor({ - riskScore: maxRiskSubAggregations[bucket.key] ?? 0, + riskScore: maxRiskSubAggregations[firstNonNullValue(bucket.key) ?? ''] ?? 0, colorPalette, }) : undefined, @@ -38,11 +39,11 @@ export const getLegendItemFromRawBucket = ({ ), render: () => getLabel({ - baseLabel: bucket.key_as_string ?? bucket.key, // prefer key_as_string when available, because it contains a formatted date + baseLabel: bucket.key_as_string ?? firstNonNullValue(bucket.key) ?? '', // prefer key_as_string when available, because it contains a formatted date riskScore: bucket.maxRiskSubAggregation?.value, }), field: stackByField0, - value: bucket.key_as_string ?? bucket.key, + value: bucket.key_as_string ?? firstNonNullValue(bucket.key) ?? 0, }); export const getLegendItemFromFlattenedBucket = ({ @@ -59,7 +60,7 @@ export const getLegendItemFromFlattenedBucket = ({ stackByField1: string | undefined; }): LegendItem => ({ color: getFillColor({ - riskScore: maxRiskSubAggregations[key] ?? 0, + riskScore: maxRiskSubAggregations[firstNonNullValue(key) ?? ''] ?? 0, colorPalette, }), count: stackByField1DocCount, @@ -106,7 +107,7 @@ export const getLegendMap = ({ buckets.reduce>( (acc, bucket) => ({ ...acc, - [bucket.key]: [ + [firstNonNullValue(bucket.key) ?? '']: [ getLegendItemFromRawBucket({ bucket, colorPalette, diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_treemap_panel/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/alerts_treemap_panel/index.test.tsx index 0db21ee27ea75d..5a3f4b3e25e0ed 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_treemap_panel/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/alerts_treemap_panel/index.test.tsx @@ -214,7 +214,7 @@ describe('AlertsTreemapPanel', () => { ); - await waitFor(() => expect(screen.getByTestId('chartSelect')).toBeInTheDocument()); + await waitFor(() => expect(screen.getByTestId('chart-select-tabs')).toBeInTheDocument()); }); it('renders field selection when `isPanelExpanded` is true', async () => { @@ -305,6 +305,6 @@ describe('AlertsTreemapPanel', () => { ); - await waitFor(() => expect(screen.getByTestId('treemap')).toBeInTheDocument()); + await waitFor(() => expect(screen.getByTestId('alerts-treemap')).toBeInTheDocument()); }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/charts/areachart.tsx b/x-pack/plugins/security_solution/public/common/components/charts/areachart.tsx index d458c00558aa60..e0a2f623ebe74b 100644 --- a/x-pack/plugins/security_solution/public/common/components/charts/areachart.tsx +++ b/x-pack/plugins/security_solution/public/common/components/charts/areachart.tsx @@ -25,7 +25,7 @@ import { Wrapper, ChartWrapper, } from './common'; -import { VisualizationActions } from '../visualization_actions'; +import { VisualizationActions } from '../visualization_actions/actions'; import type { VisualizationActionsProps } from '../visualization_actions/types'; import { HoverVisibilityContainer } from '../hover_visibility_container'; diff --git a/x-pack/plugins/security_solution/public/common/components/charts/barchart.tsx b/x-pack/plugins/security_solution/public/common/components/charts/barchart.tsx index 7e9b6b3bd01dc1..9390c2edeee9a9 100644 --- a/x-pack/plugins/security_solution/public/common/components/charts/barchart.tsx +++ b/x-pack/plugins/security_solution/public/common/components/charts/barchart.tsx @@ -35,7 +35,7 @@ import { import { DraggableLegend } from './draggable_legend'; import type { LegendItem } from './draggable_legend_item'; import type { ChartData, ChartSeriesConfigs, ChartSeriesData } from './common'; -import { VisualizationActions } from '../visualization_actions'; +import { VisualizationActions } from '../visualization_actions/actions'; import type { VisualizationActionsProps } from '../visualization_actions/types'; import { HoverVisibilityContainer } from '../hover_visibility_container'; import { VISUALIZATION_ACTIONS_BUTTON_CLASS } from '../visualization_actions/utils'; diff --git a/x-pack/plugins/security_solution/public/common/components/charts/donutchart_empty.tsx b/x-pack/plugins/security_solution/public/common/components/charts/donutchart_empty.tsx index a378f94bfbe1ec..e59a685133ba56 100644 --- a/x-pack/plugins/security_solution/public/common/components/charts/donutchart_empty.tsx +++ b/x-pack/plugins/security_solution/public/common/components/charts/donutchart_empty.tsx @@ -6,6 +6,7 @@ */ import React from 'react'; import styled from 'styled-components'; +import { useEuiBackgroundColor } from '@elastic/eui'; interface DonutChartEmptyProps { size?: number; @@ -29,7 +30,7 @@ const SmallRing = styled.div` ${({ size }) => ` height: ${size}px; width: ${size}px; - background-color: white; + background-color: ${useEuiBackgroundColor('plain')}; display: inline-block; vertical-align: middle;`} `; diff --git a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx index 1387784d82860e..a1f69bbda6587b 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx @@ -47,7 +47,7 @@ jest.mock('../../lib/kibana', () => { }; }); -jest.mock('../visualization_actions'); +jest.mock('../visualization_actions/actions'); jest.mock('../visualization_actions/lens_embeddable'); jest.mock('react-router-dom', () => ({ diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.test.tsx index 81f8498b397968..ca6d1f14a03f36 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.test.tsx @@ -18,7 +18,7 @@ import { eventsDefaultModel } from './default_model'; import { EntityType } from '@kbn/timelines-plugin/common'; import { SourcererScopeName } from '../../store/sourcerer/model'; import { DefaultCellRenderer } from '../../../timelines/components/timeline/cell_rendering/default_cell_renderer'; -import { useTimelineEvents } from '../../../timelines/containers'; +import { useTimelineEvents } from './use_timelines_events'; import { getDefaultControlColumn } from '../../../timelines/components/timeline/body/control_columns'; import { defaultRowRenderers } from '../../../timelines/components/timeline/body/renderers'; import { defaultCellActions } from '../../lib/cell_actions/default_cell_actions'; @@ -46,9 +46,7 @@ const originalKibanaLib = jest.requireActual('../../lib/kibana'); const mockUseGetUserCasesPermissions = useGetUserCasesPermissions as jest.Mock; mockUseGetUserCasesPermissions.mockImplementation(originalKibanaLib.useGetUserCasesPermissions); -jest.mock('../../../timelines/containers', () => ({ - useTimelineEvents: jest.fn(), -})); +jest.mock('./use_timelines_events'); jest.mock('../../utils/normalize_time_range'); @@ -57,12 +55,6 @@ jest.mock('../../../timelines/components/fields_browser', () => ({ useFieldBrowserOptions: (props: UseFieldBrowserOptionsProps) => mockUseFieldBrowserOptions(props), })); -jest.mock('./helpers', () => ({ - getDefaultViewSelection: () => 'gridView', - resolverIsShowing: () => false, - getCombinedFilterQuery: () => undefined, -})); - const mockUseResizeObserver: jest.Mock = useResizeObserver as jest.Mock; jest.mock('use-resize-observer/polyfilled'); mockUseResizeObserver.mockImplementation(() => ({})); @@ -87,7 +79,12 @@ const testProps = { hasCrudPermissions: true, }; describe('StatefulEventsViewer', () => { - (useTimelineEvents as jest.Mock).mockReturnValue([false, mockEventViewerResponse]); + beforeAll(() => { + (useTimelineEvents as jest.Mock).mockReturnValue([false, mockEventViewerResponse]); + }); + beforeEach(() => { + jest.clearAllMocks(); + }); test('it renders the events viewer', () => { const wrapper = mount( @@ -127,4 +124,25 @@ describe('StatefulEventsViewer', () => { unmount(); expect(mockCloseEditor).toHaveBeenCalled(); }); + + test('renders the RightTopMenu additional menu options when given additionalRightMenuOptions props', () => { + const { getByTestId } = render( + + ]} + /> + + ); + expect(getByTestId('right-option')).toBeInTheDocument(); + }); + + test('does not render the RightTopMenu additional menu options when additionalRightMenuOptions props are not given', () => { + const { queryByTestId } = render( + + + + ); + expect(queryByTestId('right-option')).not.toBeInTheDocument(); + }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx index 5c5054bd0fa56e..c8a1d1131b1fb6 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx @@ -96,6 +96,7 @@ export interface EventsViewerProps { unit?: (n: number) => string; indexNames?: string[]; bulkActions: boolean | BulkActionsProp; + additionalRightMenuOptions?: React.ReactNode[]; } /** @@ -124,6 +125,7 @@ const StatefulEventsViewerComponent: React.FC { const dispatch = useDispatch(); const theme: EuiTheme = useContext(ThemeContext); @@ -554,6 +556,7 @@ const StatefulEventsViewerComponent: React.FC setTableView(selectedView)} additionalFilters={additionalFilters} hasRightOffset={tableView === 'gridView' && nonDeletedEvents.length > 0} + additionalMenuOptions={additionalRightMenuOptions} /> {!hasAlerts && !loading && !graphOverlay && } diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/right_top_menu.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/right_top_menu.tsx index d22c2cae61f8f8..8294cc78d77ce8 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/right_top_menu.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/right_top_menu.tsx @@ -26,6 +26,7 @@ interface Props { onViewChange: (viewSelection: ViewSelection) => void; additionalFilters?: React.ReactNode; hasRightOffset?: boolean; + additionalMenuOptions?: React.ReactNode[]; } export const RightTopMenu = ({ @@ -36,6 +37,7 @@ export const RightTopMenu = ({ onViewChange, additionalFilters, hasRightOffset, + additionalMenuOptions = [], }: Props) => { const alignItems = tableView === 'gridView' ? 'baseline' : 'center'; const justTitle = useMemo(() => {title}, [title]); @@ -43,6 +45,19 @@ export const RightTopMenu = ({ const tGridEventRenderedViewEnabled = useIsExperimentalFeatureEnabled( 'tGridEventRenderedViewEnabled' ); + + const menuOptions = useMemo( + () => + additionalMenuOptions.length + ? additionalMenuOptions.map((additionalMenuOption, i) => ( + + {additionalMenuOption} + + )) + : null, + [additionalMenuOptions, loading] + ); + return ( )} + {menuOptions} ); }; diff --git a/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx b/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx index e0ca253e1fe51c..5e918b7c4d46de 100644 --- a/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx @@ -12,6 +12,7 @@ import type { OptionsListEmbeddableInput, ControlGroupContainer, } from '@kbn/controls-plugin/public'; +import { i18n } from '@kbn/i18n'; import { LazyControlGroupRenderer } from '@kbn/controls-plugin/public'; import type { PropsWithChildren } from 'react'; import React, { createContext, useCallback, useEffect, useState, useRef, useMemo } from 'react'; @@ -344,6 +345,9 @@ const FilterGroupComponent = (props: PropsWithChildren) => { id="filter-group__context-menu" button={ , + }, + ], + takeActionItems: [ +

    , +

    , + ], +}; +describe('Group stats', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('renders each stat item', () => { + const { getByTestId } = render( + + + + ); + expect(getByTestId('group-stats')).toBeInTheDocument(); + testProps.badgeMetricStats.forEach(({ title: stat }) => { + expect(getByTestId(`metric-${stat}`)).toBeInTheDocument(); + }); + testProps.customMetricStats.forEach(({ title: stat }) => { + expect(getByTestId(`customMetric-${stat}`)).toBeInTheDocument(); + }); + }); + it('when onTakeActionsOpen is defined, call onTakeActionsOpen on popover click', () => { + const { getByTestId, queryByTestId } = render( + + + + ); + fireEvent.click(getByTestId('take-action-button')); + expect(onTakeActionsOpen).toHaveBeenCalled(); + ['takeActionItem-1', 'takeActionItem-2'].forEach((actionItem) => { + expect(queryByTestId(actionItem)).not.toBeInTheDocument(); + }); + }); + it('when onTakeActionsOpen is undefined, render take actions dropdown on popover click', () => { + const { getByTestId } = render( + + + + ); + fireEvent.click(getByTestId('take-action-button')); + ['takeActionItem-1', 'takeActionItem-2'].forEach((actionItem) => { + expect(getByTestId(actionItem)).toBeInTheDocument(); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/group_stats.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/group_stats.tsx new file mode 100644 index 00000000000000..9611019434c869 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/group_stats.tsx @@ -0,0 +1,120 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + EuiBadge, + EuiButtonEmpty, + EuiContextMenuPanel, + EuiFlexGroup, + EuiFlexItem, + EuiPopover, + EuiToolTip, +} from '@elastic/eui'; +import React, { useCallback, useMemo, useState } from 'react'; +import type { BadgeMetric, CustomMetric } from '.'; +import { StatsContainer } from '../styles'; +import { TAKE_ACTION } from '../translations'; +import type { RawBucket } from '../types'; + +interface GroupStatsProps { + badgeMetricStats?: BadgeMetric[]; + bucket: RawBucket; + customMetricStats?: CustomMetric[]; + onTakeActionsOpen?: () => void; + takeActionItems: JSX.Element[]; +} + +const GroupStatsComponent = ({ + badgeMetricStats, + bucket, + customMetricStats, + onTakeActionsOpen, + takeActionItems, +}: GroupStatsProps) => { + const [isPopoverOpen, setPopover] = useState(false); + + const onButtonClick = useCallback( + () => (!isPopoverOpen && onTakeActionsOpen ? onTakeActionsOpen() : setPopover(!isPopoverOpen)), + [isPopoverOpen, onTakeActionsOpen] + ); + + const badgesComponents = useMemo( + () => + badgeMetricStats?.map((metric) => ( + + + <> + {metric.title} + + + {metric.value > 99 ? '99+' : metric.value.toString()} + + + + + + )), + [badgeMetricStats] + ); + + const customComponents = useMemo( + () => + customMetricStats?.map((customMetric) => ( + + + {customMetric.title} + {customMetric.customStatRenderer} + + + )), + [customMetricStats] + ); + + const popoverComponent = useMemo( + () => ( + + + {TAKE_ACTION} + + } + closePopover={() => setPopover(false)} + isOpen={isPopoverOpen} + panelPaddingSize="none" + > + + + + ), + [isPopoverOpen, onButtonClick, takeActionItems] + ); + + return ( + + {customComponents} + {badgesComponents} + {popoverComponent} + + ); +}; + +export const GroupStats = React.memo(GroupStatsComponent); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/helpers.ts b/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/helpers.ts new file mode 100644 index 00000000000000..d496b8d79068a5 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/helpers.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const createGroupFilter = (selectedGroup: string, query?: string) => + query && selectedGroup + ? [ + { + meta: { + alias: null, + disabled: false, + key: selectedGroup, + negate: false, + params: { + query, + }, + type: 'phrase', + }, + query: { + match_phrase: { + [selectedGroup]: { + query, + }, + }, + }, + }, + ] + : []; diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/index.test.tsx new file mode 100644 index 00000000000000..3da0aefb358953 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/index.test.tsx @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { fireEvent, render } from '@testing-library/react'; +import { GroupPanel } from '.'; +import { createGroupFilter } from './helpers'; +import React from 'react'; + +const onToggleGroup = jest.fn(); +const renderChildComponent = jest.fn(); +const ruleName = 'Rule name'; +const ruleDesc = 'Rule description'; + +const testProps = { + groupBucket: { + key: [ruleName, ruleDesc], + key_as_string: `${ruleName}|${ruleDesc}`, + doc_count: 98, + hostsCountAggregation: { + value: 5, + }, + ruleTags: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + alertsCount: { + value: 98, + }, + rulesCountAggregation: { + value: 1, + }, + severitiesSubAggregation: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'low', + doc_count: 98, + }, + ], + }, + countSeveritySubAggregation: { + value: 1, + }, + usersCountAggregation: { + value: 98, + }, + }, + renderChildComponent, + selectedGroup: 'kibana.alert.rule.name', +}; + +describe('grouping accordion panel', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('creates the query for the selectedGroup attribute', () => { + const { getByTestId } = render(); + expect(getByTestId('grouping-accordion')).toBeInTheDocument(); + expect(renderChildComponent).toHaveBeenCalledWith( + createGroupFilter(testProps.selectedGroup, ruleName) + ); + }); + it('does not create query without a valid groupFieldValue', () => { + const { queryByTestId } = render( + + ); + expect(queryByTestId('grouping-accordion')).not.toBeInTheDocument(); + expect(renderChildComponent).not.toHaveBeenCalled(); + }); + it('When onToggleGroup not defined, does nothing on toggle', () => { + const { container } = render(); + fireEvent.click(container.querySelector('[data-test-subj="grouping-accordion"] button')!); + expect(onToggleGroup).not.toHaveBeenCalled(); + }); + it('When onToggleGroup is defined, calls function with proper args on toggle', () => { + const { container } = render(); + fireEvent.click(container.querySelector('[data-test-subj="grouping-accordion"] button')!); + expect(onToggleGroup).toHaveBeenCalledWith(true, testProps.groupBucket); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/index.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/index.tsx new file mode 100644 index 00000000000000..446b872f3d5f1b --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/accordion_panel/index.tsx @@ -0,0 +1,101 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiAccordion, EuiFlexGroup, EuiFlexItem, EuiTitle } from '@elastic/eui'; +import type { Filter } from '@kbn/es-query'; +import React, { useCallback, useMemo } from 'react'; +import { firstNonNullValue } from '../../../../../common/endpoint/models/ecs_safety_helpers'; +import type { RawBucket } from '../types'; +import { createGroupFilter } from './helpers'; + +export interface BadgeMetric { + title: string; + value: number; + color?: string; + width?: number; +} + +export interface CustomMetric { + title: string; + customStatRenderer: JSX.Element; +} + +interface GroupPanelProps { + customAccordionButtonClassName?: string; + customAccordionClassName?: string; + extraAction?: React.ReactNode; + forceState?: 'open' | 'closed'; + groupBucket: RawBucket; + groupPanelRenderer?: JSX.Element; + level?: number; + onToggleGroup?: (isOpen: boolean, groupBucket: RawBucket) => void; + renderChildComponent: (groupFilter: Filter[]) => React.ReactNode; + selectedGroup: string; +} + +const DefaultGroupPanelRenderer = ({ title }: { title: string }) => ( +

    + + + +

    {title}

    +
    +
    +
    +
    +); + +const GroupPanelComponent = ({ + customAccordionButtonClassName = 'groupingAccordionForm__button', + customAccordionClassName = 'groupingAccordionForm', + extraAction, + forceState, + groupBucket, + groupPanelRenderer, + level = 0, + onToggleGroup, + renderChildComponent, + selectedGroup, +}: GroupPanelProps) => { + const groupFieldValue = useMemo(() => firstNonNullValue(groupBucket.key), [groupBucket.key]); + + const groupFilters = useMemo( + () => createGroupFilter(selectedGroup, groupFieldValue), + [groupFieldValue, selectedGroup] + ); + + const onToggle = useCallback( + (isOpen) => { + if (onToggleGroup) { + onToggleGroup(isOpen, groupBucket); + } + }, + [groupBucket, onToggleGroup] + ); + + return !groupFieldValue ? null : ( + + {groupPanelRenderer ?? } +
    + } + className={customAccordionClassName} + data-test-subj="grouping-accordion" + extraAction={extraAction} + forceState={forceState} + id={`group${level}-${groupFieldValue}`} + onToggle={onToggle} + paddingSize="m" + > + {renderChildComponent(groupFilters)} + + ); +}; + +export const GroupPanel = React.memo(GroupPanelComponent); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/container/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/container/index.test.tsx new file mode 100644 index 00000000000000..f51b722af2dec5 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/container/index.test.tsx @@ -0,0 +1,180 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { fireEvent, render, within } from '@testing-library/react'; +import React from 'react'; +import { GroupingContainer } from '..'; +import { TestProviders } from '../../../mock'; +import { createGroupFilter } from '../accordion_panel/helpers'; + +const renderChildComponent = jest.fn(); +const takeActionItems = jest.fn(); +const rule1Name = 'Rule 1 name'; +const rule1Desc = 'Rule 1 description'; +const rule2Name = 'Rule 2 name'; +const rule2Desc = 'Rule 2 description'; + +const testProps = { + data: { + groupsNumber: { + value: 2, + }, + stackByMultipleFields0: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: [rule1Name, rule1Desc], + key_as_string: `${rule1Name}|${rule1Desc}`, + doc_count: 1, + hostsCountAggregation: { + value: 1, + }, + ruleTags: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + alertsCount: { + value: 1, + }, + severitiesSubAggregation: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'low', + doc_count: 1, + }, + ], + }, + countSeveritySubAggregation: { + value: 1, + }, + usersCountAggregation: { + value: 1, + }, + }, + { + key: [rule2Name, rule2Desc], + key_as_string: `${rule2Name}|${rule2Desc}`, + doc_count: 1, + hostsCountAggregation: { + value: 1, + }, + ruleTags: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + alertsCount: { + value: 1, + }, + severitiesSubAggregation: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'low', + doc_count: 1, + }, + ], + }, + countSeveritySubAggregation: { + value: 1, + }, + usersCountAggregation: { + value: 1, + }, + }, + ], + }, + alertsCount: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'siem', + doc_count: 2, + }, + ], + }, + }, + pagination: { + pageIndex: 0, + pageSize: 25, + onChangeItemsPerPage: jest.fn(), + onChangePage: jest.fn(), + }, + renderChildComponent, + selectedGroup: 'kibana.alert.rule.name', + takeActionItems, +}; + +describe('grouping container', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('Renders group counts when groupsNumber > 0', () => { + const { getByTestId, getAllByTestId, queryByTestId } = render( + + + + ); + expect(getByTestId('alert-count').textContent).toBe('2 alerts'); + expect(getByTestId('groups-count').textContent).toBe('2 groups'); + expect(getAllByTestId('grouping-accordion').length).toBe(2); + expect(queryByTestId('empty-results-panel')).not.toBeInTheDocument(); + }); + + it('Does not render group counts when groupsNumber = 0', () => { + const data = { + groupsNumber: { + value: 0, + }, + stackByMultipleFields0: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + alertsCount: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + }; + const { getByTestId, queryByTestId } = render( + + + + ); + expect(queryByTestId('alert-count')).not.toBeInTheDocument(); + expect(queryByTestId('groups-count')).not.toBeInTheDocument(); + expect(queryByTestId('grouping-accordion')).not.toBeInTheDocument(); + expect(getByTestId('empty-results-panel')).toBeInTheDocument(); + }); + + it('Opens one group at a time when each group is clicked', () => { + const { getAllByTestId } = render( + + + + ); + const group1 = within(getAllByTestId('grouping-accordion')[0]).getAllByRole('button')[0]; + const group2 = within(getAllByTestId('grouping-accordion')[1]).getAllByRole('button')[0]; + fireEvent.click(group1); + expect(renderChildComponent).toHaveBeenNthCalledWith( + 1, + createGroupFilter(testProps.selectedGroup, rule1Name) + ); + fireEvent.click(group2); + expect(renderChildComponent).toHaveBeenNthCalledWith( + 2, + createGroupFilter(testProps.selectedGroup, rule2Name) + ); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/container/index.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/container/index.tsx new file mode 100644 index 00000000000000..d23e220e3c5670 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/container/index.tsx @@ -0,0 +1,189 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiTablePagination } from '@elastic/eui'; +import type { Filter } from '@kbn/es-query'; +import React, { useMemo, useState } from 'react'; +import { firstNonNullValue } from '../../../../../common/endpoint/models/ecs_safety_helpers'; +import { createGroupFilter } from '../accordion_panel/helpers'; +import { tableDefaults } from '../../../store/data_table/defaults'; +import { defaultUnit } from '../../toolbar/unit'; +import type { BadgeMetric, CustomMetric } from '../accordion_panel'; +import { GroupPanel } from '../accordion_panel'; +import { GroupStats } from '../accordion_panel/group_stats'; +import { EmptyGroupingComponent } from '../empty_resuls_panel'; +import { GroupingStyledContainer, GroupsUnitCount } from '../styles'; +import { GROUPS_UNIT } from '../translations'; +import type { GroupingTableAggregation, RawBucket } from '../types'; + +interface GroupingContainerProps { + badgeMetricStats?: (fieldBucket: RawBucket) => BadgeMetric[]; + customMetricStats?: (fieldBucket: RawBucket) => CustomMetric[]; + data: GroupingTableAggregation & + Record< + string, + { + value?: number | null; + buckets?: Array<{ + doc_count?: number | null; + }>; + } + >; + groupPanelRenderer?: (fieldBucket: RawBucket) => JSX.Element | undefined; + groupsSelector?: JSX.Element; + inspectButton?: JSX.Element; + pagination: { + pageIndex: number; + pageSize: number; + onChangeItemsPerPage: (itemsPerPageNumber: number) => void; + onChangePage: (pageNumber: number) => void; + }; + renderChildComponent: (groupFilter: Filter[]) => React.ReactNode; + selectedGroup: string; + takeActionItems: (groupFilters: Filter[]) => JSX.Element[]; + unit?: (n: number) => string; +} + +const GroupingContainerComponent = ({ + badgeMetricStats, + customMetricStats, + data, + groupPanelRenderer, + groupsSelector, + inspectButton, + pagination, + renderChildComponent, + selectedGroup, + takeActionItems, + unit = defaultUnit, +}: GroupingContainerProps) => { + const [trigger, setTrigger] = useState< + Record + >({}); + + const groupsNumber = data?.groupsNumber?.value ?? 0; + const unitCountText = useMemo(() => { + const count = + data?.alertsCount?.buckets && data?.alertsCount?.buckets.length > 0 + ? data?.alertsCount?.buckets[0].doc_count ?? 0 + : 0; + return `${count.toLocaleString()} ${unit && unit(count)}`; + }, [data?.alertsCount?.buckets, unit]); + + const unitGroupsCountText = useMemo( + () => `${groupsNumber.toLocaleString()} ${GROUPS_UNIT(groupsNumber)}`, + [groupsNumber] + ); + + const groupPanels = useMemo( + () => + data.stackByMultipleFields0?.buckets?.map((groupBucket) => { + const group = firstNonNullValue(groupBucket.key); + const groupKey = `group0-${group}`; + + return ( + + + } + forceState={(trigger[groupKey] && trigger[groupKey].state) ?? 'closed'} + groupBucket={groupBucket} + groupPanelRenderer={groupPanelRenderer && groupPanelRenderer(groupBucket)} + onToggleGroup={(isOpen) => { + setTrigger({ + // ...trigger, -> this change will keep only one group at a time expanded and one table displayed + [groupKey]: { + state: isOpen ? 'open' : 'closed', + selectedBucket: groupBucket, + }, + }); + }} + renderChildComponent={ + trigger[groupKey] && trigger[groupKey].state === 'open' + ? renderChildComponent + : () => null + } + selectedGroup={selectedGroup} + /> + + + ); + }), + [ + badgeMetricStats, + customMetricStats, + data.stackByMultipleFields0?.buckets, + groupPanelRenderer, + renderChildComponent, + selectedGroup, + takeActionItems, + trigger, + ] + ); + const pageCount = useMemo( + () => (groupsNumber && pagination.pageSize ? Math.ceil(groupsNumber / pagination.pageSize) : 1), + [groupsNumber, pagination.pageSize] + ); + return ( + <> + + + {groupsNumber > 0 ? ( + + + {unitCountText} + + + + {unitGroupsCountText} + + + + ) : null} + + + + {inspectButton && {inspectButton}} + {groupsSelector} + + + + + {groupsNumber > 0 ? ( + <> + {groupPanels} + + + + ) : ( + + )} + + + ); +}; + +export const GroupingContainer = React.memo(GroupingContainerComponent); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/empty_resuls_panel.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/empty_resuls_panel.tsx new file mode 100644 index 00000000000000..b51cd14e84bab1 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/empty_resuls_panel.tsx @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem, EuiImage, EuiPanel, EuiText, EuiTitle } from '@elastic/eui'; +import React from 'react'; +import type { CoreStart } from '@kbn/core/public'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; + +const panelStyle = { + maxWidth: 500, +}; + +const heights = { + tall: 490, + short: 250, +}; + +export const EmptyGroupingComponent: React.FC<{ height?: keyof typeof heights }> = ({ + height = 'tall', +}) => { + const { http } = useKibana().services; + + return ( + + + + + + + + +

    + +

    +
    +

    + +

    +
    +
    + + + +
    +
    +
    +
    +
    + ); +}; diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/custom_field_panel.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/custom_field_panel.tsx new file mode 100644 index 00000000000000..dc45df7d7bf2e4 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/custom_field_panel.tsx @@ -0,0 +1,104 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { EuiComboBoxOptionOption } from '@elastic/eui'; +import { EuiButton, EuiComboBox, EuiForm, EuiFormRow } from '@elastic/eui'; +import type { FieldSpec } from '@kbn/data-views-plugin/common'; +import { i18n } from '@kbn/i18n'; +import React from 'react'; + +export interface GroupByOptions { + text: string; + field: string; +} + +interface Props { + onSubmit: (field: string) => void; + fields: FieldSpec[]; + currentOptions: GroupByOptions[]; +} + +interface SelectedOption { + label: string; +} + +const initialState = { + selectedOptions: [] as SelectedOption[], +}; + +type State = Readonly; + +export class CustomFieldPanel extends React.PureComponent { + public static displayName = 'CustomFieldPanel'; + public readonly state: State = initialState; + public render() { + const { fields, currentOptions } = this.props; + const options = fields + .filter( + (f) => + f.aggregatable && + f.type === 'string' && + !(currentOptions && currentOptions.some((o) => o.field === f.name)) + ) + .map((f) => ({ label: f.name })); + const isSubmitDisabled = !this.state.selectedOptions.length; + return ( +
    + + + + + + {i18n.translate('xpack.securitySolution.selector.grouping.label.add', { + defaultMessage: 'Add', + })} + + +
    + ); + } + private handleSubmit = () => { + this.props.onSubmit(this.state.selectedOptions[0].label); + }; + + private handleFieldSelection = (selectedOptions: SelectedOption[]) => { + this.setState({ selectedOptions }); + }; +} diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/index.test.tsx new file mode 100644 index 00000000000000..a587206572f9d2 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/index.test.tsx @@ -0,0 +1,104 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { fireEvent, render } from '@testing-library/react'; +import { TestProviders } from '../../../mock'; +import { GroupsSelector } from '..'; +import React from 'react'; + +const onGroupChange = jest.fn(); +const testProps = { + fields: [ + { + name: 'kibana.alert.rule.name', + searchable: true, + type: 'string', + aggregatable: true, + esTypes: ['keyword'], + }, + { + name: 'host.name', + searchable: true, + type: 'string', + aggregatable: true, + esTypes: ['keyword'], + }, + { + name: 'user.name', + searchable: true, + type: 'string', + aggregatable: true, + esTypes: ['keyword'], + }, + { + name: 'source.ip', + searchable: true, + type: 'ip', + aggregatable: true, + esTypes: ['ip'], + }, + ], + groupSelected: 'kibana.alert.rule.name', + onGroupChange, + options: [ + { + label: 'Rule name', + key: 'kibana.alert.rule.name', + }, + { + label: 'User name', + key: 'user.name', + }, + { + label: 'Host name', + key: 'host.name', + }, + { + label: 'Source IP', + key: 'source.ip', + }, + ], + title: 'Group alerts by', +}; +describe('group selector', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('Sets the selected group from the groupSelected prop', () => { + const { getByTestId } = render( + + + + ); + expect(getByTestId('group-selector-dropdown').textContent).toBe('Group alerts by: Rule name'); + }); + it('Presents correct option when group selector dropdown is clicked', () => { + const { getByTestId } = render( + + + + ); + fireEvent.click(getByTestId('group-selector-dropdown')); + [ + ...testProps.options, + { key: 'none', label: 'None' }, + { key: 'custom', label: 'Custom field' }, + ].forEach((o) => { + expect(getByTestId(`panel-${o.key}`).textContent).toBe(o.label); + }); + }); + it('Presents fields dropdown when custom field option is selected', () => { + const { getByTestId } = render( + + + + ); + fireEvent.click(getByTestId('group-selector-dropdown')); + fireEvent.click(getByTestId('panel-none')); + expect(onGroupChange).toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/index.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/index.tsx new file mode 100644 index 00000000000000..389645bf549dab --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/groups_selector/index.tsx @@ -0,0 +1,139 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { + EuiContextMenuPanelDescriptor, + EuiContextMenuPanelItemDescriptor, +} from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiBetaBadge, EuiPopover } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React, { useCallback, useMemo, useState } from 'react'; +import type { FieldSpec } from '@kbn/data-views-plugin/common'; +import { CustomFieldPanel } from './custom_field_panel'; +import { GROUP_BY, TECHNICAL_PREVIEW } from '../translations'; +import { StyledContextMenu, StyledEuiButtonEmpty } from '../styles'; + +const none = i18n.translate('xpack.securitySolution.groupsSelector.noneGroupByOptionName', { + defaultMessage: 'None', +}); + +interface GroupSelectorProps { + fields: FieldSpec[]; + groupSelected: string; + onGroupChange: (groupSelection: string) => void; + options: Array<{ key: string; label: string }>; + title?: string; +} + +const GroupsSelectorComponent = ({ + fields, + groupSelected = 'none', + onGroupChange, + options, + title = '', +}: GroupSelectorProps) => { + const [isPopoverOpen, setIsPopoverOpen] = useState(false); + const panels: EuiContextMenuPanelDescriptor[] = useMemo( + () => [ + { + id: 'firstPanel', + items: [ + { + 'data-test-subj': 'panel-none', + name: none, + icon: groupSelected === 'none' ? 'check' : 'empty', + onClick: () => onGroupChange('none'), + }, + ...options.map((o) => ({ + 'data-test-subj': `panel-${o.key}`, + name: o.label, + onClick: () => onGroupChange(o.key), + icon: groupSelected === o.key ? 'check' : 'empty', + })), + { + 'data-test-subj': `panel-custom`, + name: i18n.translate('xpack.securitySolution.groupsSelector.customGroupByOptionName', { + defaultMessage: 'Custom field', + }), + icon: 'empty', + panel: 'customPanel', + }, + ], + }, + { + id: 'customPanel', + title: i18n.translate('xpack.securitySolution.groupsSelector.customGroupByPanelTitle', { + defaultMessage: 'Group By Custom Field', + }), + width: 685, + content: ( + ({ text: o.label, field: o.key }))} + onSubmit={(field: string) => { + onGroupChange(field); + }} + fields={fields} + /> + ), + }, + ], + [fields, groupSelected, onGroupChange, options] + ); + const selectedOption = useMemo( + () => options.filter((groupOption) => groupOption.key === groupSelected), + [groupSelected, options] + ); + + const onButtonClick = useCallback(() => setIsPopoverOpen((currentVal) => !currentVal), []); + const closePopover = useCallback(() => setIsPopoverOpen(false), []); + + const button = useMemo( + () => ( + 0 ? selectedOption[0].label : none + } + size="xs" + > + {`${title ?? GROUP_BY}: ${ + groupSelected !== 'none' && selectedOption.length > 0 ? selectedOption[0].label : none + }`} + + ), + [groupSelected, onButtonClick, selectedOption, title] + ); + + return ( + + + + + + + + + + + ); +}; + +export const GroupsSelector = React.memo(GroupsSelectorComponent); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/index.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/index.tsx new file mode 100644 index 00000000000000..46b3002ba5c54b --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/index.tsx @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { NONE_GROUP_KEY } from './types'; + +export * from './container'; +export * from './query'; +export * from './groups_selector'; +export * from './types'; + +export const isNoneGroup = (groupKey: string) => groupKey === NONE_GROUP_KEY; diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/query/index.ts b/x-pack/plugins/security_solution/public/common/components/grouping/query/index.ts new file mode 100644 index 00000000000000..8ea6a07f522f7d --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/query/index.ts @@ -0,0 +1,174 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isEmpty } from 'lodash/fp'; +import type { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; + +/** The maximum number of items to render */ +export const DEFAULT_STACK_BY_FIELD0_SIZE = 10; +export const DEFAULT_STACK_BY_FIELD1_SIZE = 10; + +interface OptionalSubAggregation { + stackByMultipleFields1: { + multi_terms: { + terms: Array<{ + field: string; + }>; + }; + }; +} + +export interface CardinalitySubAggregation { + [category: string]: { + cardinality: { + field: string; + }; + }; +} + +export interface TermsSubAggregation { + [category: string]: { + terms: { + field: string; + exclude?: string[]; + }; + }; +} + +export const getOptionalSubAggregation = ({ + stackByMultipleFields1, + stackByMultipleFields1Size, + stackByMultipleFields1From = 0, + stackByMultipleFields1Sort, + additionalStatsAggregationsFields1, +}: { + stackByMultipleFields1: string[] | undefined; + stackByMultipleFields1Size: number; + stackByMultipleFields1From?: number; + stackByMultipleFields1Sort?: Array<{ [category: string]: { order: 'asc' | 'desc' } }>; + additionalStatsAggregationsFields1: Array; +}): OptionalSubAggregation | {} => + stackByMultipleFields1 != null && !isEmpty(stackByMultipleFields1) + ? { + stackByMultipleFields1: { + multi_terms: { + terms: stackByMultipleFields1.map((stackByMultipleField1) => ({ + field: stackByMultipleField1, + })), + }, + aggs: { + bucket_truncate: { + bucket_sort: { + sort: stackByMultipleFields1Sort, + from: stackByMultipleFields1From, + size: stackByMultipleFields1Size, + }, + }, + ...additionalStatsAggregationsFields1.reduce( + (aggObj, subAgg) => Object.assign(aggObj, subAgg), + {} + ), + }, + }, + } + : {}; + +export const getGroupingQuery = ({ + additionalFilters = [], + additionalAggregationsRoot, + additionalStatsAggregationsFields0, + additionalStatsAggregationsFields1, + from, + runtimeMappings, + stackByMultipleFields0, + stackByMultipleFields0Size = DEFAULT_STACK_BY_FIELD0_SIZE, + stackByMultipleFields0From, + stackByMultipleFields0Sort, + stackByMultipleFields1, + stackByMultipleFields1Size = DEFAULT_STACK_BY_FIELD1_SIZE, + stackByMultipleFields1From, + stackByMultipleFields1Sort, + to, +}: { + additionalFilters: Array<{ + bool: { filter: unknown[]; should: unknown[]; must_not: unknown[]; must: unknown[] }; + }>; + from: string; + runtimeMappings?: MappingRuntimeFields; + additionalAggregationsRoot?: Array; + stackByMultipleFields0: string[]; + stackByMultipleFields0Size?: number; + stackByMultipleFields0From?: number; + stackByMultipleFields0Sort?: Array<{ [category: string]: { order: 'asc' | 'desc' } }>; + additionalStatsAggregationsFields0: Array; + stackByMultipleFields1: string[] | undefined; + stackByMultipleFields1Size?: number; + stackByMultipleFields1From?: number; + stackByMultipleFields1Sort?: Array<{ [category: string]: { order: 'asc' | 'desc' } }>; + additionalStatsAggregationsFields1: Array; + to: string; +}) => ({ + size: 0, + aggs: { + stackByMultipleFields0: { + ...(stackByMultipleFields0.length > 1 + ? { + multi_terms: { + terms: stackByMultipleFields0.map((stackByMultipleField0) => ({ + field: stackByMultipleField0, + })), + }, + } + : { + terms: { + field: stackByMultipleFields0[0], + size: 10000, + }, + }), + aggs: { + ...getOptionalSubAggregation({ + stackByMultipleFields1, + stackByMultipleFields1Size, + stackByMultipleFields1From, + stackByMultipleFields1Sort, + additionalStatsAggregationsFields1, + }), + bucket_truncate: { + bucket_sort: { + sort: stackByMultipleFields0Sort, + from: stackByMultipleFields0From, + size: stackByMultipleFields0Size, + }, + }, + ...additionalStatsAggregationsFields0.reduce( + (aggObj, subAgg) => Object.assign(aggObj, subAgg), + {} + ), + }, + }, + ...(additionalAggregationsRoot + ? additionalAggregationsRoot.reduce((aggObj, subAgg) => Object.assign(aggObj, subAgg), {}) + : {}), + }, + query: { + bool: { + filter: [ + ...additionalFilters, + { + range: { + '@timestamp': { + gte: from, + lte: to, + }, + }, + }, + ], + }, + }, + runtime_mappings: runtimeMappings, + _source: false, +}); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/styles.tsx b/x-pack/plugins/security_solution/public/common/components/grouping/styles.tsx new file mode 100644 index 00000000000000..80eb0183cb5108 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/styles.tsx @@ -0,0 +1,94 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiButtonEmpty, EuiContextMenu } from '@elastic/eui'; +import { euiStyled } from '@kbn/kibana-react-plugin/common'; +import styled from 'styled-components'; + +export const GroupsUnitCount = styled.span` + font-size: ${({ theme }) => theme.eui.euiFontSizeXS}; + font-weight: ${({ theme }) => theme.eui.euiFontWeightSemiBold}; + border-right: ${({ theme }) => theme.eui.euiBorderThin}; + margin-right: 16px; + padding-right: 16px; +`; + +export const StatsContainer = styled.span` + font-size: ${({ theme }) => theme.eui.euiFontSizeXS}; + font-weight: ${({ theme }) => theme.eui.euiFontWeightSemiBold}; + border-right: ${({ theme }) => theme.eui.euiBorderThin}; + margin-right: 16px; + padding-right: 16px; + .smallDot { + width: 3px !important; + display: inline-block; + } + .euiBadge__text { + text-align: center; + width: 100%; + } +`; + +export const GroupingStyledContainer = styled.div` + .euiAccordion__childWrapper .euiAccordion__padding--m { + margin-left: 8px; + margin-right: 8px; + border-left: ${({ theme }) => theme.eui.euiBorderThin}; + border-right: ${({ theme }) => theme.eui.euiBorderThin}; + border-bottom: ${({ theme }) => theme.eui.euiBorderThin}; + border-radius: 0 0 6px 6px; + } + .euiAccordion__triggerWrapper { + border-bottom: ${({ theme }) => theme.eui.euiBorderThin}; + border-left: ${({ theme }) => theme.eui.euiBorderThin}; + border-right: ${({ theme }) => theme.eui.euiBorderThin}; + border-radius: 6px; + min-height: 78px; + padding-left: 16px; + padding-right: 16px; + } + .groupingAccordionForm { + border-top: ${({ theme }) => theme.eui.euiBorderThin}; + border-bottom: none; + border-radius: 6px; + min-width: 1090px; + } + .groupingAccordionForm__button { + text-decoration: none !important; + } + .groupingPanelRenderer { + display: table; + table-layout: fixed; + width: 100%; + padding-right: 32px; + } +`; + +export const StyledContextMenu = euiStyled(EuiContextMenu)` + width: 250px; + & .euiContextMenuItem__text { + overflow: hidden; + text-overflow: ellipsis; + } + .euiContextMenuItem { + border-bottom: ${({ theme }) => theme.eui.euiBorderThin}; + } + .euiContextMenuItem:last-child { + border: none; + } +`; + +export const StyledEuiButtonEmpty = euiStyled(EuiButtonEmpty)` + font-weight: 'normal'; + + .euiButtonEmpty__text { + max-width: 300px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } +`; diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/translations.ts b/x-pack/plugins/security_solution/public/common/components/grouping/translations.ts new file mode 100644 index 00000000000000..2e73e95b80de53 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/translations.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const GROUPS_UNIT = (totalCount: number) => + i18n.translate('xpack.securitySolution.grouping.total.unit', { + values: { totalCount }, + defaultMessage: `{totalCount, plural, =1 {group} other {groups}}`, + }); + +export const TAKE_ACTION = i18n.translate( + 'xpack.securitySolution.grouping.additionalActions.takeAction', + { + defaultMessage: 'Take actions', + } +); + +export const TECHNICAL_PREVIEW = i18n.translate( + 'xpack.securitySolution.grouping.technicalPreviewLabel', + { + defaultMessage: 'Technical Preview', + } +); + +export const GROUP_BY = i18n.translate('xpack.securitySolution.selector.grouping.label', { + defaultMessage: 'Group by field', +}); diff --git a/x-pack/plugins/security_solution/public/common/components/grouping/types.ts b/x-pack/plugins/security_solution/public/common/components/grouping/types.ts new file mode 100644 index 00000000000000..b4685c75cab29b --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/grouping/types.ts @@ -0,0 +1,66 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { GenericBuckets } from '../../../../common/search_strategy/common'; + +export const DEFAULT_GROUPING_QUERY_ID = 'defaultGroupingQuery'; + +export const NONE_GROUP_KEY = 'none'; + +export type RawBucket = GenericBuckets & { + alertsCount?: { + value?: number | null; // Elasticsearch returns `null` when a sub-aggregation cannot be computed + }; + severitiesSubAggregation?: { + buckets?: GenericBuckets[]; + }; + countSeveritySubAggregation?: { + value?: number | null; // Elasticsearch returns `null` when a sub-aggregation cannot be computed + }; + usersCountAggregation?: { + value?: number | null; // Elasticsearch returns `null` when a sub-aggregation cannot be computed + }; + hostsCountAggregation?: { + value?: number | null; // Elasticsearch returns `null` when a sub-aggregation cannot be computed + }; + rulesCountAggregation?: { + value?: number | null; // Elasticsearch returns `null` when a sub-aggregation cannot be computed + }; + ruleTags?: { + doc_count_error_upper_bound?: number; + sum_other_doc_count?: number; + buckets?: GenericBuckets[]; + }; + stackByMultipleFields1?: { + buckets?: GenericBuckets[]; + doc_count_error_upper_bound?: number; + sum_other_doc_count?: number; + }; +}; + +/** Defines the shape of the aggregation returned by Elasticsearch */ +export interface GroupingTableAggregation { + stackByMultipleFields0?: { + buckets?: RawBucket[]; + }; + groupsCount0?: { + value?: number | null; + }; +} + +export type GroupingFieldTotalAggregation = Record< + string, + { value?: number | null; buckets?: Array<{ doc_count?: number | null }> } +>; + +export type FlattenedBucket = Pick< + RawBucket, + 'doc_count' | 'key' | 'key_as_string' | 'alertsCount' +> & { + stackByMultipleFields1Key?: string; + stackByMultipleFields1DocCount?: number; +}; diff --git a/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.test.tsx b/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.test.tsx index e7f80e613fab38..46731ffe17e639 100644 --- a/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.test.tsx @@ -12,9 +12,7 @@ import { TestProviders } from '../../../mock'; import { ShowTopNButton } from './show_top_n'; import { TimelineId } from '../../../../../common/types'; -jest.mock('../../visualization_actions', () => ({ - VisualizationActions: jest.fn(() =>
    ), -})); +jest.mock('../../visualization_actions/actions'); jest.mock('../../../lib/kibana', () => { const original = jest.requireActual('../../../lib/kibana'); diff --git a/x-pack/plugins/security_solution/public/common/components/hover_actions/use_hover_actions.tsx b/x-pack/plugins/security_solution/public/common/components/hover_actions/use_hover_actions.tsx index 298b1e86503634..8da15356b1bccd 100644 --- a/x-pack/plugins/security_solution/public/common/components/hover_actions/use_hover_actions.tsx +++ b/x-pack/plugins/security_solution/public/common/components/hover_actions/use_hover_actions.tsx @@ -83,7 +83,7 @@ export const useHoverActions = ({ const values = useMemo(() => { const val = dataProvider.queryMatch.value; - if (typeof val === 'number') { + if (typeof val === 'number' || typeof val === 'boolean') { return val.toString(); } diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap index 47dd897f71ffbd..3378225f6b6027 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap @@ -90,13 +90,521 @@ Object {
    +
    +
    + +
    + +
    +
    +
    +
    + + +
    +
    +
    +
    + , + "container":
    , + "debug": [Function], + "findAllByAltText": [Function], + "findAllByDisplayValue": [Function], + "findAllByLabelText": [Function], + "findAllByPlaceholderText": [Function], + "findAllByRole": [Function], + "findAllByTestId": [Function], + "findAllByText": [Function], + "findAllByTitle": [Function], + "findByAltText": [Function], + "findByDisplayValue": [Function], + "findByLabelText": [Function], + "findByPlaceholderText": [Function], + "findByRole": [Function], + "findByTestId": [Function], + "findByText": [Function], + "findByTitle": [Function], + "getAllByAltText": [Function], + "getAllByDisplayValue": [Function], + "getAllByLabelText": [Function], + "getAllByPlaceholderText": [Function], + "getAllByRole": [Function], + "getAllByTestId": [Function], + "getAllByText": [Function], + "getAllByTitle": [Function], + "getByAltText": [Function], + "getByDisplayValue": [Function], + "getByLabelText": [Function], + "getByPlaceholderText": [Function], + "getByRole": [Function], + "getByTestId": [Function], + "getByText": [Function], + "getByTitle": [Function], + "queryAllByAltText": [Function], + "queryAllByDisplayValue": [Function], + "queryAllByLabelText": [Function], + "queryAllByPlaceholderText": [Function], + "queryAllByRole": [Function], + "queryAllByTestId": [Function], + "queryAllByText": [Function], + "queryAllByTitle": [Function], + "queryByAltText": [Function], + "queryByDisplayValue": [Function], + "queryByLabelText": [Function], + "queryByPlaceholderText": [Function], + "queryByRole": [Function], + "queryByTestId": [Function], + "queryByText": [Function], + "queryByTitle": [Function], + "rerender": [Function], + "unmount": [Function], +} +`; + +exports[`ImportDataModal should import file, with warnings 1`] = ` +Object { + "asFragment": [Function], + "baseElement": +
    +
    +
    +
    + +
    +

    + title +

    +
    +
    +
    +
    +

    + description +

    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    +

    +
    +
    +
    +
    + 1 connector has sensitive information that requires updates. +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + + +
    +
    +
    +
    + , + "container":
    , + "debug": [Function], + "findAllByAltText": [Function], + "findAllByDisplayValue": [Function], + "findAllByLabelText": [Function], + "findAllByPlaceholderText": [Function], + "findAllByRole": [Function], + "findAllByTestId": [Function], + "findAllByText": [Function], + "findAllByTitle": [Function], + "findByAltText": [Function], + "findByDisplayValue": [Function], + "findByLabelText": [Function], + "findByPlaceholderText": [Function], + "findByRole": [Function], + "findByTestId": [Function], + "findByText": [Function], + "findByTitle": [Function], + "getAllByAltText": [Function], + "getAllByDisplayValue": [Function], + "getAllByLabelText": [Function], + "getAllByPlaceholderText": [Function], + "getAllByRole": [Function], + "getAllByTestId": [Function], + "getAllByText": [Function], + "getAllByTitle": [Function], + "getByAltText": [Function], + "getByDisplayValue": [Function], + "getByLabelText": [Function], + "getByPlaceholderText": [Function], + "getByRole": [Function], + "getByTestId": [Function], + "getByText": [Function], + "getByTitle": [Function], + "queryAllByAltText": [Function], + "queryAllByDisplayValue": [Function], + "queryAllByLabelText": [Function], + "queryAllByPlaceholderText": [Function], + "queryAllByRole": [Function], + "queryAllByTestId": [Function], + "queryAllByText": [Function], + "queryAllByTitle": [Function], + "queryByAltText": [Function], + "queryByDisplayValue": [Function], + "queryByLabelText": [Function], + "queryByPlaceholderText": [Function], + "queryByRole": [Function], + "queryByTestId": [Function], + "queryByText": [Function], + "queryByTitle": [Function], + "rerender": [Function], + "unmount": [Function], +} +`; + +exports[`ImportDataModal should import file, with warnings but no action_connectors_success_count 1`] = ` +Object { + "asFragment": [Function], + "baseElement": +
    +
    +
    +
    + +
    +

    + title +

    +
    +
    +
    +
    +

    + description +

    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/__snapshots__/action_connectors_warning.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/__snapshots__/action_connectors_warning.test.tsx.snap new file mode 100644 index 00000000000000..fba4aa3d0fb96c --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/__snapshots__/action_connectors_warning.test.tsx.snap @@ -0,0 +1,678 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ActionConnectorWarnings should not render if importedActionConnectorsCount is falsy and empty warnings array 1`] = ` +Object { + "asFragment": [Function], + "baseElement": +
    + , + "container":
    , + "debug": [Function], + "findAllByAltText": [Function], + "findAllByDisplayValue": [Function], + "findAllByLabelText": [Function], + "findAllByPlaceholderText": [Function], + "findAllByRole": [Function], + "findAllByTestId": [Function], + "findAllByText": [Function], + "findAllByTitle": [Function], + "findByAltText": [Function], + "findByDisplayValue": [Function], + "findByLabelText": [Function], + "findByPlaceholderText": [Function], + "findByRole": [Function], + "findByTestId": [Function], + "findByText": [Function], + "findByTitle": [Function], + "getAllByAltText": [Function], + "getAllByDisplayValue": [Function], + "getAllByLabelText": [Function], + "getAllByPlaceholderText": [Function], + "getAllByRole": [Function], + "getAllByTestId": [Function], + "getAllByText": [Function], + "getAllByTitle": [Function], + "getByAltText": [Function], + "getByDisplayValue": [Function], + "getByLabelText": [Function], + "getByPlaceholderText": [Function], + "getByRole": [Function], + "getByTestId": [Function], + "getByText": [Function], + "getByTitle": [Function], + "queryAllByAltText": [Function], + "queryAllByDisplayValue": [Function], + "queryAllByLabelText": [Function], + "queryAllByPlaceholderText": [Function], + "queryAllByRole": [Function], + "queryAllByTestId": [Function], + "queryAllByText": [Function], + "queryAllByTitle": [Function], + "queryByAltText": [Function], + "queryByDisplayValue": [Function], + "queryByLabelText": [Function], + "queryByPlaceholderText": [Function], + "queryByRole": [Function], + "queryByTestId": [Function], + "queryByText": [Function], + "queryByTitle": [Function], + "rerender": [Function], + "unmount": [Function], +} +`; + +exports[`ActionConnectorWarnings should not render if importedActionConnectorsCount is truthy and empty warnings array 1`] = ` +Object { + "asFragment": [Function], + "baseElement": +
    + , + "container":
    , + "debug": [Function], + "findAllByAltText": [Function], + "findAllByDisplayValue": [Function], + "findAllByLabelText": [Function], + "findAllByPlaceholderText": [Function], + "findAllByRole": [Function], + "findAllByTestId": [Function], + "findAllByText": [Function], + "findAllByTitle": [Function], + "findByAltText": [Function], + "findByDisplayValue": [Function], + "findByLabelText": [Function], + "findByPlaceholderText": [Function], + "findByRole": [Function], + "findByTestId": [Function], + "findByText": [Function], + "findByTitle": [Function], + "getAllByAltText": [Function], + "getAllByDisplayValue": [Function], + "getAllByLabelText": [Function], + "getAllByPlaceholderText": [Function], + "getAllByRole": [Function], + "getAllByTestId": [Function], + "getAllByText": [Function], + "getAllByTitle": [Function], + "getByAltText": [Function], + "getByDisplayValue": [Function], + "getByLabelText": [Function], + "getByPlaceholderText": [Function], + "getByRole": [Function], + "getByTestId": [Function], + "getByText": [Function], + "getByTitle": [Function], + "queryAllByAltText": [Function], + "queryAllByDisplayValue": [Function], + "queryAllByLabelText": [Function], + "queryAllByPlaceholderText": [Function], + "queryAllByRole": [Function], + "queryAllByTestId": [Function], + "queryAllByText": [Function], + "queryAllByTitle": [Function], + "queryByAltText": [Function], + "queryByDisplayValue": [Function], + "queryByLabelText": [Function], + "queryByPlaceholderText": [Function], + "queryByRole": [Function], + "queryByTestId": [Function], + "queryByText": [Function], + "queryByTitle": [Function], + "rerender": [Function], + "unmount": [Function], +} +`; + +exports[`ActionConnectorWarnings should render if 1 connectors were imported and use the warning message with the correct imported number 1`] = ` +Object { + "asFragment": [Function], + "baseElement": +
    +
    +

    +

    +
    +
    +
    +
    + 1 connector has sensitive information that requires updates. +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + , + "container":
    +
    +

    +

    +
    +
    +
    +
    + 1 connector has sensitive information that requires updates. +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    , + "debug": [Function], + "findAllByAltText": [Function], + "findAllByDisplayValue": [Function], + "findAllByLabelText": [Function], + "findAllByPlaceholderText": [Function], + "findAllByRole": [Function], + "findAllByTestId": [Function], + "findAllByText": [Function], + "findAllByTitle": [Function], + "findByAltText": [Function], + "findByDisplayValue": [Function], + "findByLabelText": [Function], + "findByPlaceholderText": [Function], + "findByRole": [Function], + "findByTestId": [Function], + "findByText": [Function], + "findByTitle": [Function], + "getAllByAltText": [Function], + "getAllByDisplayValue": [Function], + "getAllByLabelText": [Function], + "getAllByPlaceholderText": [Function], + "getAllByRole": [Function], + "getAllByTestId": [Function], + "getAllByText": [Function], + "getAllByTitle": [Function], + "getByAltText": [Function], + "getByDisplayValue": [Function], + "getByLabelText": [Function], + "getByPlaceholderText": [Function], + "getByRole": [Function], + "getByTestId": [Function], + "getByText": [Function], + "getByTitle": [Function], + "queryAllByAltText": [Function], + "queryAllByDisplayValue": [Function], + "queryAllByLabelText": [Function], + "queryAllByPlaceholderText": [Function], + "queryAllByRole": [Function], + "queryAllByTestId": [Function], + "queryAllByText": [Function], + "queryAllByTitle": [Function], + "queryByAltText": [Function], + "queryByDisplayValue": [Function], + "queryByLabelText": [Function], + "queryByPlaceholderText": [Function], + "queryByRole": [Function], + "queryByTestId": [Function], + "queryByText": [Function], + "queryByTitle": [Function], + "rerender": [Function], + "unmount": [Function], +} +`; + +exports[`ActionConnectorWarnings should render if 2 connectors were imported and use the button label when is set 1`] = ` +Object { + "asFragment": [Function], + "baseElement": +
    +
    +

    +

    +
    +
    +
    +
    + 2 connectors have sensitive information that requires updates. +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + , + "container":
    +
    +

    +

    +
    +
    +
    +
    + 2 connectors have sensitive information that requires updates. +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    , + "debug": [Function], + "findAllByAltText": [Function], + "findAllByDisplayValue": [Function], + "findAllByLabelText": [Function], + "findAllByPlaceholderText": [Function], + "findAllByRole": [Function], + "findAllByTestId": [Function], + "findAllByText": [Function], + "findAllByTitle": [Function], + "findByAltText": [Function], + "findByDisplayValue": [Function], + "findByLabelText": [Function], + "findByPlaceholderText": [Function], + "findByRole": [Function], + "findByTestId": [Function], + "findByText": [Function], + "findByTitle": [Function], + "getAllByAltText": [Function], + "getAllByDisplayValue": [Function], + "getAllByLabelText": [Function], + "getAllByPlaceholderText": [Function], + "getAllByRole": [Function], + "getAllByTestId": [Function], + "getAllByText": [Function], + "getAllByTitle": [Function], + "getByAltText": [Function], + "getByDisplayValue": [Function], + "getByLabelText": [Function], + "getByPlaceholderText": [Function], + "getByRole": [Function], + "getByTestId": [Function], + "getByText": [Function], + "getByTitle": [Function], + "queryAllByAltText": [Function], + "queryAllByDisplayValue": [Function], + "queryAllByLabelText": [Function], + "queryAllByPlaceholderText": [Function], + "queryAllByRole": [Function], + "queryAllByTestId": [Function], + "queryAllByText": [Function], + "queryAllByTitle": [Function], + "queryByAltText": [Function], + "queryByDisplayValue": [Function], + "queryByLabelText": [Function], + "queryByPlaceholderText": [Function], + "queryByRole": [Function], + "queryByTestId": [Function], + "queryByText": [Function], + "queryByTitle": [Function], + "rerender": [Function], + "unmount": [Function], +} +`; + +exports[`ActionConnectorWarnings should render if 2 connectors were imported and use the warning message with the correct imported number 1`] = ` +Object { + "asFragment": [Function], + "baseElement": +
    +
    +

    +

    +
    +
    +
    +
    + 2 connectors have sensitive information that requires updates. +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + , + "container":
    +
    +

    +

    +
    +
    +
    +
    + 2 connectors have sensitive information that requires updates. +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    , + "debug": [Function], + "findAllByAltText": [Function], + "findAllByDisplayValue": [Function], + "findAllByLabelText": [Function], + "findAllByPlaceholderText": [Function], + "findAllByRole": [Function], + "findAllByTestId": [Function], + "findAllByText": [Function], + "findAllByTitle": [Function], + "findByAltText": [Function], + "findByDisplayValue": [Function], + "findByLabelText": [Function], + "findByPlaceholderText": [Function], + "findByRole": [Function], + "findByTestId": [Function], + "findByText": [Function], + "findByTitle": [Function], + "getAllByAltText": [Function], + "getAllByDisplayValue": [Function], + "getAllByLabelText": [Function], + "getAllByPlaceholderText": [Function], + "getAllByRole": [Function], + "getAllByTestId": [Function], + "getAllByText": [Function], + "getAllByTitle": [Function], + "getByAltText": [Function], + "getByDisplayValue": [Function], + "getByLabelText": [Function], + "getByPlaceholderText": [Function], + "getByRole": [Function], + "getByTestId": [Function], + "getByText": [Function], + "getByTitle": [Function], + "queryAllByAltText": [Function], + "queryAllByDisplayValue": [Function], + "queryAllByLabelText": [Function], + "queryAllByPlaceholderText": [Function], + "queryAllByRole": [Function], + "queryAllByTestId": [Function], + "queryAllByText": [Function], + "queryAllByTitle": [Function], + "queryByAltText": [Function], + "queryByDisplayValue": [Function], + "queryByLabelText": [Function], + "queryByPlaceholderText": [Function], + "queryByRole": [Function], + "queryByTestId": [Function], + "queryByText": [Function], + "queryByTitle": [Function], + "rerender": [Function], + "unmount": [Function], +} +`; diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/action_connectors_warning.test.tsx b/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/action_connectors_warning.test.tsx new file mode 100644 index 00000000000000..a71ce2beeaebea --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/action_connectors_warning.test.tsx @@ -0,0 +1,104 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { render } from '@testing-library/react'; +import { ActionConnectorWarnings } from '.'; + +jest.mock('../../../lib/kibana/kibana_react', () => ({ + useKibana: jest.fn().mockReturnValue({ + services: { http: { basePath: { prepend: jest.fn() } } }, + }), +})); +describe('ActionConnectorWarnings', () => { + test('should not render if importedActionConnectorsCount is falsy and empty warnings array', () => { + const wrapper = render( + + ); + expect(wrapper).toMatchSnapshot(); + expect(wrapper.queryByTestId('actionConnectorsWarningsCallOut')).not.toBeInTheDocument(); + }); + test('should not render if importedActionConnectorsCount is truthy and empty warnings array', () => { + const wrapper = render( + + ); + expect(wrapper).toMatchSnapshot(); + expect(wrapper.queryByTestId('actionConnectorsWarningsCallOut')).not.toBeInTheDocument(); + }); + test('should render if 1 connectors were imported and use the warning message with the correct imported number', () => { + const wrapper = render( + + ); + const { getByTestId } = wrapper; + expect(wrapper).toMatchSnapshot(); + expect(getByTestId('actionConnectorsWarningsCallOutTitle').textContent).toBe( + '1 connector imported' + ); + expect(getByTestId('actionConnectorsWarningsCallOutMessage').textContent).toBe( + '1 connector has sensitive information that requires updates.' + ); + }); + test('should render if 2 connectors were imported and use the warning message with the correct imported number', () => { + const wrapper = render( + + ); + const { getByTestId } = wrapper; + expect(wrapper).toMatchSnapshot(); + expect(getByTestId('actionConnectorsWarningsCallOutTitle').textContent).toBe( + '2 connectors imported' + ); + expect(getByTestId('actionConnectorsWarningsCallOutMessage').textContent).toBe( + '2 connectors have sensitive information that requires updates.' + ); + expect(getByTestId('actionConnectorsWarningsCallOutButton').textContent).toBe( + 'Go to connectors' + ); + }); + test('should render if 2 connectors were imported and use the button label when is set', () => { + const wrapper = render( + + ); + const { getByTestId } = wrapper; + expect(wrapper).toMatchSnapshot(); + expect(getByTestId('actionConnectorsWarningsCallOutTitle').textContent).toBe( + '2 connectors imported' + ); + expect(getByTestId('actionConnectorsWarningsCallOutMessage').textContent).toBe( + '2 connectors have sensitive information that requires updates.' + ); + expect(getByTestId('actionConnectorsWarningsCallOutButton').textContent).toBe('Connectors'); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/index.tsx b/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/index.tsx new file mode 100644 index 00000000000000..ad72893f66d874 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/action_connectors_warning/index.tsx @@ -0,0 +1,65 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import type { FC } from 'react'; + +import { EuiButton, EuiCallOut, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import type { WarningSchema } from '../../../../../common/detection_engine/schemas/response'; +import { useKibana } from '../../../lib/kibana/kibana_react'; +import * as i18n from '../translations'; + +interface ActionConnectorWarningsComponentProps { + actionConnectorsWarnings: WarningSchema[]; + importedActionConnectorsCount?: number; +} +const ActionConnectorWarningsComponent: FC = ({ + actionConnectorsWarnings, + importedActionConnectorsCount, +}) => { + const { http } = useKibana().services; + + if (!importedActionConnectorsCount || !actionConnectorsWarnings.length) return null; + const { actionPath, message, buttonLabel } = actionConnectorsWarnings[0]; + + return ( + + {i18n.ACTION_CONNECTORS_WARNING_TITLE(importedActionConnectorsCount)} + + } + color="warning" + > + + + {message} + + + + + {buttonLabel || i18n.ACTION_CONNECTORS_WARNING_BUTTON} + + + + + + ); +}; + +ActionConnectorWarningsComponent.displayName = 'ActionConnectorWarningsComponent'; + +export const ActionConnectorWarnings = React.memo(ActionConnectorWarningsComponent); + +ActionConnectorWarnings.displayName = 'ActionConnectorWarnings'; diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.test.tsx index 515019785534f2..1986539e578e02 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.test.tsx @@ -12,6 +12,11 @@ import { ImportDataModalComponent } from '.'; jest.mock('../../lib/kibana'); +jest.mock('../../lib/kibana/kibana_react', () => ({ + useKibana: jest.fn().mockReturnValue({ + services: { http: { basePath: { prepend: jest.fn() } } }, + }), +})); jest.mock('../../hooks/use_app_toasts', () => ({ useAppToasts: jest.fn().mockReturnValue({ addError: jest.fn(), @@ -25,6 +30,9 @@ const importData = jest.fn().mockReturnValue({ success: true, errors: [] }); const file = new File(['file'], 'image1.png', { type: 'image/png' }); describe('ImportDataModal', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); test('renders correctly against snapshot', () => { const wrapper = render( { successMessage={jest.fn((totalCount) => 'successMessage')} title="title" showExceptionsCheckBox={true} + showActionConnectorsCheckBox={true} /> ); const overwriteCheckbox: HTMLInputElement = queryByTestId( - 'import-data-modal-checkbox-label' + 'importDataModalCheckboxLabel' ) as HTMLInputElement; const exceptionCheckbox: HTMLInputElement = queryByTestId( - 'import-data-modal-exceptions-checkbox-label' + 'importDataModalExceptionsCheckboxLabel' + ) as HTMLInputElement; + const connectorsCheckbox: HTMLInputElement = queryByTestId( + 'importDataModalActionConnectorsCheckbox' ) as HTMLInputElement; await waitFor(() => fireEvent.click(overwriteCheckbox)); await waitFor(() => fireEvent.click(exceptionCheckbox)); + await waitFor(() => fireEvent.click(connectorsCheckbox)); await waitFor(() => fireEvent.change(queryByTestId('rule-file-picker') as HTMLInputElement, { @@ -111,6 +124,7 @@ describe('ImportDataModal', () => { ); expect(overwriteCheckbox.checked).toBeTruthy(); expect(exceptionCheckbox.checked).toBeTruthy(); + expect(connectorsCheckbox.checked).toBeTruthy(); await waitFor(() => { fireEvent.click(queryByTestId('import-data-modal-button') as HTMLButtonElement); @@ -120,6 +134,7 @@ describe('ImportDataModal', () => { expect(overwriteCheckbox.checked).toBeFalsy(); expect(exceptionCheckbox.checked).toBeFalsy(); + expect(connectorsCheckbox.checked).toBeFalsy(); }); test('should uncheck the selected checkboxes after closing the Flyout', async () => { const { queryByTestId, getAllByRole } = render( @@ -138,20 +153,25 @@ describe('ImportDataModal', () => { successMessage={jest.fn((totalCount) => 'successMessage')} title="title" showExceptionsCheckBox={true} + showActionConnectorsCheckBox={true} /> ); const closeButton = getAllByRole('button')[0]; const overwriteCheckbox: HTMLInputElement = queryByTestId( - 'import-data-modal-checkbox-label' + 'importDataModalCheckboxLabel' ) as HTMLInputElement; const exceptionCheckbox: HTMLInputElement = queryByTestId( - 'import-data-modal-exceptions-checkbox-label' + 'importDataModalExceptionsCheckboxLabel' + ) as HTMLInputElement; + const connectorsCheckbox: HTMLInputElement = queryByTestId( + 'importDataModalActionConnectorsCheckbox' ) as HTMLInputElement; await waitFor(() => fireEvent.click(overwriteCheckbox)); await waitFor(() => fireEvent.click(exceptionCheckbox)); + await waitFor(() => fireEvent.click(connectorsCheckbox)); await waitFor(() => fireEvent.change(queryByTestId('rule-file-picker') as HTMLInputElement, { @@ -168,5 +188,91 @@ describe('ImportDataModal', () => { expect(overwriteCheckbox.checked).toBeFalsy(); expect(exceptionCheckbox.checked).toBeFalsy(); + expect(connectorsCheckbox.checked).toBeFalsy(); + }); + + test('should import file, with warnings but no action_connectors_success_count', async () => { + const importWithWarning = jest.fn().mockReturnValue({ + ...importData(), + action_connectors_warnings: [ + { message: 'message', actionPath: 'path', buttonLabel: 'buttonLabel' }, + ], + action_connectors_success_count: 0, + }); + const wrapper = render( + 'successMessage')} + title="title" + /> + ); + const { queryByTestId } = wrapper; + await waitFor(() => { + fireEvent.change(queryByTestId('rule-file-picker') as HTMLInputElement, { + target: { files: [file] }, + }); + }); + await waitFor(() => { + fireEvent.click(queryByTestId('import-data-modal-button') as HTMLButtonElement); + }); + expect(wrapper).toMatchSnapshot(); + expect(queryByTestId('actionConnectorsWarningsCallOut')).not.toBeInTheDocument(); + expect(importWithWarning).toHaveBeenCalled(); + expect(closeModal).not.toHaveBeenCalled(); + expect(importComplete).toHaveBeenCalled(); + }); + test('should import file, with warnings', async () => { + const importWithWarning = jest.fn().mockReturnValue({ + ...importData(), + action_connectors_warnings: [ + { + message: '1 connector has sensitive information that requires updates.', + actionPath: 'path', + buttonLabel: 'buttonLabel', + }, + ], + action_connectors_success_count: 1, + }); + const wrapper = render( + 'successMessage')} + title="title" + /> + ); + const { queryByTestId } = wrapper; + await waitFor(() => { + fireEvent.change(queryByTestId('rule-file-picker') as HTMLInputElement, { + target: { files: [file] }, + }); + }); + await waitFor(() => { + fireEvent.click(queryByTestId('import-data-modal-button') as HTMLButtonElement); + }); + expect(wrapper).toMatchSnapshot(); + expect(queryByTestId('actionConnectorsWarningsCallOut')).toBeInTheDocument(); + expect(importWithWarning).toHaveBeenCalled(); + expect(importComplete).toHaveBeenCalled(); + expect(closeModal).not.toHaveBeenCalled(); }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.tsx b/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.tsx index a291265bc234d3..1b2cf3e516e5e7 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.tsx @@ -5,6 +5,7 @@ * 2.0. */ +import React, { useCallback, useState } from 'react'; import { EuiButton, EuiButtonEmpty, @@ -18,7 +19,7 @@ import { EuiSpacer, EuiText, } from '@elastic/eui'; -import React, { useCallback, useState } from 'react'; +import type { WarningSchema } from '../../../../common/detection_engine/schemas/response'; import type { ImportDataResponse, @@ -27,6 +28,7 @@ import type { import { useAppToasts } from '../../hooks/use_app_toasts'; import * as i18n from './translations'; import { showToasterMessage } from './utils'; +import { ActionConnectorWarnings } from './action_connectors_warning'; interface ImportDataModalProps { checkBoxLabel: string; @@ -43,6 +45,7 @@ interface ImportDataModalProps { subtitle: string; successMessage: (totalCount: number) => string; title: string; + showActionConnectorsCheckBox?: boolean; } /** @@ -59,6 +62,7 @@ export const ImportDataModalComponent = ({ importData, showCheckBox = true, showExceptionsCheckBox = false, + showActionConnectorsCheckBox = false, showModal, submitBtnText, subtitle, @@ -69,15 +73,35 @@ export const ImportDataModalComponent = ({ const [isImporting, setIsImporting] = useState(false); const [overwrite, setOverwrite] = useState(false); const [overwriteExceptions, setOverwriteExceptions] = useState(false); + const [overwriteActionConnectors, setOverwriteActionConnectors] = useState(false); const { addError, addSuccess } = useAppToasts(); - + const [actionConnectorsWarnings, setActionConnectorsWarnings] = useState( + [] + ); + const [importedActionConnectorsCount, setImportedActionConnectorsCount] = useState< + number | undefined + >(0); const cleanupAndCloseModal = useCallback(() => { - setIsImporting(false); - setSelectedFiles(null); closeModal(); setOverwrite(false); setOverwriteExceptions(false); - }, [setIsImporting, setSelectedFiles, closeModal, setOverwrite, setOverwriteExceptions]); + setOverwriteActionConnectors(false); + setActionConnectorsWarnings([]); + }, [closeModal, setOverwrite, setOverwriteExceptions]); + + const onImportComplete = useCallback( + (callCleanup: boolean) => { + setIsImporting(false); + setSelectedFiles(null); + importComplete(); + + if (callCleanup) { + importComplete(); + cleanupAndCloseModal(); + } + }, + [cleanupAndCloseModal, importComplete] + ); const importDataCallback = useCallback(async () => { if (selectedFiles != null) { @@ -85,25 +109,28 @@ export const ImportDataModalComponent = ({ const abortCtrl = new AbortController(); try { - const importResponse = await importData({ + const { action_connectors_warnings: warnings, ...importResponse } = await importData({ fileToImport: selectedFiles[0], overwrite, overwriteExceptions, + overwriteActionConnectors, signal: abortCtrl.signal, }); + const connectorsCount = importResponse.action_connectors_success_count; + setActionConnectorsWarnings(warnings as WarningSchema[]); + setImportedActionConnectorsCount(connectorsCount); showToasterMessage({ importResponse, exceptionsIncluded: showExceptionsCheckBox, + actionConnectorsIncluded: showActionConnectorsCheckBox, successMessage, errorMessage, errorMessageDetailed: failedDetailed, addError, addSuccess, }); - - importComplete(); - cleanupAndCloseModal(); + onImportComplete(!warnings?.length); } catch (error) { cleanupAndCloseModal(); addError(error, { title: errorMessage(1) }); @@ -114,13 +141,15 @@ export const ImportDataModalComponent = ({ importData, overwrite, overwriteExceptions, + overwriteActionConnectors, showExceptionsCheckBox, successMessage, errorMessage, failedDetailed, addError, addSuccess, - importComplete, + showActionConnectorsCheckBox, + onImportComplete, cleanupAndCloseModal, ]); @@ -136,6 +165,9 @@ export const ImportDataModalComponent = ({ setOverwriteExceptions((shouldOverwrite) => !shouldOverwrite); }, []); + const handleActionConnectorsCheckboxClick = useCallback(() => { + setOverwriteActionConnectors((shouldOverwrite) => !shouldOverwrite); + }, []); return ( <> {showModal && ( @@ -163,24 +195,41 @@ export const ImportDataModalComponent = ({ isLoading={isImporting} /> + + + + + {showCheckBox && ( <> {showExceptionsCheckBox && ( )} + {showActionConnectorsCheckBox && ( + + )} )} diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/translations.ts b/x-pack/plugins/security_solution/public/common/components/import_data_modal/translations.ts index 763396ae62d795..11ae7dd972a576 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/translations.ts +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/translations.ts @@ -20,7 +20,12 @@ export const OVERWRITE_EXCEPTIONS_LABEL = i18n.translate( defaultMessage: 'Overwrite existing exception lists with conflicting "list_id"', } ); - +export const OVERWRITE_ACTION_CONNECTORS_LABEL = i18n.translate( + 'xpack.securitySolution.detectionEngine.components.importRuleModal.overwriteActionConnectorsLabel', + { + defaultMessage: 'Overwrite existing connectors with conflicting action "id"', + } +); export const SUCCESSFULLY_IMPORTED_EXCEPTIONS = (totalExceptions: number) => i18n.translate( 'xpack.securitySolution.detectionEngine.components.importRuleModal.exceptionsSuccessLabel', @@ -30,6 +35,15 @@ export const SUCCESSFULLY_IMPORTED_EXCEPTIONS = (totalExceptions: number) => 'Successfully imported {totalExceptions} {totalExceptions, plural, =1 {exception} other {exceptions}}.', } ); +export const SUCCESSFULLY_IMPORTED_CONNECTORS = (totalConnectors: number) => + i18n.translate( + 'xpack.securitySolution.detectionEngine.components.importRuleModal.connectorsSuccessLabel', + { + values: { totalConnectors }, + defaultMessage: + 'Successfully imported {totalConnectors} {totalConnectors, plural, =1 {connector} other {connectors}}.', + } + ); export const IMPORT_FAILED = (totalExceptions: number) => i18n.translate( @@ -40,3 +54,36 @@ export const IMPORT_FAILED = (totalExceptions: number) => 'Failed to import {totalExceptions} {totalExceptions, plural, =1 {exception} other {exceptions}}', } ); +export const IMPORT_CONNECTORS_FAILED = (totalConnectors: number) => + i18n.translate( + 'xpack.securitySolution.detectionEngine.components.importRuleModal.importConnectorsFailedLabel', + { + values: { totalConnectors }, + defaultMessage: + 'Failed to import {totalConnectors} {totalConnectors, plural, =1 {connector} other {connectors}}', + } + ); + +export const ACTION_CONNECTORS_WARNING_TITLE = (totalConnectors: number) => + i18n.translate( + 'xpack.securitySolution.detectionEngine.components.importRuleModal.actionConnectorsWarningTitle', + { + values: { totalConnectors }, + defaultMessage: + '{totalConnectors} {totalConnectors, plural, =1 {connector} other {connectors}} imported', + } + ); + +export const ACTION_CONNECTORS_WARNING_BUTTON = i18n.translate( + 'xpack.securitySolution.detectionEngine.components.importRuleModal.actionConnectorsWarningButton', + { + defaultMessage: 'Go to connectors', + } +); + +export const ACTION_CONNECTORS_ADDITIONAL_PRIVILEGES = i18n.translate( + 'xpack.securitySolution.detectionEngine.components.importRuleModal.actionConnectorsAdditionalPrivilegesError', + { + defaultMessage: 'You need additional privileges to import rules with actions.', + } +); diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/utils.test.ts b/x-pack/plugins/security_solution/public/common/components/import_data_modal/utils.test.ts index b5609a79eba6c4..6b432edfb5bd13 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/utils.test.ts +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/utils.test.ts @@ -9,7 +9,7 @@ import { showToasterMessage } from './utils'; describe('showToasterMessage', () => { describe('exceptionsIncluded is false', () => { - it('displays main success message if import was successful', () => { + it('should display main success message if import was successful', () => { const addError = jest.fn(); const addSuccess = jest.fn(); @@ -20,6 +20,7 @@ describe('showToasterMessage', () => { errors: [], }, exceptionsIncluded: false, + actionConnectorsIncluded: false, successMessage: (msg) => `success: ${msg}`, errorMessage: (msg) => `error: ${msg}`, errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, @@ -32,7 +33,7 @@ describe('showToasterMessage', () => { expect(addError).not.toHaveBeenCalled(); }); - it('displays main error message if import was not successful', () => { + it('should display main error message if import was not successful', () => { const addError = jest.fn(); const addSuccess = jest.fn(); @@ -51,6 +52,7 @@ describe('showToasterMessage', () => { ], }, exceptionsIncluded: false, + actionConnectorsIncluded: false, successMessage: (msg) => `success: ${msg}`, errorMessage: (msg) => `error: ${msg}`, errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, @@ -67,7 +69,7 @@ describe('showToasterMessage', () => { }); describe('exceptionsIncluded is true', () => { - it('displays success message for rules and exceptions if both succeed', () => { + it('should display success message for rules and exceptions if both succeed', () => { const addError = jest.fn(); const addSuccess = jest.fn(); @@ -82,6 +84,7 @@ describe('showToasterMessage', () => { exceptions_success_count: 1, }, exceptionsIncluded: true, + actionConnectorsIncluded: false, successMessage: (msg) => `success: ${msg}`, errorMessage: (msg) => `error: ${msg}`, errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, @@ -95,7 +98,7 @@ describe('showToasterMessage', () => { expect(addError).not.toHaveBeenCalled(); }); - it('displays error message for rules and exceptions if both fail', () => { + it('should display error message for rules and exceptions if both fail', () => { const addError = jest.fn(); const addSuccess = jest.fn(); @@ -133,6 +136,7 @@ describe('showToasterMessage', () => { exceptions_success_count: 0, }, exceptionsIncluded: true, + actionConnectorsIncluded: false, successMessage: (msg) => `success: ${msg}`, errorMessage: (msg) => `error: ${msg}`, errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, @@ -154,7 +158,7 @@ describe('showToasterMessage', () => { expect(addSuccess).not.toHaveBeenCalled(); }); - it('displays only a rule toaster if no exceptions were imported', () => { + it('should display only a rule toaster if no exceptions were imported', () => { const addError = jest.fn(); const addSuccess = jest.fn(); @@ -169,6 +173,7 @@ describe('showToasterMessage', () => { exceptions_success_count: 0, }, exceptionsIncluded: true, + actionConnectorsIncluded: false, successMessage: (msg) => `success: ${msg}`, errorMessage: (msg) => `error: ${msg}`, errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, @@ -181,7 +186,7 @@ describe('showToasterMessage', () => { expect(addError).not.toHaveBeenCalled(); }); - it('displays only an exceptions toaster if no rules were imported', () => { + it('should display only an exceptions toaster if no rules were imported', () => { const addError = jest.fn(); const addSuccess = jest.fn(); @@ -196,6 +201,7 @@ describe('showToasterMessage', () => { exceptions_success_count: 1, }, exceptionsIncluded: true, + actionConnectorsIncluded: false, successMessage: (msg) => `success: ${msg}`, errorMessage: (msg) => `error: ${msg}`, errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, @@ -208,4 +214,277 @@ describe('showToasterMessage', () => { expect(addError).not.toHaveBeenCalled(); }); }); + + describe('actionConnectorsIncluded is false', () => { + it('should display main success message if import was successful', () => { + const addError = jest.fn(); + const addSuccess = jest.fn(); + + showToasterMessage({ + importResponse: { + success: true, + success_count: 1, + errors: [], + }, + exceptionsIncluded: false, + actionConnectorsIncluded: false, + successMessage: (msg) => `success: ${msg}`, + errorMessage: (msg) => `error: ${msg}`, + errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, + addError, + addSuccess, + }); + + expect(addSuccess).toHaveBeenCalledTimes(1); + expect(addSuccess).toHaveBeenCalledWith('success: 1'); + expect(addError).not.toHaveBeenCalled(); + }); + + it('should display main error message if import was not successful', () => { + const addError = jest.fn(); + const addSuccess = jest.fn(); + + showToasterMessage({ + importResponse: { + success: false, + success_count: 0, + errors: [ + { + rule_id: 'rule_id', + error: { + status_code: 400, + message: 'an error message', + }, + }, + ], + }, + exceptionsIncluded: false, + actionConnectorsIncluded: false, + successMessage: (msg) => `success: ${msg}`, + errorMessage: (msg) => `error: ${msg}`, + errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, + addError, + addSuccess, + }); + + expect(addError).toHaveBeenCalledTimes(1); + expect(addError).toHaveBeenCalledWith(new Error('errorDetailed: an error message'), { + title: 'error: 1', + }); + expect(addSuccess).not.toHaveBeenCalled(); + }); + }); + describe('actionConnectorsIncluded is true', () => { + it('should display success message for rules and connectors if both succeed', () => { + const addError = jest.fn(); + const addSuccess = jest.fn(); + + showToasterMessage({ + importResponse: { + success: true, + success_count: 1, + rules_count: 1, + errors: [], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_success: true, + action_connectors_errors: [], + action_connectors_success_count: 1, + }, + exceptionsIncluded: false, + actionConnectorsIncluded: true, + successMessage: (msg) => `success: ${msg}`, + errorMessage: (msg) => `error: ${msg}`, + errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, + addError, + addSuccess, + }); + + expect(addSuccess).toHaveBeenCalledTimes(2); + expect(addSuccess).toHaveBeenNthCalledWith(1, 'success: 1'); + expect(addSuccess).toHaveBeenNthCalledWith(2, 'Successfully imported 1 connector.'); + expect(addError).not.toHaveBeenCalled(); + }); + + it('should display 1 error message for rules and connectors even when both fail', () => { + const addError = jest.fn(); + const addSuccess = jest.fn(); + + showToasterMessage({ + importResponse: { + success: false, + success_count: 1, + rules_count: 2, + action_connectors_success: false, + errors: [ + { + rule_id: 'rule_id', + error: { + status_code: 400, + message: 'an error message', + }, + }, + ], + action_connectors_errors: [ + { + rule_id: 'rule_id', + error: { + status_code: 400, + message: 'an error message', + }, + }, + { + rule_id: 'rule_id_1', + error: { + status_code: 400, + message: 'another error message', + }, + }, + ], + exceptions_success: true, + exceptions_success_count: 0, + }, + exceptionsIncluded: false, + actionConnectorsIncluded: true, + successMessage: (msg) => `success: ${msg}`, + errorMessage: (msg) => `error: ${msg}`, + errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, + addError, + addSuccess, + }); + + expect(addError).toHaveBeenCalledTimes(1); + + expect(addError).toHaveBeenCalledWith( + new Error('errorDetailed: an error message. errorDetailed: another error message'), + { + title: 'Failed to import 2 connectors', + } + ); + expect(addSuccess).not.toHaveBeenCalled(); + }); + + it('should display only a rule toaster if no connectors were imported', () => { + const addError = jest.fn(); + const addSuccess = jest.fn(); + + showToasterMessage({ + importResponse: { + success: true, + success_count: 1, + rules_count: 1, + errors: [], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_errors: [], + action_connectors_success: true, + }, + exceptionsIncluded: true, + actionConnectorsIncluded: false, + successMessage: (msg) => `success: ${msg}`, + errorMessage: (msg) => `error: ${msg}`, + errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, + addError, + addSuccess, + }); + + expect(addSuccess).toHaveBeenCalledTimes(1); + expect(addSuccess).toHaveBeenNthCalledWith(1, 'success: 1'); + expect(addError).not.toHaveBeenCalled(); + }); + + it('should display only a connector toaster if no rules were imported', () => { + const addError = jest.fn(); + const addSuccess = jest.fn(); + + showToasterMessage({ + importResponse: { + success: true, + success_count: 0, + rules_count: 0, + errors: [], + exceptions_errors: [], + exceptions_success: true, + exceptions_success_count: 0, + action_connectors_success_count: 1, + action_connectors_success: true, + }, + exceptionsIncluded: true, + actionConnectorsIncluded: true, + successMessage: (msg) => `success: ${msg}`, + errorMessage: (msg) => `error: ${msg}`, + errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, + addError, + addSuccess, + }); + + expect(addSuccess).toHaveBeenCalledTimes(1); + expect(addSuccess).toHaveBeenNthCalledWith(1, 'Successfully imported 1 connector.'); + expect(addError).not.toHaveBeenCalled(); + }); + it('should display the user friendly message in case of additional privileges', () => { + const addError = jest.fn(); + const addSuccess = jest.fn(); + + showToasterMessage({ + importResponse: { + success: false, + success_count: 1, + rules_count: 2, + action_connectors_success: false, + errors: [ + { + rule_id: 'unknown', + error: { + status_code: 403, + message: + 'You may not have actions privileges required to import rules with actions', + }, + }, + ], + action_connectors_errors: [ + { + rule_id: 'unknown', + error: { + status_code: 403, + message: + 'You may not have actions privileges required to import rules with actions', + }, + }, + { + rule_id: 'unknown', + error: { + status_code: 403, + message: + 'You may not have actions privileges required to import rules with actions', + }, + }, + ], + exceptions_success: true, + exceptions_success_count: 0, + }, + exceptionsIncluded: false, + actionConnectorsIncluded: true, + successMessage: (msg) => `success: ${msg}`, + errorMessage: (msg) => `error: ${msg}`, + errorMessageDetailed: (msg) => `errorDetailed: ${msg}`, + addError, + addSuccess, + }); + + expect(addError).toHaveBeenCalledTimes(1); + + expect(addError).toHaveBeenCalledWith( + new Error( + 'errorDetailed: You need additional privileges to import rules with actions.. errorDetailed: You need additional privileges to import rules with actions.' + ), + { + title: 'Failed to import 2 connectors', + } + ); + expect(addSuccess).not.toHaveBeenCalled(); + }); + }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/utils.ts b/x-pack/plugins/security_solution/public/common/components/import_data_modal/utils.ts index 8211c01a7bffa9..92c6f9f666e4b6 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/utils.ts +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/utils.ts @@ -30,9 +30,32 @@ export const formatError = ( return error; }; +const mapErrorMessageToUserMessage = ( + actionConnectorsErrors: Array +) => { + return actionConnectorsErrors.map((connectorError) => { + const { error } = connectorError; + const { status_code: statusCode, message: originalMessage } = error || {}; + let message; + switch (statusCode) { + case 403: + message = i18n.ACTION_CONNECTORS_ADDITIONAL_PRIVILEGES; + break; + + default: + message = originalMessage; + + break; + } + + return { ...connectorError, error: { ...error, message } }; + }); +}; + export const showToasterMessage = ({ importResponse, exceptionsIncluded, + actionConnectorsIncluded, successMessage, errorMessage, errorMessageDetailed, @@ -41,53 +64,68 @@ export const showToasterMessage = ({ }: { importResponse: ImportDataResponse; exceptionsIncluded: boolean; + actionConnectorsIncluded: boolean; successMessage: (totalCount: number) => string; errorMessage: (totalCount: number) => string; errorMessageDetailed: (message: string) => string; addError: (error: unknown, options: ErrorToastOptions) => Toast; addSuccess: (toastOrTitle: ToastInput, options?: ToastOptions | undefined) => Toast; }) => { - // if import includes exceptions - if (exceptionsIncluded) { - // rules response actions - if (importResponse.success && importResponse.success_count > 0) { - addSuccess(successMessage(importResponse.success_count)); - } - - if (importResponse.errors.length > 0 && importResponse.rules_count) { - const error = formatError(errorMessageDetailed, importResponse, importResponse.errors); - addError(error, { - title: errorMessage(importResponse.rules_count - importResponse.success_count), - }); - } - - // exceptions response actions + if (importResponse.success) { + if (importResponse.success_count > 0) addSuccess(successMessage(importResponse.success_count)); if ( + exceptionsIncluded && importResponse.exceptions_success && importResponse.exceptions_success_count != null && importResponse.exceptions_success_count > 0 ) { addSuccess(i18n.SUCCESSFULLY_IMPORTED_EXCEPTIONS(importResponse.exceptions_success_count)); } + if ( + actionConnectorsIncluded && + importResponse.action_connectors_success && + importResponse.action_connectors_success_count != null && + importResponse.action_connectors_success_count > 0 + ) { + addSuccess( + i18n.SUCCESSFULLY_IMPORTED_CONNECTORS(importResponse.action_connectors_success_count) + ); + } + return; + } + + if (importResponse.errors.length > 0) { + if ( + actionConnectorsIncluded && + importResponse.action_connectors_errors != null && + importResponse.action_connectors_errors.length > 0 + ) { + const userErrorMessages = mapErrorMessageToUserMessage( + importResponse.action_connectors_errors + ); + const connectorError = formatError(errorMessageDetailed, importResponse, userErrorMessages); - if (importResponse.exceptions_errors != null && importResponse.exceptions_errors.length > 0) { - const error = formatError( + return addError(connectorError, { + title: i18n.IMPORT_CONNECTORS_FAILED(userErrorMessages.length), + }); + } + const ruleError = formatError(errorMessageDetailed, importResponse, importResponse.errors); + addError(ruleError, { title: errorMessage(importResponse.errors.length) }); + + if ( + exceptionsIncluded && + importResponse.exceptions_errors != null && + importResponse.exceptions_errors.length > 0 + ) { + const exceptionError = formatError( errorMessageDetailed, importResponse, importResponse.exceptions_errors ); - addError(error, { title: i18n.IMPORT_FAILED(importResponse.exceptions_errors.length) }); - } - } else { - // rules response actions - if (importResponse.success) { - addSuccess(successMessage(importResponse.success_count)); - } - - if (importResponse.errors.length > 0) { - const error = formatError(errorMessageDetailed, importResponse, importResponse.errors); - addError(error, { title: errorMessage(importResponse.errors.length) }); + addError(exceptionError, { + title: i18n.IMPORT_FAILED(importResponse.exceptions_errors.length), + }); } } }; diff --git a/x-pack/plugins/security_solution/public/common/components/landing_cards/index.tsx b/x-pack/plugins/security_solution/public/common/components/landing_cards/index.tsx index 463f98feb2050e..d145598faab9e1 100644 --- a/x-pack/plugins/security_solution/public/common/components/landing_cards/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/landing_cards/index.tsx @@ -94,7 +94,6 @@ export const LandingCards = memo(() => {